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


##########
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:
   This new api is to trigger irq instantly, it is very fast(just set irq 
request using sofware), has no delay, no need to consider what is the minimum 
timeout. While up_alarm_start api is time-consuming and has a timeout delay 
before triggering irq, it is also not easy to consider what is the minimum 
timeout - if the timeout is too small maybe the timeout is again earlier than 
the current time.
   
   Since the situation here is that wddog expiration is earlier than current 
time, it should be processed right away, so trigger timer irq instantly may be 
better using this up_timer_trigger.



-- 
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