diff options
author | Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | 2022-11-22 23:39:06 +0300 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2022-12-27 14:52:10 +0300 |
commit | cbae6bac29a8c5cf2f1cb5c6bce35af00cec164b (patch) | |
tree | 6da97bf38a54c47204e5f352045999a50acc606d /include/uapi | |
parent | ee3e3ac05c2631ce1f12d88c9cc9a092f8fe947a (diff) | |
download | linux-cbae6bac29a8c5cf2f1cb5c6bce35af00cec164b.tar.xz |
rseq: Extend struct rseq with numa node id
Adding the NUMA node id to struct rseq is a straightforward thing to do,
and a good way to figure out if anything in the user-space ecosystem
prevents extending struct rseq.
This NUMA node id field allows memory allocators such as tcmalloc to
take advantage of fast access to the current NUMA node id to perform
NUMA-aware memory allocation.
It can also be useful for implementing fast-paths for NUMA-aware
user-space mutexes.
It also allows implementing getcpu(2) purely in user-space.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20221122203932.231377-5-mathieu.desnoyers@efficios.com
Diffstat (limited to 'include/uapi')
-rw-r--r-- | include/uapi/linux/rseq.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/uapi/linux/rseq.h b/include/uapi/linux/rseq.h index 05d3c4cdeb40..1cb90a435c5c 100644 --- a/include/uapi/linux/rseq.h +++ b/include/uapi/linux/rseq.h @@ -132,6 +132,14 @@ struct rseq { __u32 flags; /* + * Restartable sequences node_id field. Updated by the kernel. Read by + * user-space with single-copy atomicity semantics. This field should + * only be read by the thread which registered this data structure. + * Aligned on 32-bit. Contains the current NUMA node ID. + */ + __u32 node_id; + + /* * Flexible array member at end of structure, after last feature field. */ char end[]; |