Revert "console: simplify puts()"
PATCH 1/1 Revert "console: simplify puts()"
This reverts commit c61d0009feb966e0e93254a8c435a1889085e6b8.
A tbs2910 board user reported a very slow console frambuffer as regression in current u-boot. I could bisect this down to the above mentioned commit.
This revert brings back the fast framebuffer console (one cache flush per string in puts(), not after each char).
---
Cc: Masahiro Yamada <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Tom Rini <[email protected]>
Cc: Uwe Scheffler <[email protected]>
Cc: u-boot at lists.denx.de
Tom,
can you pull this in as fix for 2017.11?
Thanks,
Soeren
--- common/console.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-)
common/console.c +42 -2
@@ -450,6 +450,12 @@ static void pre_console_putc(const char c)unmap_sysmem (buffer); } +static void pre_console_puts (const char *s) +{ +while (*s) +pre_console_putc (*s++); +} +static void print_pre_console_buffer (int flushpoint) {unsigned long in =0 , out =0 ;
@@ -477,6 +483,7 @@ static void print_pre_console_buffer(int flushpoint) }#else static inline void pre_console_putc (const char c) {} +static inline void pre_console_puts (const char *s) {}static inline void print_pre_console_buffer (int flushpoint) {}#endif
@@ -518,8 +525,41 @@ void putc(const char c)void puts (const char *s) { -while (*s) -putc (*s++); +#ifdef CONFIG_DEBUG_UART +if (!gd || !(gd->flags &GD_FLG_SERIAL_READY )) { +while (*s) { +int ch = *s++; + +printch (ch); + } +return ; + } +#endif +#ifdef CONFIG_CONSOLE_RECORD +if (gd && (gd->flags &GD_FLG_RECORD ) && gd->console_out.start) +membuff_put (&gd->console_out, s,strlen (s)); +#endif +#ifdef CONFIG_SILENT_CONSOLE +if (gd->flags &GD_FLG_SILENT ) +return ; +#endif + +#ifdef CONFIG_DISABLE_CONSOLE +if (gd->flags &GD_FLG_DISABLE_CONSOLE ) +return ; +#endif + +if (!gd->have_console) +return pre_console_puts (s); + +if (gd->flags &GD_FLG_DEVINIT ) { +/* Send to the standard output */ +fputs (stdout, s); + }else { +/* Send directly to the handler */ +pre_console_puts (s); +serial_puts (s); + } }#ifdef CONFIG_CONSOLE_RECORD
Signature · 1 line
2.7.4
PATCH 1/1 Revert "console: simplify puts()"
Hello,
Am 04.11.2017 um 16:14 schrieb Soeren Moch:
Quoted 7 lines
This reverts commit
c61d0009feb966e0e93254a8c435a1889085e6b8.A tbs2910 board user reported a very slow console frambuffer as regression in current u-boot. I could bisect this down to the above mentioned commit.
Quoted 5 lines
This revert brings back the fast framebuffer console (one cache flush per string in
puts(), not after each char).Reported-by Uwe Scheffler <[email protected]>Signed-off-by Soeren Moch <[email protected]>
Quoted 10 lines
---
Cc: Masahiro Yamada <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Tom Rini <[email protected]>
Cc: Uwe Scheffler <[email protected]>
Cc: u-boot at lists.denx.deTom,
can you pull this in as fix for 2017.11?
The patch works. I have successfully tested with a Matrix-ARM board (TBS2910) Rev-2.1. Thank you, Sören.
Regards,
Uwe
Quoted 79 lines
Thanks,
Soeren--- common/console.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-)common/console.c +42
-2@@ -450,6 +450,12 @@ static void pre_console_putc(const char c)unmap_sysmem (buffer); } +static void pre_console_puts (const char *s) +{ +while (*s) +pre_console_putc (*s++); +} +static void print_pre_console_buffer (int flushpoint) {unsigned long in =0 , out =0 ;@@ -477,6 +483,7 @@ static void print_pre_console_buffer(int flushpoint) }#else static inline void pre_console_putc (const char c) {} +static inline void pre_console_puts (const char *s) {}static inline void print_pre_console_buffer (int flushpoint) {}#endif @@ -518,8 +525,41 @@ void putc(const char c)void puts (const char *s) { -while (*s) -putc (*s++); +#ifdef CONFIG_DEBUG_UART +if (!gd || !(gd->flags &GD_FLG_SERIAL_READY )) { +while (*s) { +int ch = *s++; + +printch (ch); + } +return ; + } +#endif +#ifdef CONFIG_CONSOLE_RECORD +if (gd && (gd->flags &GD_FLG_RECORD ) && gd->console_out.start) +membuff_put (&gd->console_out, s,strlen (s)); +#endif +#ifdef CONFIG_SILENT_CONSOLE +if (gd->flags &GD_FLG_SILENT ) +return ; +#endif + +#ifdef CONFIG_DISABLE_CONSOLE +if (gd->flags &GD_FLG_DISABLE_CONSOLE ) +return ; +#endif + +if (!gd->have_console) +return pre_console_puts (s); + +if (gd->flags &GD_FLG_DEVINIT ) { +/* Send to the standard output */ +fputs (stdout, s); + }else { +/* Send directly to the handler */ +pre_console_puts (s); +serial_puts (s); + } }#ifdef CONFIG_CONSOLE_RECORD Signature · 1 line
2.7.4
PATCH 1/1 Revert "console: simplify puts()"
In reply to Soeren MochQuoted 18 lines · Soeren Moch
This reverts commit
c61d0009feb966e0e93254a8c435a1889085e6b8.A tbs2910 board user reported a very slow console frambuffer as regression in current u-boot. I could bisect this down to the above mentioned commit.
This revert brings back the fast framebuffer console (one cache flush per string in
puts(), not after each char).Reported-by Uwe Scheffler <[email protected]>Signed-off-by Soeren Moch <[email protected]>---
Cc: Masahiro Yamada <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Tom Rini <[email protected]>
Cc: Uwe Scheffler <[email protected]>
Cc: u-boot at lists.denx.de
Quoted 2 lines
Tom,
can you pull this in as fix for 2017.11?
Looks like some of the CC got eaten? Masahiro, Simon, any comments? Thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171106/9b327a67/attachment.sig>
PATCH 1/1 Revert "console: simplify puts()"
2017-11-07 1:50 GMT+09:00 Tom Rini <[email protected]>:
Quoted 20 lines · Soeren Moch
Quoted 19 lines
This reverts commit
c61d0009feb966e0e93254a8c435a1889085e6b8.A tbs2910 board user reported a very slow console frambuffer as regression in current u-boot. I could bisect this down to the above mentioned commit.
This revert brings back the fast framebuffer console (one cache flush per string in
puts(), not after each char).Reported-by Uwe Scheffler <[email protected]>Signed-off-by Soeren Moch <[email protected]>---
Cc: Masahiro Yamada <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Tom Rini <[email protected]>
Cc: Uwe Scheffler <[email protected]>
Cc: u-boot at lists.denx.de
Quoted 6 lines
Quoted 2 lines
Tom,
can you pull this in as fix for 2017.11?Looks like some of the CC got eaten? Masahiro, Simon, any comments? Thanks!
I do not know anything about this board.
Feel free to go ahead if this is a problem.
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 1/1 Revert "console: simplify puts()"
In reply to Soeren MochQuoted 18 lines · Soeren Moch
This reverts commit
c61d0009feb966e0e93254a8c435a1889085e6b8.A tbs2910 board user reported a very slow console frambuffer as regression in current u-boot. I could bisect this down to the above mentioned commit.
This revert brings back the fast framebuffer console (one cache flush per string in
puts(), not after each char).Reported-by Uwe Scheffler <[email protected]>Signed-off-by Soeren Moch <[email protected]>---
Cc: Masahiro Yamada <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Tom Rini <[email protected]>
Cc: Uwe Scheffler <[email protected]>
Cc: u-boot at lists.denx.de
Quoted 8 lines
Tom,
can you pull this in as fix for 2017.11?Thanks,
Soeren--- common/console.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-)
Quoted 6 lines · Soeren Moch
This reverts commit
c61d0009feb966e0e93254a8c435a1889085e6b8.A tbs2910 board user reported a very slow console frambuffer as regression in current u-boot. I could bisect this down to the above mentioned commit.
Quoted 7 lines
This revert brings back the fast framebuffer console (one cache flush per string in
puts(), not after each char).Reported-by Uwe Scheffler <[email protected]>Signed-off-by Soeren Moch <[email protected]>Tested-by Uwe Scheffler <[email protected]>Reviewed-by Simon Glass <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171112/51a44a5d/attachment.sig>