thread_info
Regular
4.4
: ✅struct thread_info {
struct task_struct *task;
__u32 flags;
__u32 status;
__u32 cpu;
mm_segment_t addr_limit;
unsigned int sig_on_uaccess_error;
unsigned int uaccess_err;
};
4.8
: ✅struct thread_info {
struct task_struct *task;
__u32 flags;
__u32 status;
__u32 cpu;
};
4.10
: ✅struct thread_info {
long unsigned int flags;
};
4.13
: ✅struct thread_info {
long unsigned int flags;
};
4.15
: ✅struct thread_info {
long unsigned int flags;
u32 status;
};
4.18
: ✅struct thread_info {
long unsigned int flags;
u32 status;
};
5.0
: ✅struct thread_info {
long unsigned int flags;
u32 status;
};
5.3
: ✅struct thread_info {
long unsigned int flags;
u32 status;
};
5.4
: ✅struct thread_info {
long unsigned int flags;
u32 status;
};
5.8
: ✅struct thread_info {
long unsigned int flags;
u32 status;
};
5.11
: ✅struct thread_info {
long unsigned int flags;
long unsigned int syscall_work;
u32 status;
};
5.13
: ✅struct thread_info {
long unsigned int flags;
long unsigned int syscall_work;
u32 status;
};
5.15
: ✅struct thread_info {
long unsigned int flags;
long unsigned int syscall_work;
u32 status;
};
5.19
: ✅struct thread_info {
long unsigned int flags;
long unsigned int syscall_work;
u32 status;
u32 cpu;
};
6.2
: ✅struct thread_info {
long unsigned int flags;
long unsigned int syscall_work;
u32 status;
u32 cpu;
};
6.5
: ✅struct thread_info {
long unsigned int flags;
long unsigned int syscall_work;
u32 status;
u32 cpu;
};
6.8
: ✅struct thread_info {
long unsigned int flags;
long unsigned int syscall_work;
u32 status;
u32 cpu;
};
arm64
: ✅struct thread_info {
long unsigned int flags;
mm_segment_t addr_limit;
u64 ttbr0;
u64 preempt_count;
struct (anon) preempt;
};
armhf
: ✅struct thread_info {
long unsigned int flags;
int preempt_count;
mm_segment_t addr_limit;
struct task_struct *task;
__u32 cpu;
__u32 cpu_domain;
struct cpu_context_save cpu_context;
__u32 syscall;
__u8 used_cp[16];
long unsigned int tp_value[2];
union fp_state fpstate;
union vfp_state vfpstate;
long unsigned int thumbee_state;
};
ppc64el
: ✅struct thread_info {
int preempt_count;
long unsigned int local_flags;
long unsigned int *livepatch_sp;
unsigned char slb_preload_nr;
unsigned char slb_preload_tail;
u32 slb_preload_esid[16];
long unsigned int flags;
};
riscv64
: ✅struct thread_info {
long unsigned int flags;
int preempt_count;
mm_segment_t addr_limit;
long int kernel_sp;
long int user_sp;
int cpu;
};
aws
: ✅struct thread_info {
long unsigned int flags;
u32 status;
};
azure
: ✅struct thread_info {
long unsigned int flags;
u32 status;
};
gcp
: ✅struct thread_info {
long unsigned int flags;
u32 status;
};
lowlatency
: ✅struct thread_info {
long unsigned int flags;
u32 status;
};
Regular
4.4
and 4.8
⚠️mm_segment_t addr_limit
unsigned int sig_on_uaccess_error
unsigned int uaccess_err
4.8
and 4.10
⚠️struct task_struct *task
__u32 status
__u32 cpu
__u32 flags
➡️ long unsigned int flags
4.10
and 4.13
✅
4.13
and 4.15
⚠️u32 status
4.15
and 4.18
✅
4.18
and 5.0
✅
5.0
and 5.3
✅
5.3
and 5.4
✅
5.4
and 5.8
✅
5.8
and 5.11
⚠️long unsigned int syscall_work
5.11
and 5.13
✅
5.13
and 5.15
✅
5.15
and 5.19
⚠️u32 cpu
5.19
and 6.2
✅
6.2
and 6.5
✅
6.5
and 6.8
✅
amd64
and arm64
⚠️mm_segment_t addr_limit
u64 ttbr0
u64 preempt_count
struct (anon) preempt
u32 status
amd64
and armhf
⚠️int preempt_count
mm_segment_t addr_limit
struct task_struct *task
__u32 cpu
__u32 cpu_domain
struct cpu_context_save cpu_context
__u32 syscall
__u8 used_cp[16]
long unsigned int tp_value[2]
union fp_state fpstate
union vfp_state vfpstate
long unsigned int thumbee_state
u32 status
amd64
and ppc64el
⚠️int preempt_count
long unsigned int local_flags
long unsigned int *livepatch_sp
unsigned char slb_preload_nr
unsigned char slb_preload_tail
u32 slb_preload_esid[16]
u32 status
amd64
and riscv64
⚠️int preempt_count
mm_segment_t addr_limit
long int kernel_sp
long int user_sp
int cpu
u32 status
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅