On 07/12/2011 12:18 PM, Peter Zijlstra wrote:
> > The guarantee is that the task was sleeping just before the function is > called. Of course it's woken up to run the function. > > The idea is that you run the function in a known safe point to avoid > extra synchronization. > I'd much rather we didn't wake the task and let it sleep, that's usually a very safe place for tasks to be. All you'd need is a guarantee it won't be woken up while you're doing your thing.
But it means that 'current' is not set to the right value. If the function depends on it, then it will misbehave. And in fact preempt_notifier_register(), which is the function we want to call here, does depend on current.
Of course we need to find more users for this, but I have a feeling this will be generally useful. The alternative is to keep adding bits to thread_info::flags.
-- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html