LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Chris Clayton <chris2553@googlemail.com>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Handle the no-interrupts case for UMS by polling
Date: Sun, 23 Jan 2011 15:38:41 +0000	[thread overview]
Message-ID: <201101231538.41929.chris2553@googlemail.com> (raw)
In-Reply-To: <1295787965-6849-1-git-send-email-chris@chris-wilson.co.uk>

On Sunday 23 January 2011, Chris Wilson wrote:
> If the driver calls into the kernel to wait for a breadcrumb to pass,
> but hasn't enabled interrupts, fallback to polling the breadcrumb value.
>
> Reported-by: Chris Clayton <chris2553@googlemail.com>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/i915_irq.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c
> b/drivers/gpu/drm/i915/i915_irq.c index 98106b7..4b5a35c 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -1293,12 +1293,12 @@ static int i915_wait_irq(struct drm_device * dev,
> int irq_nr) if (master_priv->sarea_priv)
>  		master_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;
>
> -	ret = -ENODEV;
>  	if (ring->irq_get(ring)) {
>  		DRM_WAIT_ON(ret, ring->irq_queue, 3 * DRM_HZ,
>  			    READ_BREADCRUMB(dev_priv) >= irq_nr);
>  		ring->irq_put(ring);
> -	}
> +	} else if (wait_for(READ_BREADCRUMB(dev_priv) >= irq_nr, 3000))
> +		ret = -EBUSY;
>
>  	if (ret == -EBUSY) {
>  		DRM_ERROR("EBUSY -- rec: %d emitted: %d\n",

That's done it. With all three patches applied, X and KDE are starting now. 
Thanks for your work on this.

A couple of points though.

1. The latest patch applied but the following warning was spat out:

patching file drivers/gpu/drm/i915/i915_irq.c
Hunk #1 succeeded at 1288 (offset -5 lines).

I guess we may be working with slightly different versions of the source.

2. The kernel log now contains the following:

r8169 0000:02:00.0: eth0: link up
[drm] Initialized drm 1.1.0 20060810
irq 16: nobody cared (try booting with the "irqpoll" option)
Pid: 0, comm: kworker/0:1 Not tainted 2.6.38-rc2+ #502
Call Trace:
 [<c1070a54>] ? __report_bad_irq.clone.2+0x24/0x90
 [<c1070c17>] ? note_interrupt+0x157/0x190
 [<c101b1cd>] ? ack_apic_level+0x5d/0x1e0
 [<c107175b>] ? handle_fasteoi_irq+0xab/0xd0
 [<c10716b0>] ? handle_fasteoi_irq+0x0/0xd0
 <IRQ>  [<c1004ddd>] ? do_IRQ+0x3d/0xc0
 [<c1037f27>] ? irq_exit+0x57/0x70
 [<c1019173>] ? smp_apic_timer_interrupt+0x53/0x90
 [<c1003229>] ? common_interrupt+0x29/0x30
 [<c119fbe9>] ? acpi_safe_halt+0x19/0x26
 [<c119fc50>] ? acpi_idle_enter_c1+0x5a/0xa9
 [<c1244d98>] ? cpuidle_idle_call+0x68/0xf0
 [<c1001726>] ? cpu_idle+0x46/0x80
handlers:
[<c129dd60>] (azx_interrupt+0x0/0x180)
[<c12210d0>] (usb_hcd_irq+0x0/0x60)
Disabling IRQ #16
pci 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
pci 0000:00:02.0: setting latency timer to 64
ioremap error for 0xbdce0000-0xbdce3000, requested 0x10, got 0x0
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] No driver support for vblank timestamp query.
[drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0

Is this likely to be related the the irq issues your patch addressed or is it a 
separate thing that I should report separately?

Thanks again.

Chris

-- 
The more I see, the more I know. The more I know, the less I understand. 
Changing Man - Paul Weller

  reply	other threads:[~2011-01-23 15:38 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <:201101220935.03623.chris2553@googlemail.com>
2011-01-22 10:11 ` [PATCH] drm/i915: Increase the amount of defense before computing vblank timestamps Chris Wilson
2011-01-22 11:18   ` Chris Clayton
2011-01-22 18:01     ` Chris Wilson
2011-01-23  8:56       ` Chris Clayton
2011-01-23  9:32         ` Chris Clayton
2011-01-23 10:50           ` [PATCH] drm/i915: Disable high-precision vblank timestamping for UMS Chris Wilson
2011-01-23 11:28             ` Chris Clayton
2011-01-23 12:44               ` Chris Wilson
2011-01-23 12:55                 ` Chris Clayton
2011-01-23 13:06               ` [PATCH] drm/i915: Handle the no-interrupts case for UMS by polling Chris Wilson
2011-01-23 15:38                 ` Chris Clayton [this message]
2011-01-23 15:59                   ` Chris Wilson
2011-02-10 19:58                     ` Chris Clayton
2011-02-10 20:37                       ` Chris Wilson
2011-01-23 10:52           ` [PATCH] drm/i915: Increase the amount of defense before computing vblank timestamps Chris Wilson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201101231538.41929.chris2553@googlemail.com \
    --to=chris2553@googlemail.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --subject='Re: [PATCH] drm/i915: Handle the no-interrupts case for UMS by polling' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).