lkml.org 
[lkml]   [2011]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH -tip v2] sched: more sched_domain iterations fix
    From
    Date
    On Fri, 2011-04-22 at 18:53 +0800, Xiaotian feng wrote:
    > From: Xiaotian Feng <dfeng@redhat.com>
    >
    > sched_domain iterations needs to be protected by rcu_read_lock() now,
    > this patch adds another two places which needs the rcu lock, which is
    > spotted by following suspicious rcu_dereference_check() usage warnings.
    >
    > kernel/sched_rt.c:1244 invoked rcu_dereference_check() without protection!
    > kernel/sched_stats.h:41 invoked rcu_dereference_check() without protection!

    Much better, one worry:

    > Signed-off-by: Xiaotian Feng <dfeng@redhat.com>
    > Cc: Ingo Molnar <mingo@elte.hu>
    > Cc: Peter Zijlstra <peterz@infradead.org>
    > ---

    > diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h
    > index 48ddf43..331e01b 100644
    > --- a/kernel/sched_stats.h
    > +++ b/kernel/sched_stats.h
    > @@ -37,7 +37,7 @@ static int show_schedstat(struct seq_file *seq, void *v)
    >
    > #ifdef CONFIG_SMP
    > /* domain-specific stats */
    > - preempt_disable();
    > + rcu_read_lock();
    > for_each_domain(cpu, sd) {
    > enum cpu_idle_type itype;
    >
    > @@ -64,7 +64,7 @@ static int show_schedstat(struct seq_file *seq, void *v)
    > sd->ttwu_wake_remote, sd->ttwu_move_affine,
    > sd->ttwu_move_balance);
    > }
    > - preempt_enable();
    > + rcu_read_unlock();
    > #endif
    > }
    > kfree(mask_str);

    Did you indeed validate that the preempt_disable() wasn't needed for
    anything else? Your changelog doesn't mention and I didn't check, just
    noticed the possibility on the first posting.


    \
     
     \ /
      Last update: 2011-04-26 11:29    [W:0.025 / U:29.768 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site