[PATCH] [Karmic SRU] [Lucid] drm/i915: Fix sync to vblank when VGA output is turned off
Alberto Milone
alberto.milone at canonical.com
Fri Dec 11 12:15:14 UTC 2009
On Wednesday 09 Dec 2009 14:52:41 you wrote:
> Alberto Milone wrote:
> > Hi all,
> >
> > SRU Justification:
> >
> > The problem described in this email was reported in a private OEM bug
> > report for Dell and has been solved by upstream. It's a regression in the
> > drm code which causes a massive system slowdown if we turn off the VGA
> > output.
> >
> > The patch is sane and minimal and is available in the drm-intel branch
> > and in the linux-next branch (see the link to the commit in the bug
> > report).
> >
> > I have applied (and slightly adapted, as it didn't apply cleanly to our
> > lucid and karmic git branches) and tested the patch successfully in
> > Karmic.
> >
> > The integration of this patch is very important for our Dell projects and
> > for the Ubuntu desktop at large.
> >
> > Please include the attached patch in both Karmic and Lucid ASAP.
> >
> > Bug #494461
> >
> > Thanks in advance for your time.
> >
> > Regards,
>
> This should actually have gone to stable as well as it fixes a regression.
> Also the description sounds like the integration path should be stable as
> well (as long as that is open).
> The patch itself looks like it changes semantics of an exported function.
> Before additional calls to drm_vblank_get() would return ok and increment
> the ref count. After the change, additional calls will return an error and
> not increment the count. On the good side it seems that function is only
> used within drm_irq.c and the usage seems to be ok to handle that change.
> Currently not 100% convinced to ack, but might get convinced.
>
> -Stefan
>
> -Stefan
>
Hi Stefan,
I discussed this with Jesse (who reviewed the patch). It's ok to return an
error in drm_vblank_get().
Think of the case in which a client (a direct rendered 3d app such as compiz
or a game) tries to wait on a pipe that is off (e.g. due to dpms), the client
would do so, but if the pipe went off after a client waited, the client might
never wake up. Furthermore if a pipe went off we might not catch it for a
while. For this reason it's ok to return the error to the client.
Furthermore the patch seems to be in the stable branch too:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6-
stable.git;a=commit;h=778c902640530371a169ad1c03566e7c51b09874
I hope both facts (especially the latter) can fully convince you, and if they
don't, I'll try harder ;)
Regards,
--
Alberto Milone
Sustaining Engineer (system)
Foundations Team
Canonical OEM Services
More information about the kernel-team
mailing list