Messages in this thread | | | Date | Mon, 20 Oct 2014 12:43:40 +0800 | From | Greg KH <> | 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?
greg k-h
| |