diff mbox series

[v2] linux: Add #include <sys/rseq.h> to sched_getcpu.c (bug 31479)

Message ID 87ttlaqnxi.fsf@oldenburg.str.redhat.com
State New
Headers show
Series [v2] linux: Add #include <sys/rseq.h> to sched_getcpu.c (bug 31479) | expand

Commit Message

Florian Weimer March 13, 2024, 1:08 p.m. UTC
Originally, nptl/descr.h included <sys/rseq.h>, but we removed that
in commit 2c6b4b272e6b4d07303af25709051c3e96288f2d ("nptl:
Unconditionally use a 32-byte rseq area").

Fixes: 2c6b4b272e6b4d07303af25709051c3e96288f2d
Fixes: 1d350aa06091211863e41169729cee1bca39f72f

---
v2: Add bug reference.

 sysdeps/unix/sysv/linux/sched_getcpu.c | 1 +
 1 file changed, 1 insertion(+)


base-commit: 2173173d57971d042c0ad4b281431ae127e9b5b8

Comments

Andreas Schwab March 13, 2024, 2:39 p.m. UTC | #1
On Mär 13 2024, Florian Weimer wrote:

> Originally, nptl/descr.h included <sys/rseq.h>, but we removed that
> in commit 2c6b4b272e6b4d07303af25709051c3e96288f2d ("nptl:
> Unconditionally use a 32-byte rseq area").

Can't this use rseq_area unconditionally?
Florian Weimer March 13, 2024, 5:58 p.m. UTC | #2
* Andreas Schwab:

> On Mär 13 2024, Florian Weimer wrote:
>
>> Originally, nptl/descr.h included <sys/rseq.h>, but we removed that
>> in commit 2c6b4b272e6b4d07303af25709051c3e96288f2d ("nptl:
>> Unconditionally use a 32-byte rseq area").
>
> Can't this use rseq_area unconditionally?

Interesting idea.  It adds an extra branch for architectures which are
not rseq-enabled, but they likely lack vDSO acceleration as well and hit
the full system call every time, so it doesn't really matter.

I'll test and send a v3, although I don't think I've got access to any
!RSEQ_SIG architectures.

Thanks,
Florian
diff mbox series

Patch

diff --git a/sysdeps/unix/sysv/linux/sched_getcpu.c b/sysdeps/unix/sysv/linux/sched_getcpu.c
index dfb884568d..7a7915f87b 100644
--- a/sysdeps/unix/sysv/linux/sched_getcpu.c
+++ b/sysdeps/unix/sysv/linux/sched_getcpu.c
@@ -19,6 +19,7 @@ 
 #include <sched.h>
 #include <sysdep.h>
 #include <sysdep-vdso.h>
+#include <sys/rseq.h>
 
 static int
 vsyscall_sched_getcpu (void)