wangchdo commented on code in PR #17308:
URL: https://github.com/apache/nuttx/pull/17308#discussion_r2517391659


##########
sched/wdog/wd_start.c:
##########
@@ -313,6 +313,32 @@ int wd_start_abstick(FAR struct wdog_s *wdog, clock_t 
ticks,
 
   reassess |= wd_insert(wdog, ticks, wdentry, arg);
 
+  /* If the new watchdog expiration time is earlier than the current system
+   * time, trigger a timer interrupt manually. This ensures that the system
+   * processes the watchdog immediately instead of waiting for the next tick.
+   */
+
+  if (clock_compare(wdog->expired, clock_systime_ticks()))
+    {
+#  ifdef CONFIG_ARCH_HAVE_IRQTRIGGER
+      if (up_timer_trigger() != OK)

Review Comment:
   I plan to use up_alarm_start() or up_timer_start() to fix the watchdog issue 
in this PR.
   However, I believe up_timer_trigger() is still necessary. The PR 
[#17276](https://github.com/apache/nuttx/pull/17276)
    does not provide a similar capability, and the new .start_absolute API can 
still be problematic — the specified absolute timer count value might be 
earlier than the current timer count value.
   
   Therefore, I proposed [#17318](https://github.com/apache/nuttx/pull/17318) 
to introduce up_timer_trigger() separately, so that reviews can focus on this 
topic specifically.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to