diff mbox series

[ndctl,V5,4/4] Use page size as alignment value

Message ID 20210513061218.760322-4-santosh@fossix.org (mailing list archive)
State Accepted
Commit fe831b526b88f6ca7a27fdb149b8a7d2ecddbc55
Headers show
Series [ndctl,V5,1/4] libndctl: Unify adding dimms for papr and nfit families | expand

Commit Message

Santosh Sivaraj May 13, 2021, 6:12 a.m. UTC
The alignment sizes passed to ndctl in the tests are all hardcoded to 4k,
the default page size on x86. Change those to the default page size on that
architecture (sysconf/getconf). No functional changes otherwise.

Signed-off-by: Santosh Sivaraj <santosh@fossix.org>
---
 test/dpa-alloc.c    | 15 ++++++++-------
 test/multi-dax.sh   |  6 ++++--
 test/sector-mode.sh |  4 +++-
 3 files changed, 15 insertions(+), 10 deletions(-)

Comments

Verma, Vishal L May 13, 2021, 6:17 p.m. UTC | #1
On Thu, 2021-05-13 at 11:42 +0530, Santosh Sivaraj wrote:
> The alignment sizes passed to ndctl in the tests are all hardcoded to 4k,
> the default page size on x86. Change those to the default page size on that
> architecture (sysconf/getconf). No functional changes otherwise.
> 
> Signed-off-by: Santosh Sivaraj <santosh@fossix.org>
> ---
>  test/dpa-alloc.c    | 15 ++++++++-------
>  test/multi-dax.sh   |  6 ++++--
>  test/sector-mode.sh |  4 +++-
>  3 files changed, 15 insertions(+), 10 deletions(-)

Thanks for the updates, these look good - I've applied them and pushed
out on 'pending'.

> 
> diff --git a/test/dpa-alloc.c b/test/dpa-alloc.c
> index 0b3bb7a..59185cf 100644
> --- a/test/dpa-alloc.c
> +++ b/test/dpa-alloc.c
> @@ -38,12 +38,13 @@ static int do_test(struct ndctl_ctx *ctx, struct ndctl_test *test)
>  	struct ndctl_region *region, *blk_region = NULL;
>  	struct ndctl_namespace *ndns;
>  	struct ndctl_dimm *dimm;
> -	unsigned long size;
> +	unsigned long size, page_size;
>  	struct ndctl_bus *bus;
>  	char uuid_str[40];
>  	int round;
>  	int rc;
>  
> +	page_size = sysconf(_SC_PAGESIZE);
>  	/* disable nfit_test.1, not used in this test */
>  	bus = ndctl_bus_get_by_provider(ctx, NFIT_PROVIDER1);
>  	if (!bus)
> @@ -124,11 +125,11 @@ static int do_test(struct ndctl_ctx *ctx, struct ndctl_test *test)
>  			return rc;
>  		}
>  		ndctl_namespace_disable_invalidate(ndns);
> -		rc = ndctl_namespace_set_size(ndns, SZ_4K);
> +		rc = ndctl_namespace_set_size(ndns, page_size);
>  		if (rc) {
> -			fprintf(stderr, "failed to init %s to size: %d\n",
> +			fprintf(stderr, "failed to init %s to size: %lu\n",
>  					ndctl_namespace_get_devname(ndns),
> -					SZ_4K);
> +					page_size);
>  			return rc;
>  		}
>  		namespaces[i].ndns = ndns;
> @@ -150,7 +151,7 @@ static int do_test(struct ndctl_ctx *ctx, struct ndctl_test *test)
>  		ndns = namespaces[i % ARRAY_SIZE(namespaces)].ndns;
>  		if (i % ARRAY_SIZE(namespaces) == 0)
>  			round++;
> -		size = SZ_4K * round;
> +		size = page_size * round;
>  		rc = ndctl_namespace_set_size(ndns, size);
>  		if (rc) {
>  			fprintf(stderr, "%s: set_size: %lx failed: %d\n",
> @@ -166,7 +167,7 @@ static int do_test(struct ndctl_ctx *ctx, struct ndctl_test *test)
>  	i--;
>  	round++;
>  	ndns = namespaces[i % ARRAY_SIZE(namespaces)].ndns;
> -	size = SZ_4K * round;
> +	size = page_size * round;
>  	rc = ndctl_namespace_set_size(ndns, size);
>  	if (rc) {
>  		fprintf(stderr, "%s failed to update while labels full\n",
> @@ -175,7 +176,7 @@ static int do_test(struct ndctl_ctx *ctx, struct ndctl_test *test)
>  	}
>  
>  	round--;
> -	size = SZ_4K * round;
> +	size = page_size * round;
>  	rc = ndctl_namespace_set_size(ndns, size);
>  	if (rc) {
>  		fprintf(stderr, "%s failed to reduce size while labels full\n",
> diff --git a/test/multi-dax.sh b/test/multi-dax.sh
> index e932569..9451ed0 100755
> --- a/test/multi-dax.sh
> +++ b/test/multi-dax.sh
> @@ -12,6 +12,8 @@ check_min_kver "4.13" || do_skip "may lack multi-dax support"
>  
>  trap 'err $LINENO' ERR
>  
> +ALIGN_SIZE=`getconf PAGESIZE`
> +
>  # setup (reset nfit_test dimms)
>  modprobe nfit_test
>  $NDCTL disable-region -b $NFIT_TEST_BUS0 all
> @@ -22,9 +24,9 @@ rc=1
>  query=". | sort_by(.available_size) | reverse | .[0].dev"
>  region=$($NDCTL list -b $NFIT_TEST_BUS0 -t pmem -Ri | jq -r "$query")
>  
> -json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a 4096 -s 16M)
> +json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a $ALIGN_SIZE -s 16M)
>  chardev1=$(echo $json | jq ". | select(.mode == \"devdax\") | .daxregion.devices[0].chardev")
> -json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a 4096 -s 16M)
> +json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a $ALIGN_SIZE -s 16M)
>  chardev2=$(echo $json | jq ". | select(.mode == \"devdax\") | .daxregion.devices[0].chardev")
>  
>  _cleanup
> diff --git a/test/sector-mode.sh b/test/sector-mode.sh
> index dd7013e..d03c0ca 100755
> --- a/test/sector-mode.sh
> +++ b/test/sector-mode.sh
> @@ -9,6 +9,8 @@ rc=77
>  set -e
>  trap 'err $LINENO' ERR
>  
> +ALIGN_SIZE=`getconf PAGESIZE`
> +
>  # setup (reset nfit_test dimms)
>  modprobe nfit_test
>  $NDCTL disable-region -b $NFIT_TEST_BUS0 all
> @@ -25,7 +27,7 @@ NAMESPACE=$($NDCTL list -b $NFIT_TEST_BUS1 -N | jq -r "$query")
>  REGION=$($NDCTL list -R --namespace=$NAMESPACE | jq -r "(.[]) | .dev")
>  echo 0 > /sys/bus/nd/devices/$REGION/read_only
>  $NDCTL create-namespace --no-autolabel -e $NAMESPACE -m sector -f -l 4K
> -$NDCTL create-namespace --no-autolabel -e $NAMESPACE -m dax -f -a 4K
> +$NDCTL create-namespace --no-autolabel -e $NAMESPACE -m dax -f -a $ALIGN_SIZE
>  $NDCTL create-namespace --no-autolabel -e $NAMESPACE -m sector -f -l 4K
>  
>  _cleanup
Verma, Vishal L May 26, 2021, 7:31 p.m. UTC | #2
On Thu, 2021-05-13 at 18:17 +0000, Verma, Vishal L wrote:
> On Thu, 2021-05-13 at 11:42 +0530, Santosh Sivaraj wrote:
> > The alignment sizes passed to ndctl in the tests are all hardcoded to 4k,
> > the default page size on x86. Change those to the default page size on that
> > architecture (sysconf/getconf). No functional changes otherwise.
> > 
> > Signed-off-by: Santosh Sivaraj <santosh@fossix.org>
> > ---
> >  test/dpa-alloc.c    | 15 ++++++++-------
> >  test/multi-dax.sh   |  6 ++++--
> >  test/sector-mode.sh |  4 +++-
> >  3 files changed, 15 insertions(+), 10 deletions(-)
> 
> Thanks for the updates, these look good - I've applied them and pushed
> out on 'pending'.
> 
> 
Hi Santosh,

Dan noticed that this patch[1] got dropped from the series - just
making sure that was intentional?

Thanks,
-Vishal
Verma, Vishal L May 26, 2021, 7:32 p.m. UTC | #3
On Wed, 2021-05-26 at 19:31 +0000, Verma, Vishal L wrote:
> On Thu, 2021-05-13 at 18:17 +0000, Verma, Vishal L wrote:
> > On Thu, 2021-05-13 at 11:42 +0530, Santosh Sivaraj wrote:
> > > The alignment sizes passed to ndctl in the tests are all hardcoded to 4k,
> > > the default page size on x86. Change those to the default page size on that
> > > architecture (sysconf/getconf). No functional changes otherwise.
> > > 
> > > Signed-off-by: Santosh Sivaraj <santosh@fossix.org>
> > > ---
> > >  test/dpa-alloc.c    | 15 ++++++++-------
> > >  test/multi-dax.sh   |  6 ++++--
> > >  test/sector-mode.sh |  4 +++-
> > >  3 files changed, 15 insertions(+), 10 deletions(-)
> > 
> > Thanks for the updates, these look good - I've applied them and pushed
> > out on 'pending'.
> > 
> > 
> Hi Santosh,
> 
> Dan noticed that this patch[1] got dropped from the series - just
> making sure that was intentional?

Oops, hit send too early.

[1]: https://lore.kernel.org/linux-nvdimm/20201222042516.2984348-4-santosh@fossix.org/

> 
> Thanks,
> -Vishal
Santosh Sivaraj May 27, 2021, 12:28 a.m. UTC | #4
"Verma, Vishal L" <vishal.l.verma@intel.com> writes:
Hi Vishal,

> On Wed, 2021-05-26 at 19:31 +0000, Verma, Vishal L wrote:
>> On Thu, 2021-05-13 at 18:17 +0000, Verma, Vishal L wrote:
>> > On Thu, 2021-05-13 at 11:42 +0530, Santosh Sivaraj wrote:
>> > > The alignment sizes passed to ndctl in the tests are all hardcoded to 4k,
>> > > the default page size on x86. Change those to the default page size on that
>> > > architecture (sysconf/getconf). No functional changes otherwise.
>> > > 
>> > > Signed-off-by: Santosh Sivaraj <santosh@fossix.org>
>> > > ---
>> > >  test/dpa-alloc.c    | 15 ++++++++-------
>> > >  test/multi-dax.sh   |  6 ++++--
>> > >  test/sector-mode.sh |  4 +++-
>> > >  3 files changed, 15 insertions(+), 10 deletions(-)
>> > 
>> > Thanks for the updates, these look good - I've applied them and pushed
>> > out on 'pending'.
>> > 
>> > 
>> Hi Santosh,
>> 
>> Dan noticed that this patch[1] got dropped from the series - just
>> making sure that was intentional?

Yes, that's right. It is intentional. The support SMART test cases are
here[1] sent by Shiva, which I have combined with error injection test and sent
as one patch series.

[1]: https://lkml.kernel.org/r/20210517084259.181236-1-santosh@fossix.org

Thanks,
Santosh
>
> Oops, hit send too early.
>
> [1]: https://lore.kernel.org/linux-nvdimm/20201222042516.2984348-4-santosh@fossix.org/
>
>> 
>> Thanks,
>> -Vishal
diff mbox series

Patch

diff --git a/test/dpa-alloc.c b/test/dpa-alloc.c
index 0b3bb7a..59185cf 100644
--- a/test/dpa-alloc.c
+++ b/test/dpa-alloc.c
@@ -38,12 +38,13 @@  static int do_test(struct ndctl_ctx *ctx, struct ndctl_test *test)
 	struct ndctl_region *region, *blk_region = NULL;
 	struct ndctl_namespace *ndns;
 	struct ndctl_dimm *dimm;
-	unsigned long size;
+	unsigned long size, page_size;
 	struct ndctl_bus *bus;
 	char uuid_str[40];
 	int round;
 	int rc;
 
+	page_size = sysconf(_SC_PAGESIZE);
 	/* disable nfit_test.1, not used in this test */
 	bus = ndctl_bus_get_by_provider(ctx, NFIT_PROVIDER1);
 	if (!bus)
@@ -124,11 +125,11 @@  static int do_test(struct ndctl_ctx *ctx, struct ndctl_test *test)
 			return rc;
 		}
 		ndctl_namespace_disable_invalidate(ndns);
-		rc = ndctl_namespace_set_size(ndns, SZ_4K);
+		rc = ndctl_namespace_set_size(ndns, page_size);
 		if (rc) {
-			fprintf(stderr, "failed to init %s to size: %d\n",
+			fprintf(stderr, "failed to init %s to size: %lu\n",
 					ndctl_namespace_get_devname(ndns),
-					SZ_4K);
+					page_size);
 			return rc;
 		}
 		namespaces[i].ndns = ndns;
@@ -150,7 +151,7 @@  static int do_test(struct ndctl_ctx *ctx, struct ndctl_test *test)
 		ndns = namespaces[i % ARRAY_SIZE(namespaces)].ndns;
 		if (i % ARRAY_SIZE(namespaces) == 0)
 			round++;
-		size = SZ_4K * round;
+		size = page_size * round;
 		rc = ndctl_namespace_set_size(ndns, size);
 		if (rc) {
 			fprintf(stderr, "%s: set_size: %lx failed: %d\n",
@@ -166,7 +167,7 @@  static int do_test(struct ndctl_ctx *ctx, struct ndctl_test *test)
 	i--;
 	round++;
 	ndns = namespaces[i % ARRAY_SIZE(namespaces)].ndns;
-	size = SZ_4K * round;
+	size = page_size * round;
 	rc = ndctl_namespace_set_size(ndns, size);
 	if (rc) {
 		fprintf(stderr, "%s failed to update while labels full\n",
@@ -175,7 +176,7 @@  static int do_test(struct ndctl_ctx *ctx, struct ndctl_test *test)
 	}
 
 	round--;
-	size = SZ_4K * round;
+	size = page_size * round;
 	rc = ndctl_namespace_set_size(ndns, size);
 	if (rc) {
 		fprintf(stderr, "%s failed to reduce size while labels full\n",
diff --git a/test/multi-dax.sh b/test/multi-dax.sh
index e932569..9451ed0 100755
--- a/test/multi-dax.sh
+++ b/test/multi-dax.sh
@@ -12,6 +12,8 @@  check_min_kver "4.13" || do_skip "may lack multi-dax support"
 
 trap 'err $LINENO' ERR
 
+ALIGN_SIZE=`getconf PAGESIZE`
+
 # setup (reset nfit_test dimms)
 modprobe nfit_test
 $NDCTL disable-region -b $NFIT_TEST_BUS0 all
@@ -22,9 +24,9 @@  rc=1
 query=". | sort_by(.available_size) | reverse | .[0].dev"
 region=$($NDCTL list -b $NFIT_TEST_BUS0 -t pmem -Ri | jq -r "$query")
 
-json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a 4096 -s 16M)
+json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a $ALIGN_SIZE -s 16M)
 chardev1=$(echo $json | jq ". | select(.mode == \"devdax\") | .daxregion.devices[0].chardev")
-json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a 4096 -s 16M)
+json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a $ALIGN_SIZE -s 16M)
 chardev2=$(echo $json | jq ". | select(.mode == \"devdax\") | .daxregion.devices[0].chardev")
 
 _cleanup
diff --git a/test/sector-mode.sh b/test/sector-mode.sh
index dd7013e..d03c0ca 100755
--- a/test/sector-mode.sh
+++ b/test/sector-mode.sh
@@ -9,6 +9,8 @@  rc=77
 set -e
 trap 'err $LINENO' ERR
 
+ALIGN_SIZE=`getconf PAGESIZE`
+
 # setup (reset nfit_test dimms)
 modprobe nfit_test
 $NDCTL disable-region -b $NFIT_TEST_BUS0 all
@@ -25,7 +27,7 @@  NAMESPACE=$($NDCTL list -b $NFIT_TEST_BUS1 -N | jq -r "$query")
 REGION=$($NDCTL list -R --namespace=$NAMESPACE | jq -r "(.[]) | .dev")
 echo 0 > /sys/bus/nd/devices/$REGION/read_only
 $NDCTL create-namespace --no-autolabel -e $NAMESPACE -m sector -f -l 4K
-$NDCTL create-namespace --no-autolabel -e $NAMESPACE -m dax -f -a 4K
+$NDCTL create-namespace --no-autolabel -e $NAMESPACE -m dax -f -a $ALIGN_SIZE
 $NDCTL create-namespace --no-autolabel -e $NAMESPACE -m sector -f -l 4K
 
 _cleanup