On Wed, 2007-12-26 at 08:00 +0800, minskey guo wrote:
> Hi, guys,
>
> In intelWaitIrq() of intel_ioctl.c file, there is the following
> code:
>
> void intelWaitIrq( intelContextPtr intel, int seq )
> {
> ...
> do {
> ret = drmCommandWrite( intel->driFd, DRM_I830_IRQ_WAIT, &intel->iw,
> sizeof(intel->iw) );
> } while (ret == -EAGAIN || ret == -EINTR);
> ...
> }
>
>
> But the kernel i915 DRM driver doesn't return EAGAIN for
> ioctl DRM_I830_IRQ_WAIT. Refer to i915_wait_irq() in file
> i915_irq.c and DRM_WAIT_ON macro in drm_os_linux.h
>
> >From the macro of DRM_WAIT_ON, I think i915_wait_irq()/
> ioctl DRM_I830_IRQ_WAIT can get return value of -EBUYS
> or -EINTR only, no -EAGAIN.
>
>
> So, I guess that the checking for -EAGAIN should be replaced
> with the checking for -EBUSY in intelWaitIrq() of intel_ioctl.c,
> Is my understanding right ?
No. The ioctl will only return -EBUSY after a 3 second timeout, which
usually means the GPU has locked up, and retrying is pointless.
--
Earthling Michel Dänzer | http://tungstengraphics.com
Libre software enthusiast | Debian, X and DRI developer
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev