Aborted L4linux due to CLI/STI

Masti Ramya Jayaram rmasti at inf.ethz.ch
Fri Sep 5 18:12:52 CEST 2014

Dear all,

I get an error during L4linux boot when I enter the debugger (using ESC) and resume:

Aborted L4linux due to CLI/STI at 0x534911. 

When I disassemble this using gdb:

(gdb) disassemble 0x534911
Dump of assembler code for function cmpxchg8b_emu:
   0x00534910 <+0>:	pushf  
   0x00534911 <+1>:	cli    
   0x00534912 <+2>:	cmp    (%esi),%eax
   0x00534914 <+4>:	jne    0x534922 <cmpxchg8b_emu+18>
   0x00534916 <+6>:	cmp    0x4(%esi),%edx
   0x00534919 <+9>:	jne    0x534924 <half_same>
   0x0053491b <+11>:	mov    %ebx,(%esi)
   0x0053491d <+13>:	mov    %ecx,0x4(%esi)
   0x00534920 <+16>:	popf   
   0x00534921 <+17>:	ret    
   0x00534922 <+18>:	mov    (%esi),%eax
   0x00534924 <+0>:	mov    0x4(%esi),%edx
   0x00534927 <+3>:	popf   
   0x00534928 <+4>:	ret    

When I built l4linux, I had to disable CONFIG_X86_CMPXCHG, CONFIG_CMPXCHG_LOCAL and  CONFIG_X86_CMPXCHG64 despite building for the Pentium because my processor does not support PAE (which is the option that enables this). I am guessing This is the reason it tries to emulate the CMPXCHG instructions.

What is the correct l4linux configuration to use for a machine that does not support any of the atomic instructions like CMPXCHG8, ATOMIC, etc.?


More information about the l4-hackers mailing list