Messages in this thread | | | Subject | Re: [PATCH] perf_counter: Check task on counter read IPI | From | Peter Zijlstra <> | Date | Mon, 17 Aug 2009 11:35:23 +0200 |
| |
On Mon, 2009-08-17 at 19:26 +1000, Paul Mackerras wrote: > Peter Zijlstra writes: > > > > I don't have an example of an actual failure due to this race, but it > > > seems obvious that it could occur and we need to guard against it, so > > > I think this should go in .31. > > > > Hmm, right. > > > > However those other sites have retry loops in the caller, but callers of > > __perf_counter_read() do not. Granted, I'm not sure what they should > > retry on exactly, but this patch trades an invalid update to a missing > > update. > > It relies on the counter sched-out updating ->count for all the > counters on the task. We know that the sched-out happened very > recently, i.e. in the interval between deciding to send the IPI and > the IPI arriving. So the counter value should be sufficiently up to > date. Ingo pointed this out to me some time ago. > > I tried to address that in the comments and the patch description but > perhaps I wasn't explicit enough.
Or its still early and I hadn't had my morning juice yet..
Yes, you're right, in case we missed it due to a race with schedule, the schedule action itself will have indeed updated the count and we're good again.
So sorry for the confusion,
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
| |