Re: [ndctl PATCHv4] ndctl: Use max_available_extent for namespace

Masayoshi Mizuma
2018-08-03T16:26:09Z

Hi Vishal,

On 08/02/2018 04:42 PM, Masayoshi Mizuma wrote:
...
>> If you also wanted to package up this script as a unit test, I'd be
>> happy to include it. Would be gated on KVER=4.19
>
> Sounds great :-)
> Here is the patch for unit test:
>
> --------
> From: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
> Date: Thu, 2 Aug 2018 16:20:45 -0400
> Subject: [PATCH] ndctl, test: add a new unit test for max_available_extent
> namespace
>
> Add a new unit test to test max_available_extent namespace.
> This function is implemented by the following patches.
>
> kernel side:
> https://lists.01.org/pipermail/linux-nvdimm/2018-July/016731.html
> https://lists.01.org/pipermail/linux-nvdimm/2018-July/016732.html
>
> ndctl side:
> https://lists.01.org/pipermail/linux-nvdimm/2018-July/017176.html
>
> Signed-off-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
> ---
> test/Makefile.am | 3 ++-
> test/max_available_extent_ns.sh | 43 +++++++++++++++++++++++++++++++++
> 2 files changed, 45 insertions(+), 1 deletion(-)
> create mode 100755 test/max_available_extent_ns.sh
>
> diff --git a/test/Makefile.am b/test/Makefile.am
> index 8c55056..9af2464 100644
> --- a/test/Makefile.am
> +++ b/test/Makefile.am
> @@ -22,7 +22,8 @@ TESTS =\
> firmware-update.sh \
> ack-shutdown-count-set \
> rescan-partitions.sh \
> - monitor.sh
> + monitor.sh \
> + max_available_extent_ns.sh
>
> check_PROGRAMS =\
> libndctl \
> diff --git a/test/max_available_extent_ns.sh b/test/max_available_extent_ns.sh
> new file mode 100755
> index 0000000..4a44625
> --- /dev/null
> +++ b/test/max_available_extent_ns.sh
> @@ -0,0 +1,43 @@
> +#!/bin/bash -Ex
> +
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright(c) 2018, FUJITSU LIMITED. All rights reserved.
> +
> +rc=77
> +
> +. ./common
> +
> +trap 'err $LINENO' ERR
> +
> +check_min_kver "4.19" || do_skip "kernel $KVER may not support max_available_size"
> +
> +init()
> +{
> + $NDCTL disable-region -b $NFIT_TEST_BUS0 all
> + $NDCTL zero-labels -b $NFIT_TEST_BUS0 all
> + $NDCTL enable-region -b $NFIT_TEST_BUS0 all
> +}
> +
> +do_test()
> +{

> + region=$($NDCTL list -b nfit_test.0 -R -t pmem | jq -r .[].dev | head -1)

nfit_test.0 here should be changed to $NFIT_TEST_BUS0.
Please let me know if I should send the v2 patch.

Thanks!
Masa

> +
> + available_sz=$($NDCTL list -r $region | jq -r .[].available_size)
> + size=$(( available_sz/4 ))
> +
> + NS1=$($NDCTL create-namespace -r $region -t pmem -s $size | jq -r .dev)
> + NS2=$($NDCTL create-namespace -r $region -t pmem -s $size | jq -r .dev)
> + NS3=$($NDCTL create-namespace -r $region -t pmem -s $size | jq -r .dev)
> +
> + $NDCTL disable-namespace $NS2
> + $NDCTL destroy-namespace $NS2
> +
> + $NDCTL create-namespace -r $region -t pmem
> +}
> +
> +modprobe nfit_test
> +rc=1
> +init
> +do_test
> +_cleanup
> +exit 0