Re: [patch 1/2] add ALL_CPUS option to stop_machine_run()

From: Max Krasnyanskiy
Date: Fri Feb 29 2008 - 13:24:29 EST


Ingo Molnar wrote:
* Max Krasnyanskiy <maxk@xxxxxxxxxxxx> wrote:

-allow stop_mahcine_run() to call a function on all cpus. Calling stop_machine_run() with a 'ALL_CPUS' invokes this new behavior.
stop_machine_run() proceeds as normal until the calling cpu has invoked 'fn'. Then, we tell all the other cpus to call 'fn'.
Jason, we're actually trying to reduce the usage of the stop_machine in general. [...]

please talk in your own name. Stop-machine is a very elegant tool that simplifies a lot of hard things in the kernel and is reasonably fast as well. We've just recently added two new usages of it and more are planned.

_you_ might be the one who wants to 'reduce the usage of stop_machine' - but that means it is _you_ who first has to convert a number of very difficult pieces of code to "something else".
Sure I started the discussion but I suppose you missed Andi's and other replies. All I said that people should think twice before relying on it.
btw I'm ok if I _am_ the _one_ who has to convert those pieces of code, that's part of the fun :). But if people keep adding stuff which uses stom_machine that may be pretty difficult :).

btw Being an RT guy you do not think that stop machine is evil ? I mean from the overhead and especially latency perspective. By overhead I mean if you have 100+ cpu box that Paul and other guys have mentioned here. Every single CPU has to be frozen. You said it's reasonably fast. I guess it depends what's reasonable. And from the latency perspective all bets are off. We have no guaranties whatsoever as to hold long it will take for cpu X to get frozen (there numerous factors here) and all the other cpus have to wait for it.
As I said for some things there is just no other way but to use the stop_machine but we should try to minimize that as much as possible.

Max

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/