lkml.org 
[lkml]   [2023]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] rcutorture: Traverse possible cpu to set maxcpu in rcu_nocb_toggle()
    On Thu, Aug 24, 2023 at 04:42:06PM +0800, Zqiang wrote:
    > Currently, the maxcpu is set by traversing online CPUs, however, if
    > the rcutorture.onoff_holdoff is set zero and onoff_interval is set
    > non-zero, and the some CPUs with larger cpuid has been offline before
    > setting maxcpu, for these CPUs, even if they are online again, also
    > cannot be offload or deoffload.
    >
    > This commit therefore use for_each_possible_cpu() instead of
    > for_each_online_cpu() in rcu_nocb_toggle().
    >
    > Signed-off-by: Zqiang <qiang.zhang1211@gmail.com>
    > ---
    > kernel/rcu/rcutorture.c | 2 +-
    > 1 file changed, 1 insertion(+), 1 deletion(-)
    >
    > diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
    > index a58372bdf0c1..b75d0fe558ce 100644
    > --- a/kernel/rcu/rcutorture.c
    > +++ b/kernel/rcu/rcutorture.c
    > @@ -2131,7 +2131,7 @@ static int rcu_nocb_toggle(void *arg)
    > VERBOSE_TOROUT_STRING("rcu_nocb_toggle task started");
    > while (!rcu_inkernel_boot_has_ended())
    > schedule_timeout_interruptible(HZ / 10);
    > - for_each_online_cpu(cpu)
    > + for_each_possible_cpu(cpu)

    Last I checked, bad things could happen if the code attempted to
    nocb_toggle a CPU that had not yet come online. Has that changed?

    Thanx, Paul

    > maxcpu = cpu;
    > WARN_ON(maxcpu < 0);
    > if (toggle_interval > ULONG_MAX)
    > --
    > 2.17.1
    >

    \
     
     \ /
      Last update: 2023-08-24 15:22    [W:6.154 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site