[PATCH 1/2] dax: fix output of function name for the fault handlers
by Dave Jiang
The debug output for return of pgoff_to_phys in the fault handlers are
wrong.
Reported-by: Jeff Moyer <jmoyer(a)redhat.com>
Signed-off-by: Dave Jiang <dave.jiang(a)intel.com>
---
drivers/dax/dax.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/dax/dax.c b/drivers/dax/dax.c
index 8d9829f..174690a 100644
--- a/drivers/dax/dax.c
+++ b/drivers/dax/dax.c
@@ -439,7 +439,7 @@ static int __dax_dev_pte_fault(struct dax_dev *dax_dev, struct vm_fault *vmf)
phys = pgoff_to_phys(dax_dev, vmf->pgoff, PAGE_SIZE);
if (phys == -1) {
- dev_dbg(dev, "%s: phys_to_pgoff(%#lx) failed\n", __func__,
+ dev_dbg(dev, "%s: pgoff_to_phys(%#lx) failed\n", __func__,
vmf->pgoff);
return VM_FAULT_SIGBUS;
}
@@ -483,7 +483,7 @@ static int __dax_dev_pmd_fault(struct dax_dev *dax_dev, struct vm_fault *vmf)
pgoff = linear_page_index(vmf->vma, pmd_addr);
phys = pgoff_to_phys(dax_dev, pgoff, PMD_SIZE);
if (phys == -1) {
- dev_dbg(dev, "%s: phys_to_pgoff(%#lx) failed\n", __func__,
+ dev_dbg(dev, "%s: pgoff_to_phys(%#lx) failed\n", __func__,
pgoff);
return VM_FAULT_SIGBUS;
}
@@ -522,7 +522,7 @@ static int __dax_dev_pud_fault(struct dax_dev *dax_dev, struct vm_fault *vmf)
pgoff = linear_page_index(vmf->vma, pud_addr);
phys = pgoff_to_phys(dax_dev, pgoff, PUD_SIZE);
if (phys == -1) {
- dev_dbg(dev, "%s: phys_to_pgoff(%#lx) failed\n", __func__,
+ dev_dbg(dev, "%s: pgoff_to_phys(%#lx) failed\n", __func__,
pgoff);
return VM_FAULT_SIGBUS;
}
3 years, 10 months
Status of your UPS delivery ID:6182734
by arspr-web@ars-pr.de
Dear Customer,
UPS courier was unable to contact you for your parcel delivery.
Postal label is enclosed to this e-mail. Please check the attachment!
Yours faithfully,
Jon Berry,
UPS Senior Station Manager.
3 years, 10 months
[PATCH 0/6] introduce DAX tracepoint support
by Ross Zwisler
Tracepoints are the standard way to capture debugging and tracing
information in many parts of the kernel, including the XFS and ext4
filesystems. This series creates a tracepoint header for FS DAX and add
the first few DAX tracepoints to the PMD fault handler. This allows the
tracing for DAX to be done in the same way as the filesystem tracing so
that developers can look at them together and get a coherent idea of what
the system is doing.
I do intend to add tracepoints to the normal 4k DAX fault path and to the
DAX I/O path, but I wanted to get feedback on the PMD tracepoints before I
went any further.
This series is based on Jan Kara's "dax: Clear dirty bits after flushing
caches" series:
https://lists.01.org/pipermail/linux-nvdimm/2016-November/007864.html
I've pushed a git tree with this work here:
https://git.kernel.org/cgit/linux/kernel/git/zwisler/linux.git/log/?h=dax...
Ross Zwisler (6):
dax: fix build breakage with ext4, dax and !iomap
dax: remove leading space from labels
dax: add tracepoint infrastructure, PMD tracing
dax: update MAINTAINERS entries for FS DAX
dax: add tracepoints to dax_pmd_load_hole()
dax: add tracepoints to dax_pmd_insert_mapping()
MAINTAINERS | 4 +-
fs/Kconfig | 1 +
fs/dax.c | 78 ++++++++++++++----------
fs/ext2/Kconfig | 1 -
include/linux/mm.h | 14 +++++
include/linux/pfn_t.h | 6 ++
include/trace/events/fs_dax.h | 135 ++++++++++++++++++++++++++++++++++++++++++
7 files changed, 206 insertions(+), 33 deletions(-)
create mode 100644 include/trace/events/fs_dax.h
--
2.7.4
3 years, 10 months
device dax fails with alignments other than 1GB
by Jeff Moyer
Hi,
With a device dax alignment of 4KB or 2MB, I get sigbus when running the
attached fio job file for the current kernel (4.11.0-rc1+). If I
specify an alignment of 1GB, it works.
I turned on debug output, and saw that it was failing in the huge fault
code.
[ 4614.138357] dax dax1.0: dax_open
[ 4614.154838] dax dax1.0: dax_mmap
[ 4614.171898] dax dax1.0: dax_dev_huge_fault: fio: write (0x7f08f0a00000 - 0x7f0ce0800000)
[ 4614.211720] dax dax1.0: __dax_dev_pud_fault: phys_to_pgoff(0xffffffffcf600) failed
[ 4614.568911] dax dax1.0: dax_release
Note that the printk is backwards: it's not phys_to_pgoff but rather
pgoff_to_phys that fails.
I don't have time to dig into this right now, so I figured I'd report it
in case others do.
This does make me wonder how much testing device dax receives. I tried
3 different kernels (a 4.10-rc, this one, and then a version just before
the huge page support went in) and they all broke in different ways.
This test is pretty simple. Dan, can we add it to whatever regression
tests you guys run for each of 4KB, 2MB and 1GB alignments?
Cheers,
Jeff
[global]
ioengine=dev-dax
direct=0
filename=/dev/dax0.0
bs=2m
[write]
rw=write
[read]
stonewall
rw=read
3 years, 10 months
Status of your UPS delivery ID:6140145
by ikisoto@a2plcpnl0513.prod.iad2.secureserver.net
Dear Customer,
We can not deliver your parcel arrived at March 06.
Postal label is enclosed to this e-mail. Please check the attachment!
Thank you for your time,
Matthew Arthur,
UPS Mail Delivery Clerk.
3 years, 10 months
[PATCH 0/5] Adding clear poison path for device DAX
by Dave Jiang
The following series implements a way to clear poison for device DAX
through ndctl from user space. The application can acquire the region's
base address through the sysfs region resource attribute. From that an
ioctl can be used to send ND_CMD_CLEAR_ERROR for clearing the poison and
related badblocks.
---
Dave Jiang (5):
libnvdimm: Add mechanism to publish badblocks at nd region level
libnvdimm: Add resource sysfs attrib to nd region
acpi: cleanup acpi_nfit_ctl calling xlat_status
acpi_nfit, libnvdimm: Add support for clear poison list and bad blocks
libnvdimm: providing dax support for nvdimm testing
drivers/acpi/nfit/core.c | 78 ++++++++++++++++++++++++++++++++++----
drivers/acpi/nfit/nfit.h | 2 +
drivers/dax/dax-private.h | 40 +++++++++++++++++++
drivers/dax/dax.c | 29 ++------------
drivers/nvdimm/bus.c | 55 +++++++++++++++++++++++----
drivers/nvdimm/core.c | 17 ++++++--
drivers/nvdimm/nd.h | 1
drivers/nvdimm/region.c | 33 ++++++++++++++++
drivers/nvdimm/region_devs.c | 32 ++++++++++++++++
include/linux/libnvdimm.h | 6 ++-
tools/testing/nvdimm/Kbuild | 3 +
tools/testing/nvdimm/dax-dev.c | 44 +++++++++++++++++++++
tools/testing/nvdimm/test/nfit.c | 23 +++++++----
13 files changed, 309 insertions(+), 54 deletions(-)
create mode 100644 drivers/dax/dax-private.h
create mode 100644 tools/testing/nvdimm/dax-dev.c
--
3 years, 10 months