
Hi Joe,
On 12/12/2012 05:16 AM, Joe Hershberger wrote:
Add support for per-variable callbacks to the "hashtable" functions.
I just noticed using latest master branch that booting on a NOR flash based board (sequoia, PPC440EPx based) a quite big delay (1..2 seconds) is added upon env_relocate() (real delay happens in himport_r()). Digging a bit deeper results in this patch (170ab11 [env: Add support for callbacks to environment vars]) started this regression:
[ 36.208317] < 0.004802> U-Boot 2013.01-rc1-00385-g170ab11 (Jan 11 2013 - 08:58:59) [ 36.209012] < 0.000695> [ 36.215956] < 0.006944> CPU: AMCC PowerPC 440EPx Rev. A at 528 MHz (PLB=132 OPB=66 EBC=66 PCI=33 MHz) [ 36.218730] < 0.002774> Security/Kasumi support [ 36.224290] < 0.005560> Bootstrap Option H - Boot ROM Location I2C (Addr 0x52) [ 36.229843] < 0.005553> Internal PCI arbiter enabled, PCI async ext clock used [ 36.232704] < 0.002861> 32 kB I-Cache 32 kB D-Cache [ 36.240869] < 0.008165> Board: Sequoia - AMCC PPC440EPx Evaluation Board, Rev. F, PCI-Async=33 MHz [ 36.242261] < 0.001392> I2C: ready [ 36.648652] < 0.406391> DRAM: 256 MiB [ 36.811658] < 0.163006> Flash: 64 MiB [ 36.813331] < 0.001673> NAND: 32 MiB
himport_r()
[ 37.808800] < 0.995469> PCI: Bus Dev VenId DevId Class Int [ 37.816780] < 0.007980> USB: Host(int phy) Device(ext phy) [ 37.820094] < 0.003314> Net: ppc_4xx_eth0, ppc_4xx_eth1
Here you see the delay in himport_r() is approx 1 second.
And with patch (2598090 [env: Add environment variable flags]) this delay even grows to 2 seconds:
[ 3.096149] < 0.004800> U-Boot 2013.01-rc1-00392-g2598090 (Jan 11 2013 - 08:55:45) [ 3.096853] < 0.000704> [ 3.103805] < 0.006952> CPU: AMCC PowerPC 440EPx Rev. A at 528 MHz (PLB=132 OPB=66 EBC=66 PCI=33 MHz) [ 3.106575] < 0.002770> Security/Kasumi support [ 3.112135] < 0.005560> Bootstrap Option H - Boot ROM Location I2C (Addr 0x52) [ 3.117683] < 0.005548> Internal PCI arbiter enabled, PCI async ext clock used [ 3.120548] < 0.002865> 32 kB I-Cache 32 kB D-Cache [ 3.128716] < 0.008168> Board: Sequoia - AMCC PPC440EPx Evaluation Board, Rev. F, PCI-Async=33 MHz [ 3.130099] < 0.001383> I2C: ready [ 3.536470] < 0.406371> DRAM: 256 MiB [ 3.699894] < 0.163424> Flash: 64 MiB [ 3.701553] < 0.001659> NAND: 32 MiB
himport_r()
[ 5.690365] < 1.988812> PCI: Bus Dev VenId DevId Class Int [ 5.698395] < 0.008030> USB: Host(int phy) Device(ext phy) [ 5.701709] < 0.003314> Net: ppc_4xx_eth0, ppc_4xx_eth1
Joe, I didn't dig deeper into these functions and patches. Do you have an idea why these patches introduce this delay? Can you reproduce this on one of your boards? Has anybody else noticed such issues?
Thanks, Stefan