It seems that lstopo can get mightly confused with AMD Athlon II processor (family 10h) that doesn't have L3 cache.
I believe that the following patch should fix that: --- src/topology-x86.c.orig 2011-04-10 10:38:39.370239628 +0300 +++ src/topology-x86.c 2011-04-10 10:38:44.573256245 +0300 @@ -59,10 +59,6 @@ unsigned cachenum; unsigned size = 0; - cachenum = infos->numcaches++; - infos->cache = realloc(infos->cache, infos->numcaches*sizeof(*infos->cache)); - cache = &infos->cache[cachenum]; - if (level == 1) size = ((cpuid >> 24)) << 10; else if (level == 2) @@ -72,6 +68,10 @@ if (!size) return; + cachenum = infos->numcaches++; + infos->cache = realloc(infos->cache, infos->numcaches*sizeof(*infos->cache)); + cache = &infos->cache[cachenum]; + cache->type = 1; cache->level = level; if (level <= 2) Otherwise, numcaches gets incremented and the cache array grows a new entry, but that new entry is not initialized. Maybe this is an OS or envrionment specific problem, but at least here on FreeBSD the new memory is not zero-ed out and POSIX doesn't require realloc to do that. This report is for the version 1.1.2. Apologies for the noise if this problem is already fixed in newer code. Thanks! -- Andriy Gapon