Re: [PATCH] cpu/hotplug: wait for cpuset_hotplug_work to finish on cpu onlining

From: Peter Zijlstra
Date: Thu Feb 04 2021 - 04:47:22 EST


On Thu, Feb 04, 2021 at 01:01:57AM +0000, Alexey Klimov wrote:
> @@ -1281,6 +1282,11 @@ static int cpu_up(unsigned int cpu, enum cpuhp_state target)
> err = _cpu_up(cpu, 0, target);
> out:
> cpu_maps_update_done();
> +
> + /* To avoid out of line uevent */
> + if (!err)
> + cpuset_wait_for_hotplug();
> +
> return err;
> }
>

> @@ -2071,14 +2075,18 @@ static void cpuhp_online_cpu_device(unsigned int cpu)
> struct device *dev = get_cpu_device(cpu);
>
> dev->offline = false;
> - /* Tell user space about the state change */
> - kobject_uevent(&dev->kobj, KOBJ_ONLINE);
> }
>

One concequence of this is that you'll now get a bunch of notifications
across things like suspend/hybernate.