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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>>>>> >>> 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 (0x00000000) 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.

>>>>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 (0x00000000) 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 on OpenBSD, can you try a kernel without the agp support,
>>> to try eliminating that completely from the picture?
>>
>>will X11 run without agp support in the kernel? will specifying
>>"NoAccel" and "SWCursor" be enough against such kernel?
> 
> Yes, it will run without agp support.  For your configuration, the only
> functionality that won't be available in that case is the HW cursor and
> XVideo.  Acceleration is still available.  Functionality that requires
> an AGP allocation will automatically be disabled when it's not available.

i can't:

Fatal server error:
xf86EnableIO: Failed to set IOPL for extended I/O
        Check that you have set 'machdep.allowaperture=1'
        in /etc/sysctl.conf and reboot your machine
        refer to xf86(4) for details

When reporting a problem related to a server crash, please send
the full server output, not just the last messages.
This can be found in the log file "/var/log/XFree86.0.log".
Please report problems to xfree86@xxxxxxxxxxxx

_______________________________________________
XFree86 mailing list
XFree86@xxxxxxxxxxx
http://XFree86.Org/mailman/listinfo/xfree86

[Index of Archives]     [X Forum]     [Xorg]     [XFree86 Newbie]     [IETF Announce]     [Security]     [Font Config]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux Kernel]

  Powered by Linux