STRUCT UM_TIMETRAVEL_SCHEDSHM(9)
π¦ struct um_timetravel_schedshm(9) π¦
okay bestie, so this is a page from the Kernel API Manual (section 9, kernel API, iykyk) and it's literally all about struct um_timetravel_schedshm β the UM time travel shared memory struct π
β¨ NAME β¨
struct um_timetravel_schedshm β the UM time travel shared memory struct, no cap π«Ά
πΈ SYNOPSIS πΈ
struct um_timetravel_schedshm {
union {
struct {
__u32 version;
__u32 len;
__u64 free_until;
__u64 current_time;
__u16 running_id;
__u16 max_clients;
};
char hdr[4096];
};
union um_timetravel_schedshm_client clients[];
};
like, look at her. main character struct energy fr fr π₯
π Members π
{unnamed_union}β anonymous. that's it, that's the whole description, she's mysterious π{unnamed_struct}β also anonymous. also mysterious. we love a lowkey pair πversionβ the current version structUM_TIMETRAVEL_SCHEDSHM_VERSION. the controller sets this once at init, and clients must check it after mapping. and if they can't handle the version that's indicated? they just work without shared memory. periodt πlenβ the length of all the memory, header (hdr) included. clients should, once per connection, firstmmapthe header and grab the length (len) so they can remap the entire size. why, you ask? because it supports a dynamic struct size β letting the number of clients be dynamic based on what the controller supports. iconic flexibility β¨free_untilβ stores the next request to run by any client, so the current client knows how long it can still run. a client needs to at least reload this value immediately after communicating with any other client, because the controller will update this field when a new request is made by any client. clients also must update this value when they insert/update their own request into the shared memory while not running themselves, and the new request is before the current value. πcurrent_timeβ the current time. can only be set by the client in running state (indicated byrunning_id), though that client may only run untilfree_until, so it must remain smaller thanfree_until. no time crimes allowed bestie πrunning_idβ the current client in state running. set before a client is notified that it's now running. heads up, bestie, that ordering matters πmax_clientsβ size of theclientsarray. set once at init by the controller. π―hdrβ header fields. that's the vibe πclientsβ the clients array, seeunion um_timetravel_schedshm_clientfor the doc. set only by client. π«Ά
π SEE ALSO π
- Kernel file
./include/uapi/linux/um_timetravel.hstructum_timetravel_msg(9) enum um_timetravel_shared_mem_fds(9)enum um_timetravel_start_ack(9)enum um_timetravel_ops(9)enum um_timetravel_schedshm_cap(9)enum um_timetravel_schedshm_flags(9)- Time travel shared memory overview(9)
union um_timetravel_schedshm_client(9)
π reminder bestie:versionmust be checked after mapping, and if you can't handle it, work without shared memory. andcurrent_timemust stay smaller thanfree_until. do not test her. π ββοΈ
k that's the whole page, you ate that π mwah π β this lil writeup lives in ./include/uapi/linux, dated October 2026, and it's struct um_t...vel_schedshm(9) in case you need to cite her later. slay π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms