Messages in this thread | | | Date | Tue, 26 Nov 2013 09:15:38 +0200 | From | Eliezer Tamir <> | Subject | Re: [PATCH 6/7] sched: Clean up preempt_enable_no_resched() abuse |
| |
On 22/11/2013 13:30, Peter Zijlstra wrote: > On Fri, Nov 22, 2013 at 08:56:00AM +0200, Eliezer Tamir wrote: >> On 21/11/2013 15:39, Peter Zijlstra wrote: >>> On Thu, Nov 21, 2013 at 03:26:17PM +0200, Eliezer Tamir wrote: > > Please use local_clock(), yes its slightly more expensive, but I doubt > you can actually measure the effects on sane hardware.
If we limit the discussion to sane hardware, I should mention that on current Intel CPUs TSC is guaranteed to be monotonic for anything up to 8 sockets. Even on slightly older HS TSC skew is very small and should not be an issue for this use case.
So: Modern sane HW does not have this issue. The people that do busy polling typically pin tasks to cores anyway. You need cap_net_admin to use this setting. There is no real damage if the issue happens. This is fast-low-latency-path so we are very sensitive to adding even a small cost. Linus really didn't like adding to the cost of poll/select when busy polling is not being used.
Having said that, since we need to fix the timeout issue you pointed out, we will test the use of local_clock() and see if it matters or not.
Again, I have no objection to changing the use of preempt_enable_no_resched() to a plain preempt_enable().
Cheers, Eliezer
| |