Messages in this thread | | | Date | Thu, 12 Mar 2009 14:05:05 -0500 | Subject | Re: [PATCH v4] introduce macro spin_event_timeout() | From | Timur Tabi <> |
| |
On Thu, Mar 12, 2009 at 11:50 AM, Peter Zijlstra <peterz@infradead.org> wrote: > sched_clock() does that, but: > - it falls back to jiffies on poor platforms
I think it's ok to fall back to jiffies where necessary, but these two functions are too heavy-weight for my tastes.
> But something that seems to always work, is simply count loops and rely > on whatever delay is in the specified loop. > > #define spin_until_timeout(condition, timeout, rc) \ > for (unsigned long __timeout = 0; \ > !(rc = (condition)) && __timeout < (timeout); \ > __timeout++)
But that's the thing - I don't want a required delay inside the loop.
I guess I'm going to have to think about this for a while. I'd like to see something like cycles_per_usec() as a companion function to get_cycles().
-- Timur Tabi Linux kernel developer at Freescale
| |