Re: [PATCH] drm/i915: Suppress spurious vblank interrupts

From: Hugh Dickins
Date: Tue Feb 01 2011 - 13:46:25 EST


On Tue, Feb 1, 2011 at 10:08 AM, Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote:
> On Tue, 1 Feb 2011 09:46:43 -0800
> Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote:
>>
>> Are you still seeing underruns during normal activity?

Yes. That is, I see the "pipe a underrun" messages when I set drm
debug 7: I'm unaware of any ill-effect from them, unless they are
indeed a factor in my unflushed text issue.

>> I wonder if the
>> ones you were seeing before were only reported at 60Hz due to vblank
>> interrupt processing. ÂIf we failed to clear the underrun status, we'd
>> report one every time we got a vblank interrupt (since the underruns
>> don't report interrupts by themselves).

I was surprised that i915_driver_irq_handler "Clear the PIPE(A|B)STAT
regs" writes back precisely the pipea_stats it reads in, I'd have
expected to clear something there (and did earlier experiment with
writing back 0: black screen at boot!). But assumed the protocol is
such that it acknowledges the status bits by writing same back.

>>
>> If so, that may just be a red herring in this case.
>
> More random questions arise from the info provided:
> Â- why are we ending up in the flip code at all? Âfvwm shouldn't
> Â trigger that path...

Right. I haven't double-checked the logic, but I believe it's because
of bits set in the underrunning pipea_stats. I did one time modify
the underrun message to print out pipea_stats, over five seconds most
(265) values were 0x80440207
(there were also 14 occurrences of 0x80440007, 5 of 0x80440004 and 3
of 0x80440204).

> Â- what's with all the underruns? Âit looks like we *do* ack those
> Â flags as needed, so apparently they're valid, but they indicate a
> Â serious problem with the display pipeline; maybe self-refresh
> Â shouldn't be enabled on your system (that would increase memory
> Â latency and potentially cause underruns), running with
> Â i915.powersave=0 would disable that feature

I just tried i915.powersave=0 but the underruns still appeared. I
then tried earlier kernels, and was surprised to find no underruns
with 2.6.34, 2.6.36: the underruns appeared with 2.6.37.

>
> The lack of text really does sound like a render cache flushing
> problem, but the other issues are worrying as well, and could be
> compounding things. ÂAnd the last time I saw the issue, it was related
> to compositing and required an X server fix. ÂBut supposedly you're not
> using compositing, so...

That's right.

Hugh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/