Re: [RFC][PATCH] lru_add_drain_all() don't use schedule_on_each_cpu()

Peter Zijlstra
2008-10-26T13:49:06Z

On Sun, 2008-10-26 at 22:37 +0900, KOSAKI Motohiro wrote:
> Hi Peter,
>
> >> @@ -611,4 +613,8 @@ void __init swap_setup(void)
> >> #ifdef CONFIG_HOTPLUG_CPU
> >> hotcpu_notifier(cpu_swap_callback, 0);
> >> #endif
> >> +
> >> + vm_wq = create_workqueue("vm_work");
> >> + BUG_ON(!vm_wq);
> >> +
> >> }
> >
> > While I really hate adding yet another per-cpu thread for this, I don't
> > see another way out atm.
>
> Can I ask the reason of your hate?
> if I don't know it, making improvement patch is very difficult to me.

There seems to be no drive to keep them down, ps -def output it utterly
dominated by kernel threads on a freshly booted machine with many cpus.

And while they are not _that_ expensive to have around, they are not
free either, I imagine the tiny-linux folks having an interest in
keeping these down too.

> > Oleg, Rusty, ego, you lot were discussing a similar extra per-cpu
> > workqueue, can we merge these two?