lkml.org 
[lkml]   [2013]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [sched/get_online_cpus] INFO: task swapper/0:1 blocked for more than 120 seconds.
    On Mon, Nov 11, 2013 at 03:47:11PM +0800, Michael wang wrote:
    > Hi, Fengguang
    >
    > On 11/10/2013 06:16 PM, Fengguang Wu wrote:
    > > Greetings,
    > >
    > > I got the below dmesg and the first bad commit is
    >
    > I guess this will disappear when '!CONFIG_RCU_BOOST'...
    >
    > AFAIK, if the rsp was in boost mode, we count on smpboot-thread
    > 'rcu_cpu_thread_spec' to finish the callback, which will be
    > parked before do sync-rcu inside _cpu_down(), if that was true,
    > then the sync will never finish...
    >
    > May be some brainless fix like this?
    >
    >
    >
    > diff --git a/kernel/cpu.c b/kernel/cpu.c
    > index 63aa50d..aa24338 100644
    > --- a/kernel/cpu.c
    > +++ b/kernel/cpu.c
    > @@ -306,7 +306,6 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
    > __func__, cpu);
    > goto out_release;
    > }
    > - smpboot_park_threads(cpu);
    >
    > /*
    > * By now we've cleared cpu_active_mask, wait for all preempt-disabled
    > @@ -321,6 +320,8 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
    > #endif
    > synchronize_rcu();
    >
    > + smpboot_park_threads(cpu);
    > +
    > /*
    > * So now all preempt/rcu users must observe !cpu_active().
    > */

    Good thinking.. Wu did this cure stuff?


    \
     
     \ /
      Last update: 2013-11-11 17:41    [W:3.403 / U:0.924 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site