All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH -next v4 0/3] Optimize and bugfix for memory-hotplug
@ 2022-09-27  3:28 Zhao Gongyi
  2022-09-27  3:28 ` [PATCH -next v4 1/3] selftests/memory-hotplug: Add checking after online or offline Zhao Gongyi
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Zhao Gongyi @ 2022-09-27  3:28 UTC (permalink / raw)
  To: linux-doc, linux-kernel, linux-mm, linux-kselftest
  Cc: akinobu.mita, corbet, david, osalvador, shuah, zhaogongyi

1. Add checking after online or offline
2. Restore memory before exit
3. Correct test's name

Changes in v4:
  - Remove redundant log information

Changes in v3:
  - Remove 2 obselute patches

Zhao Gongyi (3):
  selftests/memory-hotplug: Add checking after online or offline
  selftests/memory-hotplug: Restore memory before exit
  docs: notifier-error-inject: Correct test's name

 .../fault-injection/notifier-error-inject.rst |  4 +--
 .../memory-hotplug/mem-on-off-test.sh         | 27 +++++++++++++++----
 2 files changed, 24 insertions(+), 7 deletions(-)

--
2.17.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH -next v4 1/3] selftests/memory-hotplug: Add checking after online or offline
  2022-09-27  3:28 [PATCH -next v4 0/3] Optimize and bugfix for memory-hotplug Zhao Gongyi
@ 2022-09-27  3:28 ` Zhao Gongyi
  2022-09-27  7:26   ` David Hildenbrand
  2022-09-27  3:28 ` [PATCH -next v4 2/3] selftests/memory-hotplug: Restore memory before exit Zhao Gongyi
  2022-09-27  3:28 ` [PATCH -next v4 3/3] docs: notifier-error-inject: Correct test's name Zhao Gongyi
  2 siblings, 1 reply; 6+ messages in thread
From: Zhao Gongyi @ 2022-09-27  3:28 UTC (permalink / raw)
  To: linux-doc, linux-kernel, linux-mm, linux-kselftest
  Cc: akinobu.mita, corbet, david, osalvador, shuah, zhaogongyi

Add checking for online_memory_expect_success()/
offline_memory_expect_success()/offline_memory_expect_fail(), or
the test would exit 0 although the functions return 1.

Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
---
 .../selftests/memory-hotplug/mem-on-off-test.sh      | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh b/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
index 46a97f318f58..1d87611a7d52 100755
--- a/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
+++ b/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
@@ -266,7 +266,9 @@ done
 #
 echo $error > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_ONLINE/error
 for memory in `hotpluggable_offline_memory`; do
-	online_memory_expect_fail $memory
+	if ! online_memory_expect_fail $memory; then
+		retval=1
+	fi
 done

 #
@@ -274,7 +276,9 @@ done
 #
 echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_ONLINE/error
 for memory in `hotpluggable_offline_memory`; do
-	online_memory_expect_success $memory
+	if ! online_memory_expect_success $memory; then
+		retval=1
+	fi
 done

 #
@@ -283,7 +287,9 @@ done
 echo $error > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_OFFLINE/error
 for memory in `hotpluggable_online_memory`; do
 	if [ $((RANDOM % 100)) -lt $ratio ]; then
-		offline_memory_expect_fail $memory
+		if ! offline_memory_expect_fail $memory; then
+			retval=1
+		fi
 	fi
 done

--
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH -next v4 2/3] selftests/memory-hotplug: Restore memory before exit
  2022-09-27  3:28 [PATCH -next v4 0/3] Optimize and bugfix for memory-hotplug Zhao Gongyi
  2022-09-27  3:28 ` [PATCH -next v4 1/3] selftests/memory-hotplug: Add checking after online or offline Zhao Gongyi
@ 2022-09-27  3:28 ` Zhao Gongyi
  2022-09-27  7:41   ` David Hildenbrand
  2022-09-27  3:28 ` [PATCH -next v4 3/3] docs: notifier-error-inject: Correct test's name Zhao Gongyi
  2 siblings, 1 reply; 6+ messages in thread
From: Zhao Gongyi @ 2022-09-27  3:28 UTC (permalink / raw)
  To: linux-doc, linux-kernel, linux-mm, linux-kselftest
  Cc: akinobu.mita, corbet, david, osalvador, shuah, zhaogongyi

Some momory will be left in offline state when calling
offline_memory_expect_fail() failed. Restore it before exit.

Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
---
 .../memory-hotplug/mem-on-off-test.sh         | 21 ++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh b/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
index 1d87611a7d52..91a7457616bb 100755
--- a/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
+++ b/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
@@ -134,6 +134,16 @@ offline_memory_expect_fail()
 	return 0
 }

+online_all_offline_memory()
+{
+	for memory in `hotpluggable_offline_memory`; do
+		if ! online_memory_expect_success $memory; then
+			echo "$FUNCNAME $memory: unexpected fail" >&2
+			retval=1
+		fi
+	done
+}
+
 error=-12
 priority=0
 # Run with default of ratio=2 for Kselftest run
@@ -275,11 +285,7 @@ done
 # Online all hot-pluggable memory
 #
 echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_ONLINE/error
-for memory in `hotpluggable_offline_memory`; do
-	if ! online_memory_expect_success $memory; then
-		retval=1
-	fi
-done
+online_all_offline_memory

 #
 # Test memory hot-remove error handling (online => offline)
@@ -296,4 +302,9 @@ done
 echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_OFFLINE/error
 /sbin/modprobe -q -r memory-notifier-error-inject

+#
+# Restore memory before exit
+#
+online_all_offline_memory
+
 exit $retval
--
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH -next v4 3/3] docs: notifier-error-inject: Correct test's name
  2022-09-27  3:28 [PATCH -next v4 0/3] Optimize and bugfix for memory-hotplug Zhao Gongyi
  2022-09-27  3:28 ` [PATCH -next v4 1/3] selftests/memory-hotplug: Add checking after online or offline Zhao Gongyi
  2022-09-27  3:28 ` [PATCH -next v4 2/3] selftests/memory-hotplug: Restore memory before exit Zhao Gongyi
@ 2022-09-27  3:28 ` Zhao Gongyi
  2 siblings, 0 replies; 6+ messages in thread
From: Zhao Gongyi @ 2022-09-27  3:28 UTC (permalink / raw)
  To: linux-doc, linux-kernel, linux-mm, linux-kselftest
  Cc: akinobu.mita, corbet, david, osalvador, shuah, zhaogongyi

Correct test's name for mem-on-off-test.sh/cpu-on-off-test.sh.

Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
---
 Documentation/fault-injection/notifier-error-inject.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/fault-injection/notifier-error-inject.rst b/Documentation/fault-injection/notifier-error-inject.rst
index 1668b6e48d3a..fdf2dc433ead 100644
--- a/Documentation/fault-injection/notifier-error-inject.rst
+++ b/Documentation/fault-injection/notifier-error-inject.rst
@@ -91,8 +91,8 @@ For more usage examples
 There are tools/testing/selftests using the notifier error injection features
 for CPU and memory notifiers.

- * tools/testing/selftests/cpu-hotplug/on-off-test.sh
- * tools/testing/selftests/memory-hotplug/on-off-test.sh
+ * tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh
+ * tools/testing/selftests/memory-hotplug/mem-on-off-test.sh

 These scripts first do simple online and offline tests and then do fault
 injection tests if notifier error injection module is available.
--
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH -next v4 1/3] selftests/memory-hotplug: Add checking after online or offline
  2022-09-27  3:28 ` [PATCH -next v4 1/3] selftests/memory-hotplug: Add checking after online or offline Zhao Gongyi
@ 2022-09-27  7:26   ` David Hildenbrand
  0 siblings, 0 replies; 6+ messages in thread
From: David Hildenbrand @ 2022-09-27  7:26 UTC (permalink / raw)
  To: Zhao Gongyi, linux-doc, linux-kernel, linux-mm, linux-kselftest
  Cc: akinobu.mita, corbet, osalvador, shuah

On 27.09.22 05:28, Zhao Gongyi wrote:
> Add checking for online_memory_expect_success()/
> offline_memory_expect_success()/offline_memory_expect_fail(), or
> the test would exit 0 although the functions return 1.
> 
> Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
> ---
>   .../selftests/memory-hotplug/mem-on-off-test.sh      | 12 +++++++++---
>   1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh b/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
> index 46a97f318f58..1d87611a7d52 100755
> --- a/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
> +++ b/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
> @@ -266,7 +266,9 @@ done
>   #
>   echo $error > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_ONLINE/error
>   for memory in `hotpluggable_offline_memory`; do
> -	online_memory_expect_fail $memory
> +	if ! online_memory_expect_fail $memory; then
> +		retval=1
> +	fi
>   done
> 
>   #
> @@ -274,7 +276,9 @@ done
>   #
>   echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_ONLINE/error
>   for memory in `hotpluggable_offline_memory`; do
> -	online_memory_expect_success $memory
> +	if ! online_memory_expect_success $memory; then
> +		retval=1
> +	fi
>   done
> 
>   #
> @@ -283,7 +287,9 @@ done
>   echo $error > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_OFFLINE/error
>   for memory in `hotpluggable_online_memory`; do
>   	if [ $((RANDOM % 100)) -lt $ratio ]; then
> -		offline_memory_expect_fail $memory
> +		if ! offline_memory_expect_fail $memory; then
> +			retval=1
> +		fi
>   	fi


LGTM

Reviewed-by: David Hildenbrand <david@redhat.com>


I am questioning the stability of the offlining test, though.
Offlining a random memory block can fail easily, because "->removable" is not
expressive:

# tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
Test scope: 2% hotplug memory
          online all hot-pluggable memory in offline state:
                  SKIPPED - no hot-pluggable memory in offline state
          offline 2% hot-pluggable memory in online state
          trying to offline 2 out of 96 memory block(s):
online->offline memory0
tools/testing/selftests/memory-hotplug/mem-on-off-test.sh: line 78: echo: write error: Invalid argument
offline_memory_expect_success 0: unexpected fail
online->offline memory10
online->offline memory11


I guess this test will almost always fail nowadays.

-- 
Thanks,

David / dhildenb


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH -next v4 2/3] selftests/memory-hotplug: Restore memory before exit
  2022-09-27  3:28 ` [PATCH -next v4 2/3] selftests/memory-hotplug: Restore memory before exit Zhao Gongyi
@ 2022-09-27  7:41   ` David Hildenbrand
  0 siblings, 0 replies; 6+ messages in thread
From: David Hildenbrand @ 2022-09-27  7:41 UTC (permalink / raw)
  To: Zhao Gongyi, linux-doc, linux-kernel, linux-mm, linux-kselftest
  Cc: akinobu.mita, corbet, osalvador, shuah

On 27.09.22 05:28, Zhao Gongyi wrote:
> Some momory will be left in offline state when calling
> offline_memory_expect_fail() failed. Restore it before exit.
> 
> Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
> ---
>   .../memory-hotplug/mem-on-off-test.sh         | 21 ++++++++++++++-----
>   1 file changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh b/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
> index 1d87611a7d52..91a7457616bb 100755
> --- a/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
> +++ b/tools/testing/selftests/memory-hotplug/mem-on-off-test.sh
> @@ -134,6 +134,16 @@ offline_memory_expect_fail()
>   	return 0
>   }
> 
> +online_all_offline_memory()
> +{
> +	for memory in `hotpluggable_offline_memory`; do
> +		if ! online_memory_expect_success $memory; then
> +			echo "$FUNCNAME $memory: unexpected fail" >&2
> +			retval=1
> +		fi
> +	done
> +}
> +
>   error=-12
>   priority=0
>   # Run with default of ratio=2 for Kselftest run
> @@ -275,11 +285,7 @@ done
>   # Online all hot-pluggable memory
>   #
>   echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_ONLINE/error
> -for memory in `hotpluggable_offline_memory`; do
> -	if ! online_memory_expect_success $memory; then
> -		retval=1
> -	fi
> -done
> +online_all_offline_memory
> 
>   #
>   # Test memory hot-remove error handling (online => offline)
> @@ -296,4 +302,9 @@ done
>   echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_OFFLINE/error
>   /sbin/modprobe -q -r memory-notifier-error-inject
> 
> +#
> +# Restore memory before exit
> +#
> +online_all_offline_memory
> +
>   exit $retval
> --

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Thanks,

David / dhildenb


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-09-27  7:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-27  3:28 [PATCH -next v4 0/3] Optimize and bugfix for memory-hotplug Zhao Gongyi
2022-09-27  3:28 ` [PATCH -next v4 1/3] selftests/memory-hotplug: Add checking after online or offline Zhao Gongyi
2022-09-27  7:26   ` David Hildenbrand
2022-09-27  3:28 ` [PATCH -next v4 2/3] selftests/memory-hotplug: Restore memory before exit Zhao Gongyi
2022-09-27  7:41   ` David Hildenbrand
2022-09-27  3:28 ` [PATCH -next v4 3/3] docs: notifier-error-inject: Correct test's name Zhao Gongyi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.