lkml.org 
[lkml]   [2014]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    SubjectRE: [PATCH] drivers: base: update cpu offline info when do hotplug
    Greg,

    -----Original Message-----
    From: Greg KH [mailto:gregkh@linuxfoundation.org]
    Sent: 2014年10月20日 12:44
    To: Neil Zhang
    Cc: linux-kernel@vger.kernel.org
    Subject: Re: [PATCH] drivers: base: update cpu offline info when do hotplug

    On Mon, Oct 20, 2014 at 11:29:08AM +0800, Neil Zhang wrote:
    > The current per-cpu offline info won't be updated if it is hotplugged
    > in/out by a kernel governer.
    > Let's update it via cpu notifier.
    >
    > Signed-off-by: Neil Zhang <zhangwm@marvell.com>
    > ---
    > drivers/base/cpu.c | 25 +++++++++++++++++++++++++
    > 1 file changed, 25 insertions(+)
    >
    > diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index
    > 006b1bc..9d61824 100644
    > --- a/drivers/base/cpu.c
    > +++ b/drivers/base/cpu.c
    > @@ -418,10 +418,35 @@ static void __init
    > cpu_dev_register_generic(void) #endif }
    >
    > +static int device_hotplug_notifier(struct notifier_block *nfb,
    > + unsigned long action, void *hcpu) {
    > + unsigned int cpu = (unsigned long)hcpu;
    > + struct device *dev = get_cpu_device(cpu);
    > + int ret;
    > +
    > + switch (action & ~CPU_TASKS_FROZEN) {
    > + case CPU_ONLINE:
    > + dev->offline = false;
    > + ret = NOTIFY_OK;
    > + break;
    > + case CPU_DYING:
    > + dev->offline = true;
    > + ret = NOTIFY_OK;
    > + break;
    > + default:
    > + ret = NOTIFY_DONE;
    > + break;
    > + }
    > +
    > + return ret;
    > +}
    > +
    > void __init cpu_dev_init(void)
    > {
    > if (subsys_system_register(&cpu_subsys, cpu_root_attr_groups))
    > panic("Failed to register CPU subsystem");
    >
    > cpu_dev_register_generic();
    > + cpu_notifier(device_hotplug_notifier, 0);
    > }

    How much noise is this going to cause on a big/little system that constantly hot unplug/plugs processors all of the time?

    Can you explain more what kind of noise will be introduced on a big/little system?
    As I know IKS on arm will use cpu_suspend way to power down a core.
    But I don't know well about other architectures.
    Please give your suggestions.
    Thanks!

    greg k-h

    Best Regards,
    Neil Zhang
    \
     
     \ /
      Last update: 2014-10-20 09:21    [W:3.538 / U:0.160 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site