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.?
Thanks, ramya
I forgot to mention that it also does not support the traditional cmpxchg instructions using the lock line. That is why I disabled it.
Sorry about the multiple emails, Ramya
Sent from my phone
On 05 Sep 2014, at 18:16, "Masti Ramya Jayaram" rmasti@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.?
Thanks, ramya _______________________________________________ l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
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@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 replaced.
Adam
Hey Adam,
That's ok as long it's also ok for native Linux.
I am not sure what they did with native Linux but I know from the SCC forums that these instructions do not exist. So I guess that is ok.
I'm wondering how did you end up with the code containing the cli? In L4Linux this part is replaced.
Well, I am not sure about that. I did force a couple of options though as I already mentioned. The reason was that when I tried to compile L4linux for pentium/i586, I saw that it would complain about CONFIG_X86_CMPXCHG64 not being enabled (this corresponds to the PAE option). So I disabled this explicitly since the processors on the SCC do not contain PAE. I also disabled the CONFIG_X86_CMPXCHG and CONFIG_CMPXCHG_LOCAL options.
Attached is my l4linux config. Just as a note, I am using quite an old build of L4linux. Do you know of any related bugs?
Thanks, Ramya ________________________________________ From: l4-hackers [l4-hackers-bounces@os.inf.tu-dresden.de] on behalf of Adam Lackorzynski [adam@os.inf.tu-dresden.de] Sent: 08 September 2014 00:29 To: l4-hackers@os.inf.tu-dresden.de Subject: Re: Aborted L4linux due to CLI/STI
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@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 replaced.
Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
_______________________________________________ l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hi,
On Mon Sep 08, 2014 at 07:10:00 +0000, Masti Ramya Jayaram wrote:
That's ok as long it's also ok for native Linux.
I am not sure what they did with native Linux but I know from the SCC forums that these instructions do not exist. So I guess that is ok.
I'm wondering how did you end up with the code containing the cli? In L4Linux this part is replaced.
Well, I am not sure about that. I did force a couple of options though as I already mentioned. The reason was that when I tried to compile L4linux for pentium/i586, I saw that it would complain about CONFIG_X86_CMPXCHG64 not being enabled (this corresponds to the PAE option). So I disabled this explicitly since the processors on the SCC do not contain PAE. I also disabled the CONFIG_X86_CMPXCHG and CONFIG_CMPXCHG_LOCAL options.
As far as I know the SCC does have a cmpxchg8b so you could just make Linux use that by tweaking the config.
Attached is my l4linux config. Just as a note, I am using quite an old build of L4linux. Do you know of any related bugs?
Uh, that's old. There are probably many. Were there any significant changes to that version?
Adam
hi,
a. Ok I will re-enable the cmpxchg8b. b. I am not sure about the changes and since it occurs quite rarely, I am not sure if it is a case of not cleaning up interrupts properly after a crash.
I will live with them for now and get back to this once the other issues are sorted out.
thanks, Ramya ________________________________________ From: l4-hackers [l4-hackers-bounces@os.inf.tu-dresden.de] on behalf of Adam Lackorzynski [adam@os.inf.tu-dresden.de] Sent: 09 September 2014 22:46 To: l4-hackers@os.inf.tu-dresden.de Subject: Re: Aborted L4linux due to CLI/STI
Hi,
On Mon Sep 08, 2014 at 07:10:00 +0000, Masti Ramya Jayaram wrote:
That's ok as long it's also ok for native Linux.
I am not sure what they did with native Linux but I know from the SCC forums that these instructions do not exist. So I guess that is ok.
I'm wondering how did you end up with the code containing the cli? In L4Linux this part is replaced.
Well, I am not sure about that. I did force a couple of options though as I already mentioned. The reason was that when I tried to compile L4linux for pentium/i586, I saw that it would complain about CONFIG_X86_CMPXCHG64 not being enabled (this corresponds to the PAE option). So I disabled this explicitly since the processors on the SCC do not contain PAE. I also disabled the CONFIG_X86_CMPXCHG and CONFIG_CMPXCHG_LOCAL options.
As far as I know the SCC does have a cmpxchg8b so you could just make Linux use that by tweaking the config.
Attached is my l4linux config. Just as a note, I am using quite an old build of L4linux. Do you know of any related bugs?
Uh, that's old. There are probably many. Were there any significant changes to that version?
Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
_______________________________________________ l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers@os.inf.tu-dresden.de