anitazha / rpms / ndctl

Forked from rpms/ndctl 2 years ago
Clone

Blame fe831b5-Use-page-size-as-alignment-value.patch

Bryan Gurney bc084d
Use page size as alignment value
Bryan Gurney bc084d
Bryan Gurney bc084d
BZ: 
Bryan Gurney bc084d
Brew: 
Bryan Gurney bc084d
Bryan Gurney bc084d
commit fe831b526b88f6ca7a27fdb149b8a7d2ecddbc55
Bryan Gurney bc084d
Author: Santosh Sivaraj <santosh@fossix.org>
Bryan Gurney bc084d
Date:   Thu May 13 11:42:18 2021 +0530
Bryan Gurney bc084d
Bryan Gurney bc084d
    Use page size as alignment value
Bryan Gurney bc084d
    
Bryan Gurney bc084d
    The alignment sizes passed to ndctl in the tests are all hardcoded to 4k,
Bryan Gurney bc084d
    the default page size on x86. Change those to the default page size on that
Bryan Gurney bc084d
    architecture (sysconf/getconf). No functional changes otherwise.
Bryan Gurney bc084d
    
Bryan Gurney bc084d
    Link: https://lore.kernel.org/r/20210513061218.760322-4-santosh@fossix.org
Bryan Gurney bc084d
    Signed-off-by: Santosh Sivaraj <santosh@fossix.org>
Bryan Gurney bc084d
    Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
Bryan Gurney bc084d
Bryan Gurney bc084d
diff -up ndctl-71.1/test/dpa-alloc.c.orig ndctl-71.1/test/dpa-alloc.c
Bryan Gurney bc084d
--- ndctl-71.1/test/dpa-alloc.c.orig	2020-12-22 16:44:57.000000000 -0500
Bryan Gurney bc084d
+++ ndctl-71.1/test/dpa-alloc.c	2022-06-06 17:13:12.045108349 -0400
Bryan Gurney bc084d
@@ -38,12 +38,13 @@ static int do_test(struct ndctl_ctx *ctx
Bryan Gurney bc084d
 	struct ndctl_region *region, *blk_region = NULL;
Bryan Gurney bc084d
 	struct ndctl_namespace *ndns;
Bryan Gurney bc084d
 	struct ndctl_dimm *dimm;
Bryan Gurney bc084d
-	unsigned long size;
Bryan Gurney bc084d
+	unsigned long size, page_size;
Bryan Gurney bc084d
 	struct ndctl_bus *bus;
Bryan Gurney bc084d
 	char uuid_str[40];
Bryan Gurney bc084d
 	int round;
Bryan Gurney bc084d
 	int rc;
Bryan Gurney bc084d
 
Bryan Gurney bc084d
+	page_size = sysconf(_SC_PAGESIZE);
Bryan Gurney bc084d
 	/* disable nfit_test.1, not used in this test */
Bryan Gurney bc084d
 	bus = ndctl_bus_get_by_provider(ctx, NFIT_PROVIDER1);
Bryan Gurney bc084d
 	if (!bus)
Bryan Gurney bc084d
@@ -124,11 +125,11 @@ static int do_test(struct ndctl_ctx *ctx
Bryan Gurney bc084d
 			return rc;
Bryan Gurney bc084d
 		}
Bryan Gurney bc084d
 		ndctl_namespace_disable_invalidate(ndns);
Bryan Gurney bc084d
-		rc = ndctl_namespace_set_size(ndns, SZ_4K);
Bryan Gurney bc084d
+		rc = ndctl_namespace_set_size(ndns, page_size);
Bryan Gurney bc084d
 		if (rc) {
Bryan Gurney bc084d
-			fprintf(stderr, "failed to init %s to size: %d\n",
Bryan Gurney bc084d
+			fprintf(stderr, "failed to init %s to size: %lu\n",
Bryan Gurney bc084d
 					ndctl_namespace_get_devname(ndns),
Bryan Gurney bc084d
-					SZ_4K);
Bryan Gurney bc084d
+					page_size);
Bryan Gurney bc084d
 			return rc;
Bryan Gurney bc084d
 		}
Bryan Gurney bc084d
 		namespaces[i].ndns = ndns;
Bryan Gurney bc084d
@@ -150,7 +151,7 @@ static int do_test(struct ndctl_ctx *ctx
Bryan Gurney bc084d
 		ndns = namespaces[i % ARRAY_SIZE(namespaces)].ndns;
Bryan Gurney bc084d
 		if (i % ARRAY_SIZE(namespaces) == 0)
Bryan Gurney bc084d
 			round++;
Bryan Gurney bc084d
-		size = SZ_4K * round;
Bryan Gurney bc084d
+		size = page_size * round;
Bryan Gurney bc084d
 		rc = ndctl_namespace_set_size(ndns, size);
Bryan Gurney bc084d
 		if (rc) {
Bryan Gurney bc084d
 			fprintf(stderr, "%s: set_size: %lx failed: %d\n",
Bryan Gurney bc084d
@@ -166,7 +167,7 @@ static int do_test(struct ndctl_ctx *ctx
Bryan Gurney bc084d
 	i--;
Bryan Gurney bc084d
 	round++;
Bryan Gurney bc084d
 	ndns = namespaces[i % ARRAY_SIZE(namespaces)].ndns;
Bryan Gurney bc084d
-	size = SZ_4K * round;
Bryan Gurney bc084d
+	size = page_size * round;
Bryan Gurney bc084d
 	rc = ndctl_namespace_set_size(ndns, size);
Bryan Gurney bc084d
 	if (rc) {
Bryan Gurney bc084d
 		fprintf(stderr, "%s failed to update while labels full\n",
Bryan Gurney bc084d
@@ -175,7 +176,7 @@ static int do_test(struct ndctl_ctx *ctx
Bryan Gurney bc084d
 	}
Bryan Gurney bc084d
 
Bryan Gurney bc084d
 	round--;
Bryan Gurney bc084d
-	size = SZ_4K * round;
Bryan Gurney bc084d
+	size = page_size * round;
Bryan Gurney bc084d
 	rc = ndctl_namespace_set_size(ndns, size);
Bryan Gurney bc084d
 	if (rc) {
Bryan Gurney bc084d
 		fprintf(stderr, "%s failed to reduce size while labels full\n",
Bryan Gurney bc084d
diff -up ndctl-71.1/test/multi-dax.sh.orig ndctl-71.1/test/multi-dax.sh
Bryan Gurney bc084d
--- ndctl-71.1/test/multi-dax.sh.orig	2020-12-22 16:44:57.000000000 -0500
Bryan Gurney bc084d
+++ ndctl-71.1/test/multi-dax.sh	2022-06-06 17:13:12.046108353 -0400
Bryan Gurney bc084d
@@ -12,6 +12,8 @@ check_min_kver "4.13" || do_skip "may la
Bryan Gurney bc084d
 
Bryan Gurney bc084d
 trap 'err $LINENO' ERR
Bryan Gurney bc084d
 
Bryan Gurney bc084d
+ALIGN_SIZE=`getconf PAGESIZE`
Bryan Gurney bc084d
+
Bryan Gurney bc084d
 # setup (reset nfit_test dimms)
Bryan Gurney bc084d
 modprobe nfit_test
Bryan Gurney bc084d
 $NDCTL disable-region -b $NFIT_TEST_BUS0 all
Bryan Gurney bc084d
@@ -22,9 +24,9 @@ rc=1
Bryan Gurney bc084d
 query=". | sort_by(.available_size) | reverse | .[0].dev"
Bryan Gurney bc084d
 region=$($NDCTL list -b $NFIT_TEST_BUS0 -t pmem -Ri | jq -r "$query")
Bryan Gurney bc084d
 
Bryan Gurney bc084d
-json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a 4096 -s 16M)
Bryan Gurney bc084d
+json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a $ALIGN_SIZE -s 16M)
Bryan Gurney bc084d
 chardev1=$(echo $json | jq ". | select(.mode == \"devdax\") | .daxregion.devices[0].chardev")
Bryan Gurney bc084d
-json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a 4096 -s 16M)
Bryan Gurney bc084d
+json=$($NDCTL create-namespace -b $NFIT_TEST_BUS0 -r $region -t pmem -m devdax -a $ALIGN_SIZE -s 16M)
Bryan Gurney bc084d
 chardev2=$(echo $json | jq ". | select(.mode == \"devdax\") | .daxregion.devices[0].chardev")
Bryan Gurney bc084d
 
Bryan Gurney bc084d
 _cleanup
Bryan Gurney bc084d
diff -up ndctl-71.1/test/sector-mode.sh.orig ndctl-71.1/test/sector-mode.sh
Bryan Gurney bc084d
--- ndctl-71.1/test/sector-mode.sh.orig	2020-12-22 16:44:57.000000000 -0500
Bryan Gurney bc084d
+++ ndctl-71.1/test/sector-mode.sh	2022-06-06 17:13:12.046108353 -0400
Bryan Gurney bc084d
@@ -9,6 +9,8 @@ rc=77
Bryan Gurney bc084d
 set -e
Bryan Gurney bc084d
 trap 'err $LINENO' ERR
Bryan Gurney bc084d
 
Bryan Gurney bc084d
+ALIGN_SIZE=`getconf PAGESIZE`
Bryan Gurney bc084d
+
Bryan Gurney bc084d
 # setup (reset nfit_test dimms)
Bryan Gurney bc084d
 modprobe nfit_test
Bryan Gurney bc084d
 $NDCTL disable-region -b $NFIT_TEST_BUS0 all
Bryan Gurney bc084d
@@ -25,7 +27,7 @@ NAMESPACE=$($NDCTL list -b $NFIT_TEST_BU
Bryan Gurney bc084d
 REGION=$($NDCTL list -R --namespace=$NAMESPACE | jq -r "(.[]) | .dev")
Bryan Gurney bc084d
 echo 0 > /sys/bus/nd/devices/$REGION/read_only
Bryan Gurney bc084d
 $NDCTL create-namespace --no-autolabel -e $NAMESPACE -m sector -f -l 4K
Bryan Gurney bc084d
-$NDCTL create-namespace --no-autolabel -e $NAMESPACE -m dax -f -a 4K
Bryan Gurney bc084d
+$NDCTL create-namespace --no-autolabel -e $NAMESPACE -m dax -f -a $ALIGN_SIZE
Bryan Gurney bc084d
 $NDCTL create-namespace --no-autolabel -e $NAMESPACE -m sector -f -l 4K
Bryan Gurney bc084d
 
Bryan Gurney bc084d
 _cleanup