On 9/15/26 9:12 AM, Patrice CHOTARD wrote:
On 9/14/26 22:34, Marek Vasut wrote:
On 9/14/26 8:45 AM, Patrice CHOTARD wrote:
Hello Patrice,
schedule() execution doesn't takes 70ms.
Moving schedule() from main loop to same level that ctrlc(), it allows to call
ctrlc() every ~70ms.
In the current state, the ctrlc() is called every ... how many ... ms ?
Currently ctrlc() is called every 700ms
How come this trips the watchdog timeout ? What is the watchdog timeout delay
set to in your case ?
In our case, watchdog is set to 32 seconds on STM32MP157c-DK2.
For information, this patch is superseeded by
https://patchwork.ozlabs.org/project/uboot/patch/20260817-move_schedule_inside_sleep_thread-v1-2-0023194e8...@foss.st.com/
Let me ask a different question -- is the problem that this is trying to solve
the responsiveness of ctrl-c , or is the problem that this trips the WDT ?
If the later, how come 700ms cycle trips 32 second timeout WDT ?
(I'm sorry, I feel like I must be missing something obvious here?)
Hi Marek
The goal of this patch is only to solve the responsiveness of CTRL-C.
In that case, I still don't get it. Moving the schedule() into if (k ==
10) won't improve responsiveness of ctrl-c unless schedule takes a long
time, which as far as I understand it, it doesn't.
I would understand this patch which would I believe improve the ctrl-c
responsiveness, without having severe impact on performance:
diff --git a/drivers/usb/gadget/f_mass_storage.c
b/drivers/usb/gadget/f_mass_storage.c
index 7eb667c130d..96581792031 100644
--- a/drivers/usb/gadget/f_mass_storage.c
+++ b/drivers/usb/gadget/f_mass_storage.c
@@ -651,7 +651,7 @@ static void busy_indicator(void)
static int sleep_thread(struct fsg_common *common)
{
int rc = 0;
- int i = 0, k = 0;
+ int i = 0;
/* Wait until a signal arrives or we are woken up */
for (;;) {
@@ -661,10 +661,7 @@ static int sleep_thread(struct fsg_common *common)
if (++i == 20000) {
busy_indicator();
i = 0;
- k++;
- }
- if (k == 10) {
/* Handle START-STOP UNIT */
if (common->eject)
return -EPIPE;
@@ -676,8 +673,6 @@ static int sleep_thread(struct fsg_common *common)
/* Check cable connection */
if (!g_dnl_board_usb_cable_connected())
return -EIO;
-
- k = 0;
}
schedule();