mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
To: barebox@lists.infradead.org
Subject: Major memory performance decline from u-boot to barebox
Date: Mon, 08 Jul 2024 12:22:52 +0200	[thread overview]
Message-ID: <lyjzhwxjwj.fsf@ensc-pc.intern.sigma-chemnitz.de> (raw)

Hello,

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.

E.g. u-boot has

| # hdparm -tT /dev/mmcblk3
|  Timing cached reads:   1236 MB in  2.00 seconds = 618.46 MB/sec

while barebox shows only

|  Timing cached reads:    574 MB in  2.00 seconds = 287.08 MB/sec


Running tinymembench[1] shows that pure memory read operations are not
affected; e.g. both variants report around

|  NEON read                                           :   1398.5 MB/s


But write operations differ by a factor of 4-5:

| standard memset                                      :   2054.4 MB/s

on u-boot vs. barebox with

| standard memset                                      :    472.7 MB/s


I modified barebox to use the same DCD like u-boot; resulting MMDC
registers are nearly identical[2].  /sys/kernel/debug/clk/clk_summary
is also nearly the same (only LVDS1_SEL (unused) has another parent).
TZASC is not used.  GPRx registers are identical.

Systems are running with linux 6.6 and master on an initrd.

Disabling L2 cache in linux slows down things, but the relative results
are similar (no difference in read, memset 322.3 MB/s -> 728.5 MB/s).

Building barebox with CONFIG_MMU disabled makes no difference.


Looking at another iMX6 system shows similar bad numbers for barebox.
E.g. an iMX6QP has a memset rate of 613.6 MB/s.  But I do not have
u-boot available for comparision.


What could be the reason the u-boot is so much faster?  Which memory
related settings are carried over from the bootloader to linux?  What
could I test else?



Enrico

Footnotes:
[1]  https://github.com/ssvb/tinymembench, from OE scarthgap

[2]  -0x021b0848: 0x484c494b
     +0x021b0848: 0x474b4a4b
     -0x021b084c: 0x2a2d2b2c
     +0x021b084c: 0x2a2c2c2c
     -0x021b0868: 0x791a7e18
     +0x021b0868: 0x7a1a7e18
     -0x021b086c: 0x7a177e1a
     +0x021b086c: 0x78177c1a

     - --> barebox,  + --> u-boot



             reply	other threads:[~2024-07-08 10:24 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-08 10:22 Enrico Scholz [this message]
2024-07-08 10:53 ` Lucas Stach
2024-07-08 11:41   ` Enrico Scholz
2024-07-08 12:04     ` Lucas Stach

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=lyjzhwxjwj.fsf@ensc-pc.intern.sigma-chemnitz.de \
    --to=enrico.scholz@sigma-chemnitz.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox