On Wed, Oct 21, 2020 at 3:13 AM Peter Zijlstra <pet...@infradead.org> wrote: > > On Tue, Oct 20, 2020 at 01:57:04PM -0700, Xi Wang wrote: > > > + if (watchdog_touch_with_sched) { > > + /* Trigger reschedule for the next round */ > > + set_tsk_need_resched(current); > > + set_preempt_need_resched(); > > Blergh.. that's gross. This relies on this being in IRQ context and > either: PREEMPT=y *OR* this always being from userspace. Otherwise > there's no guarantee the return-from-interrupt will actually schedule. >
Maybe I missed something but I think immediate rescheduling is not required? E.g. software watchdog should fire if there is a kernel busy loop and kernel preemption is not enabled. The current method ends up with a thread wakeup so there is no guaranteed reschedule either? -Xi