lkml.org 
[lkml]   [2009]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH RFC tip/core/rcu 1/3] rcu: The Bloatwatch Edition, v7
Paul E. McKenney wrote:
>> It's an old issue.
>> It's not only about RCUTINY, it's also about other rcu implementations:
>>
>> rcu_enter_nohz()/rcu_exit_nohz() are not called in pairs.
>>
>> irq_exit() calls tick_nohz_stop_sched_tick() which calls rcu_enter_nohz(),
>> where is the corresponding rcu_exit_nohz()?
>> (or tick_nohz_restart_sched_tick())?
>
> The tick_nohz_restart_sched_tick() function is called from the various
> per-architecture cpu_idle() functions (or default_idle() or whatever
> name that the architecture uses). For example, in:
>
> arch/x86/kernel/process_64.c
>
> the cpu_idle() function invokes tick_nohz_restart_sched_tick() just
> before invoking schedule() to exit the idle loop.
>
> And, as you say, tick_nohz_restart_sched_tick() invokes rcu_exit_nohz().
>
> Thanx, Paul
>
>

These tick_nohz_restart_sched_tick() which are called from the various
per-architecture cpu_idle() functions are not the opposite of
the tick_nohz_stop_sched_tick() in *irq_exit()*. So I figure that
rcu_enter_nohz()/rcu_exit_nohz() are not called in pairs.


\
 
 \ /
  Last update: 2009-10-14 02:41    [W:3.198 / U:0.004 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site