Re: Problem with hrtimer_cancel() does not cancel timer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On v4.9.11-rt9 with PREEMPT FULL this test also fails.

On Sat, 18 Feb 2017 01:15:22 +0300
Alexander Gerasiov <gq@xxxxxxxxx> wrote:

> Hello folks,
> 
> I met some problem with preempt version of kernel 4.4.
> 
> I have hrtimer which runs callback, it forwards time and returns
> HRTIMER_RESTART. Very common scheme. When I stop the routine I call
> hrtimer_cancel(). It should wait for callback completion if any and
> unqueue any future timers.
> 
> But suddenly I noticed, that sometimes hrtimer's routine continue to
> work and work after hrtimer_cancel(). It could be reproduced with
> simple test:
> 
> Start hrtimer.
> In callback increase counter and restart.
> In the other thread cancel timer, save counter, sleep, check that
> counter is not changed, restart timer, repeat.
> Here is sample module:
> https://gist.github.com/gerasiov/010e6c2cb96fd891c1802facf816fe84
> 
> It works OK on v3.10.74-rt79 with PREEMPL FULL.
> It works OK on v4.4.47-rt59 with preempt patch but PREEMPT NONE.
> But on 4.4 (tested on v4.4.47-rt59 and v4.4.32-rt43) with PREEMPT FULL
> it fails: counter continue to increase (BUG_ON() line 45 hits), that
> means that hrtimer continue to work after cancel(). And I must say,
> that this is not single iteration, it continues to work in cycle.
> 
> It was reproduced on i386 SMP box.
> kernel config:
> https://github.com/redlab-i/linux/blob/v4.4.47-rt59-stand2/.config
> 
> Do anyone have any ideas where could be the problem? Or may be I
> missed something in my research?
> 

-- 
Best regards,
 Dmitry Zlobin
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux