From: Chen Pei <cp0613@linux.alibaba.com>
To: pjw@kernel.org, palmer@dabbelt.com, alex@ghiti.fr,
rppt@kernel.org, pasha.tatashin@soleen.com, pratyush@kernel.org,
graf@amazon.com, shuah@kernel.org
Cc: guoren@kernel.org, linux-riscv@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-kselftest@vger.kernel.org, kexec@lists.infradead.org
Subject: [PATCH v3 4/4] selftests: liveupdate: Add riscv support
Date: Fri, 6 Nov 2026 15:14:59 +0800 [thread overview]
Message-ID: <20261106071459.2003-5-cp0613@linux.alibaba.com> (raw)
In-Reply-To: <20261106071459.2003-1-cp0613@linux.alibaba.com>
Teach the live update vmtest runners about riscv64, so the LUO tests can
be run on this architecture.
LIVEUPDATE depends only on KEXEC_HANDOVER, enabled for riscv64 by the
previous commit, so nothing in the tests stood in the way.
Signed-off-by: Chen Pei <cp0613@linux.alibaba.com>
---
Test: qemu-system-riscv64 (virt, -cpu max, -m 1G, -smp 2, TCG), in-tree
runner "tools/testing/selftests/liveupdate/vmtest.sh -t riscv64 -T <suite>",
all four suites:
ok 1 luo_kexec_simple succeeded
ok 1 luo_multi_session succeeded
ok 1 luo_stress_files succeeded
ok 1 luo_stress_sessions succeeded
each with "# Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0". The
simple suite's serial log shows the handover round trip:
KHO: found kexec handover data.
luo: Retrieved live update data, liveupdate number: 1
# [STAGE 2] Test data verified successfully.
--- SIMPLE KEXEC TEST PASSED ---
tools/testing/selftests/liveupdate/config.riscv64 | 3 +++
tools/testing/selftests/liveupdate/run-vmtests.sh | 2 +-
tools/testing/selftests/liveupdate/vmtest.sh | 8 +++++++-
3 files changed, 11 insertions(+), 2 deletions(-)
create mode 100644 tools/testing/selftests/liveupdate/config.riscv64
diff --git a/tools/testing/selftests/liveupdate/config.riscv64 b/tools/testing/selftests/liveupdate/config.riscv64
new file mode 100644
index 000000000000..edbc551199b0
--- /dev/null
+++ b/tools/testing/selftests/liveupdate/config.riscv64
@@ -0,0 +1,3 @@
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_OF_PLATFORM=y
diff --git a/tools/testing/selftests/liveupdate/run-vmtests.sh b/tools/testing/selftests/liveupdate/run-vmtests.sh
index 6f592aec0f85..c3d828cfd63b 100755
--- a/tools/testing/selftests/liveupdate/run-vmtests.sh
+++ b/tools/testing/selftests/liveupdate/run-vmtests.sh
@@ -4,7 +4,7 @@
SCRIPT_DIR=$(dirname "$(realpath "$0")")
TEST_RUNNER="$SCRIPT_DIR/vmtest.sh"
-TARGETS=("x86_64" "aarch64")
+TARGETS=("x86_64" "aarch64" "riscv64")
GREEN='\033[0;32m'
RED='\033[0;31m'
diff --git a/tools/testing/selftests/liveupdate/vmtest.sh b/tools/testing/selftests/liveupdate/vmtest.sh
index dea5a6fb2abc..70a8d978077a 100755
--- a/tools/testing/selftests/liveupdate/vmtest.sh
+++ b/tools/testing/selftests/liveupdate/vmtest.sh
@@ -25,6 +25,10 @@ function get_arch_conf() {
QEMU_CMD="qemu-system-x86_64"
KERNEL_IMAGE="bzImage"
KERNEL_CMDLINE="console=ttyS0"
+ elif [[ "$arch" == "riscv" ]]; then
+ QEMU_CMD="qemu-system-riscv64 -M virt -cpu max"
+ KERNEL_IMAGE="Image"
+ KERNEL_CMDLINE="console=ttyS0"
else
echo "Unsupported architecture: $arch"
exit 1
@@ -37,7 +41,7 @@ $0 [-d build_dir] [-j jobs] [-t target_arch] [-T test_name] [-w workspace_dir] [
Options:
-d) path to the kernel build directory (default: .luo_test_build.<arch>)
-j) number of jobs for compilation
- -t) run test for target_arch (aarch64, x86_64)
+ -t) run test for target_arch (aarch64, x86_64, riscv64)
-T) test name to run (default: luo_kexec_simple)
-w) custom workspace directory (default: creates temp dir)
-k) keep workspace directory
@@ -87,6 +91,7 @@ function detect_cross_compile() {
case "$target" in
aarch64) candidate="aarch64-linux-gnu-" ;;
x86_64) candidate="x86_64-linux-gnu-" ;;
+ riscv64) candidate="riscv64-linux-gnu-" ;;
*) skip "Auto-detection for target '$target' not supported. Please set CROSS_COMPILE manually." ;;
esac
@@ -194,6 +199,7 @@ function target_to_arch() {
case $target in
aarch64) echo "arm64" ;;
x86_64) echo "x86" ;;
+ riscv64) echo "riscv" ;;
*) skip "architecture $target is not supported"
esac
}
--
2.50.1
WARNING: multiple messages have this Message-ID (diff)
From: Chen Pei <cp0613@linux.alibaba.com>
To: pjw@kernel.org, palmer@dabbelt.com, alex@ghiti.fr,
rppt@kernel.org, pasha.tatashin@soleen.com, pratyush@kernel.org,
graf@amazon.com, shuah@kernel.org
Cc: guoren@kernel.org, linux-riscv@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-kselftest@vger.kernel.org, kexec@lists.infradead.org
Subject: [PATCH v3 4/4] selftests: liveupdate: Add riscv support
Date: Fri, 6 Nov 2026 15:14:59 +0800 [thread overview]
Message-ID: <20261106071459.2003-5-cp0613@linux.alibaba.com> (raw)
In-Reply-To: <20261106071459.2003-1-cp0613@linux.alibaba.com>
Teach the live update vmtest runners about riscv64, so the LUO tests can
be run on this architecture.
LIVEUPDATE depends only on KEXEC_HANDOVER, enabled for riscv64 by the
previous commit, so nothing in the tests stood in the way.
Signed-off-by: Chen Pei <cp0613@linux.alibaba.com>
---
Test: qemu-system-riscv64 (virt, -cpu max, -m 1G, -smp 2, TCG), in-tree
runner "tools/testing/selftests/liveupdate/vmtest.sh -t riscv64 -T <suite>",
all four suites:
ok 1 luo_kexec_simple succeeded
ok 1 luo_multi_session succeeded
ok 1 luo_stress_files succeeded
ok 1 luo_stress_sessions succeeded
each with "# Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0". The
simple suite's serial log shows the handover round trip:
KHO: found kexec handover data.
luo: Retrieved live update data, liveupdate number: 1
# [STAGE 2] Test data verified successfully.
--- SIMPLE KEXEC TEST PASSED ---
tools/testing/selftests/liveupdate/config.riscv64 | 3 +++
tools/testing/selftests/liveupdate/run-vmtests.sh | 2 +-
tools/testing/selftests/liveupdate/vmtest.sh | 8 +++++++-
3 files changed, 11 insertions(+), 2 deletions(-)
create mode 100644 tools/testing/selftests/liveupdate/config.riscv64
diff --git a/tools/testing/selftests/liveupdate/config.riscv64 b/tools/testing/selftests/liveupdate/config.riscv64
new file mode 100644
index 000000000000..edbc551199b0
--- /dev/null
+++ b/tools/testing/selftests/liveupdate/config.riscv64
@@ -0,0 +1,3 @@
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_OF_PLATFORM=y
diff --git a/tools/testing/selftests/liveupdate/run-vmtests.sh b/tools/testing/selftests/liveupdate/run-vmtests.sh
index 6f592aec0f85..c3d828cfd63b 100755
--- a/tools/testing/selftests/liveupdate/run-vmtests.sh
+++ b/tools/testing/selftests/liveupdate/run-vmtests.sh
@@ -4,7 +4,7 @@
SCRIPT_DIR=$(dirname "$(realpath "$0")")
TEST_RUNNER="$SCRIPT_DIR/vmtest.sh"
-TARGETS=("x86_64" "aarch64")
+TARGETS=("x86_64" "aarch64" "riscv64")
GREEN='\033[0;32m'
RED='\033[0;31m'
diff --git a/tools/testing/selftests/liveupdate/vmtest.sh b/tools/testing/selftests/liveupdate/vmtest.sh
index dea5a6fb2abc..70a8d978077a 100755
--- a/tools/testing/selftests/liveupdate/vmtest.sh
+++ b/tools/testing/selftests/liveupdate/vmtest.sh
@@ -25,6 +25,10 @@ function get_arch_conf() {
QEMU_CMD="qemu-system-x86_64"
KERNEL_IMAGE="bzImage"
KERNEL_CMDLINE="console=ttyS0"
+ elif [[ "$arch" == "riscv" ]]; then
+ QEMU_CMD="qemu-system-riscv64 -M virt -cpu max"
+ KERNEL_IMAGE="Image"
+ KERNEL_CMDLINE="console=ttyS0"
else
echo "Unsupported architecture: $arch"
exit 1
@@ -37,7 +41,7 @@ $0 [-d build_dir] [-j jobs] [-t target_arch] [-T test_name] [-w workspace_dir] [
Options:
-d) path to the kernel build directory (default: .luo_test_build.<arch>)
-j) number of jobs for compilation
- -t) run test for target_arch (aarch64, x86_64)
+ -t) run test for target_arch (aarch64, x86_64, riscv64)
-T) test name to run (default: luo_kexec_simple)
-w) custom workspace directory (default: creates temp dir)
-k) keep workspace directory
@@ -87,6 +91,7 @@ function detect_cross_compile() {
case "$target" in
aarch64) candidate="aarch64-linux-gnu-" ;;
x86_64) candidate="x86_64-linux-gnu-" ;;
+ riscv64) candidate="riscv64-linux-gnu-" ;;
*) skip "Auto-detection for target '$target' not supported. Please set CROSS_COMPILE manually." ;;
esac
@@ -194,6 +199,7 @@ function target_to_arch() {
case $target in
aarch64) echo "arm64" ;;
x86_64) echo "x86" ;;
+ riscv64) echo "riscv" ;;
*) skip "architecture $target is not supported"
esac
}
--
2.50.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2026-11-06 7:15 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-06 7:14 [PATCH v3 0/4] riscv: Enable kexec handover and live update Chen Pei
2026-11-06 7:14 ` Chen Pei
2026-11-06 7:14 ` [PATCH v3 1/4] riscv: Call early_ioremap_setup() before parsing the DTB Chen Pei
2026-11-06 7:14 ` Chen Pei
2026-11-07 7:15 ` sashiko-bot
2026-11-08 15:24 ` Pasha Tatashin
2026-11-08 15:24 ` Pasha Tatashin
2026-11-06 7:14 ` [PATCH v3 2/4] riscv: Add support for kexec handover (KHO) Chen Pei
2026-11-06 7:14 ` Chen Pei
2026-11-07 7:15 ` sashiko-bot
2026-11-07 15:27 ` Chen Pei
2026-11-08 15:24 ` Pasha Tatashin
2026-11-08 15:24 ` Pasha Tatashin
2026-11-10 9:24 ` Mike Rapoport
2026-11-10 9:24 ` Mike Rapoport
2026-11-06 7:14 ` [PATCH v3 3/4] selftests: kho: Add riscv support Chen Pei
2026-11-06 7:14 ` Chen Pei
2026-11-07 7:15 ` sashiko-bot
2026-11-08 11:16 ` Mike Rapoport
2026-11-08 11:16 ` Mike Rapoport
2026-11-08 15:24 ` Pasha Tatashin
2026-11-08 15:24 ` Pasha Tatashin
2026-11-06 7:14 ` Chen Pei [this message]
2026-11-06 7:14 ` [PATCH v3 4/4] selftests: liveupdate: " Chen Pei
2026-11-07 7:15 ` sashiko-bot
2026-11-08 11:16 ` Mike Rapoport
2026-11-08 11:16 ` Mike Rapoport
2026-11-08 15:24 ` Pasha Tatashin
2026-11-08 15:24 ` Pasha Tatashin
2026-11-09 12:28 ` [PATCH v3 0/4] riscv: Enable kexec handover and live update Chen Pei
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261106071459.2003-5-cp0613@linux.alibaba.com \
--to=cp0613@linux.alibaba.com \
--cc=alex@ghiti.fr \
--cc=graf@amazon.com \
--cc=guoren@kernel.org \
--cc=kexec@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-riscv@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=pasha.tatashin@soleen.com \
--cc=pjw@kernel.org \
--cc=pratyush@kernel.org \
--cc=rppt@kernel.org \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.