[BUG] dw_wdt watchdog on linux-rt 4.18.5-rt4 not triggering

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

 




Hi all!

I'm seeing an issue with the dw_wdt watchdog on the SoCFPGA ARM platform with the latest linux-rt v4.18.5-rt4. Actually I seem to have the same problem, that these patches try to fix:

 38a1222ae4f364d5bd5221fe305dbb0889f45d15
 Author:     Christophe Leroy <christophe.leroy@xxxxxx>
 AuthorDate: Fri Dec 8 11:18:35 2017 +0100
 Commit:     Wim Van Sebroeck <wim@xxxxxxxxx>
 CommitDate: Thu Dec 28 20:45:57 2017 +0100

 Follows:    v4.15-rc3 (345)
 Precedes:   v4.16-rc1 (13997)

 watchdog: core: make sure the watchdog worker always works

When running a command like 'chrt -f 50 dd if=/dev/zero of=/dev/null',
 the watchdog_worker fails to service the HW watchdog and the
 HW watchdog fires long before the watchdog soft timeout.

 At the moment, the watchdog_worker is invoked as a delayed work.
 Delayed works are handled by non realtime kernel threads. The
 WQ_HIGHPRI flag only increases the niceness of that threads.

This patch replaces the delayed work logic by kthread delayed work, and sets the associated kernel task to SCHED_FIFO with the highest priority, in order to ensure that the watchdog worker will run as
 soon as possible.


 1ff688209e2ed23f699269b9733993e2ce123fd2
 Author:     Christophe Leroy <christophe.leroy@xxxxxx>
 AuthorDate: Thu Jan 18 12:11:21 2018 +0100
 Commit:     Wim Van Sebroeck <wim@xxxxxxxxx>
 CommitDate: Sun Jan 21 12:44:59 2018 +0100

 Follows:    v4.15-rc3 (349)
 Precedes:   v4.16-rc1 (13993)

 watchdog: core: make sure the watchdog_worker is not deferred

commit 4cd13c21b207e ("softirq: Let ksoftirqd do its job") has the effect of deferring timer handling in case of high CPU load, hence
 delaying the delayed work allthought the worker is running which
 high realtime priority.

 As hrtimers are not managed by softirqs, this patch replaces the
delayed work by a plain work and uses an hrtimer to schedule that work.


If I run the same test or 'chrt 50 hackbench 20 -l 150' or any task where I change the prio with chrt and that runs long enough, I get a system reset from the watchdog because it times out. This only happens if the watchdog is already enabled on boot and CONFIG_PREEMPT_RT_FULL is set.

Any idea if I'm missing something essential? If I understand it correctly, the two commits fix the framework and therefore the dw_wdt driver doesn't need any updates.


Best regards,
Steffen

--
Pengutronix e.K. | Steffen Trumtrar | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany| Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555|



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux