All of 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: 16+ 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 13:06                 ` 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 \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.