Aborted L4linux due to CLI/STI
adam at os.inf.tu-dresden.de
Mon Sep 8 00:29:18 CEST 2014
On Fri Sep 05, 2014 at 16:21:34 +0000, Masti Ramya Jayaram wrote:
> I forgot to mention that it also does not support the traditional
> cmpxchg instructions using the lock line. That is why I disabled it.
That's ok as long it's also ok for native Linux.
> > On 05 Sep 2014, at 18:16, "Masti Ramya Jayaram" <rmasti at inf.ethz.ch> wrote:
> > 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.?
Which processor type did you select?
In L4Linux, there's an adapted version of the cmpxchg8b_emu code that is
enabled if CONFIG_X86_CMPXCHG64 is not set. I'm wondering how did you
end up with the code containing the cli? In L4Linux this part is
Adam adam at os.inf.tu-dresden.de
More information about the l4-hackers