RE: Aborted L4linux due to CLI/STI
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-boun...@os.inf.tu-dresden.de] on behalf of Adam Lackorzynski [a...@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 +, 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 a...@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 mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Re: Aborted L4linux due to CLI/STI
Hi, On Mon Sep 08, 2014 at 07:10:00 +, 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 a...@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
RE: Aborted L4linux due to CLI/STI
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-boun...@os.inf.tu-dresden.de] on behalf of Adam Lackorzynski [a...@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 +, 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 rma...@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:jne0x534922 cmpxchg8b_emu+18 0x00534916 +6:cmp0x4(%esi),%edx 0x00534919 +9:jne0x534924 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:mov0x4(%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 a...@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# # Automatically generated make config: don't edit # Linux/l4 2.6.38-l4 Kernel Configuration # Fri Sep 5 02:47:55 2014 # # # L4Linux configuration # CONFIG_L4=y CONFIG_L4_LINUX=y CONFIG_L4_OBJ_TREE=/home/rmasti/fiasco/r33-new/src/l4/build CONFIG_L4_ARCH_X86=y # CONFIG_L4_ARCH_ARM is not set CONFIG_L4_VMLINUZ_SUFFIX= CONFIG_HZ=100 CONFIG_PHYSICAL_START=0x0 # # Features # # CONFIG_L4_SERVER is not set # # IRQ Handling # # CONFIG_L4_IRQ_SINGLE is not set CONFIG_L4_IRQ_MULTI=y # # Stub drivers # CONFIG_L4_EXTERNAL_RTC=y CONFIG_L4_BLK_DS_DRV=y CONFIG_L4_CHR_DS_DRV=y # CONFIG_L4_FB_DRIVER is not set # CONFIG_L4_NET_ANKH_DRV is not set # CONFIG_L4_NET_L4SHM is not set CONFIG_L4_SERIAL=y CONFIG_L4_SERIAL_CONSOLE=y # CONFIG_L4_SERIAL_SHM is not set # # Debugging options # # CONFIG_L4_DEBUG is not set # # Advanced options # CONFIG_L4_MEMSIZE=32 CONFIG_L4_TAMED=y # CONFIG_L4_VCPU is not set # # Priority configuration # CONFIG_L4_PRIO_SERVER_PROC=1 CONFIG_L4_PRIO_IDLER=2 CONFIG_L4_PRIO_IRQ_BASE=3 CONFIG_L4_PRIO_TAMER=22 CONFIG_L4_PRIO_L4FB_INPUT=7 CONFIG_L4_PRIO_L4FB_REFRESH=7 CONFIG_L4_PRIO_L4ANKH=7 CONFIG_L4_CONFIG_CHECKS=y # CONFIG_L4_SAMPLE_MODULE is not set # # # # CONFIG_64BIT is not set CONFIG_X86_32=y # CONFIG_X86_64 is not set CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT=elf32-i386 CONFIG_ARCH_DEFCONFIG=arch/x86/configs/i386_defconfig CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_ZONE_DMA=y # CONFIG_NEED_DMA_MAP_STATE is not set CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y
Re: Aborted L4linux due to CLI/STI
On Fri Sep 05, 2014 at 16:21:34 +, 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 rma...@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:jne0x534922 cmpxchg8b_emu+18 0x00534916 +6:cmp0x4(%esi),%edx 0x00534919 +9:jne0x534924 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:mov0x4(%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 a...@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
Re: Aborted L4linux due to CLI/STI
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 rma...@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:jne0x534922 cmpxchg8b_emu+18 0x00534916 +6:cmp0x4(%esi),%edx 0x00534919 +9:jne0x534924 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:mov0x4(%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 ___ l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers