[coreboot] fam10/h8dmr: extreme slowness in CBFS memset / memcpy

Ward Vandewege ward at gnu.org
Mon Jul 20 03:23:21 CEST 2009


Hi all,

I'm working on a fam10 tree for supermicro h8dmr. I'm using CBFS.

It boots, but I'm struggling with some extreme slowness during boot. In
particular, the memset function in src/lib/memset.c takes *minutes* to clear
1.2MB of ram. A little further CBFS does a memcpy which takes another 20 or
30 seconds:

  Stage: load fallback/coreboot_ram @ 2097152/1245184 bytes, enter @ 200000

  ....LOOOOOONG pause....

  Stage: after memset
  on-stack variables at 00ffbec8 and 00ffbed4
  cbfs_decompress: algo: 0
  cbfs_decompress: uncompressed

  ....another lengthy pause....

  cbfs_decompress: memcpy from 0xffbecc to 0xffbed0 for 0x2d304 bytes done
  Stage: done loading.

The first, lengthly pause is new; it is apparently caused by something
introduced between r4368 and r4440.

The second pause was there already in r4368.

I understand this may have something to do with MTRRs - looking at the logs
it seems MTRRs are not set up until well after CBFS has dealt with
coreboot_ram. 

This box has 32GB of ram, in case that makes a difference.

Any suggestions?

Thanks,
Ward.

-- 
Ward Vandewege <ward at gnu.org>




More information about the coreboot mailing list