Major memory performance decline from u-boot to barebox
Lucas Stach
l.stach at pengutronix.de
Mon Jul 8 05:04:00 PDT 2024
Am Montag, dem 08.07.2024 um 13:41 +0200 schrieb Enrico Scholz:
> Lucas Stach <l.stach at pengutronix.de> writes:
>
> > > I have a karo tx6s module (imx6s, 512 MiB RAM) which is shipped with an
> > > ancient u-boot 2015 bootloader.
> > >
> > > barebox 2024.07 works out-of-the box on it. But under the booted linux
> > > system a see a major regression in memory performance.
> >
> > The most likely cause is that Barebox applies the workaround for ARM
> > erratum 845369, which has a major impact on streaming writes and thus
> > both memset and memcpy performance. The old U-Boot probably does not
> > include this workaround.
> >
> > You may check this theory by removing the call to
> > enable_arm_errata_845369_war in imx6_cpu_lowlevel_init.
>
> Thanks; after disabling this workaround, benchmarks are reporting high
> numbers again.
>
Note that while benchmarks are affected heavily, most real workloads
don't exhibit a dramatic loss in performance, at least when they don't
move a lot of data via the CPU, which is a bad idea on this platform
anyway.
> Would it make sense to enable this workaround conditionally? E.g. the
> imx6s is not affected by this erratum because it has only one core and
> no ACP.
Yes, this might make sense. The call activating the workaround in
imx6_cpu_lowlevel_init could be guarded by reading the number of
available CPU cores from the SCU, only installing the workaround if
there is more than a single CPU present.
Regards,
Lucas
More information about the barebox
mailing list