Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-17 Thread Egbert Eich
David Dawes writes:
  
  Does further switching give you a working XFree86 display again?  What
  happens if you exit that XFree86 session and restart XFree86?
  
  FWIW, when I was working in the driver, I wasn't able to reproduce any
  switching-related problems with the hardware I had and the 4.3 version on
  Linux, even after literally hundreds of switches.
  

On Linux the problems went away when moving the LpRing into the 'stolen
memory'. I had to do this for 855 and 865 also to fix this problem.
My impression was that when switching back to X the agp memory may
get mapped to different physical pages. The chipset didn't like this.
I don't recall exactly but I think I also got lockups when terminating
and restarting the server completely.


Egbert.
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-17 Thread David Dawes
On Thu, Oct 16, 2003 at 04:46:23PM +0300, Alexey E. Suslikov wrote:
skipped...

this NoAccel bug is reproducible: X11 can blacks after first time i switching
consoles, sometimes - after 10 times, sometimes - even after 20 times.
looks like (available?) agp memory amount determines this... maybe not...

and i think this is a common bug for accel and non-accel setups: it doesn't
matter in the accel setup because the ring buffer bug takes precedence.

and this is common bug for linux and bsd: after the paranoid console
switching, 4.3.0 under linux also blacks its console out. but there is
no ring buffer bug as i mentioned before.

this blacking in non-accel looks like the pipe just deattaching from the
driver (or restoring its state incorrectly), so i can't see anything on the
X's tty while X runs completely normally (i.e. no lockups) and allows me to
switch to completely normally working text ttys.
 
 Does further switching give you a working XFree86 display again?

no. once blacked it cannot be restored to normal operation. until i
reboot the box...

It just occurred to me where I had seen this type of black screen problem
before.  It happens when using the vesa driver with an 845G.  We work
around this in the i810 driver by remembering the initial video mode
and simply re-initialising it when exiting/VT switching instead of using
the VBE save/restore mechanism.  This workaround is only actived for
845G hardware.  You could try enabling it for all hardware by changing
this line in i830_driver.c from:

   if (!I845G_VBE_WORKAROUND || !IS_845G(pI830)) {

to:

   if (!I845G_VBE_WORKAROUND) {

David
-- 
David Dawes X-Oz Technologies
www.XFree86.org/~dawes  www.x-oz.com
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-15 Thread David Dawes
On Sat, Oct 11, 2003 at 12:25:17AM +0300, Alexey E. Suslikov wrote:
  bang! this is it: the bug still exist, at least on i830m (like in my
  case). setting NoAccel true is turning off Xaa functions for first.
  linux people did so. i did too, but with no success :(
 
  I've tried very hard and I'm not seeing the problem any more.
  If you are still seeing it maybe you could do a little 
  investigation into its cause?
 
  One thing you may want to try is setting
 pI830-NeedRingBufferLow = TRUE
  This isn't done for the i830 as it didn't seem to be necessary.
 
 ok. i will try and report as soon as possible.

 That shouldn't make any difference to the noaccel case, since the
 ring buffer isn't allocated then.
 
  Yes, turning XAA off will work around the problem. The LpRing is
  only used for that.
 
 no. as i described above, this recipe was digged from mailing list
 and solves the problem for some linux people. but not for me on
 OpenBSD and this guy on NetBSD.
 
 A couple of other things I can think of are 1) some subtle difference in
 the implementation of the agpgart support for those two platforms, or
 2) the fact that the BIOS is executed via the emulator on the BSDs but
 uses vm86 mode on Linux.  Does anyone running FreeBSD see the problem?
 If not, that should rule out 2).  To take the agp support out of the
 picture, disable the HW cursor, and make sure the videoram is set to
 some amount lower than what the BIOS preallocates at boot time (e.g.,
 4096).  From your noaccel log, the agp interface is only used to allocate
 the HW cursor space (because it needs a physical address).  That means
 just adding 'Option SWCursor' to your Device section should be
 sufficient for this test.

 It would be very useful to try different OSs (Linux and one or more
 BSDs) on exactly the same machine, and see if the results were the same.
 It really has to be exactly the same machine to eliminate possible
 differences in BIOS and hardware revisions.
 
 The messages in your log:
 
 (WW) I810(0): PRB0_CTL (0x000b6007) indicates ring buffer enabled
 (WW) I810(0): PRB0_HEAD (0x) and PRB0_TAIL (0x00092660) indicate ring 
 buffer not flushed
 
 are results of some sanity checks on the inherited state that the driver
 tries to make.  It doesn't do anything other than report them.  These
 don't seem to show up at initial startup, only after switching VT's back
 and forth.
 
 There seemed to be some evidence that some BIOSes did stuff that the
 driver didn't expect when switching back to text mode.  I was never able
 to prove or disprove that theory, because I couldn't reproduce these
 lockups that others had reported.  Maybe it depends on the BIOS rev or
 hardware rev.  Maybe it's simply a bug lurking somewhere that doesn't
 affect most platforms.  It's hard to say for sure at this point.
 
 I made some tests on my NetBSD laptop :
 
 Dell Inspiron 2600 laptop (bios A08)
 Intel 82830MP Integrated Video (rev. 0x04)
 NetBSD 1.6ZC (-current 20031003)
 XFree86 4.3.99.13 (-current 20031007)
 
 * NoAccel ... ok
 * Accel   ... KO
 * Accel + SWcursor + 4Mo  ... KO
 * Accel + NeedRingBufferLow   ... KO
 
 For the NoAccel case, i successfully switched about 20 times to the
 4 text consoles and went back to X without any problem. But still no
 luck with acceleration enabled.

my result with OpenBSD against -current (4.3.99.13) was completely equal
to Nicolas' with NetBSD: I830WaitLpRing() lockup still here.
 
 Does that include the NoAccel case no longer locking up?  If so, that's
 at least something positive.

i am still trying to reproduce this NoAccel bug: just don't want make
any hasty conclusions. i will report additionally...
 
 OK.

this NoAccel bug is reproducible: X11 can blacks after first time i switching
consoles, sometimes - after 10 times, sometimes - even after 20 times.
looks like (available?) agp memory amount determines this... maybe not...

and i think this is a common bug for accel and non-accel setups: it doesn't
matter in the accel setup because the ring buffer bug takes precedence.

and this is common bug for linux and bsd: after the paranoid console
switching, 4.3.0 under linux also blacks its console out. but there is
no ring buffer bug as i mentioned before.

this blacking in non-accel looks like the pipe just deattaching from the
driver (or restoring its state incorrectly), so i can't see anything on the
X's tty while X runs completely normally (i.e. no lockups) and allows me to
switch to completely normally working text ttys.

Does further switching give you a working XFree86 display again?  What
happens if you exit that XFree86 session and restart XFree86?

FWIW, when I was working in the driver, I wasn't able to reproduce any
switching-related problems with the hardware I had and the 4.3 version on
Linux, even after literally hundreds of switches.

I'm pretty much out of suggestions, short of doing some very detailed
tracing/debugging, or rewriting the 

Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-10 Thread David Dawes
On Fri, Oct 10, 2003 at 10:10:17AM +0300, Alexey E. Suslikov wrote:
  bang! this is it: the bug still exist, at least on i830m (like in my
  case). setting NoAccel true is turning off Xaa functions for first.
  linux people did so. i did too, but with no success :(
 
  I've tried very hard and I'm not seeing the problem any more.
  If you are still seeing it maybe you could do a little 
  investigation into its cause?
 
  One thing you may want to try is setting
 pI830-NeedRingBufferLow = TRUE
  This isn't done for the i830 as it didn't seem to be necessary.
 
 ok. i will try and report as soon as possible.

 That shouldn't make any difference to the noaccel case, since the
 ring buffer isn't allocated then.
 
  Yes, turning XAA off will work around the problem. The LpRing is
  only used for that.
 
 no. as i described above, this recipe was digged from mailing list
 and solves the problem for some linux people. but not for me on
 OpenBSD and this guy on NetBSD.
 
 A couple of other things I can think of are 1) some subtle difference in
 the implementation of the agpgart support for those two platforms, or
 2) the fact that the BIOS is executed via the emulator on the BSDs but
 uses vm86 mode on Linux.  Does anyone running FreeBSD see the problem?
 If not, that should rule out 2).  To take the agp support out of the
 picture, disable the HW cursor, and make sure the videoram is set to
 some amount lower than what the BIOS preallocates at boot time (e.g.,
 4096).  From your noaccel log, the agp interface is only used to allocate
 the HW cursor space (because it needs a physical address).  That means
 just adding 'Option SWCursor' to your Device section should be
 sufficient for this test.

 It would be very useful to try different OSs (Linux and one or more
 BSDs) on exactly the same machine, and see if the results were the same.
 It really has to be exactly the same machine to eliminate possible
 differences in BIOS and hardware revisions.
 
 The messages in your log:
 
 (WW) I810(0): PRB0_CTL (0x000b6007) indicates ring buffer enabled
 (WW) I810(0): PRB0_HEAD (0x) and PRB0_TAIL (0x00092660) indicate ring 
 buffer not flushed
 
 are results of some sanity checks on the inherited state that the driver
 tries to make.  It doesn't do anything other than report them.  These
 don't seem to show up at initial startup, only after switching VT's back
 and forth.
 
 There seemed to be some evidence that some BIOSes did stuff that the
 driver didn't expect when switching back to text mode.  I was never able
 to prove or disprove that theory, because I couldn't reproduce these
 lockups that others had reported.  Maybe it depends on the BIOS rev or
 hardware rev.  Maybe it's simply a bug lurking somewhere that doesn't
 affect most platforms.  It's hard to say for sure at this point.
 
 I made some tests on my NetBSD laptop :
 
 Dell Inspiron 2600 laptop (bios A08)
 Intel 82830MP Integrated Video (rev. 0x04)
 NetBSD 1.6ZC (-current 20031003)
 XFree86 4.3.99.13 (-current 20031007)
 
 * NoAccel ... ok
 * Accel   ... KO
 * Accel + SWcursor + 4Mo  ... KO
 * Accel + NeedRingBufferLow   ... KO
 
 For the NoAccel case, i successfully switched about 20 times to the
 4 text consoles and went back to X without any problem. But still no
 luck with acceleration enabled.

my result with OpenBSD against -current (4.3.99.13) was completely equal
to Nicolas' with NetBSD: I830WaitLpRing() lockup still here.
 
 Does that include the NoAccel case no longer locking up?  If so, that's
 at least something positive.

i am still trying to reproduce this NoAccel bug: just don't want make
any hasty conclusions. i will report additionally...

OK.

additionally, i have downloaded one of these widely available linux on
livecd distros and have found 4.3.0 working.
 
 Also good news.  I'd like suggest trying the emulator version of the
 int10 module.  Normally you'd do this by renaming the
 /usr/X11R6/lib/modules/linux/libint10.a file so that the generic (emulator)
 version /usr/X11R6/lib/modules/libint10.a gets used instead.  That might
 not be possible if you're running off a live CD.  You might be able to
 achieve the same thing by copying the generic version to some writeable
 directory, and edit the XF86Config file to add that directory to the
 ModulePath before the default one.  Checking the log file will allow
 you to confirm which module actually gets used.

i have done cp -R /usr/X11R6/lib/modules/* /var/modules/ than
rm -rf /var/modules/linux, point XF86Config's ModulePath to the
new location and run. you will find the log at the bottom.

the only difference i see - is the existence of these
(WW) I810(0): PRB0_HEAD (0x) and PRB0_TAIL (0x00092660) indicate ring buffer 
not flushed
warnings. but! i have switched terminal 3 times, but you will find
only 2 messages of this kind 8-()

OK, so there is at least one difference when using the x86 emulator vs
vm86 mode.

 When you next try 

Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-09 Thread Egbert Eich
Nicolas Joly writes:
  * NoAccel... ok
  * Accel  ... KO
  * Accel + SWcursor + 4Mo ... KO
  * Accel + NeedRingBufferLow  ... KO
  
  For the NoAccel case, i successfully switched about 20 times to the
  4 text consoles and went back to X without any problem. But still no
  luck with acceleration enabled.
  

'NeedRingBufferLow' is a variable in the source code, not an option.
Did you take this into account? The idea of this variable is to place
the ring buffer into the stolen (ie. permanently allocated) memory.
When VT switching the agp memory will get unmapped. Therefore other 
physical pages may get mapped later. The LpRing doesn't seem to like
this. 
Have you tried to do Accel+NeedRingBufferLow+SWcursor? This should
move all things that may cause problems out of the danger zone.
Also please disable DRI!

Egbert.
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-09 Thread Nicolas Joly
On Thu, Oct 09, 2003 at 03:47:22PM +0200, Egbert Eich wrote:
 Nicolas Joly writes:
   * NoAccel  ... ok
   * Accel... KO
   * Accel + SWcursor + 4Mo   ... KO
   * Accel + NeedRingBufferLow... KO
   
   For the NoAccel case, i successfully switched about 20 times to the
   4 text consoles and went back to X without any problem. But still no
   luck with acceleration enabled.
 
 'NeedRingBufferLow' is a variable in the source code, not an option.
 Did you take this into account?

I recompiled/installed the i810 driver with the following modifiation:

Index: i830_driver.c
===
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c,v
retrieving revision 1.39
diff -u -r1.39 i830_driver.c
--- i830_driver.c   8 Oct 2003 15:48:40 -   1.39
+++ i830_driver.c   9 Oct 2003 13:53:43 -
@@ -1769,7 +1769,8 @@
   pI830-CursorNeedsPhysical = FALSE;
 
/* Force ring buffer to be in low memory for the 845G. */
-   if (IS_845G(pI830) || IS_I85X(pI830) || IS_I865G(pI830))
+   /* HACK: temporary enable NeedRingBufferLow
+   if (IS_845G(pI830) || IS_I85X(pI830) || IS_I865G(pI830)) */
   pI830-NeedRingBufferLow = TRUE;

 The idea of this variable is to place the ring buffer into the
 stolen (ie. permanently allocated) memory.  When VT switching the
 agp memory will get unmapped. Therefore other physical pages may get
 mapped later. The LpRing doesn't seem to like this.
 Have you tried to do Accel+NeedRingBufferLow+SWcursor? This should
 move all things that may cause problems out of the danger zone.

I just made the test, but it doesn't work either.

 Also please disable DRI!

I do not have DRI under NetBSD.

-- 
Nicolas Joly

Biological Software and Databanks.
Pasteur Institute, Paris.
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-08 Thread Nicolas Joly
On Tue, Oct 07, 2003 at 09:19:42PM -0400, David Dawes wrote:
 On Tue, Oct 07, 2003 at 05:16:28PM +0300, Alexey E. Suslikov wrote:
 Tuesday, October 7, 2003, 4:53:45 PM, you wrote:
 
  bang! this is it: the bug still exist, at least on i830m (like in my
  case). setting NoAccel true is turning off Xaa functions for first.
  linux people did so. i did too, but with no success :(
 
  I've tried very hard and I'm not seeing the problem any more.
  If you are still seeing it maybe you could do a little 
  investigation into its cause?
 
  One thing you may want to try is setting
 pI830-NeedRingBufferLow = TRUE
  This isn't done for the i830 as it didn't seem to be necessary.
 
 ok. i will try and report as soon as possible.

 That shouldn't make any difference to the noaccel case, since the
 ring buffer isn't allocated then.
 
  Yes, turning XAA off will work around the problem. The LpRing is
  only used for that.
 
 no. as i described above, this recipe was digged from mailing list
 and solves the problem for some linux people. but not for me on
 OpenBSD and this guy on NetBSD.
 
 A couple of other things I can think of are 1) some subtle difference in
 the implementation of the agpgart support for those two platforms, or
 2) the fact that the BIOS is executed via the emulator on the BSDs but
 uses vm86 mode on Linux.  Does anyone running FreeBSD see the problem?
 If not, that should rule out 2).  To take the agp support out of the
 picture, disable the HW cursor, and make sure the videoram is set to
 some amount lower than what the BIOS preallocates at boot time (e.g.,
 4096).  From your noaccel log, the agp interface is only used to allocate
 the HW cursor space (because it needs a physical address).  That means
 just adding 'Option SWCursor' to your Device section should be
 sufficient for this test.

 It would be very useful to try different OSs (Linux and one or more
 BSDs) on exactly the same machine, and see if the results were the same.
 It really has to be exactly the same machine to eliminate possible
 differences in BIOS and hardware revisions.
 
 The messages in your log:
 
 (WW) I810(0): PRB0_CTL (0x000b6007) indicates ring buffer enabled
 (WW) I810(0): PRB0_HEAD (0x) and PRB0_TAIL (0x00092660) indicate ring buffer 
 not flushed
 
 are results of some sanity checks on the inherited state that the driver
 tries to make.  It doesn't do anything other than report them.  These
 don't seem to show up at initial startup, only after switching VT's back
 and forth.
 
 There seemed to be some evidence that some BIOSes did stuff that the
 driver didn't expect when switching back to text mode.  I was never able
 to prove or disprove that theory, because I couldn't reproduce these
 lockups that others had reported.  Maybe it depends on the BIOS rev or
 hardware rev.  Maybe it's simply a bug lurking somewhere that doesn't
 affect most platforms.  It's hard to say for sure at this point.

I made some tests on my NetBSD laptop :

Dell Inspiron 2600 laptop (bios A08)
Intel 82830MP Integrated Video (rev. 0x04)
NetBSD 1.6ZC (-current 20031003)
XFree86 4.3.99.13 (-current 20031007)

* NoAccel   ... ok
* Accel ... KO
* Accel + SWcursor + 4Mo... KO
* Accel + NeedRingBufferLow ... KO

For the NoAccel case, i successfully switched about 20 times to the
4 text consoles and went back to X without any problem. But still no
luck with acceleration enabled.

-- 
Nicolas Joly

Biological Software and Databanks.
Pasteur Institute, Paris.
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-08 Thread David Dawes
On Tue, Oct 07, 2003 at 06:51:34PM -0700, Eric Anholt wrote:
On Tue, 2003-10-07 at 18:19, David Dawes wrote:
 On Tue, Oct 07, 2003 at 05:16:28PM +0300, Alexey E. Suslikov wrote:
 Tuesday, October 7, 2003, 4:53:45 PM, you wrote:
 
  bang! this is it: the bug still exist, at least on i830m (like in my
  case). setting NoAccel true is turning off Xaa functions for first.
  linux people did so. i did too, but with no success :(
 
  I've tried very hard and I'm not seeing the problem any more.
  If you are still seeing it maybe you could do a little 
  investigation into its cause?
 
  One thing you may want to try is setting
 pI830-NeedRingBufferLow = TRUE
  This isn't done for the i830 as it didn't seem to be necessary.
 
 ok. i will try and report as soon as possible.
 
 That shouldn't make any difference to the noaccel case, since the
 ring buffer isn't allocated then.
 
  Yes, turning XAA off will work around the problem. The LpRing is
  only used for that.
 
 no. as i described above, this recipe was digged from mailing list
 and solves the problem for some linux people. but not for me on
 OpenBSD and this guy on NetBSD.
 
 A couple of other things I can think of are 1) some subtle difference in
 the implementation of the agpgart support for those two platforms, or
 2) the fact that the BIOS is executed via the emulator on the BSDs but
 uses vm86 mode on Linux.  Does anyone running FreeBSD see the problem?
 If not, that should rule out 2).  To take the agp support out of the
 picture, disable the HW cursor, and make sure the videoram is set to
 some amount lower than what the BIOS preallocates at boot time (e.g.,
 4096).  From your noaccel log, the agp interface is only used to allocate
 the HW cursor space (because it needs a physical address).  That means
 just adding 'Option SWCursor' to your Device section should be
 sufficient for this test.

A couple of FreeBSDers have had problems with I830WaitLpRing errors on
switching to a different VT.

Can you confirm that this is one of the recent development snapshots?

David
-- 
David Dawes X-Oz Technologies
www.XFree86.org/~dawes  www.x-oz.com
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-08 Thread David Dawes
On Wed, Oct 08, 2003 at 05:39:59PM +0300, Alexey E. Suslikov wrote:
hmmm... yet another one on linux at 845G :)
http://marc.theaimsgroup.com/?l=xfree86m=106561213221272w=2

That one is with DRI enabled, and it isn't clear if its is related to
what you're seeing or not.  It's also with XFree86 4.3.

I haven't seen any reports from Linux users with symptoms that match
what you have reported.  If there are any Linux users reading this that
do see the same symptoms, with a recent development snapshot, please
send a note with details.

David
-- 
David Dawes X-Oz Technologies
www.XFree86.org/~dawes  www.x-oz.com
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-08 Thread David Dawes
On Wed, Oct 08, 2003 at 08:26:01PM +0300, Alexey E. Suslikov wrote:
 On Tue, Oct 07, 2003 at 09:19:42PM -0400, David Dawes wrote:
 On Tue, Oct 07, 2003 at 05:16:28PM +0300, Alexey E. Suslikov wrote:
 Tuesday, October 7, 2003, 4:53:45 PM, you wrote:
 
  bang! this is it: the bug still exist, at least on i830m (like in my
  case). setting NoAccel true is turning off Xaa functions for first.
  linux people did so. i did too, but with no success :(
 
  I've tried very hard and I'm not seeing the problem any more.
  If you are still seeing it maybe you could do a little 
  investigation into its cause?
 
  One thing you may want to try is setting
 pI830-NeedRingBufferLow = TRUE
  This isn't done for the i830 as it didn't seem to be necessary.
 
 ok. i will try and report as soon as possible.

 That shouldn't make any difference to the noaccel case, since the
 ring buffer isn't allocated then.
 
  Yes, turning XAA off will work around the problem. The LpRing is
  only used for that.
 
 no. as i described above, this recipe was digged from mailing list
 and solves the problem for some linux people. but not for me on
 OpenBSD and this guy on NetBSD.
 
 A couple of other things I can think of are 1) some subtle difference in
 the implementation of the agpgart support for those two platforms, or
 2) the fact that the BIOS is executed via the emulator on the BSDs but
 uses vm86 mode on Linux.  Does anyone running FreeBSD see the problem?
 If not, that should rule out 2).  To take the agp support out of the
 picture, disable the HW cursor, and make sure the videoram is set to
 some amount lower than what the BIOS preallocates at boot time (e.g.,
 4096).  From your noaccel log, the agp interface is only used to allocate
 the HW cursor space (because it needs a physical address).  That means
 just adding 'Option SWCursor' to your Device section should be
 sufficient for this test.

 It would be very useful to try different OSs (Linux and one or more
 BSDs) on exactly the same machine, and see if the results were the same.
 It really has to be exactly the same machine to eliminate possible
 differences in BIOS and hardware revisions.
 
 The messages in your log:
 
 (WW) I810(0): PRB0_CTL (0x000b6007) indicates ring buffer enabled
 (WW) I810(0): PRB0_HEAD (0x) and PRB0_TAIL (0x00092660) indicate ring 
 buffer not flushed
 
 are results of some sanity checks on the inherited state that the driver
 tries to make.  It doesn't do anything other than report them.  These
 don't seem to show up at initial startup, only after switching VT's back
 and forth.
 
 There seemed to be some evidence that some BIOSes did stuff that the
 driver didn't expect when switching back to text mode.  I was never able
 to prove or disprove that theory, because I couldn't reproduce these
 lockups that others had reported.  Maybe it depends on the BIOS rev or
 hardware rev.  Maybe it's simply a bug lurking somewhere that doesn't
 affect most platforms.  It's hard to say for sure at this point.
 
 I made some tests on my NetBSD laptop :
 
 Dell Inspiron 2600 laptop (bios A08)
 Intel 82830MP Integrated Video (rev. 0x04)
 NetBSD 1.6ZC (-current 20031003)
 XFree86 4.3.99.13 (-current 20031007)
 
 * NoAccel ... ok
 * Accel   ... KO
 * Accel + SWcursor + 4Mo  ... KO
 * Accel + NeedRingBufferLow   ... KO
 
 For the NoAccel case, i successfully switched about 20 times to the
 4 text consoles and went back to X without any problem. But still no
 luck with acceleration enabled.

my result with OpenBSD against -current (4.3.99.13) was completely equal
to Nicolas' with NetBSD: I830WaitLpRing() lockup still here.

Does that include the NoAccel case no longer locking up?  If so, that's
at least something positive.

additionally, i have downloaded one of these widely available linux on
livecd distros and have found 4.3.0 working.

Also good news.  I'd like suggest trying the emulator version of the
int10 module.  Normally you'd do this by renaming the
/usr/X11R6/lib/modules/linux/libint10.a file so that the generic (emulator)
version /usr/X11R6/lib/modules/libint10.a gets used instead.  That might
not be possible if you're running off a live CD.  You might be able to
achieve the same thing by copying the generic version to some writeable
directory, and edit the XF86Config file to add that directory to the
ModulePath before the default one.  Checking the log file will allow
you to confirm which module actually gets used.

When you next try on OpenBSD, can you try a kernel without the agp support,
to try eliminating that completely from the picture?

you will find dmesg and XFree86.log below. as always, i have done a couple
of terminal switching. this is it... confusing...

It's a step in the right direction, at least.

David
-- 
David Dawes X-Oz Technologies
www.XFree86.org/~dawes  www.x-oz.com
___
XFree86 

Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-07 Thread Egbert Eich
Alexey E. Suslikov writes:
  
  bang! this is it: the bug still exist, at least on i830m (like in my
  case). setting NoAccel true is turning off Xaa functions for first.
  linux people did so. i did too, but with no success :(
  

I've tried very hard and I'm not seeing the problem any more.
If you are still seeing it maybe you could do a little 
investigation into its cause?

One thing you may want to try is setting
pI830-NeedRingBufferLow = TRUE
This isn't done for the i830 as it didn't seem to be necessary.

Yes, turning XAA off will work around the problem. The LpRing is
only used for that.

Egbert.
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-07 Thread David Dawes
On Tue, Oct 07, 2003 at 05:16:28PM +0300, Alexey E. Suslikov wrote:
Tuesday, October 7, 2003, 4:53:45 PM, you wrote:

 bang! this is it: the bug still exist, at least on i830m (like in my
 case). setting NoAccel true is turning off Xaa functions for first.
 linux people did so. i did too, but with no success :(

 I've tried very hard and I'm not seeing the problem any more.
 If you are still seeing it maybe you could do a little 
 investigation into its cause?

 One thing you may want to try is setting
pI830-NeedRingBufferLow = TRUE
 This isn't done for the i830 as it didn't seem to be necessary.

ok. i will try and report as soon as possible.

That shouldn't make any difference to the noaccel case, since the
ring buffer isn't allocated then.

 Yes, turning XAA off will work around the problem. The LpRing is
 only used for that.

no. as i described above, this recipe was digged from mailing list
and solves the problem for some linux people. but not for me on
OpenBSD and this guy on NetBSD.

A couple of other things I can think of are 1) some subtle difference in
the implementation of the agpgart support for those two platforms, or
2) the fact that the BIOS is executed via the emulator on the BSDs but
uses vm86 mode on Linux.  Does anyone running FreeBSD see the problem?
If not, that should rule out 2).  To take the agp support out of the
picture, disable the HW cursor, and make sure the videoram is set to
some amount lower than what the BIOS preallocates at boot time (e.g.,
4096).  From your noaccel log, the agp interface is only used to allocate
the HW cursor space (because it needs a physical address).  That means
just adding 'Option SWCursor' to your Device section should be
sufficient for this test.

It would be very useful to try different OSs (Linux and one or more
BSDs) on exactly the same machine, and see if the results were the same.
It really has to be exactly the same machine to eliminate possible
differences in BIOS and hardware revisions.

The messages in your log:

(WW) I810(0): PRB0_CTL (0x000b6007) indicates ring buffer enabled
(WW) I810(0): PRB0_HEAD (0x) and PRB0_TAIL (0x00092660) indicate ring buffer 
not flushed

are results of some sanity checks on the inherited state that the driver
tries to make.  It doesn't do anything other than report them.  These
don't seem to show up at initial startup, only after switching VT's back
and forth.

There seemed to be some evidence that some BIOSes did stuff that the
driver didn't expect when switching back to text mode.  I was never able
to prove or disprove that theory, because I couldn't reproduce these
lockups that others had reported.  Maybe it depends on the BIOS rev or
hardware rev.  Maybe it's simply a bug lurking somewhere that doesn't
affect most platforms.  It's hard to say for sure at this point.

David
-- 
David Dawes X-Oz Technologies
www.XFree86.org/~dawes  www.x-oz.com
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-07 Thread Eric Anholt
On Tue, 2003-10-07 at 18:19, David Dawes wrote:
 On Tue, Oct 07, 2003 at 05:16:28PM +0300, Alexey E. Suslikov wrote:
 Tuesday, October 7, 2003, 4:53:45 PM, you wrote:
 
  bang! this is it: the bug still exist, at least on i830m (like in my
  case). setting NoAccel true is turning off Xaa functions for first.
  linux people did so. i did too, but with no success :(
 
  I've tried very hard and I'm not seeing the problem any more.
  If you are still seeing it maybe you could do a little 
  investigation into its cause?
 
  One thing you may want to try is setting
 pI830-NeedRingBufferLow = TRUE
  This isn't done for the i830 as it didn't seem to be necessary.
 
 ok. i will try and report as soon as possible.
 
 That shouldn't make any difference to the noaccel case, since the
 ring buffer isn't allocated then.
 
  Yes, turning XAA off will work around the problem. The LpRing is
  only used for that.
 
 no. as i described above, this recipe was digged from mailing list
 and solves the problem for some linux people. but not for me on
 OpenBSD and this guy on NetBSD.
 
 A couple of other things I can think of are 1) some subtle difference in
 the implementation of the agpgart support for those two platforms, or
 2) the fact that the BIOS is executed via the emulator on the BSDs but
 uses vm86 mode on Linux.  Does anyone running FreeBSD see the problem?
 If not, that should rule out 2).  To take the agp support out of the
 picture, disable the HW cursor, and make sure the videoram is set to
 some amount lower than what the BIOS preallocates at boot time (e.g.,
 4096).  From your noaccel log, the agp interface is only used to allocate
 the HW cursor space (because it needs a physical address).  That means
 just adding 'Option SWCursor' to your Device section should be
 sufficient for this test.

A couple of FreeBSDers have had problems with I830WaitLpRing errors on
switching to a different VT.

-- 
Eric Anholt[EMAIL PROTECTED]  
http://people.freebsd.org/~anholt/ [EMAIL PROTECTED]


___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-06 Thread Nicolas Joly
On Sat, Oct 04, 2003 at 02:17:33PM -0400, David Dawes wrote:
 On Sat, Oct 04, 2003 at 07:43:29PM +0300, Alexey E. Suslikov wrote:
 is fixing Error in I830WaitLpRing() bug in plans of X
 developers? there are numerous related bug reports from
 all linux and bsd people. and this is LONG TERM bug. and
 it seems BOTH 845 and 830 affected.
 
 Try a recent development snapshot version.  Most reports I've seen
 of this type of problem have been fixed there.  The last known
 cause of this problem (and there have been several) was fixed after
 4.3.0 was released.

Same problem here under NetBSD 1.6ZC (-current), with XFree 4.3.99.13
(-current). I have lockup errors if acceleration is enabled, but it
work fine witout.

-- 
Nicolas Joly

Biological Software and Databanks.
Pasteur Institute, Paris.

This is a pre-release version of XFree86, and is not supported in any
way.  Bugs may be reported to [EMAIL PROTECTED] and patches submitted
to [EMAIL PROTECTED]  Before reporting bugs in pre-release versions,
please check the latest version in the XFree86 CVS repository
(http://www.XFree86.Org/cvs).

XFree86 Version 4.3.99.13
Release Date: 25 September 2003
X Protocol Version 11, Revision 0, Release 6.6
Build Operating System: NetBSD/i386 1.6ZC [ELF] The NetBSD Foundation, Inc.
Current Operating System: NetBSD calamity.sis.pasteur.fr 1.6ZC NetBSD 1.6ZC (CALAMITY) 
#0: Fri Oct  3 09:56:38 CEST 2003  [EMAIL 
PROTECTED]:/local/src/NetBSD/objs/local/src/NetBSD/src/sys/arch/i386/compile/CALAMITY 
i386
Build Date: 06 October 2003
Changelog Date: 04 October 2003
Before reporting problems, check http://www.XFree86.Org/
to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: /var/log/XFree86.0.log, Time: Mon Oct  6 13:24:55 2003
(==) Using config file: /etc/X11/XF86Config
(==) ServerLayout XFree86 Configured
(**) |--Screen Screen0 (0)
(**) |   |--Monitor Monitor0
(**) |   |--Device Card0
(**) |--Input Device Mouse0
(**) |--Input Device Keyboard0
(==) Keyboard: CustomKeycode disabled
(**) FontPath set to 
/usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/X11/fonts/Speedo/,/usr/X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/75dpi/,/usr/X11R6/lib/X11/fonts/100dpi/
(**) RgbPath set to /usr/X11R6/lib/X11/rgb
(**) ModulePath set to /usr/X11R6/lib/modules
(--) Using wscons driver in pcvt compatibility mode (version 3.32)
(II) Module ABI versions:
XFree86 ANSI C Emulation: 0.2
XFree86 Video Driver: 0.7
XFree86 XInput driver : 0.4
XFree86 Server Extension : 0.2
XFree86 Font Renderer : 0.4
(II) Loader running on netbsd
(II) LoadModule: bitmap
(II) Loading /usr/X11R6/lib/modules/fonts/libbitmap.a
(II) Module bitmap: vendor=The XFree86 Project
compiled for 4.3.99.13, module version = 1.0.0
Module class: XFree86 Font Renderer
ABI class: XFree86 Font Renderer, version 0.4
(II) Loading font Bitmap
(II) LoadModule: pcidata
(II) Loading /usr/X11R6/lib/modules/libpcidata.a
(II) Module pcidata: vendor=The XFree86 Project
compiled for 4.3.99.13, module version = 1.0.0
ABI class: XFree86 Video Driver, version 0.7
(II) PCI: Probing config type using method 1
(II) PCI: Config type is 1
(II) PCI: stages = 0x03, oldVal1 = 0x, mode1Res1 = 0x8000
(II) PCI: PCI scan (all values are in hex)
(II) PCI: 00:00:0: chip 8086,3575 card 8086,1969 rev 04 class 06,00,00 hdr 00
(II) PCI: 00:02:0: chip 8086,3577 card 1028,00b8 rev 04 class 03,00,00 hdr 80
(II) PCI: 00:02:1: chip 8086,3577 card 1028,00b8 rev 00 class 03,80,00 hdr 80
(II) PCI: 00:1d:0: chip 8086,2482 card 8086,4541 rev 02 class 0c,03,00 hdr 80
(II) PCI: 00:1d:1: chip 8086,2484 card 8086,4541 rev 02 class 0c,03,00 hdr 00
(II) PCI: 00:1e:0: chip 8086,2448 card , rev 42 class 06,04,00 hdr 01
(II) PCI: 00:1f:0: chip 8086,248c card , rev 02 class 06,01,00 hdr 80
(II) PCI: 00:1f:1: chip 8086,248a card 8086,4541 rev 02 class 01,01,8a hdr 00
(II) PCI: 00:1f:3: chip 8086,2483 card 8086,4541 rev 02 class 0c,05,00 hdr 00
(II) PCI: 00:1f:5: chip 8086,2485 card 1028,00b8 rev 02 class 04,01,00 hdr 00
(II) PCI: 00:1f:6: chip 8086,2486 card 14f1,5421 rev 02 class 07,03,00 hdr 00
(II) PCI: 01:01:0: chip 10b7,9200 card 1028,00b8 rev 78 class 02,00,00 hdr 00
(II) PCI: 01:04:0: chip 1217,6972 card fffd, rev 00 class 06,07,00 hdr 02
(II) PCI: End of PCI scan
(II) Host-to-PCI bridge:
(II) Bus 0: bridge is at (0:0:0), (0,0,2), BCTRL: 0x0008 (VGA_EN is set)
(II) Bus 0 I/O range:
[0] -1  0   0x - 0x (0x1) IX[B]
(II) Bus 0 non-prefetchable memory range:
[0] -1  0   0x - 0x (0x0) MX[B]
(II) Bus 0 prefetchable memory range:
[0] -1  0   0x - 0x (0x0) MX[B]
(II) PCI-to-PCI bridge:
(II) Bus 1: 

Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-05 Thread David Dawes
On Sun, Oct 05, 2003 at 01:38:27PM +0300, Alexey E. Suslikov wrote:
is fixing Error in I830WaitLpRing() bug in plans of X
developers? there are numerous related bug reports from
all linux and bsd people. and this is LONG TERM bug. and
it seems BOTH 845 and 830 affected.
 
 Try a recent development snapshot version.  Most reports I've seen
 of this type of problem have been fixed there.  The last known
 cause of this problem (and there have been several) was fixed after
 4.3.0 was released.
 
 There might be some DRI-related problems remaining, but they wouldn't
 be relevant to your configuration.
 
 David

hmmm... can you point me on some related commit? it is easy
for me to apply some patches and rebuild, not to fetch all
of the HEAD.

Use 'cvs rlog', 'cvs rdiff', or browse at cvsweb.xfree86.org.  I'd have
to do the same to isolate the relevant patch.

David
--
David Dawes
Founder/committer/developer The XFree86 Project
www.XFree86.org/~dawes
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


Re: [XFree86] All annoying error in I830WaitLpRing() in some details

2003-10-04 Thread David Dawes
On Sat, Oct 04, 2003 at 07:43:29PM +0300, Alexey E. Suslikov wrote:
is fixing Error in I830WaitLpRing() bug in plans of X
developers? there are numerous related bug reports from
all linux and bsd people. and this is LONG TERM bug. and
it seems BOTH 845 and 830 affected.

Try a recent development snapshot version.  Most reports I've seen
of this type of problem have been fixed there.  The last known
cause of this problem (and there have been several) was fixed after
4.3.0 was released.

There might be some DRI-related problems remaining, but they wouldn't
be relevant to your configuration.

David
-- 
David Dawes
Founder/committer/developer The XFree86 Project
www.XFree86.org/~dawes
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86