STRUCT RSEQ_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct rseq_data(9) πŸ¦‹

okay so this is a page from the Kernel API Manual and it's literally all about struct rseq_data β€” the storage home for every single rseq-related thing. think of it as the group chat where rseq keeps all its stuff πŸ’…


✨ NAME ✨

struct rseq_data β€” storage for all rseq related data. that's it, that's the vibe, no cap πŸŽ€


✨ SYNOPSIS ✨

bestie, here's the whole struct, laid out exactly how the kernel likes it:

struct rseq_data {
    struct rseq __user              *usrptr;
    u32 len;
    u32 sig;
    struct rseq_event               event;
    struct rseq_ids                 ids;
  #ifdef CONFIG_RSEQ_SLICE_EXTENSION;
    struct rseq_slice               slice;
  #endif;
 };

ok notice the slice member is living behind a #ifdef CONFIG_RSEQ_SLICE_EXTENSION; gate β€” so it only shows up when that config is on. conditional icon behavior, we love to see it 🫢


✨ Members ✨

every member gets its moment, as it should πŸ”₯

  • usrptr β€” pointer to the registered user space RSEQ memory. yes it's a struct rseq __user *, so it's pointing into userspace, treat it with the respect it deserves πŸ‘‘
  • len β€” length of the RSEQ region. a u32, keeping it tight.
  • sig β€” signature of critical section abort IPs. it's the little fingerprint that says "this is where we bail out" πŸ’€
  • event β€” storage for event management. a struct rseq_event, holding all the event-related everything.
  • ids β€” storage for cached CPU ID and MM CID. a struct rseq_ids, caching both so you don't have to go hunting 🌸
  • slice β€” storage for time slice extension data. a struct rseq_slice, and remember: this one only exists if CONFIG_RSEQ_SLICE_EXTENSION is compiled in πŸŽ€

✨ SEE ALSO ✨

the whole friend group, fr fr β€” kernel file ./include/linux/rseq_types.h, plus struct rseq_event(9), struct rseq_ids(9), union rseq_slice_state(9), struct rseq_slice(9), struct sched_mm_cid(9), struct mm_cid_pcpu(9), and struct mm_mm_cid(9). go say hi, they're all iconique in their own way 🌈


ngl, if you're poking at any of these structs, read the others too β€” they're all defined right there in ./include/linux/rseq_types.h and they genuinely make more sense as a set 🧚

that's the whole page bestie, go forth and rseq πŸ’œ

β€” signed off from ./include/linux, dated October 2026, filed under struct rseq_data(9) ✨ mwah πŸ’…

πŸ“¦ where this page comes from