Re: [PATCH v4 2/4] generic: test mmap io fom DAX to non-DAX

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Mon, Apr 17, 2017 at 7:14 AM, Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
> On Mon, Apr 17, 2017 at 12:14 AM, Xiong Zhou <xzhou@xxxxxxxxxx> wrote:
>> Mount TEST_DEV as non-DAX, SCRATCH_DEV as DAX, then
>> do mmap DIO from DAX to non-DAX.
>>
>> This test is split from generic/413. Since DIO from DAX
>> to non-DAX is only supported/doable when device underneath
>> has memory(struct page) backend.
>>
>> By ndctl looking at SCRATCH_DEV, skip this test if it is
>> not in "memory mode".
>>
>> Adding helper to check pmem device status, which requires new
>> PROGs ndctl to tweaking pmem devices and jq to parse ndctl's
>> JSON format outputs.
>>
>> Signed-off-by: Xiong Zhou <xzhou@xxxxxxxxxx>
>> ---
>>  common/rc             |  45 ++++++++++++++++++++
>>  tests/generic/423     | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++
>>  tests/generic/423.out |   2 +
>>  tests/generic/group   |   1 +
>>  4 files changed, 161 insertions(+)
>>  create mode 100755 tests/generic/423
>>  create mode 100644 tests/generic/423.out
>>
>> diff --git a/common/rc b/common/rc
>> index 78a2101..73ac79c 100644
>> --- a/common/rc
>> +++ b/common/rc
>> @@ -3151,6 +3151,51 @@ _require_chattr()
>>         rm -f $TEST_DIR/syscalltest.out
>>  }
>>
>> +# Require test/scratch device nvdimm and having specific
>> +# arttibute key/value we need.
>> +#
>> +# This is designed to get attr values of nvdimm persistent
>> +# memory device, by searching sysfs.
>> +#
>> +# Other non-nvdimm or non-persistent-memory devices would
>> +# fail this helper anyway.
>> +#
>> +# So, ONLY use this helper when you REALLY need nvdimm and
>> +# specific attr on it.
>> +#
>> +_require_pmem_key_value()
>> +{
>> +       local dev=${1#/dev/}
>> +       local key=$2
>> +       local value=$3
>> +       local region index keyfile dev_value
>> +
>> +       # find a filename string contains the region of dev, eg:
>> +       #  /sys/devices/platform/e820_pmem/ndbus0/region1/\
>> +       #  namespace1.0/block/pmem1
>> +       #
>> +       region=$(find /sys/ | grep $dev | grep region | head -1)
>> +       [ -z "$region" ] && \
>> +         _notrun "requires persistent memory $dev $key $value"
>
> Running 'find' in sysfs is overkill. You can go directly to the sysfs
> path for a given block device by stat(1) on the block device special
> file to get the device major and minor numbers. Then go directly to
> the sysfs path for that device by following this link
> /sys/dev/block/$major:$minor.

Of course, this is all handled for you if you just use ndctl, so I'm
not sure what the motivation is to bypass those tools? They are widely
available.
--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux