]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge branches 'bigrt.2012.07.31a', 'doctorture.2012.08.03a', 'fixes.2012.08.03a...
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 3 Aug 2012 15:56:17 +0000 (08:56 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 3 Aug 2012 15:56:17 +0000 (08:56 -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 44609c3debbe2775c4648a597434b99241a60dfd,f280e542e3e9f531df83b03d1e1fce6cf8ebaaa2,9f44749eb9bb84582e4f377b12c4b8f170942471,8fda815318a65f994193dbc48f08cd38c644bb9a,ccf3cbf8e037309a3df0ace495e7e6010d39956e..a3484892ca48bd080b00f0357df571ae9e0a9151
@@@@@@ -324,37 -316,37 -316,8 -316,37 -319,37 +327,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.
@@@@@@ -452,12 -444,12 -415,13 -444,12 -506,12 +485,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, 1);
        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.
@@@@@@ -547,9 -539,9 -511,10 -539,9 -657,9 +637,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, 1);
        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