Tartarus changed the topic of #u-boot to: SOURCE MOVED TO https://source.denx.de/u-boot/u-boot.git / U-Boot v2021.10 is OUT / Merge Window is OPEN until 25 October 2021 / Release v2022.01 is scheduled for 10 January 2022 / http://www.denx.de/wiki/U-Boot / Channel archives at https://libera.irclog.whitequark.org/u-boot
pbergin has quit [Remote host closed the connection]
pbergin has joined #u-boot
pbergin has quit [Remote host closed the connection]
pbergin has joined #u-boot
pbergin has quit [Remote host closed the connection]
pbergin has joined #u-boot
pbergin has quit [Remote host closed the connection]
pbergin has joined #u-boot
pbergin has quit [Remote host closed the connection]
pbergin has joined #u-boot
pbergin has quit [Remote host closed the connection]
pbergin has joined #u-boot
pbergin has quit [Remote host closed the connection]
pbergin has joined #u-boot
pbergin has quit [Ping timeout: 252 seconds]
mmu_man has quit [Ping timeout: 240 seconds]
qastokes has quit [Ping timeout: 260 seconds]
camus1 has joined #u-boot
camus has quit [Ping timeout: 250 seconds]
camus1 is now known as camus
camus has quit [Ping timeout: 260 seconds]
camus has joined #u-boot
samekh_ has quit [Ping timeout: 265 seconds]
samekh has joined #u-boot
sdfgsdfg has joined #u-boot
sdfgsdfg has quit [Quit: ZzzZ]
camus has quit [Ping timeout: 252 seconds]
camus has joined #u-boot
sdfgsdfg has joined #u-boot
camus has quit [Ping timeout: 252 seconds]
camus has joined #u-boot
milkylainen has quit [Quit: Ping timeout (120 seconds)]
v0|d` has joined #u-boot
v0|d has quit [Ping timeout: 265 seconds]
tlwoerner_ has quit [Quit: Leaving]
tlwoerner_ has joined #u-boot
tlwoerner_ has quit [Remote host closed the connection]
tlwoerner has joined #u-boot
sdfgsdfg has quit [Quit: ZzzZ]
fdanis_away is now known as fdanis
camus1 has joined #u-boot
camus has quit [Ping timeout: 260 seconds]
camus1 is now known as camus
mmu_man has joined #u-boot
agust has joined #u-boot
milkylainen_ has quit [Ping timeout: 252 seconds]
_whitelogger has joined #u-boot
milkylainen has joined #u-boot
guillaume_g has joined #u-boot
mmu_man has quit [Ping timeout: 240 seconds]
sdfgsdfg has joined #u-boot
sszy has joined #u-boot
sbach has quit [Read error: Connection reset by peer]
sbach has joined #u-boot
michalkotyla has joined #u-boot
milkylainen has quit [Remote host closed the connection]
pbergin has joined #u-boot
apritzel_ has joined #u-boot
sstiller has joined #u-boot
matthias_bgg has joined #u-boot
pgreco_ is now known as pgreco
sdfgsdfg has quit [Quit: ZzzZ]
pbergin has quit [Ping timeout: 260 seconds]
guillaume_g has quit [Ping timeout: 260 seconds]
tre has joined #u-boot
milkylainen has joined #u-boot
pbergin has joined #u-boot
pbergin_ has joined #u-boot
pbergin has quit [Ping timeout: 260 seconds]
tnovotny has joined #u-boot
jwillikers has joined #u-boot
guillaume_g has joined #u-boot
jwillikers has quit [Remote host closed the connection]
jwillikers has joined #u-boot
camus has quit [Ping timeout: 260 seconds]
camus has joined #u-boot
jwillikers has quit [Remote host closed the connection]
pbergin__ has joined #u-boot
pbergin_ has quit [Ping timeout: 260 seconds]
tre has quit [Remote host closed the connection]
sicelo_ has joined #u-boot
sicelo_ has quit [Client Quit]
sicelo_ has joined #u-boot
sicelo_ has joined #u-boot
sicelo_ has quit [Changing host]
camus has quit [Ping timeout: 268 seconds]
cpringle has joined #u-boot
<cpringle> Hi Folks. I'm upgrading U-boot on an IMX6Q from 2016.07 to 2021.07. The port is complete and working, but after booting Linux, I've noticed that memcpy speeds are about 30% longer with 2021.07. I've checked that the DCDs are the same across both, that the write cache policy is unchanged and that there are no platform-specific clock settings/patches that have been changed. Anyone got any thoughts on
cpackham[m] has joined #u-boot
kallisti5[m] has joined #u-boot
Dhruvagole[m] has joined #u-boot
MartijnBraam[m] has joined #u-boot
<cpringle> what else would be worth looking into to explain the memcpy performance drop? [FYI, my kernel/OS/kernel-cmdline setup is exactly the same in both runs of the test, only the U-boot version is changed so pretty sure it's something to do with platform setup that is wrong). Also checked config settings between both to make sure things like errata workarounds are identical
<milkylainen> cpringle: Memory controller settings? I mean. The DCD settings might or might not be used / overwritten etc. Just a guess.
<milkylainen> 30% sounds a bit steep though.
<cpringle> I checked that the DCD settings were present (and identical) in the header of the .imx so I think they should be being applied by the IMX at boot. They could be being overwritten by something in U-boot I guess. I'm wondering if there is a misconfigured DDR freq or something related to the frequency scaling which is different between those versions of u-boot and needs explicit
<cpringle> configuration/patching.
mmu_man has joined #u-boot
marc1 has joined #u-boot
<cpringle> U-boot "clocks" command shows the same frequencies for all clocks - so looks like they are good.
torez has joined #u-boot
torez has quit [Quit: torez]
torez has joined #u-boot
fdanis is now known as fdanis_away
sstiller has quit [Quit: Leaving]
redbrain has joined #u-boot
<cambrian_invader> cpringle: are you using DMA for memcpy?
<cambrian_invader> iirc on imx6 the dma has its own firmware; perhaps it needs updating/downgrading
<cambrian_invader> if you're not using SPL then the memory controller settings aren't touched by U-Boot
<cpringle> It should be using sdma for memcpy. As the kernel/OS/cmdline is identical, wouldn't that be the same regardless of what version of u-boot I'm using? Or is there some SDMA setup in U-boot?
<cpringle> Tried forward porting both clock.c and cpu.c from the original U-boot and made no difference so far.
<cpringle> Not using SPL
sszy has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
smartin has joined #u-boot
<cpringle> Had a grep through both codebases and can't see anything obvious to do with SDMA setup on IMX6.
sicelo_ has quit [Remote host closed the connection]
mmu_man has quit [Ping timeout: 250 seconds]
<cpringle> Anyone got any other thoughts on what could be causing the memcpy slowdown? If put aside SDMA and DDR for a moment, what else is U-boot responsible for that could cause a performance regression for memcpy?
persmule has quit [Ping timeout: 276 seconds]
persmule has joined #u-boot
nexgen has joined #u-boot
nexgen2 has joined #u-boot
nexgen has quit [Client Quit]
nexgen2 has quit [Remote host closed the connection]
nexgen has joined #u-boot
matthias_bgg has quit [Quit: Leaving]
camus has joined #u-boot
redbrain has quit [Ping timeout: 250 seconds]
nexgen has quit [Quit: Leaving]
nexgen has joined #u-boot
nexgen has quit [Read error: Connection reset by peer]
nexgen has joined #u-boot
nexgen has quit [Read error: Connection reset by peer]
nexgen has joined #u-boot
camus has quit [Ping timeout: 240 seconds]
camus has joined #u-boot
nexgen has quit [Remote host closed the connection]
nexgen has joined #u-boot
mmu_man has joined #u-boot
vagrantc has joined #u-boot
apritzel_ has quit [Ping timeout: 256 seconds]
nexgen has quit [Quit: Leaving]
nexgen has joined #u-boot
<Tartarus> cpringle: is it between two vendor versions of U-Boot or ? It sounds like something to git bisect if you have a reproducer
persmule has quit [Ping timeout: 276 seconds]
<cpringle> Technically yes, as its comparing the Freescale/NXP branch with mainline - but I've already been through the differences and there's nothing in there that should cause what I'm seeing. Binary chopping is the next task I think - I deliberately avoided that as a first step as it's not quick to do and will require me to slim down our BSP quite considerably so that I can easily port it between U-boot
<cpringle> versions (latest BSP uses the driver model, whereas the older one does not).
<Tartarus> And it's memcpy outside of U-Boot, right?
persmule has joined #u-boot
<Tartarus> Like one thing that can be it is that hey, asm memcpy/etc in U-Boot is a CONFIG option, but you probably wouldn't have overlooked that
<cpringle> I think the asm memcpy in U-boot only impacts U-boot. Its enabled in both though.
<cpringle> And to answer your earlier question - yes it's memcpy in Linux. Not tried it in U-boot - that's maybe a good thing to try as would simplify what I need to get working when binary chopping u-boot versions
cpringle has quit [Ping timeout: 240 seconds]
cpringle has joined #u-boot
mmu_man has quit [Ping timeout: 240 seconds]
guillaume_g has quit [Quit: Konversation terminated!]
<marex> cpringle: PL310 L2 cache controller is enabled ?
<marex> cpringle: full line of zeroes optimization bit is toggled ?
vagrantc has quit [Quit: leaving]
smartin has quit [Read error: Connection reset by peer]
smartin has joined #u-boot
tnovotny has quit [Quit: Leaving]
<EdSwarthout> Has anyone used the Sandbox network? Ping to any IP says "is alive" but tftpboot times out
<cpringle> PL310 L2 cache controller is enabled (part of mx6_common.h, which I also tried forward-porting to reduce changeset between the U-boot versions).
<cpringle> What's the easiest way to check the full line of zeros optimization bit?
nexgen has quit [Quit: Leaving]
nexgen has joined #u-boot
<marex> cpringle: hold on
<marex> /* enable BRESP, instruction and data prefetch, full line of zeroes */
<marex> L310_AUX_CTRL_DATA_PREFETCH_MASK |
<marex> L310_AUX_CTRL_INST_PREFETCH_MASK |
<marex> setbits_le32(&pl310->pl310_aux_ctrl,
<marex> L310_SHARED_ATT_OVERRIDE_ENABLE);
<marex> cpringle: the imx L2 cache init does more stuff in arch/arm/mach-imx/cache.c v7_outer_cache_enable() , so make sure it is called
<marex> is it ?
mmu_man has joined #u-boot
<marex> cpringle: oh look, Linux even has arch/arm/mm/cache-l2x0.c l2c310_enable() 623 if (cortex_a9 && !l2x0_flz_disable) {
<marex> flz -- full line of zeroes
<marex> cpringle: so actually, run dmesg | grep L2C.310 and see if there is anything interesting
<marex> also check if you have CONFIG_CACHE_L2X0 enabled in Linux
<cpringle> Thanks - just checking u-boot now. Definitely some differences in that function between the 2 u-boot versions. Will check Linux shortly to
<cpringle> *too
<marex> cpringle: the kernel boot log might give you some hint too
<marex> (and the PL310 regs too, you can read them using => md 0xregister , they are memory mapped )
<cpringle> v7_outer_cache_enable is definitely being called (trace statements printed). Checked Linux dmesg and a few L2C messages (nothing ominous and identical messages regardless of u-boot version used). Good shout on reading the register addresses - will do that to see if I can see any differences
<marex> cpringle: did you try and find out what it is that is slow exactly, the memory read or the memory write ?
<marex> lmbench would tell you
smartin has quit [Ping timeout: 268 seconds]
jsmolic has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
jsmolic has joined #u-boot
<cpringle> No I didn't yet. I'll try with lmbench and see what that shows up
pbergin__ has quit [Ping timeout: 250 seconds]
<cpringle> lmbench not behaving and need to figure out why before I can make much more progress with that. Thanks for your help - few things to look at on Monday. If you (or anyone else) has any other ideas of things to check that'd be great. Thanks again and have a great weekend
nexgen has quit [Read error: Connection reset by peer]
nexgen has joined #u-boot
agust has quit [Quit: Leaving.]
persmule has quit [Ping timeout: 276 seconds]
persmule has joined #u-boot
torez has quit [Quit: torez]