Re: [RFC PATCH] dax: add badblocks check to Device DAX

From: Kani, Toshimitsu
Date: Wed May 03 2017 - 19:36:34 EST


On Wed, 2017-05-03 at 17:25 -0600, Toshi Kani wrote:
> On Wed, 2017-05-03 at 16:08 -0700, Dan Williams wrote:
> > On Wed, May 3, 2017 at 3:51 PM, Dan Williams <dan.j.williams@intel.
> > co
> > m> wrote:
> > > On Wed, May 3, 2017 at 3:41 PM, Kani, Toshimitsu <toshi.kani@hpe.
> > > co
> > > m> wrote:
> > > > On Wed, 2017-05-03 at 14:48 -0700, Dan Williams wrote:
>
> Â:
> > >
> > > I believe we already have all the data needed to calculate the
> > > data
> > > offset. Given the following sysfs path:
> > >
> > > ÂÂÂÂ/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/regio
> > > n1
> > > /dax1.1/dax/dax1.0
> > >
> > > ...we can find the associated namespace device from that dax1.1.
> > > From
> > > there we have the base address of the namespace and the size
> > > device-dax instance.
> > >
> > > ÂÂÂÂdevice_dax_data_offset == namespace_base + namespace_size -
> > > device_dax_size
> >
> > Dave reminds me that we do have the data offset of the device-dax
> > instance at the libnvdimm level:
> >
> > ÂÂÂÂ/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region1
> > /d
> > ax1.1/resource
> >
> > ...in this example, which maps to ndctl_dax_get_resource().
>
> Thanks for the info!ÂÂI noticed why I did not catch this info before.
>
> # ll /dev/dax*
> crw------- 1 root root 251, 3 MayÂÂ3 04:28 /dev/dax0.0
>
> # pwd
> /sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region0/dax0.
> 0
>
> # grep . *
> align:2097152
> devtype:nd_dax
> modalias:nd:t7
> mode:none
> numa_node:0
> grep: power: Is a directory
> grep: resource: No such device or address
> grep: size: No such device or address
> grep: subsystem: Is a directory
> uevent:DEVTYPE=nd_dax
> uevent:MODALIAS=nd:t7
>
> But I noticed that "resource" and "size" that are under
> ".../region0/dax0.1" work.ÂÂIs this intended?

Here is an output from dax0.1 (I removed the size value). Noticed that
mode is different.

# pwd
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region0/dax0.1

# grep . *
align:2097152
grep: dax: Is a directory
grep: dax_region: Is a directory
devtype:nd_dax
grep: driver: Is a directory
modalias:nd:t7
mode:pmem
namespace:namespace0.0
numa_node:0
grep: power: Is a directory
resource:0x250200000
size:(size value)
grep: subsystem: Is a directory
uevent:DEVTYPE=nd_dax
uevent:DRIVER=dax_pmem
uevent:MODALIAS=nd:t7
uuid:8c71811f-260d-4788-8487-db88d829d393

Thanks,
-Toshi