• Andrew Morton's avatar
    [PATCH] RCU idle detection fix · 3bf97e49
    Andrew Morton authored
    Patch from Dipankar Sarma <dipankar@in.ibm.com>
    
    There is a check in RCU for idle CPUs which signifies quiescent state
    (and hence no reference to RCU protected data) which was broken when
    interrupt counters were changed to use thread_info->preempt_count.
    
    Martin's 32 CPU machine with many idle CPUs was not completing any RCU
    grace period because RCU was forever waiting for idle CPUs to context
    switch.  Had the idle check worked, this would not have happened.  With
    no RCU happening, the dentries were getting "freed" (dentry stats
    showing that) but not getting returned to slab.  This would not show up
    in systems that are generally busy as context switches then would
    happen in all CPUs and the per-CPU quiescent state counter would get
    incremented during context switch.
    3bf97e49
rcupdate.c 6.72 KB