[U-Boot] Performance of the ARM's PL310 L2 cache.

Lukasz Majewski l.majewski at samsung.com
Fri Aug 17 17:49:53 CEST 2012


Hi Aneesh,

I've enabled the L2 cache for Trats board. Please find results from
performance tests.
The test function as well as my way for enabling L2 are attached to
this e-mail. 

I simply left the default configuration (number of ways, associativity)
as it is at Linux Kernel's driver.

Results:

test_l2_cache() performed once:
L1    L2     TIME [seconds]
OFF   OFF    90,359
ON    OFF    62,236
ON    ON     61,687
 
L1 speedup: ~33 %
L2 speedup (when compared to L1): < 1%

test_l2_cache() performed 5000 times:
L1    L2     TIME [seconds]
OFF   OFF    444,9
ON    OFF    320,55
ON    ON     287,21
 
L1 speedup: ~28 %
L2 speedup (when compared to L1): ~ 10%

Normal u-boot operation (from system startup - up till passing
execution to kernel).

L1    L2     TIME [seconds]
OFF   OFF    1,813
ON    OFF    1,552
ON    ON     1,533

As one can observe, for normal u-boot operation there is no significant
difference.

Have you had similar results with OMAP? 
Do you do more configuration when enabling the L2 at OMAP? 

The assembly code presented below (armv7/omap-common/lowlevel_init.S)
puzzles me a bit...

ENTRY(set_pl310_ctrl_reg)
 LDR	r12, =0x102 @ Set PL310 control register - value in R0
	.word	0xe1600070	@ SMC #0 - hand assembled
				@because -march=armv5
			        @ call ROM Code API to set control
				@ register
ENDPROC(set_pl310_ctrl_reg)

Are there any special operations executed at "ROM Code API"?

-- 
Best regards,

Lukasz Majewski

Samsung Poland R&D Center | Linux Platform Group


More information about the U-Boot mailing list