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 <zhan...@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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to