Re: [PATCH RFC] v5 expedited "big hammer" RCU grace periods
From: Lai Jiangshan <hidden>
Date: 2009-05-18 07:02:33
Also in:
lkml, netfilter-devel
From: Lai Jiangshan <hidden>
Date: 2009-05-18 07:02:33
Also in:
lkml, netfilter-devel
Paul E. McKenney wrote:
+void sched_expedited_wake(void *unused)
+{
+ mutex_lock(&__get_cpu_var(sched_expedited_done_mutex));
+ if (__get_cpu_var(sched_expedited_done_qs) ==
+ SCHED_EXPEDITED_QS_DONE_QS) {
+ __get_cpu_var(sched_expedited_done_qs) =
+ SCHED_EXPEDITED_QS_NEED_QS;
+ wake_up(&__get_cpu_var(sched_expedited_qs_wq));
+ }
+ mutex_unlock(&__get_cpu_var(sched_expedited_done_mutex));
+}[...]
+ get_online_cpus(); + preempt_disable(); + mycpu = smp_processor_id(); + smp_call_function(sched_expedited_wake, NULL, 1);
sched_expedited_wake() calls mutex_lock() which may sleep? And I think you have re-implement workqueue. Thanks, Lai.