* [PATCH v3 1/2] cyclic: replace uint64_t by u64 suggested by b4
2026-07-06 16:06 ` [PATCH v3 0/2] cyclic: update and optimization Patrice Chotard
@ 2026-07-06 16:06 ` Patrice Chotard
2026-07-06 16:06 ` [PATCH v3 2/2] cyclic: reduce get_timer_us() calls inside hlist_for_each_entry_safe() Patrice Chotard
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Patrice Chotard @ 2026-07-06 16:06 UTC (permalink / raw)
To: u-boot
Cc: Stefan Roese, Tom Rini, Marek Vasut, Patrice Chotard,
Rasmus Villemoes
For new patch, b4 is suggested to replace type 'uint64_t' by 'u64' :
CHECK: Prefer kernel type 'u64' over 'uint64_t'
Update cyclic.c accordingly in order to be coherent with following commit.
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Marek Vasut <marek.vasut@mailbox.org>
Cc: Marek Vasut <marek.vasut@mailbox.org>
---
common/cyclic.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/cyclic.c b/common/cyclic.c
index ec952a01ee1..b37cd6d8ff0 100644
--- a/common/cyclic.c
+++ b/common/cyclic.c
@@ -41,7 +41,7 @@ static bool cyclic_is_registered(const struct cyclic_info *cyclic)
}
void cyclic_register(struct cyclic_info *cyclic, cyclic_func_t func,
- uint64_t delay_us, const char *name)
+ u64 delay_us, const char *name)
{
cyclic_unregister(cyclic);
@@ -67,7 +67,7 @@ static void cyclic_run(void)
{
struct cyclic_info *cyclic;
struct hlist_node *tmp;
- uint64_t now, cpu_time;
+ u64 now, cpu_time;
/* Prevent recursion */
if (gd->flags & GD_FLG_CYCLIC_RUNNING)
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH v3 2/2] cyclic: reduce get_timer_us() calls inside hlist_for_each_entry_safe()
2026-07-06 16:06 ` [PATCH v3 0/2] cyclic: update and optimization Patrice Chotard
2026-07-06 16:06 ` [PATCH v3 1/2] cyclic: replace uint64_t by u64 suggested by b4 Patrice Chotard
@ 2026-07-06 16:06 ` Patrice Chotard
2026-07-06 17:28 ` [PATCH v3 0/2] cyclic: update and optimization Rasmus Villemoes
2026-07-16 23:25 ` Tom Rini
3 siblings, 0 replies; 5+ messages in thread
From: Patrice Chotard @ 2026-07-06 16:06 UTC (permalink / raw)
To: u-boot
Cc: Stefan Roese, Tom Rini, Marek Vasut, Patrice Chotard,
Rasmus Villemoes
On STM32MP157C-DK2, when using the "ums" command, in sleep_thread(),
ctrlc() is called every ~640ms which doesn't allows high reactivity when
user press CTRL+C in U-Boot console.
In sleep_thread() loop, ctrlc() is called every 200000 iterations.
But schedule is called on each loop iteration.
Optimize cyclic_run() in order to not call get_timer_us() on each entry.
This allow to save computation time :
_ before : ctrlc() is called every ~640ms
_ after : ctrlc() is called every ~230ms
Signed-off-by: Rasmus Villemoes <rv@rasmusvillemoes.dk>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marek.vasut@mailbox.org>
---
common/cyclic.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/common/cyclic.c b/common/cyclic.c
index b37cd6d8ff0..573e715587d 100644
--- a/common/cyclic.c
+++ b/common/cyclic.c
@@ -67,26 +67,28 @@ static void cyclic_run(void)
{
struct cyclic_info *cyclic;
struct hlist_node *tmp;
- u64 now, cpu_time;
+ u64 now, after, cpu_time;
/* Prevent recursion */
if (gd->flags & GD_FLG_CYCLIC_RUNNING)
return;
gd->flags |= GD_FLG_CYCLIC_RUNNING;
+ now = get_timer_us(0);
hlist_for_each_entry_safe(cyclic, tmp, cyclic_get_list(), list) {
/*
* Check if this cyclic function needs to get called, e.g.
* do not call the cyclic func too often
*/
- now = get_timer_us(0);
if (time_after_eq64(now, cyclic->next_call)) {
/* Call cyclic function and account it's cpu-time */
cyclic->next_call = now + cyclic->delay_us;
cyclic->func(cyclic);
+ after = get_timer_us(0);
cyclic->run_cnt++;
- cpu_time = get_timer_us(0) - now;
+ cpu_time = after - now;
cyclic->cpu_time_us += cpu_time;
+ now = after;
/* Check if cpu-time exceeds max allowed time */
if ((cpu_time > CONFIG_CYCLIC_MAX_CPU_TIME_US) &&
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH v3 0/2] cyclic: update and optimization
2026-07-06 16:06 ` [PATCH v3 0/2] cyclic: update and optimization Patrice Chotard
2026-07-06 16:06 ` [PATCH v3 1/2] cyclic: replace uint64_t by u64 suggested by b4 Patrice Chotard
2026-07-06 16:06 ` [PATCH v3 2/2] cyclic: reduce get_timer_us() calls inside hlist_for_each_entry_safe() Patrice Chotard
@ 2026-07-06 17:28 ` Rasmus Villemoes
2026-07-16 23:25 ` Tom Rini
3 siblings, 0 replies; 5+ messages in thread
From: Rasmus Villemoes @ 2026-07-06 17:28 UTC (permalink / raw)
To: Patrice Chotard; +Cc: u-boot, Stefan Roese, Tom Rini, Marek Vasut
On Mon, Jul 06 2026, "Patrice Chotard" <patrice.chotard@foss.st.com> wrote:
> First patch is replacing uint64_t by u64 as suggested by b4
> Second patch optimizes cyclic_run() to parse cyclic list only
> if a cyclic function's timestamp is elapsed.
In case the cover letter is used as a merge commit message, note that the
latter description is no longer accurate.
Rasmus
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 0/2] cyclic: update and optimization
2026-07-06 16:06 ` [PATCH v3 0/2] cyclic: update and optimization Patrice Chotard
` (2 preceding siblings ...)
2026-07-06 17:28 ` [PATCH v3 0/2] cyclic: update and optimization Rasmus Villemoes
@ 2026-07-16 23:25 ` Tom Rini
3 siblings, 0 replies; 5+ messages in thread
From: Tom Rini @ 2026-07-16 23:25 UTC (permalink / raw)
To: u-boot, Patrice Chotard; +Cc: Stefan Roese, Marek Vasut, Rasmus Villemoes
On Mon, 06 Jul 2026 18:06:07 +0200, Patrice Chotard wrote:
> First patch is replacing uint64_t by u64 as suggested by b4
> Second patch optimizes cyclic_run() to parse cyclic list only
> if a cyclic function's timestamp is elapsed.
>
> To: u-boot@lists.denx.de
> Cc: Stefan Roese <stefan.roese@mailbox.org>
> Cc: Tom Rini <trini@konsulko.com>
> Cc: Marek Vasut <marek.vasut@mailbox.org>
>
> [...]
Applied to u-boot/main, thanks!
[1/2] cyclic: replace uint64_t by u64 suggested by b4
commit: 08af4faa0f0eac4622e52e699729bd157d6d806a
[2/2] cyclic: reduce get_timer_us() calls inside hlist_for_each_entry_safe()
commit: 9c1b13b3fd271500cd8a61f86816d822e4852a90
--
Tom
^ permalink raw reply [flat|nested] 5+ messages in thread