[PATCH v3 0/2] Support ACPI 6.1 update in NFIT Control Region Structure
by Toshi Kani
ACPI 6.1, Table 5-133, updates NVDIMM Control Region Structure as
follows.
- Valid Fields, Manufacturing Location, and Manufacturing Date
are added from reserved range. No change in the structure size.
- IDs (SPD values) are stored as arrays of bytes (i.e. big-endian
format). The spec clarifies that they need to be represented
as arrays of bytes as well.
Patch 1 changes the NFIT driver to comply with ACPI 6.1.
Patch 2 adds a new sysfs file "id" to show NVDIMM ID defined in ACPI 6.1.
The patch-set applies on linux-pm.git acpica.
link: http://www.uefi.org/sites/default/files/resources/ACPI_6_1.pdf
---
v3:
- Need to coordinate with ACPICA update (Bob Moore, Dan Williams)
- Integrate with ACPICA changes in struct acpi_nfit_control_region.
(commit 138a95547ab0)
v2:
- Remove 'mfg_location' and 'mfg_date'. (Dan Williams)
- Rename 'unique_id' to 'id' and make this change as a separate patch.
(Dan Williams)
---
Toshi Kani (3):
1/2 acpi/nfit: Update nfit driver to comply with ACPI 6.1
2/3 acpi/nfit: Add sysfs "id" for NVDIMM ID
---
drivers/acpi/nfit.c | 29 ++++++++++++++++++++++++-----
1 file changed, 24 insertions(+), 5 deletions(-)
2 years, 10 months
xfs: untangle the direct I/O and DAX path, fix DAX locking
by Christoph Hellwig
The last patch is what started the series: XFS currently uses the
direct I/O locking strategy for DAX because DAX was overloaded onto
the direct I/O path. For XFS this means that we only take a shared
inode lock instead of the normal exclusive one for writes IFF they
are properly aligned. While this is fine for O_DIRECT which requires
explicit opt-in from the application it's not fine for DAX where we'll
suddenly lose expected and required synchronization of the file system
happens to use DAX undeneath.
Patches 1-7 just untangle the code so that we can deal with DAX on
it's own easily.
4 years, 6 months
[PATCH v2 0/9] re-enable DAX PMD support
by Ross Zwisler
DAX PMDs have been disabled since Jan Kara introduced DAX radix tree based
locking. This series allows DAX PMDs to participate in the DAX radix tree
based locking scheme so that they can be re-enabled.
Changes since v1:
- PMD entry locking is now done based on the starting offset of the PMD
entry, rather than on the radix tree slot which was unreliable. (Jan)
- Fixed the one issue I could find with hole punch. As far as I can tell
hole punch now works correctly for both PMD and PTE DAX entries, 4k zero
pages and huge zero pages.
- Fixed the way that ext2 returns the size of holes in ext2_get_block().
(Jan)
- Made the 'wait_table' global variable static in respnse to a sparse
warning.
- Fixed some more inconsitent usage between the names 'ret' and 'entry'
for radix tree entry variables.
Ross Zwisler (9):
ext4: allow DAX writeback for hole punch
ext2: tell DAX the size of allocation holes
ext4: tell DAX the size of allocation holes
dax: remove buffer_size_valid()
dax: make 'wait_table' global variable static
dax: consistent variable naming for DAX entries
dax: coordinate locking for offsets in PMD range
dax: re-enable DAX PMD support
dax: remove "depends on BROKEN" from FS_DAX_PMD
fs/Kconfig | 1 -
fs/dax.c | 297 +++++++++++++++++++++++++++++-----------------------
fs/ext2/inode.c | 3 +
fs/ext4/inode.c | 7 +-
include/linux/dax.h | 29 ++++-
mm/filemap.c | 6 +-
6 files changed, 201 insertions(+), 142 deletions(-)
--
2.9.0
4 years, 6 months
[PATCH v4 RESEND 0/2] Align mmap address for DAX pmd mappings
by Toshi Kani
When CONFIG_FS_DAX_PMD is set, DAX supports mmap() using pmd page
size. This feature relies on both mmap virtual address and FS
block (i.e. physical address) to be aligned by the pmd page size.
Users can use mkfs options to specify FS to align block allocations.
However, aligning mmap address requires code changes to existing
applications for providing a pmd-aligned address to mmap().
For instance, fio with "ioengine=mmap" performs I/Os with mmap() [1].
It calls mmap() with a NULL address, which needs to be changed to
provide a pmd-aligned address for testing with DAX pmd mappings.
Changing all applications that call mmap() with NULL is undesirable.
This patch-set extends filesystems to align an mmap address for
a DAX file so that unmodified applications can use DAX pmd mappings.
[1]: https://github.com/axboe/fio/blob/master/engines/mmap.c
RESEND:
- Rebased to 4.8.0-rc4, and drop blk as BLK_DEV_DAX was removed.
v4:
- Use loff_t for offset and cast before shift (Jan Kara)
- Remove redundant paranthesis (Jan Kara)
- Allow integration with huge page cache support (Matthew Wilcox)
- Prepare for PUD mapping support (Mike Kravetz, Matthew Wilcox)
v3:
- Check overflow condition to offset + length. (Matthew Wilcox)
- Remove indent by using gotos. (Matthew Wilcox)
- Define dax_get_unmapped_area to NULL when CONFIG_FS_DAX is unset.
(Matthew Wilcox)
- Squash all filesystem patches together. (Matthew Wilcox)
v2:
- Change filesystems to provide their get_unmapped_area().
(Matthew Wilcox)
- Add more description about the benefit. (Matthew Wilcox)
---
Toshi Kani (2):
1/2 thp, dax: add thp_get_unmapped_area for pmd mappings
2/2 ext2/4, xfs, blk: call thp_get_unmapped_area() for pmd mappings
---
fs/ext2/file.c | 1 +
fs/ext4/file.c | 1 +
fs/xfs/xfs_file.c | 1 +
include/linux/huge_mm.h | 7 +++++++
mm/huge_memory.c | 43 +++++++++++++++++++++++++++++++++++++++++++
5 files changed, 53 insertions(+)
4 years, 7 months
DAX can not work on virtual nvdimm device
by Xiao Guangrong
Hi Dan,
Recently, Redhat reported that nvml test suite failed on QEMU/KVM,
more detailed info please refer to:
https://bugzilla.redhat.com/show_bug.cgi?id=1365721
The reason for this bug is that the memory region created by mmap()
on the dax-based file was gone so that the region can not be found
in /proc/self/smaps during the runtime.
This is a simple way to trigger this issue:
mount -o dax /dev/pmem0 /mnt/pmem/
vim /mnt/pmem/xxx
then 'vim' is crashed due to segment fault.
This bug can be reproduced on your tree, the top commit is
10d7902fa0e82b (dax: unmap/truncate on device shutdown), the kernel
configure file is attached.
Your thought or comment is highly appreciated.
Thanks!
4 years, 7 months
[PATCH 0/3] acpi, nfit: nvdimm notification support + tests
by Dan Williams
ACPI 6.1 added an "NFIT Health Event Notification" for nvdimm devices.
When this fires, system software is expected to issue a DSM to retrieve
the latest health values. For the NFIT driver this notification
arrives as an event on the sysfs 'flags' attribute for an nfit/nvdimm
device. The 'flags' attribute reflects the "NVDIMM State Flags" of the
"5.2.25.3 NVDIMM Region Mapping Structure", and when read indicates if
the platform supports sending health events.
---
Dan Williams (3):
tools/testing/nvdimm: unit test for acpi_nfit_notify()
acpi, nfit: add dimm device notification support
tools/testing/nvdimm: unit test for acpi_nvdimm_notify()
drivers/acpi/nfit/core.c | 112 ++++++++++++++++++++++++++++++++-----
drivers/acpi/nfit/nfit.h | 7 ++
drivers/nvdimm/dimm_devs.c | 6 ++
include/linux/libnvdimm.h | 1
tools/testing/nvdimm/Kbuild | 1
tools/testing/nvdimm/test/iomap.c | 17 ++++++
tools/testing/nvdimm/test/nfit.c | 64 +++++++++++++++++++--
7 files changed, 188 insertions(+), 20 deletions(-)
4 years, 7 months
[PATCH] [trivial] nvdimm: Spelling s/unacknoweldged/unacknowledged/
by Geert Uytterhoeven
Signed-off-by: Geert Uytterhoeven <geert+renesas(a)glider.be>
---
drivers/nvdimm/namespace_devs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/nvdimm/namespace_devs.c b/drivers/nvdimm/namespace_devs.c
index c5e3196c45b02cc5..6b0449bd7720b7c0 100644
--- a/drivers/nvdimm/namespace_devs.c
+++ b/drivers/nvdimm/namespace_devs.c
@@ -294,7 +294,7 @@ static bool __nd_namespace_blk_validate(struct nd_namespace_blk *nsblk)
if (strcmp(res->name, label_id.id) != 0)
continue;
/*
- * Resources with unacknoweldged adjustments indicate a
+ * Resources with unacknowledged adjustments indicate a
* failure to update labels
*/
if (res->flags & DPA_RESOURCE_ADJUSTED)
--
1.9.1
4 years, 7 months
Subject: <expression>rawurlencode(test)</expression>
by www-data@luodeciwa.localdomain
mail(a)www.rohde-schwarz.com.cn
10年亚洲顶级品牌信誉,持有正规牌照,负责任的博彩公司!
主营电子游戏(老虎机)、真人百家乐、皇冠体育、各类时时彩票,1元即可游戏,50元就能出款!
您有多久,没有随心所欲的娱乐了呢?来,【澳门金沙集团】欢迎您,天天返水1.2%:http://www.834516.com/?linux-nvdimm@lists.01.org
------------------------------------------
行动不一定带来快乐,而无行动则决无快乐。
4 years, 7 months
xfstests xfs fuzzers fail with DAX
by Xiong Zhou
Hi,
A few xfs fuzzers in xfstests fail with dax mount option, pass without dax.
They are xfs/086 xfs/088 xfs/089 xfs/091.
xfstests to commit 4470ad4c7e (Jul 26)
kernel to commit dd95069545 (Jul 24)
+ ./check xfs/091
FSTYP -- xfs (non-debug)
PLATFORM -- Linux/x86_64 rhel73 4.7.0+
MKFS_OPTIONS -- -f -bsize=4096 /dev/pmem1
MOUNT_OPTIONS -- -o context=system_u:object_r:nfs_t:s0 /dev/pmem1 /daxsch
xfs/091 104s
Ran: xfs/091
Passed all 1 tests
+ echo 'MOUNT_OPTIONS="-o dax"'
+ ./check xfs/091
FSTYP -- xfs (non-debug)
PLATFORM -- Linux/x86_64 rhel73 4.7.0+
MKFS_OPTIONS -- -f -bsize=4096 /dev/pmem1
MOUNT_OPTIONS -- -o dax -o context=system_u:object_r:nfs_t:s0 /dev/pmem1 /daxsch
xfs/091 104s ... - output mismatch (see /root/xfstests/results//xfs/091.out.bad)
--- tests/xfs/091.out 2016-07-18 02:57:47.670000000 -0400
+++ /root/xfstests/results//xfs/091.out.bad 2016-08-03 22:38:14.948000000 -0400
@@ -6,6 +6,70 @@
+ corrupt image
+ mount image
+ modify files
+pwrite64: Structure needs cleaning
+pwrite64: Structure needs cleaning
+pwrite64: Structure needs cleaning
+pwrite64: Structure needs cleaning
...
(Run 'diff -u tests/xfs/091.out /root/xfstests/results//xfs/091.out.bad' to see the entire diff)
Ran: xfs/091
Failures: xfs/091
Failed 1 of 1 tests
# diff -u xfstests/tests/xfs/091.out /root/xfstests/results//xfs/091.out.bad
--- xfstests/tests/xfs/091.out 2016-07-18 02:57:47.670000000 -0400
+++ /root/xfstests/results//xfs/091.out.bad 2016-08-03 22:38:14.948000000 -0400
@@ -6,6 +6,70 @@
+ corrupt image
+ mount image
+ modify files
+pwrite64: Structure needs cleaning
<snip 62 more same lines>
+pwrite64: Structure needs cleaning
+ repair fs
+ mount image
+ chattr -R -i
Thanks,
Xiong
4 years, 7 months