Bug 135002 - X11 i810_drv.o vm86() syscall signal 11 on multihead config
Summary: X11 i810_drv.o vm86() syscall signal 11 on multihead config
Status: RESOLVED FIXED
Alias: None
Product: SUSE LINUX 10.0
Classification: openSUSE
Component: X.Org (show other bugs)
Version: Final
Hardware: i686 SuSE Linux 10.0
: P2 - High : Normal
Target Milestone: ---
Assignee: Stefan Dirsch
QA Contact: Stefan Dirsch
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-22 19:41 UTC by Jimmy Guo
Modified: 2006-08-17 20:27 UTC (History)
1 user (show)

See Also:
Found By: Customer
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
/etc/init.d/boot.local (1.66 KB, text/plain)
2005-11-22 19:41 UTC, Jimmy Guo
Details
/etc/X11/xorg.conf.single, used for singlehead (4.95 KB, text/plain)
2005-11-22 19:42 UTC, Jimmy Guo
Details
/etc/X11/xorg.conf.multihead, used for multihead (5.94 KB, text/plain)
2005-11-22 19:42 UTC, Jimmy Guo
Details
/var/log/Xorg.0.log showing i810 vm86() syscall error when using SuSE 10.0's i810_drv.o (24.30 KB, text/plain)
2005-11-22 19:43 UTC, Jimmy Guo
Details
diff --unified -w -b xorg.conf.single xorg.conf.multihead (2.49 KB, patch)
2005-11-22 19:46 UTC, Jimmy Guo
Details | Diff
/var/log/Xorg.0.log w/ NoTrapSignals (43.14 KB, text/plain)
2005-11-30 22:42 UTC, Jimmy Guo
Details
List of xorg-x11 RPMs used to produce stack trace. (376 bytes, text/plain)
2005-11-30 22:43 UTC, Jimmy Guo
Details
gdb bt output (7.64 KB, text/plain)
2005-11-30 22:43 UTC, Jimmy Guo
Details
Core file using xorg-x11 6.8.2-199 RPMs. (2.30 MB, application/octet-stream)
2005-11-30 22:44 UTC, Jimmy Guo
Details
Patch from Alan for i810 not livelocking (2.96 KB, patch)
2006-08-16 16:09 UTC, Matthias Hopf
Details | Diff
Patch for removing the Xserver segfault (3.47 KB, patch)
2006-08-16 16:11 UTC, Matthias Hopf
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jimmy Guo 2005-11-22 19:41:00 UTC
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
Comment 1 Jimmy Guo 2005-11-22 19:41:54 UTC
Created attachment 58135 [details]
/etc/init.d/boot.local
Comment 2 Jimmy Guo 2005-11-22 19:42:31 UTC
Created attachment 58136 [details]
/etc/X11/xorg.conf.single, used for singlehead
Comment 3 Jimmy Guo 2005-11-22 19:42:53 UTC
Created attachment 58137 [details]
/etc/X11/xorg.conf.multihead, used for multihead
Comment 4 Jimmy Guo 2005-11-22 19:43:48 UTC
Created attachment 58138 [details]
/var/log/Xorg.0.log showing i810 vm86() syscall error when using SuSE 10.0's i810_drv.o
Comment 5 Jimmy Guo 2005-11-22 19:46:37 UTC
Created attachment 58139 [details]
diff --unified -w -b xorg.conf.single xorg.conf.multihead
Comment 6 Jimmy Guo 2005-11-22 19:59:20 UTC
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
Comment 7 Matthias Hopf 2005-11-23 14:13:31 UTC
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).
Comment 8 Matthias Hopf 2005-11-24 12:36:08 UTC
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?
Comment 9 Stefan Behlert 2005-11-25 12:32:08 UTC
Sorry, no D700 is available. Reading the comments above I don't think an other type of machine will help :(
Comment 10 Jimmy Guo 2005-11-28 16:08:30 UTC
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
Comment 11 Matthias Hopf 2005-11-29 15:11:30 UTC
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...
Comment 12 Jimmy Guo 2005-11-30 22:35:49 UTC
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
Comment 13 Jimmy Guo 2005-11-30 22:42:50 UTC
Created attachment 59326 [details]
/var/log/Xorg.0.log w/ NoTrapSignals
Comment 14 Jimmy Guo 2005-11-30 22:43:26 UTC
Created attachment 59327 [details]
List of xorg-x11 RPMs used to produce stack trace.
Comment 15 Jimmy Guo 2005-11-30 22:43:55 UTC
Created attachment 59328 [details]
gdb bt output
Comment 16 Jimmy Guo 2005-11-30 22:44:51 UTC
Created attachment 59329 [details]
Core file using xorg-x11 6.8.2-199 RPMs.
Comment 17 Matthias Hopf 2006-03-22 17:08:03 UTC
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.
Comment 18 Jimmy Guo 2006-03-23 04:37:26 UTC
(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
Comment 19 Matthias Hopf 2006-03-23 13:52:38 UTC
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.
Comment 20 Matthias Hopf 2006-08-16 16:09:31 UTC
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.
Comment 21 Matthias Hopf 2006-08-16 16:11:15 UTC
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.
Comment 22 Matthias Hopf 2006-08-16 16:12:31 UTC
Stefan, to be applied to our Xorg packages? What do you think?
Comment 23 Stefan Dirsch 2006-08-16 16:27:09 UTC
Sure. Thanks!
Comment 24 Matthias Hopf 2006-08-16 16:27:47 UTC
Comment on attachment 96252 [details]
Patch from Alan for i810 not livelocking

Obsoleted by Alan himself. Seems to be fixed upstream.
Comment 25 Stefan Dirsch 2006-08-17 20:27:00 UTC
Patch of comment #21 applied for Alpha4 and openSUSE buildservice (xorg7/xorg-x11-server).