On Sat, Mar 28, 2015 at 02:44:57PM +0100, Peter Zijlstra wrote:
Now there are few issues I see here (Sorry if they are all imaginary):
- In case a timer re-arms itself from its handler and is migrated from CPU A to B, what happens if the re-armed timer fires before the first handler finishes ? i.e. timer->fn() hasn't finished running on CPU A and it has fired again on CPU B. Wouldn't this expose us to a lot of other problems? It wouldn't be serialized to itself anymore ?
What I said above.
What I didn't say, but had thought of is that __run_timer() should skip any timer that has RUNNING set -- for obvious reasons :-)