|
Bugzilla – Full Text Bug Listing |
| Summary: | X11 i810_drv.o vm86() syscall signal 11 on multihead config | ||
|---|---|---|---|
| Product: | [openSUSE] SUSE LINUX 10.0 | Reporter: | Jimmy Guo <mrjyg> |
| Component: | X.Org | Assignee: | Stefan Dirsch <sndirsch> |
| Status: | RESOLVED FIXED | QA Contact: | Stefan Dirsch <sndirsch> |
| Severity: | Normal | ||
| Priority: | P2 - High | CC: | behlert |
| Version: | Final | ||
| Target Milestone: | --- | ||
| Hardware: | i686 | ||
| OS: | SuSE Linux 10.0 | ||
| Whiteboard: | |||
| Found By: | Customer | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
/etc/init.d/boot.local
/etc/X11/xorg.conf.single, used for singlehead /etc/X11/xorg.conf.multihead, used for multihead /var/log/Xorg.0.log showing i810 vm86() syscall error when using SuSE 10.0's i810_drv.o diff --unified -w -b xorg.conf.single xorg.conf.multihead /var/log/Xorg.0.log w/ NoTrapSignals List of xorg-x11 RPMs used to produce stack trace. gdb bt output Core file using xorg-x11 6.8.2-199 RPMs. Patch from Alan for i810 not livelocking Patch for removing the Xserver segfault |
||
Created attachment 58135 [details]
/etc/init.d/boot.local
Created attachment 58136 [details]
/etc/X11/xorg.conf.single, used for singlehead
Created attachment 58137 [details]
/etc/X11/xorg.conf.multihead, used for multihead
Created attachment 58138 [details]
/var/log/Xorg.0.log showing i810 vm86() syscall error when using SuSE 10.0's i810_drv.o
Created attachment 58139 [details]
diff --unified -w -b xorg.conf.single xorg.conf.multihead
The xorg.conf.* files are manually created, based on the initial installation time's sax2 content. This is because with SuSE 9.3's sax2, multihead configuration would cause sax2 to generate garbage (or fail, I cannot recall); with SuSE 10.0's sax2, multihead configuration does not allow xinerama configuration. Along the way I renamed the identifiers, merged in some flags / options from other users' examples found on the internet. I have attached a diff between the singlehead and multihead configurations just to show the changes for the multihead configuration. For my Dell 700m, it is Intel 855 GM. BTW there's no Dell 1905FP monitor entry in X configuration. I'd like to see this monitor being included in the future. Right now the modeline I used for Dell 1905FP external LCD monitor is taken from the internet. I cannot find the specs on this monitor to calculate the modeline myself :(, although it works with SuSE 9.3 or SuSE 10.0 (after downgrading i810_drv.o). - Jimmy I cannot reproduce the Segfault on my i810 system, but I do get a livelock. Will test with a current CVS build, and test on an i915 laptop as well (which uses i830 part of the driver). Xorg bugzilla #5150 : livelock. In the meantime I got a segfault as well (by commenting all BusID, VideoRam, UseBIOS, and VBERestore options): It nukes at xf86Cursor.c:641. Actually one line above due to instruction reordering. What happens is that you defined two screens, but only one is detected by the hardware detection, and xf86Screens[ref] is NULL for the second head. Of course this shouldn't segfault. Xorg bugzilla #5151. Still this is *not* the bug you are seeing. Yours I cannot reproduce on my machine. Stefan (Behlert), do we have a D700 for reproducing? Sorry, no D700 is available. Reading the comments above I don't think an other type of machine will help :( If you can point me to the source (src rpm for 10.0 or anonymous cvs access), I can try getting some trace info for you from my Dell 700m. - Jimmy If you could update (rpm -Fhv) all xorg-x11*.rpm packages from http://mirrors.kernel.org/opensuse/distribution/SL-OSS-edge/inst-source/suse/i586/ and additionally install (rpm -i) the xorg-x11-debuginfo.rpm package, you can get somewhat reasonable backtraces. They are still not perfect, because -O2 can optimize quite a number of variables away... I've updated to the rpms you suggested, and I'm attaching the gdb info. BTW I will revert the rpms back to SuSE 10.0's (and online update versions). - Jimmy Created attachment 59326 [details]
/var/log/Xorg.0.log w/ NoTrapSignals
Created attachment 59327 [details]
List of xorg-x11 RPMs used to produce stack trace.
Created attachment 59328 [details]
gdb bt output
Created attachment 59329 [details]
Core file using xorg-x11 6.8.2-199 RPMs.
Sorry for leaving this open so long. Have there been any changes on your side? Have you tried to test this with SL10.1 Beta8? There have been plenty of i810 related changes. On the other hand, if this bug still occures, I can only file it to xorg so that the intel developers can take a look at it. The driver crashes while trying to do a BIOS call, this is rather hard to debug without specs. (I meant to update this defect but I had been struggling a bit to recall my Novell account password...) I tried the latest X11R6.9.0 binary RPMs from one of the SuSE Linux sites and it worked w/ my multi-head setup. Although it still has some core dump issues w/ the swap primary handling, that had always been a problem in the past. I think you can close this as fixed in 6.9.0. Thanks! - Jimmy That's good to hear. I will leave this open until I fixed the segfault upstream. As this only happens for broken configurations, I will lower severity. Created attachment 96252 [details]
Patch from Alan for i810 not livelocking
This patch from Alan prohibits livelocking. I'm not completely sure it is safe to apply (does busy waiting with counters... shudder...).
No, it is still not applied upstream, I just asked about that once more.
Created attachment 96254 [details]
Patch for removing the Xserver segfault
This patch (hopefully) prohibits the Xserver from segfaulting due to a broken Xinerama config. At least an error message is logged.
Stefan, to be applied to our Xorg packages? What do you think? Sure. Thanks! Comment on attachment 96252 [details]
Patch from Alan for i810 not livelocking
Obsoleted by Alan himself. Seems to be fixed upstream.
Patch of comment #21 applied for Alpha4 and openSUSE buildservice (xorg7/xorg-x11-server). |
With SuSE 9.3, I was able to set up multihead display mode for my Dell 700m laptop (external CRT: Dell 1905FP, top; internal LCD: bottom). After installing SuSE 10.0, the multihead setup caused i810 driver (i810_drv.o) to fail with the following error in Xorg.0.log: (EE) I810(0): vm86() syscall generated signal 11. I have to downgrade i810_drv.o to the version shipped in SuSE 9.3 to make it work. Therefore I think there's a regression in X11's i810_drv.o. I will attach some files. Some details of my setup: - /etc/init.d/boot.local + Fix Dell 700m's video bios mode using 855resolution, so that I can get 1280x800. + Switch /etc/X11/xorg.conf content and X11's i810_drv.o depending on a boot cmdline (/proc/cmdline) parameter presence ('MULTIHEAD'). - /etc/xorg.conf.single, /etc/xorg.conf.multihead Two very similar xorg.conf configuration files. Copied to /etc/xorg.conf by /etc/init.d/boot.local - Jimmy