Messages in this thread | | | Date | Wed, 30 Jul 2014 14:52:41 +0800 | From | Lai Jiangshan <> | Subject | Re: [PATCH RFC tip/core/rcu 1/9] rcu: Add call_rcu_tasks() |
| |
On 07/29/2014 06:56 AM, Paul E. McKenney wrote:
> + /* > + * Each pass through the following loop scans the list > + * of holdout tasks, removing any that are no longer > + * holdouts. When the list is empty, we are done. > + */ > + while (!list_empty(&rcu_tasks_holdouts)) { > + schedule_timeout_interruptible(HZ / 10); > + flush_signals(current); > + rcu_read_lock(); > + list_for_each_entry_rcu(t, &rcu_tasks_holdouts, > + rcu_tasks_holdout_list) { > + if (smp_load_acquire(&t->rcu_tasks_holdout)) > + continue; > + list_del_init(&t->rcu_tasks_holdout_list); > + /* @@@ need to check for usermode on CPU. */ > + } > + rcu_read_unlock();
Maybe I missed something. The task @t may already exited and we access to the stale memory here if without patch 8/9.
| |