On Sun, Mar 10, 2013 at 01:09:35AM +0000, Julian Pidancet wrote:
On Sun, Mar 10, 2013 at 12:09 AM, Kevin O'Connor kevin@koconnor.net wrote:
Julian - I know you played with SeaVGABIOS and X11 a bit a year or so ago. Any thoughts on what is happening?
Hi Kevin,
I have not really followed the latest developments on SeaBIOS, so I'm not sure I'll be very useful. But I can try to take a look at it. I seem to remember that qemu uses SeaVGABIOS now. If I try to compile a recent qemu and launch the fedora liveCD, will it exhibit the issue ?
Not much has changed in the SeaVGABIOS area. I believe QEMU can build SeaVGABIOS, but it is not the default vgabios.
The last time I investigated on an issue with SeaVGABIOS and X11, it was because the 16bit code emulator of X11 wasn't handling properly certain prefixed instructions. I think we worked around the issue by post-processing the assembly output of the compilation to replace the problematic instructions with non-prefixed instructions.
I also tried to send several times a patch on the Xorg mailing list to address that issue, but never managed to attract anyone's attention. It could be useful if someone volunteered to try sending them again.
According to the backtrace you sent, the crash seems to be located in the libint10 module. The issue I worked on was in "x86emu". I'm not sure how these two parts relate to each other, but we could well be facing something very similar.
The first think I would try, is to check in the vga bios assembly and make sure we're correctly replacing all of the "sensitive" prefixed x86 instructions. Some new form of one of these instruction may have made it's way in the VGA rom code.
Yeah - I thought the same thing and looked into that. The assembler translation is still being performed and I don't see anything that looks suspicious.
Thanks, -Kevin
On Sun, Mar 10, 2013 at 1:15 AM, Kevin O'Connor kevin@koconnor.net wrote:
On Sun, Mar 10, 2013 at 01:09:35AM +0000, Julian Pidancet wrote:
On Sun, Mar 10, 2013 at 12:09 AM, Kevin O'Connor kevin@koconnor.net wrote:
Yeah - I thought the same thing and looked into that. The assembler translation is still being performed and I don't see anything that looks suspicious.
I managed to get set up with qemu and SeaBIOS and I'm seeing interesting results: First of all, I'm not able to access the Xorg logs, because it looks like the VM crashes completely. (Maybe I need to ask Fedora to boot in text mode ?)
I compiled SeaBIOS with DEBUG_LEVEL=3 and CONFIG_DEBUG_SERIAL_PORT, so I can see what's going on. It looks like that when Xorg is about to start in the VM, we're receiving a lot of corrupted data on the serial port.
It reminds me a lot what I used to see with the Windows 16bit code emulator, which was unable to dereference pointers using the %sp register, which was leading the print function to display corrupted strings. Could we have something similar here ?
It is printing the same sequence of bytes over and over again:
0002d160 30 30 33 0d 0a ff 55 aa 48 e9 ed 4e 93 55 aa 48 |003...U.H..N.U.H| 0002d170 ec ed 4e 93 55 aa 48 e9 ed 4e 93 55 aa 48 e9 ed |..N.U.H..N.U.H..| 0002d180 4e 93 55 aa 48 e9 ed 4e 93 55 aa 48 e9 ed 4e 93 |N.U.H..N.U.H..N.| 0002d190 55 aa 48 e9 ed 4e 93 55 aa 48 e9 ed 4e 93 55 aa |U.H..N.U.H..N.U.| 0002d1a0 48 e9 ed 4e 93 55 aa 48 e9 ed 4e 93 55 aa 48 e9 |H..N.U.H..N.U.H.|