lkml.org 
[lkml]   [2011]   [May]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/2] rcu: provide rcu_virt_note_context_switch() function.
    On Wed, May 04, 2011 at 04:31:03PM +0300, Gleb Natapov wrote:
    > Provide rcu_virt_note_context_switch() for vitalization use to note
    > quiescent state during guest entry.

    Very good, queued on -rcu.

    Unless you tell me otherwise, I will assume that you want to carry the
    patch modifying KVM to use this.

    Thanx, Paul

    > Signed-off-by: Gleb Natapov <gleb@redhat.com>
    > ---
    > include/linux/rcutiny.h | 8 ++++++++
    > include/linux/rcutree.h | 10 ++++++++++
    > kernel/rcutree.c | 1 +
    > 3 files changed, 19 insertions(+), 0 deletions(-)
    >
    > diff --git a/include/linux/rcutiny.h b/include/linux/rcutiny.h
    > index 30ebd7c..52b3e02 100644
    > --- a/include/linux/rcutiny.h
    > +++ b/include/linux/rcutiny.h
    > @@ -100,6 +100,14 @@ static inline void rcu_note_context_switch(int cpu)
    > }
    >
    > /*
    > + * Take advantage of the fact that there is only one CPU, which
    > + * allows us to ignore virtualization-based context switches.
    > + */
    > +static inline void rcu_virt_note_context_switch(int cpu)
    > +{
    > +}
    > +
    > +/*
    > * Return the number of grace periods.
    > */
    > static inline long rcu_batches_completed(void)
    > diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h
    > index 3a93348..b2a906e 100644
    > --- a/include/linux/rcutree.h
    > +++ b/include/linux/rcutree.h
    > @@ -35,6 +35,16 @@ extern void rcu_note_context_switch(int cpu);
    > extern int rcu_needs_cpu(int cpu);
    > extern void rcu_cpu_stall_reset(void);
    >
    > +/*
    > + * Note a virtualization-based context switch. This is simply a
    > + * wrapper around rcu_note_context_switch(), which allows TINY_RCU
    > + * to save a few bytes.
    > + */
    > +static inline void rcu_virt_note_context_switch(int cpu)
    > +{
    > + rcu_note_context_switch(cpu);
    > +}
    > +
    > #ifdef CONFIG_TREE_PREEMPT_RCU
    >
    > extern void exit_rcu(void);
    > diff --git a/kernel/rcutree.c b/kernel/rcutree.c
    > index dd4aea8..0837d63 100644
    > --- a/kernel/rcutree.c
    > +++ b/kernel/rcutree.c
    > @@ -124,6 +124,7 @@ void rcu_note_context_switch(int cpu)
    > rcu_sched_qs(cpu);
    > rcu_preempt_note_context_switch(cpu);
    > }
    > +EXPORT_SYMBOL_GPL(rcu_note_context_switch);
    >
    > #ifdef CONFIG_NO_HZ
    > DEFINE_PER_CPU(struct rcu_dynticks, rcu_dynticks) = {
    > --
    > 1.7.4.4
    >


    \
     
     \ /
      Last update: 2011-05-04 18:39    [W:0.034 / U:0.652 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site