rcu_data
Regular
4.4
: ✅struct rcu_data {
long unsigned int completed;
long unsigned int gpnum;
long unsigned int rcu_qs_ctr_snap;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct callback_head *nxtlist;
struct callback_head ** nxttail[4];
long unsigned int nxtcompleted[4];
long int qlen_lazy;
long int qlen;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_nocbs_invoked;
long unsigned int n_cbs_orphaned;
long unsigned int n_cbs_adopted;
long unsigned int n_force_qs_snap;
long int blimit;
struct rcu_dynticks *dynticks;
int dynticks_snap;
long unsigned int dynticks_fqs;
long unsigned int offline_fqs;
long unsigned int cond_resched_completed;
long unsigned int n_rcu_pending;
long unsigned int n_rp_core_needs_qs;
long unsigned int n_rp_report_qs;
long unsigned int n_rp_cb_ready;
long unsigned int n_rp_cpu_needs_gp;
long unsigned int n_rp_gp_completed;
long unsigned int n_rp_gp_started;
long unsigned int n_rp_nocb_defer_wakeup;
long unsigned int n_rp_need_nothing;
struct callback_head barrier_head;
struct mutex exp_funnel_mutex;
unsigned int softirq_snap;
int cpu;
struct rcu_state *rsp;
};
4.8
: ✅struct rcu_data {
long unsigned int completed;
long unsigned int gpnum;
long unsigned int rcu_qs_ctr_snap;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct callback_head *nxtlist;
struct callback_head ** nxttail[4];
long unsigned int nxtcompleted[4];
long int qlen_lazy;
long int qlen;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_nocbs_invoked;
long unsigned int n_cbs_orphaned;
long unsigned int n_cbs_adopted;
long unsigned int n_force_qs_snap;
long int blimit;
struct rcu_dynticks *dynticks;
int dynticks_snap;
long unsigned int dynticks_fqs;
long unsigned int offline_fqs;
long unsigned int cond_resched_completed;
long unsigned int n_rcu_pending;
long unsigned int n_rp_core_needs_qs;
long unsigned int n_rp_report_qs;
long unsigned int n_rp_cb_ready;
long unsigned int n_rp_cpu_needs_gp;
long unsigned int n_rp_gp_completed;
long unsigned int n_rp_gp_started;
long unsigned int n_rp_nocb_defer_wakeup;
long unsigned int n_rp_need_nothing;
struct callback_head barrier_head;
atomic_long_t exp_workdone1;
atomic_long_t exp_workdone2;
atomic_long_t exp_workdone3;
unsigned int softirq_snap;
int cpu;
struct rcu_state *rsp;
};
4.10
: ✅struct rcu_data {
long unsigned int completed;
long unsigned int gpnum;
long unsigned int rcu_qs_ctr_snap;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct callback_head *nxtlist;
struct callback_head ** nxttail[4];
long unsigned int nxtcompleted[4];
long int qlen_lazy;
long int qlen;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_nocbs_invoked;
long unsigned int n_cbs_orphaned;
long unsigned int n_cbs_adopted;
long unsigned int n_force_qs_snap;
long int blimit;
struct rcu_dynticks *dynticks;
int dynticks_snap;
long unsigned int dynticks_fqs;
long unsigned int offline_fqs;
long unsigned int cond_resched_completed;
long unsigned int n_rcu_pending;
long unsigned int n_rp_core_needs_qs;
long unsigned int n_rp_report_qs;
long unsigned int n_rp_cb_ready;
long unsigned int n_rp_cpu_needs_gp;
long unsigned int n_rp_gp_completed;
long unsigned int n_rp_gp_started;
long unsigned int n_rp_nocb_defer_wakeup;
long unsigned int n_rp_need_nothing;
struct callback_head barrier_head;
atomic_long_t exp_workdone0;
atomic_long_t exp_workdone1;
atomic_long_t exp_workdone2;
atomic_long_t exp_workdone3;
int exp_dynticks_snap;
unsigned int softirq_snap;
int cpu;
struct rcu_state *rsp;
};
4.13
: ✅struct rcu_data {
long unsigned int completed;
long unsigned int gpnum;
long unsigned int rcu_qs_ctr_snap;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_nocbs_invoked;
long unsigned int n_cbs_orphaned;
long unsigned int n_cbs_adopted;
long unsigned int n_force_qs_snap;
long int blimit;
struct rcu_dynticks *dynticks;
int dynticks_snap;
long unsigned int dynticks_fqs;
long unsigned int offline_fqs;
long unsigned int cond_resched_completed;
long unsigned int n_rcu_pending;
long unsigned int n_rp_core_needs_qs;
long unsigned int n_rp_report_qs;
long unsigned int n_rp_cb_ready;
long unsigned int n_rp_cpu_needs_gp;
long unsigned int n_rp_gp_completed;
long unsigned int n_rp_gp_started;
long unsigned int n_rp_nocb_defer_wakeup;
long unsigned int n_rp_need_nothing;
struct callback_head barrier_head;
atomic_long_t exp_workdone0;
atomic_long_t exp_workdone1;
atomic_long_t exp_workdone2;
atomic_long_t exp_workdone3;
int exp_dynticks_snap;
unsigned int softirq_snap;
int cpu;
struct rcu_state *rsp;
};
4.15
: ✅struct rcu_data {
long unsigned int completed;
long unsigned int gpnum;
long unsigned int rcu_qs_ctr_snap;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_nocbs_invoked;
long unsigned int n_force_qs_snap;
long int blimit;
struct rcu_dynticks *dynticks;
int dynticks_snap;
long unsigned int dynticks_fqs;
long unsigned int offline_fqs;
long unsigned int cond_resched_completed;
long unsigned int n_rcu_pending;
long unsigned int n_rp_core_needs_qs;
long unsigned int n_rp_report_qs;
long unsigned int n_rp_cb_ready;
long unsigned int n_rp_cpu_needs_gp;
long unsigned int n_rp_gp_completed;
long unsigned int n_rp_gp_started;
long unsigned int n_rp_nocb_defer_wakeup;
long unsigned int n_rp_need_nothing;
struct callback_head barrier_head;
atomic_long_t exp_workdone0;
atomic_long_t exp_workdone1;
atomic_long_t exp_workdone2;
atomic_long_t exp_workdone3;
int exp_dynticks_snap;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gpnum;
int cpu;
struct rcu_state *rsp;
};
4.18
: ✅struct rcu_data {
long unsigned int completed;
long unsigned int gpnum;
long unsigned int rcu_qs_ctr_snap;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
struct rcu_dynticks *dynticks;
int dynticks_snap;
long unsigned int dynticks_fqs;
long unsigned int offline_fqs;
long unsigned int cond_resched_completed;
struct callback_head barrier_head;
int exp_dynticks_snap;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gpnum;
int cpu;
struct rcu_state *rsp;
};
5.0
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
5.3
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
5.4
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
5.8
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
bool rcu_forced_tick;
bool rcu_forced_tick_exp;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
5.11
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
bool cpu_started;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct work_struct strict_work;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
bool rcu_forced_tick;
bool rcu_forced_tick_exp;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
5.13
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
bool cpu_started;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct work_struct strict_work;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
bool rcu_forced_tick;
bool rcu_forced_tick_exp;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
5.15
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
bool cpu_started;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct work_struct strict_work;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
bool rcu_forced_tick;
bool rcu_forced_tick_exp;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
5.19
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool cpu_started;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct work_struct strict_work;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
bool rcu_forced_tick;
bool rcu_forced_tick_exp;
long unsigned int barrier_seq_snap;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
long unsigned int rcuc_activity;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
long unsigned int last_sched_clock;
int cpu;
};
6.2
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool cpu_started;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct work_struct strict_work;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
bool rcu_forced_tick;
bool rcu_forced_tick_exp;
long unsigned int barrier_seq_snap;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
long unsigned int rcuc_activity;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
long unsigned int last_sched_clock;
long int lazy_len;
int cpu;
};
6.5
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool cpu_started;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct work_struct strict_work;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
bool rcu_forced_tick;
bool rcu_forced_tick_exp;
long unsigned int barrier_seq_snap;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
long unsigned int rcuc_activity;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
long unsigned int last_sched_clock;
struct rcu_snap_record snap_record;
long int lazy_len;
int cpu;
};
6.8
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool cpu_started;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct work_struct strict_work;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_cbs_invoked;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
bool rcu_forced_tick;
bool rcu_forced_tick_exp;
long unsigned int barrier_seq_snap;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct swait_queue_head nocb_cb_wq;
struct swait_queue_head nocb_state_wq;
struct task_struct *nocb_gp_kthread;
raw_spinlock_t nocb_lock;
atomic_t nocb_lock_contended;
int nocb_defer_wakeup;
struct timer_list nocb_timer;
long unsigned int nocb_gp_adv_time;
struct mutex nocb_gp_kthread_mutex;
raw_spinlock_t nocb_bypass_lock;
struct rcu_cblist nocb_bypass;
long unsigned int nocb_bypass_first;
long unsigned int nocb_nobypass_last;
int nocb_nobypass_count;
raw_spinlock_t nocb_gp_lock;
u8 nocb_gp_sleep;
u8 nocb_gp_bypass;
u8 nocb_gp_gp;
long unsigned int nocb_gp_seq;
long unsigned int nocb_gp_loops;
struct swait_queue_head nocb_gp_wq;
bool nocb_cb_sleep;
struct task_struct *nocb_cb_kthread;
struct list_head nocb_head_rdp;
struct list_head nocb_entry_rdp;
struct rcu_data *nocb_toggling_rdp;
struct rcu_data *nocb_gp_rdp;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
long unsigned int rcuc_activity;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
long unsigned int last_sched_clock;
struct rcu_snap_record snap_record;
long int lazy_len;
int cpu;
};
arm64
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
armhf
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
ppc64el
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
riscv64
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
aws
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
azure
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct swait_queue_head nocb_cb_wq;
struct task_struct *nocb_gp_kthread;
raw_spinlock_t nocb_lock;
atomic_t nocb_lock_contended;
int nocb_defer_wakeup;
struct timer_list nocb_timer;
long unsigned int nocb_gp_adv_time;
raw_spinlock_t nocb_bypass_lock;
struct rcu_cblist nocb_bypass;
long unsigned int nocb_bypass_first;
long unsigned int nocb_nobypass_last;
int nocb_nobypass_count;
raw_spinlock_t nocb_gp_lock;
struct timer_list nocb_bypass_timer;
u8 nocb_gp_sleep;
u8 nocb_gp_bypass;
u8 nocb_gp_gp;
long unsigned int nocb_gp_seq;
long unsigned int nocb_gp_loops;
struct swait_queue_head nocb_gp_wq;
bool nocb_cb_sleep;
struct task_struct *nocb_cb_kthread;
struct rcu_data *nocb_next_cb_rdp;
struct rcu_data *nocb_gp_rdp;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
gcp
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
lowlatency
: ✅struct rcu_data {
long unsigned int gp_seq;
long unsigned int gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool exp_deferred_qs;
struct rcu_node *mynode;
long unsigned int grpmask;
long unsigned int ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct rcu_segcblist cblist;
long int qlen_last_fqs_check;
long unsigned int n_force_qs_snap;
long int blimit;
int dynticks_snap;
long int dynticks_nesting;
long int dynticks_nmi_nesting;
atomic_t dynticks;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
long unsigned int rcu_iw_gp_seq;
long unsigned int rcu_ofl_gp_seq;
short int rcu_ofl_gp_flags;
long unsigned int rcu_onl_gp_seq;
short int rcu_onl_gp_flags;
long unsigned int last_fqs_resched;
int cpu;
};
Regular
4.4
and 4.8
⚠️atomic_long_t exp_workdone1
atomic_long_t exp_workdone2
atomic_long_t exp_workdone3
struct mutex exp_funnel_mutex
4.8
and 4.10
⚠️atomic_long_t exp_workdone0
int exp_dynticks_snap
4.10
and 4.13
⚠️struct rcu_segcblist cblist
struct callback_head *nxtlist
struct callback_head ** nxttail[4]
long unsigned int nxtcompleted[4]
long int qlen_lazy
long int qlen
4.13
and 4.15
⚠️struct irq_work rcu_iw
bool rcu_iw_pending
long unsigned int rcu_iw_gpnum
long unsigned int n_cbs_orphaned
long unsigned int n_cbs_adopted
4.15
and 4.18
⚠️long unsigned int n_cbs_invoked
long unsigned int n_nocbs_invoked
long unsigned int n_rcu_pending
long unsigned int n_rp_core_needs_qs
long unsigned int n_rp_report_qs
long unsigned int n_rp_cb_ready
long unsigned int n_rp_cpu_needs_gp
long unsigned int n_rp_gp_completed
long unsigned int n_rp_gp_started
long unsigned int n_rp_nocb_defer_wakeup
long unsigned int n_rp_need_nothing
atomic_long_t exp_workdone0
atomic_long_t exp_workdone1
atomic_long_t exp_workdone2
atomic_long_t exp_workdone3
4.18
and 5.0
⚠️long unsigned int gp_seq
long unsigned int gp_seq_needed
bool deferred_qs
long int dynticks_nesting
long int dynticks_nmi_nesting
bool rcu_need_heavy_qs
bool rcu_urgent_qs
long unsigned int rcu_iw_gp_seq
long unsigned int rcu_ofl_gp_seq
short int rcu_ofl_gp_flags
long unsigned int rcu_onl_gp_seq
short int rcu_onl_gp_flags
long unsigned int last_fqs_resched
long unsigned int completed
long unsigned int gpnum
long unsigned int rcu_qs_ctr_snap
long unsigned int dynticks_fqs
long unsigned int offline_fqs
long unsigned int cond_resched_completed
long unsigned int rcu_iw_gpnum
struct rcu_state *rsp
struct rcu_dynticks *dynticks
➡️ atomic_t dynticks
5.0
and 5.3
⚠️bool exp_deferred_qs
struct irq_work defer_qs_iw
bool defer_qs_iw_pending
struct task_struct *rcu_cpu_kthread_task
unsigned int rcu_cpu_kthread_status
char rcu_cpu_has_work
bool deferred_qs
5.3
and 5.4
✅
5.4
and 5.8
⚠️bool rcu_forced_tick
bool rcu_forced_tick_exp
5.8
and 5.11
⚠️bool cpu_started
struct work_struct strict_work
long unsigned int n_cbs_invoked
5.11
and 5.13
✅
5.13
and 5.15
✅
5.15
and 5.19
⚠️long unsigned int barrier_seq_snap
long unsigned int rcuc_activity
long unsigned int last_sched_clock
bool exp_deferred_qs
5.19
and 6.2
⚠️long int lazy_len
long int dynticks_nesting
long int dynticks_nmi_nesting
atomic_t dynticks
6.2
and 6.5
⚠️struct rcu_snap_record snap_record
6.5
and 6.8
⚠️struct swait_queue_head nocb_cb_wq
struct swait_queue_head nocb_state_wq
struct task_struct *nocb_gp_kthread
raw_spinlock_t nocb_lock
atomic_t nocb_lock_contended
int nocb_defer_wakeup
struct timer_list nocb_timer
long unsigned int nocb_gp_adv_time
struct mutex nocb_gp_kthread_mutex
raw_spinlock_t nocb_bypass_lock
struct rcu_cblist nocb_bypass
long unsigned int nocb_bypass_first
long unsigned int nocb_nobypass_last
int nocb_nobypass_count
raw_spinlock_t nocb_gp_lock
u8 nocb_gp_sleep
u8 nocb_gp_bypass
u8 nocb_gp_gp
long unsigned int nocb_gp_seq
long unsigned int nocb_gp_loops
struct swait_queue_head nocb_gp_wq
bool nocb_cb_sleep
struct task_struct *nocb_cb_kthread
struct list_head nocb_head_rdp
struct list_head nocb_entry_rdp
struct rcu_data *nocb_toggling_rdp
struct rcu_data *nocb_gp_rdp
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
⚠️struct swait_queue_head nocb_cb_wq
struct task_struct *nocb_gp_kthread
raw_spinlock_t nocb_lock
atomic_t nocb_lock_contended
int nocb_defer_wakeup
struct timer_list nocb_timer
long unsigned int nocb_gp_adv_time
raw_spinlock_t nocb_bypass_lock
struct rcu_cblist nocb_bypass
long unsigned int nocb_bypass_first
long unsigned int nocb_nobypass_last
int nocb_nobypass_count
raw_spinlock_t nocb_gp_lock
struct timer_list nocb_bypass_timer
u8 nocb_gp_sleep
u8 nocb_gp_bypass
u8 nocb_gp_gp
long unsigned int nocb_gp_seq
long unsigned int nocb_gp_loops
struct swait_queue_head nocb_gp_wq
bool nocb_cb_sleep
struct task_struct *nocb_cb_kthread
struct rcu_data *nocb_next_cb_rdp
struct rcu_data *nocb_gp_rdp
generic
and gcp
✅
generic
and lowlatency
✅