]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge branches 'bigrt.2012.09.05a', 'doctorture.2012.09.04a', 'fixes.2012.09.04a...
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 5 Sep 2012 19:09:42 +0000 (12:09 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 5 Sep 2012 19:09:42 +0000 (12:09 -0700)
Conflicts:
kernel/rcutree.c

1  2  3  4  5 
include/linux/rcupdate.h
kernel/rcutree.c
kernel/rcutree.h
kernel/rcutree_plugin.h
kernel/rcutree_trace.c
kernel/sched/core.c

Simple merge
index d39ad5cff4d15dff38df3d5c6582cf8324ecb122,f280e542e3e9f531df83b03d1e1fce6cf8ebaaa2,e705bf217f9910206b827f360c56b89d3d7beaa0,5f8c4dd45ed917152484888b3c1c422a2ec78e2a,ce41aebd00d1f0156ebc672abc8adc909d268855..791aea0d5c951e1f6b73b6593d336d494ca9a154
@@@@@@ -320,37 -316,37 -316,8 -316,37 -319,37 +323,8 @@@@@@ static struct rcu_node *rcu_get_root(st
        return &rsp->node[0];
     }
     
    -/*
    - * If the specified CPU is offline, tell the caller that it is in
    - * a quiescent state.  Otherwise, whack it with a reschedule IPI.
    - * Grace periods can end up waiting on an offline CPU when that
    - * CPU is in the process of coming online -- it will be added to the
    - * rcu_node bitmasks before it actually makes it online.  The same thing
    - * can happen while a CPU is in the process of coming online.  Because this
    - * race is quite rare, we check for it after detecting that the grace
    - * period has been delayed rather than checking each and every CPU
    - * each and every time we start a new grace period.
    - */
    -static int rcu_implicit_offline_qs(struct rcu_data *rdp)
    -{
    -   /*
    -    * If the CPU is offline for more than a jiffy, it is in a quiescent
    -    * state.  We can trust its state not to change because interrupts
    -    * are disabled.  The reason for the jiffy's worth of slack is to
    -    * handle CPUs initializing on the way up and finding their way
    -    * to the idle loop on the way down.
    -    */
    -   if (cpu_is_offline(rdp->cpu) &&
    -       ULONG_CMP_LT(rdp->rsp->gp_start + 2, jiffies)) {
    -           trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, "ofl");
    -           rdp->offline_fqs++;
    -           return 1;
    -   }
    -   return 0;
    -}
    -
     /*
-- -  * If the specified CPU is offline, tell the caller that it is in
-- -  * a quiescent state.  Otherwise, whack it with a reschedule IPI.
-- -  * Grace periods can end up waiting on an offline CPU when that
-- -  * CPU is in the process of coming online -- it will be added to the
-- -  * rcu_node bitmasks before it actually makes it online.  The same thing
-- -  * can happen while a CPU is in the process of coming online.  Because this
-- -  * race is quite rare, we check for it after detecting that the grace
-- -  * period has been delayed rather than checking each and every CPU
-- -  * each and every time we start a new grace period.
-- -  */
-- - static int rcu_implicit_offline_qs(struct rcu_data *rdp)
-- - {
-- -    /*
-- -     * If the CPU is offline for more than a jiffy, it is in a quiescent
-- -     * state.  We can trust its state not to change because interrupts
-- -     * are disabled.  The reason for the jiffy's worth of slack is to
-- -     * handle CPUs initializing on the way up and finding their way
-- -     * to the idle loop on the way down.
-- -     */
-- -    if (cpu_is_offline(rdp->cpu) &&
-- -        ULONG_CMP_LT(rdp->rsp->gp_start + 2, jiffies)) {
-- -            trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, "ofl");
-- -            rdp->offline_fqs++;
-- -            return 1;
-- -    }
-- -    return 0;
-- - }
-- - 
-- - /*
----  * rcu_idle_enter_common - inform RCU that current CPU is moving towards idle
++++  * rcu_eqs_enter_common - current CPU is moving towards extended quiescent state
      *
      * If the new value of the ->dynticks_nesting counter now is zero,
      * we really have entered idle, and must do the appropriate accounting.
@@@@@@ -448,12 -444,12 -415,13 -444,12 -506,12 +481,13 @@@@@@ void rcu_irq_exit(void
        if (rdtp->dynticks_nesting)
                trace_rcu_dyntick("--=", oldval, rdtp->dynticks_nesting);
        else
----            rcu_idle_enter_common(rdtp, oldval);
++++            rcu_eqs_enter_common(rdtp, oldval, true);
        local_irq_restore(flags);
     }
++ ++EXPORT_SYMBOL_GPL(rcu_irq_exit);
     
     /*
----  * rcu_idle_exit_common - inform RCU that current CPU is moving away from idle
++++  * rcu_eqs_exit_common - current CPU moving away from extended quiescent state
      *
      * If the new value of the ->dynticks_nesting counter was previously zero,
      * we really have exited idle, and must do the appropriate accounting.
@@@@@@ -543,9 -539,9 -511,10 -539,9 -657,9 +633,10 @@@@@@ void rcu_irq_enter(void
        if (oldval)
                trace_rcu_dyntick("++=", oldval, rdtp->dynticks_nesting);
        else
----            rcu_idle_exit_common(rdtp, oldval);
++++            rcu_eqs_exit_common(rdtp, oldval, true);
        local_irq_restore(flags);
     }
++ ++EXPORT_SYMBOL_GPL(rcu_irq_enter);
     
     /**
      * rcu_nmi_enter - inform RCU of entry to NMI context
Simple merge
Simple merge
Simple merge
Simple merge