[PATCH v3 0/5] video: Improve syncing performance with cyclic

Simon Glass sjg at chromium.org
Wed Jul 31 16:43:51 CEST 2024


Hi,

On Wed, 31 Jul 2024 at 08:41, Simon Glass <sjg at chromium.org> wrote:
>
> Now that U-Boot has a background-processing feature, it is possible to
> reduce the amount of 'foreground' syncing of the display. At present
> this happens quite often.
>
> Foreground syncing blocks all other processing, sometimes for 10ms or
> more. When pasting commands into U-Boot over the UART, this typically
> result in characters being dropped. For example, on rpi_4 it isn't
> possible to paste in more than 35 characters before things fail. This
> makes updating the environment or entering long commands very painful
> over the console, since text must be pasted in chunks, or the
> vidconsole device must be dropped from stdout.
>
> This series introduces background syncing, enabled by default for
> boards which use video. The sync rates for foreground and background
> are configurable.
>
> With this series it is possible to paste in any amount of text to the
> command line. Some sandbox-specific workarounds can now be removed and
> sandbox video (./u-boot -Dl) is significantly more responsive.
>
> This obviously increases code size, since it enables a subsystem not
> normally used by default. However it only applies to boards which have
> VIDEO enabled, which are presumably less worried about memory space
> since the video code is fairly large.
>
> Also it is possible to disable CMD_CYCLIC and reduce the growth to:
>
>    aarch64: (for 1/1 boards) all +1081.0 rodata +65.0 text +1016.0
>        arm: (for 1/1 boards) all +945.0 rodata +65.0 text +880.0
>
> Without that, the increase doubles.
>
> It is of course possible to disable CYCLIC and still use VIDEO but this
> reverts to the current behaviour
>
> Changes in v4:
> - Imply SPL_CYCLIC if WATCHDOG is enabled
>
> Changes in v3:
> - Drop inclusion of kconfig.h in cyclic.h
> - Adapt to new cyclic API
>
> Changes in v2:
> - Add an SPL_CYCLIC symbol
> - Add a lot more explanation about the header files
> - Expand help for CONFIG_VIDEO
> - Fix 'groth' and 'work-around' typos in cover letter
>
> Simon Glass (5):
>   cyclic: Add a symbol for SPL
>   video: Move last_sync to private data
>   video: Use cyclic to handle video sync
>   sandbox: Increase cyclic CPU-time limit
>   sandbox: Drop video-sync in serial driver
>
>  common/Kconfig                    |  9 ++++++
>  common/Makefile                   |  2 +-
>  drivers/serial/sandbox.c          |  2 --
>  drivers/video/Kconfig             | 35 +++++++++++++++++++++
>  drivers/video/video-uclass.c      | 52 +++++++++++++++++++++++++------
>  drivers/watchdog/Kconfig          |  2 ++
>  include/asm-generic/global_data.h |  2 +-
>  include/cyclic.h                  |  5 +--
>  include/video.h                   |  2 ++
>  9 files changed, 96 insertions(+), 15 deletions(-)
>
> --
> 2.34.1
>

That should be v4, so I will resend this.

Regards,
Simon


More information about the U-Boot mailing list