• Dipankar Sarma's avatar
    [PATCH] Read-Copy Update infrastructure · 1477a825
    Dipankar Sarma authored
    This is the RCU core patch from akpm's tree. It has been in his
    tree since about 2.5.37-mm1 along with dcache_rcu and so far it has
    worked fine. For 2.5, I am hoping that we might get the following
    RCU patches included -
    
    1. rt_rcu - ipv4 routecache lookup. Davem agreed to include this patch
       if and when you include RCU core in your tree.
    
    2. dcache_rcu (by Maneesh Soni) - dcache lookup avoiding dcache_lock as
       much as possible. This has been akpm's tree - stable and gives us
       good yield. I have been submitting this to Viro and I will publish
       some more benchmark numbers later to help decide on this.
    
    This RCU core implements RCU APIs, call_rcu() and synchronize_kernel(),
    by monitoring a per-CPU quiescent state (idle/user etc.) counter.
    call_rcu() queues a callback to be invoked after all the CPUs have
    gone through a quiescent state. Queuing is per-CPU and each per-CPU
    batch gets a batch number. As batches get their turn, a global
    cpu mask is used to keep track of CPUs pending quiescent state.
    Checking for quiescent cycle is done by saving the per-CPU
    counter at the beginning of the batch and then monitoring it for change
    through the local timer interrupt handler.
    1477a825
main.c 13.2 KB