Messages in this thread | | | Date | Mon, 8 Jun 2015 00:56:38 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH 08/14] hrtimer: Allow hrtimer::function() to free the timer |
| |
On 06/08, Oleg Nesterov wrote: > > And I simply can not understand the complication in hrtimer_active(), > please help!
Sorry for another off-topic email, but I don't even understand the usage of hrtimer_active().
Say, do_nanosleep()
hrtimer_start_expires(&t->timer, mode); if (!hrtimer_active(&t->timer)) t->task = NULL;
why? Assuming that hrtimer_active() is correct, it can only return false if t->task was already cleared by hrtimer_wakeup().
OTOH. perf_cpu_hrtimer_restart() does
if (hrtimer_active(hr)) return;
if (!hrtimer_callback_running(hr)) __hrtimer_start_range_ns(...);
why it can't simply do
if (!hrtimer_active(hr)) // implies !hrtimer_callback_running() __hrtimer_start_range_ns(...);
Confused.
Oleg.
| |