Loading kernel/rcu/tasks.h +13 −5 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ struct rcu_tasks; typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *rtp); typedef void (*pregp_func_t)(void); typedef void (*pertask_func_t)(struct task_struct *t, struct list_head *hop); typedef void (*postscan_func_t)(void); typedef void (*postscan_func_t)(struct list_head *hop); typedef void (*holdouts_func_t)(struct list_head *hop, bool ndrpt, bool *frptp); typedef void (*postgp_func_t)(struct rcu_tasks *rtp); Loading Loading @@ -331,7 +331,7 @@ static void rcu_tasks_wait_gp(struct rcu_tasks *rtp) rcu_read_unlock(); set_tasks_gp_state(rtp, RTGS_POST_SCAN_TASKLIST); rtp->postscan_func(); rtp->postscan_func(&holdouts); /* * Each pass through the following loop scans the list of holdout Loading Loading @@ -415,7 +415,7 @@ static void rcu_tasks_pertask(struct task_struct *t, struct list_head *hop) } /* Processing between scanning taskslist and draining the holdout list. */ void rcu_tasks_postscan(void) void rcu_tasks_postscan(struct list_head *hop) { /* * Wait for tasks that are in the process of exiting. This Loading Loading @@ -936,9 +936,17 @@ static void rcu_tasks_trace_pertask(struct task_struct *t, trc_wait_for_one_reader(t, hop); } /* Do intermediate processing between task and holdout scans. */ static void rcu_tasks_trace_postscan(void) /* * Do intermediate processing between task and holdout scans and * pick up the idle tasks. */ static void rcu_tasks_trace_postscan(struct list_head *hop) { int cpu; for_each_possible_cpu(cpu) rcu_tasks_trace_pertask(idle_task(cpu), hop); // Re-enable CPU hotplug now that the tasklist scan has completed. cpus_read_unlock(); Loading Loading
kernel/rcu/tasks.h +13 −5 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ struct rcu_tasks; typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *rtp); typedef void (*pregp_func_t)(void); typedef void (*pertask_func_t)(struct task_struct *t, struct list_head *hop); typedef void (*postscan_func_t)(void); typedef void (*postscan_func_t)(struct list_head *hop); typedef void (*holdouts_func_t)(struct list_head *hop, bool ndrpt, bool *frptp); typedef void (*postgp_func_t)(struct rcu_tasks *rtp); Loading Loading @@ -331,7 +331,7 @@ static void rcu_tasks_wait_gp(struct rcu_tasks *rtp) rcu_read_unlock(); set_tasks_gp_state(rtp, RTGS_POST_SCAN_TASKLIST); rtp->postscan_func(); rtp->postscan_func(&holdouts); /* * Each pass through the following loop scans the list of holdout Loading Loading @@ -415,7 +415,7 @@ static void rcu_tasks_pertask(struct task_struct *t, struct list_head *hop) } /* Processing between scanning taskslist and draining the holdout list. */ void rcu_tasks_postscan(void) void rcu_tasks_postscan(struct list_head *hop) { /* * Wait for tasks that are in the process of exiting. This Loading Loading @@ -936,9 +936,17 @@ static void rcu_tasks_trace_pertask(struct task_struct *t, trc_wait_for_one_reader(t, hop); } /* Do intermediate processing between task and holdout scans. */ static void rcu_tasks_trace_postscan(void) /* * Do intermediate processing between task and holdout scans and * pick up the idle tasks. */ static void rcu_tasks_trace_postscan(struct list_head *hop) { int cpu; for_each_possible_cpu(cpu) rcu_tasks_trace_pertask(idle_task(cpu), hop); // Re-enable CPU hotplug now that the tasklist scan has completed. cpus_read_unlock(); Loading