From 78c5eec417400e08cc4f7f9569283e283e689637 Mon Sep 17 00:00:00 2001 From: Roxana Nicolescu Date: Fri, 27 Feb 2026 17:40:42 +0100 Subject: [PATCH 1/3] kt/ktlib/virt.py: Ignore domain is active error when virsh start Signed-off-by: Roxana Nicolescu --- kt/ktlib/virt.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kt/ktlib/virt.py b/kt/ktlib/virt.py index 579f053..652735b 100644 --- a/kt/ktlib/virt.py +++ b/kt/ktlib/virt.py @@ -68,7 +68,13 @@ def install( @classmethod def start(cls, vm_name: str) -> str: - cls.run(command_type=VmCommandType.VIRSH, command=["start", vm_name]) + try: + cls.run(command_type=VmCommandType.VIRSH, command=["start", vm_name]) + except RuntimeError as e: + if "Domain is already active" in str(e): + pass + else: + raise e @classmethod def console(cls, vm_name: str): From c3fd2033c20f06394d59da10bfdfa17c7e3f365b Mon Sep 17 00:00:00 2001 From: Roxana Nicolescu Date: Mon, 2 Mar 2026 13:14:07 +0100 Subject: [PATCH 2/3] kt/ktlib/virt/py: Remove str return type for start method It does not return anything. Signed-off-by: Roxana Nicolescu --- kt/ktlib/virt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kt/ktlib/virt.py b/kt/ktlib/virt.py index 652735b..f2b091c 100644 --- a/kt/ktlib/virt.py +++ b/kt/ktlib/virt.py @@ -67,7 +67,7 @@ def install( cls.run(command_type=VmCommandType.VIRT_INSTALL, command=command) @classmethod - def start(cls, vm_name: str) -> str: + def start(cls, vm_name: str): try: cls.run(command_type=VmCommandType.VIRSH, command=["start", vm_name]) except RuntimeError as e: From 23f20e4729799b7cb11fd1c1608cf460a192d258 Mon Sep 17 00:00:00 2001 From: Roxana Nicolescu Date: Fri, 27 Feb 2026 17:41:36 +0100 Subject: [PATCH 3/3] kernel_kselftest.sh: Use make install instead Useful when subtests can be disabled. This builds the bpftool, bpf samples and selftests, installs them to a fixed path KSELFTEST_PATH and then run them via the installed runner. Note: This needs root permission Signed-off-by: Roxana Nicolescu --- kernel_kselftest.sh | 31 ++++++++++++++++++------------- kt/ktlib/vm.py | 2 +- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/kernel_kselftest.sh b/kernel_kselftest.sh index 365fed2..5991ca5 100755 --- a/kernel_kselftest.sh +++ b/kernel_kselftest.sh @@ -18,14 +18,23 @@ else fi run_kselftest() { - SUDO_TARGETS=$1 - SKIP_TARGETS=$2 - mkdir -p $KSELFTEST_LOG_DIR - make -C tools/testing/selftests clean - make -C tools/testing/selftests SKIP_TARGETS="$SKIP_TARGETS" + mkdir -p "$KSELFTEST_LOG_DIR" + pushd tools/bpf/bpftool + make -j$(nproc) + popd + + make -j$(nproc) samples/bpf/ + + BPFTOOL=$(pwd)/tools/bpf/bpftool/bpftool + KSELFTEST_PATH=/var/kselftests + + pushd tools/testing/selftests + + make -j$(nproc) SKIP_TARGETS="$SKIP_TARGETS" INSTALL_PATH="$KSELFTEST_PATH" install + popd + for run in $(seq 1 $runs) ; do - make -C tools/testing/selftests SKIP_TARGETS="$SUDO_TARGETS $SKIP_TARGETS" run_tests | tee $KSELFTEST_LOG_DIR/selftest-$(uname -r)-$run.log - sudo make -C tools/testing/selftests TARGETS="$SUDO_TARGETS" run_tests | tee -a $KSELFTEST_LOG_DIR/selftest-$(uname -r)-$run.log + "$KSELFTEST_PATH/run_kselftest.sh" | tee "$KSELFTEST_LOG_DIR/selftest-$(uname -r)-$run.log" done } @@ -37,29 +46,25 @@ case $(uname -r) in echo echo "Running 3.10.0 kselftests" echo - SUDO_TARGETS="x86" SKIP_TARGETS="" ;; *4.18.0*) echo echo "Running 4.18.0 kselftests" echo - SUDO_TARGETS="capabilities cpu-hotplug cpufreq efivars efivarfs fpu ipc intel_pstate kexec lib livepatch memfd memory-hotplug mptcp mqueue net netfilter sync sysctl timens timers vm x86 zram" SKIP_TARGETS="" ;; *5.14.0*) echo echo "Running 5.14.0 kselftests" echo - SUDO_TARGETS="binderfs capabilities cgroup cpu-hotplug cpufreq efivars efivarfs firmware fpu gpio ipc intel_pstate ir kexec lib livepatch memfd memory-hotplug mptcp mqueue net netfilter sync sysctl timens timers vm x86 zram" - SKIP_TARGETS="lkdtm proc" + SKIP_TARGETS="lkdtm proc pidfd" ;; *6.12.*|\ *6.18.*) echo echo "Running 6.12/6.18 kselftests" echo - SUDO_TARGETS="binderfs capabilities cgroup clone3 cpu-hotplug cpufreq damon drivers/net efivars efivarfs exec firmware fpu gpio ipc intel_pstate ir kexec lib livepatch memfd memory-hotplug mptcp mqueue net netfilter sync sysctl timens timers vm x86 zram" SKIP_TARGETS="lkdtm net/forwarding" ;; *) @@ -69,4 +74,4 @@ case $(uname -r) in ;; esac -run_kselftest "$SUDO_TARGETS" "$SKIP_TARGETS" +run_kselftest diff --git a/kt/ktlib/vm.py b/kt/ktlib/vm.py index f526ccb..2b0e99d 100644 --- a/kt/ktlib/vm.py +++ b/kt/ktlib/vm.py @@ -270,7 +270,7 @@ def kselftests(self, config): logging.debug("Running kselftests") script = str(config.base_path / Path("kernel-src-tree-tools") / Path("kernel_kselftest.sh")) output_file = self.kernel_workspace.folder.absolute() / Path(f"kselftest-{self.current_head_sha_short()}.log") - ssh_cmd = f"cd {self.kernel_workspace.src_worktree.folder.absolute()} && {script}" + ssh_cmd = f"cd {self.kernel_workspace.src_worktree.folder.absolute()} && sudo {script}" SshCommand.run_with_output(output_file=output_file, domain=self.domain, command=[ssh_cmd])