I realize that the resolution of the problem hasn't reached this list. Copied from my post at the Simics forum 13/01/2005: This problem turned to be a somewhat interresting one. The SIGSEGV itself it triggered by a memset that continues past the limit with which is was called. Now, why does that happen? It turns out that the problem is in glibc with the glibc-2.3.3-amd64-string.diff patch applied (the vanilla glibc does not have this problem). Memset in glibc with the applied patch contains this code: LABEL(alignafter): #ifdef PIC mov _rtld_local_ro@GOTPCREL(%rip), %r9 mov RTLD_GLOBAL_DL_CACHE2SIZEHALF(%r9), %r8 # For MP System half cache size is better, for UP full cache size # is better -> use half cache size only #else mov _dl_cache2sizehalf, %r8 #endif cmp %rdx, %r8 cmova %rdx, %r8 LABEL(fasttry): cmp $2048, %rdx # this is slow for some block sizes jb LABEL(64) <skip> LABEL(64): # 64-byte mov %r8, %rcx and $-64, %r8 shr $6, %rcx dec %rcx # this iteration starts the prefetcher sooner mov %rsi, (%rdi) mov %rsi, 8 (%rdi) mov %rsi, 16 (%rdi) mov %rsi, 24 (%rdi) mov %rsi, 32 (%rdi) mov %rsi, 40 (%rdi) mov %rsi, 48 (%rdi) mov %rsi, 56 (%rdi) lea 64 (%rdi), %rdi .p2align 4 LABEL(64loop): dec %rcx mov %rsi, (%rdi) mov %rsi, 8 (%rdi) mov %rsi, 16 (%rdi) mov %rsi, 24 (%rdi) mov %rsi, 32 (%rdi) mov %rsi, 40 (%rdi) mov %rsi, 48 (%rdi) mov %rsi, 56 (%rdi) lea 64 (%rdi), %rdi jnz LABEL(64loop) When run on Simics, this piece of code will fail to exit the loop because rcx wraps around and becomes negative. It becomes negative since _dl_cache2sizehalf is zero on Simics (it's derived from CPUID function 8000.0006). Note that _dl_cache2sizehalf is 32-bit while the comparison in the code loads a 64-bit value, meaning that it will really compare agains a bogus value (there will be leaked bits from another variable). In short, the glibc in Suse 9.2 cannot handle the case when the L2 data cache size is zero. If you consider that a bug in glibc or simics is a matter of personal taste. Future versions of Simics will have user settable values for CPUID function 8000.0006 (I'm currently installing 9.2 with a 4MB L2 cache setting and it's looking ok so far). M. Magnus Christensson wrote:
Hi,
I can confirm the sigsegv when installing suse 9.2 on simics 2.x. It's not a configuration issue. More info will be made available in the thread at www.simics.net when we have found out what the problem is.
Cheers, Magnus Christensson Virtutech
Robert Schiele wrote:
Hello.
Did someone succeed in installing the 64 bit version of SUSE Linux 9.2 on Simics 2.0? For me linuxrc segfaults immediately after being started from the installation media. Is Simics just too broken for installing SUSE Linux 9.2 or is it just me being to stupid writing a working configuration file?
Robert