Dan, > -----Original Message----- > From: ddstreet@gmail.com [mailto:ddstreet@gmail.com] On Behalf Of Dan > Streetman > Sent: 2014年10月21日 21:03 > To: Neil Zhang > Cc: linux-kernel; Greg Kroah-Hartman > Subject: Re: [PATCH] drivers: base: update cpu offline info when do hotplug > > On Sun, Oct 19, 2014 at 11:29 PM, 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 > > --- > > 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; > > one thing i just thought of here, since dev->offline is getting set here, can > you remove it being set in drivers/base/core.c at > device_online() and device_offline() ? That's probably redundant now right? Yes, I ever thought about it. But I'm not sure whether some other devices (such as memory) will use it later too. So I still kept it there since seems won't cause any problem. > > > > + 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); > > } > > -- > > 1.7.9.5 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe > > linux-kernel" in the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ Best Regards, Neil Zhang {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I