History

Merge tag 'libnvdimm-for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm

Pull libnvdimm updates from Dan Williams: "Aside from the recently added pmem sub-division support these have been in -next for several releases with no reported issues. The sub- division support was included in next-20161010 with no reported issues. It passes all unit tests including new tests for all the new functionality below. Summary: - PMEM sub-division support: Allow a single PMEM region to be divided into multiple namespaces. Originally, ~2 years ago, it was thought that partitions of a /dev/pmemX block device could handle sub-allocations of persistent memory for different use cases. With the decision to not support DAX mappings of raw block-devices, and the genesis of device-dax, the need for having multiple pmem-namespace per region has grown. - Device-DAX unified inode: In support of dynamic-resizing of a device-dax instance the kernel arranges for all mappings of a device-dax node to share the same inode. This allows unmap / truncate / invalidation events to affect all instances of the device similar to the behavior of mmap on block devices. - Hardware error scrubbing reworks: The original address-range-scrub and badblocks tracking solution allowed clearing entries at the individual namespace level, but it failed to clear the internal list of media errors maintained at the bus level. The result was that the next scrub or namespace disable/re-enable event would restore the cleared badblocks, but now that is fixed. The v4.8 kernel introduced an auto-scrub-on-machine-check behavior to repopulate the badblocks list. Now, in v4.9, the auto-scrub behavior can be disabled and simply arrange for the error reported in the machine-check to be added to the list. - DIMM health-event notification support: ACPI 6.1 defines a notification event code that can be send to ACPI NVDIMM devices. A poll(2) capable file descriptor for these events can be obtained from the nmemX/nfit/flags sysfs-attribute of a libnvdimm memory device. - Miscellaneous fixes: NVDIMM-N probe error, device-dax build error, and a change to dedup the flush hint list to not flush the memory controller more than necessary" * tag 'libnvdimm-for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (39 commits) /dev/dax: fix Kconfig dependency build breakage dax: use correct dev_t value dax: convert devm_create_dax_dev to PTR_ERR libnvdimm, namespace: allow creation of multiple pmem-namespaces per region libnvdimm, namespace: lift single pmem limit in scan_labels() libnvdimm, namespace: filter out of range labels in scan_labels() libnvdimm, namespace: enable allocation of multiple pmem namespaces libnvdimm, namespace: update label implementation for multi-pmem libnvdimm, namespace: expand pmem device naming scheme for multi-pmem libnvdimm, region: update nd_region_available_dpa() for multi-pmem support libnvdimm, namespace: sort namespaces by dpa at init libnvdimm, namespace: allow multiple pmem-namespaces per region at scan time tools/testing/nvdimm: support for sub-dividing a pmem region libnvdimm, namespace: unify blk and pmem label scanning libnvdimm, namespace: refactor uuid_show() into a namespace_to_uuid() helper libnvdimm, label: convert label tracking to a linked list libnvdimm, region: move region-mapping input-paramters to nd_mapping_desc nvdimm: reduce duplicated wpq flushes libnvdimm: clear the internal poison_list when clearing badblocks pmem: reduce kmap_atomic sections to the memcpys only ...

Linus Torvalds committed 10 years ago

Commit d09ba132 parents f29135b e476f9427 files · +1940 −751Browse files

Showing the changes to include/uapi (2 of 27 files). Show all

Unified · Split

2 files
  1. include/uapi/linux/magic.h +1 −0
  2. include/uapi/linux/ndctl.h +17 −13
include/uapi/linux/magic.h+1−0
@@ -65,6 +65,7 @@ · 64 unmodified lines
6565 #define V9FS_MAGIC 0x01021997
6666
6767 #define BDEVFS_MAGIC 0x62646576
68+#define DAXFS_MAGIC 0x64646178
6869 #define BINFMTFS_MAGIC 0x42494e4d
6970 #define DEVPTS_SUPER_MAGIC 0x1cd1
7071 #define FUTEXFS_SUPER_MAGIC 0xBAD1DEA
include/uapi/linux/ndctl.h+17−13
@@ -21,14 +21,16 @@ struct nd_cmd_smart { · 20 unmodified lines
2121 } __packed;
2222
2323 #define ND_SMART_HEALTH_VALID (1 << 0)
24−#define ND_SMART_TEMP_VALID (1 << 1)
25−#define ND_SMART_SPARES_VALID (1 << 2)
26−#define ND_SMART_ALARM_VALID (1 << 3)
27−#define ND_SMART_USED_VALID (1 << 4)
28−#define ND_SMART_SHUTDOWN_VALID (1 << 5)
29−#define ND_SMART_VENDOR_VALID (1 << 6)
30−#define ND_SMART_TEMP_TRIP (1 << 0)
31−#define ND_SMART_SPARE_TRIP (1 << 1)
24+#define ND_SMART_SPARES_VALID (1 << 1)
25+#define ND_SMART_USED_VALID (1 << 2)
26+#define ND_SMART_TEMP_VALID (1 << 3)
27+#define ND_SMART_CTEMP_VALID (1 << 4)
28+#define ND_SMART_ALARM_VALID (1 << 9)
29+#define ND_SMART_SHUTDOWN_VALID (1 << 10)
30+#define ND_SMART_VENDOR_VALID (1 << 11)
31+#define ND_SMART_SPARE_TRIP (1 << 0)
32+#define ND_SMART_TEMP_TRIP (1 << 1)
33+#define ND_SMART_CTEMP_TRIP (1 << 2)
3234 #define ND_SMART_NON_CRITICAL_HEALTH (1 << 0)
3335 #define ND_SMART_CRITICAL_HEALTH (1 << 1)
3436 #define ND_SMART_FATAL_HEALTH (1 << 2)
@@ -37,14 +39,15 @@ struct nd_smart_payload { · 2 unmodified lines
3739 __u32 flags;
3840 __u8 reserved0[4];
3941 __u8 health;
40− __u16 temperature;
4142 __u8 spares;
42− __u8 alarm_flags;
4343 __u8 life_used;
44+ __u8 alarm_flags;
45+ __u16 temperature;
46+ __u16 ctrl_temperature;
47+ __u8 reserved1[15];
4448 __u8 shutdown_state;
45− __u8 reserved1;
4649 __u32 vendor_size;
47− __u8 vendor_data[108];
50+ __u8 vendor_data[92];
4851 } __packed;
4952
5053 struct nd_cmd_smart_threshold {
@@ -53,7 +56,8 @@ struct nd_cmd_smart_threshold { · 2 unmodified lines
5356 } __packed;
5457
5558 struct nd_smart_threshold_payload {
56− __u16 alarm_control;
59+ __u8 alarm_control;
60+ __u8 reserved0;
5761 __u16 temperature;
5862 __u8 spares;
5963 __u8 reserved[3];

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t