lkml.org 
[lkml]   [2019]   [Feb]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2 3/6] sched/cpufreq: Annotate cpufreq_update_util_data pointer with __rcu
    On Sat, Feb 23, 2019 at 01:34:31AM -0500, Joel Fernandes (Google) wrote:
    > Recently I added an RCU annotation check to rcu_assign_pointer(). All
    > pointers assigned to RCU protected data are to be annotated with __rcu
    > inorder to be able to use rcu_assign_pointer() similar to checks in
    > other RCU APIs.
    >
    > This resulted in a sparse error: kernel//sched/cpufreq.c:41:9: sparse:
    > error: incompatible types in comparison expression (different address
    > spaces)
    >
    > Fix this by annotating cpufreq_update_util_data pointer with __rcu. This
    > will also help sparse catch any future RCU misuage bugs.
    >
    > Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>

    From an RCU perspective:

    Reviewed-by: Paul E. McKenney <paulmck@linux.ibm.com>

    > ---
    > kernel/sched/cpufreq.c | 2 +-
    > kernel/sched/sched.h | 2 +-
    > 2 files changed, 2 insertions(+), 2 deletions(-)
    >
    > diff --git a/kernel/sched/cpufreq.c b/kernel/sched/cpufreq.c
    > index 22bd8980f32f..e316ee7bb2e5 100644
    > --- a/kernel/sched/cpufreq.c
    > +++ b/kernel/sched/cpufreq.c
    > @@ -7,7 +7,7 @@
    > */
    > #include "sched.h"
    >
    > -DEFINE_PER_CPU(struct update_util_data *, cpufreq_update_util_data);
    > +DEFINE_PER_CPU(struct update_util_data __rcu *, cpufreq_update_util_data);
    >
    > /**
    > * cpufreq_add_update_util_hook - Populate the CPU's update_util_data pointer.
    > diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
    > index d04530bf251f..2ab545d40381 100644
    > --- a/kernel/sched/sched.h
    > +++ b/kernel/sched/sched.h
    > @@ -2166,7 +2166,7 @@ static inline u64 irq_time_read(int cpu)
    > #endif /* CONFIG_IRQ_TIME_ACCOUNTING */
    >
    > #ifdef CONFIG_CPU_FREQ
    > -DECLARE_PER_CPU(struct update_util_data *, cpufreq_update_util_data);
    > +DECLARE_PER_CPU(struct update_util_data __rcu *, cpufreq_update_util_data);
    >
    > /**
    > * cpufreq_update_util - Take a note about CPU utilization changes.
    > --
    > 2.21.0.rc0.258.g878e2cd30e-goog
    >

    \
     
     \ /
      Last update: 2019-02-25 22:11    [W:2.255 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site