From: sashiko-bot@kernel.org
To: "Sean Christopherson" <seanjc@google.com>
Cc: "Oliver Upton" <oupton@kernel.org>,
kvm@vger.kernel.org, kvmarm@lists.linux.dev,
"Marc Zyngier" <maz@kernel.org>
Subject: Re: [PATCH v3 09/12] KVM: selftests: Add KVM syscall wrappers for pthread_{cancel,join}()
Date: Fri, 31 Jul 2026 20:11:27 +0000 [thread overview]
Message-ID: <20260731201127.BE5ED1F00AC4@smtp.kernel.org> (raw)
In-Reply-To: <20260731195612.2697986-10-seanjc@google.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The `kvm_pthread_join` and `kvm_pthread_cancel` wrappers generate misleading error messages on failure because they use `__KVM_SYSCALL_ERROR`, which prints `errno` and `strerror(errno)`. However, `pthread_join` and `pthread_cancel` return error numbers directly and do not set `errno`.
--
--- Patch [9]: [PATCH v3 09/12] KVM: selftests: Add KVM syscall wrappers for pthread_{cancel,join}() ---
commit 26558313a1f5853d420a8a8544d24882f9b4835b
Author: Sean Christopherson <seanjc@google.com>
KVM: selftests: Add KVM syscall wrappers for pthread_{cancel,join}()
This commit adds and uses wrappers for pthread_cancel() and pthread_join()
across KVM selftests. The wrappers aim to automatically assert on failure,
removing the need for manual assertions in the test code.
> diff --git a/tools/testing/selftests/kvm/include/kvm_syscalls.h b/tools/testing/selftests/kvm/include/kvm_syscalls.h
> index e75be83787798..d6c18e13b9c8b 100644
> --- a/tools/testing/selftests/kvm/include/kvm_syscalls.h
> +++ b/tools/testing/selftests/kvm/include/kvm_syscalls.h
> @@ -101,6 +101,8 @@ __KVM_SYSCALL_DEFINE(sched_setaffinity, 3, pid_t, pid, size_t, cpusetsize, cpu_s
> typedef void *(*pthread_fn_t)(void *);
> __KVM_SYSCALL_DEFINE(pthread_create, 4, pthread_t *, thread,
> const pthread_attr_t *, attr, pthread_fn_t, fn, void *, arg);
> +__KVM_SYSCALL_DEFINE(pthread_join, 2, pthread_t, thread, void **, thread_return);
> +__KVM_SYSCALL_DEFINE(pthread_cancel, 1, pthread_t, thread);
[Severity: Medium]
Will this generate misleading error messages if the thread functions fail?
The pthread_join() and pthread_cancel() functions return their error codes
directly rather than setting errno. If the __KVM_SYSCALL_DEFINE macro
uses errno for its error reporting, it could log an unrelated error
string instead of the actual failure reason.
>
> #define kvm_free_fd(fd) \
> do { \
[ ... ]
> diff --git a/tools/testing/selftests/kvm/x86/xen_shinfo_test.c b/tools/testing/selftests/kvm/x86/xen_shinfo_test.c
> index 20f518fe24506..3ec5e67b21efa 100644
> --- a/tools/testing/selftests/kvm/x86/xen_shinfo_test.c
> +++ b/tools/testing/selftests/kvm/x86/xen_shinfo_test.c
> @@ -948,11 +947,8 @@ int main(int argc, char *argv[])
> TEST_ASSERT(!evtchn_irq_expected,
> "Expected event channel IRQ but it didn't happen");
>
> - ret = pthread_cancel(thread);
> - TEST_ASSERT(ret == 0, "pthread_cancel() failed: %s", strerror(ret));
> -
> - ret = pthread_join(thread, 0);
> - TEST_ASSERT(ret == 0, "pthread_join() failed: %s", strerror(ret));
> + kvm_pthread_cancel(thread);
> + kvm_pthread_join(thread, 0);
[Severity: Medium]
Does this change replace an accurate error message with a potentially
misleading one?
The original code correctly used strerror(ret) because these functions
return the error code directly. If the new wrappers rely on errno, they
might print an unrelated error string when these functions fail.
> goto done;
>
> case TEST_GUEST_SAW_IRQ:
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260731195612.2697986-1-seanjc@google.com?part=9
next prev parent reply other threads:[~2026-07-31 20:11 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 19:56 [PATCH v3 00/12] KVM: selftests: Add more syscall wrappers, fix hardware_disable_test Sean Christopherson
2026-07-31 19:56 ` [PATCH v3 01/12] KVM: selftests: Add a KVM syscall wrapper for sched_setaffinity() Sean Christopherson
2026-07-31 19:56 ` [PATCH v3 02/12] KVM: selftests: Set threads CPU affinity before doing work in hardware disable test Sean Christopherson
2026-07-31 19:56 ` [PATCH v3 03/12] KVM: selftests: Pre-set threads affinity in hardware disable test when possible Sean Christopherson
2026-07-31 20:11 ` sashiko-bot
2026-07-31 20:50 ` Sean Christopherson
2026-07-31 19:56 ` [PATCH v3 04/12] KVM: selftests: Return the target CPU from pin_task_to_random_cpu() Sean Christopherson
2026-07-31 19:56 ` [PATCH v3 05/12] KVM: selftests: Extract picking of random CPU from cpu_set_t to separate API Sean Christopherson
2026-07-31 19:56 ` [PATCH v3 06/12] KVM: selftests: Affine threads to random CPUs in hardware disable test Sean Christopherson
2026-07-31 19:56 ` [PATCH v3 07/12] KVM: selftests: Drop unreachable, dead code from " Sean Christopherson
2026-07-31 19:56 ` [PATCH v3 08/12] KVM: selftests: Add KVM syscall wrapper for pthread_create() Sean Christopherson
2026-07-31 20:05 ` sashiko-bot
2026-07-31 19:56 ` [PATCH v3 09/12] KVM: selftests: Add KVM syscall wrappers for pthread_{cancel,join}() Sean Christopherson
2026-07-31 20:11 ` sashiko-bot [this message]
2026-07-31 19:56 ` [PATCH v3 10/12] KVM: selftests: Add helper APIs to cancel+join pthreads Sean Christopherson
2026-07-31 19:56 ` [PATCH v3 11/12] KVM: selftests: Add KVM syscall wrappers for pthread_{g,s}etaffinity_np() Sean Christopherson
2026-07-31 19:56 ` [PATCH v3 12/12] KVM: selftests: Clean up global constants in hardware disable test Sean Christopherson
2026-07-31 21:35 ` [PATCH v3 00/12] KVM: selftests: Add more syscall wrappers, fix hardware_disable_test Yosry Ahmed
2026-07-31 21:41 ` Sean Christopherson
2026-07-31 21:43 ` Yosry Ahmed
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=20260731201127.BE5ED1F00AC4@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=oupton@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=seanjc@google.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).