On Tue, May 2, 2017 at 2:21 PM, Kani, Toshimitsu <[email protected]> wrote:
> On Tue, 2017-05-02 at 13:54 -0700, Dan Williams wrote:
>> On Tue, May 2, 2017 at 1:26 PM, Dave Jiang <[email protected]>
>> wrote:
>  :
>> > +read sector len <
>> > /sys/bus/platform/devices/nfit_test.0/$dev/$region/badblocks
>> > +echo "sector: $sector len: $len"
>> > +
>> > +# clearing using ndctl
>> > +$NDCTL clear-error -f /dev/$chardev -s $sector -l $len
>>
>> Ok, so I'm glad you wrote this test it highlights one mismatched
>> assumption.  The "ndctl clear-error" options should be device-
>> relative "sector" offsets not region offsets. So, "ndctl clear-error
>> /dev/dev0.0 -s 0" should clear device-dax instance offset 0, not
>> region offset 0 A device-dax instance starts at an offset from the
>> namespace, and the namespace may start anywhere within a region. So
>> the clear-error command needs to translate that device-dax sector
>> offset to the region offset. device-dax offset to namespace offset
>> can be calculated by subtracting the device-dax instance size from
>> the namespace size, the namespace offset can be calculated by
>> subtracting the region resource base from the namespace resource
>> base. Now, the difficulty will be that the resource values for
>> nfit_test are garbage because they are vmalloc'd based, I need to
>> give that some thought...
>
> Using device-relative sector makes sense, but how does user come up
> with this sector number when sysfs only provides regionN/badblocks?

Right, we need a "list" helper that is also device-relative.
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to