lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 13 Jan 2010 22:06:34 +0100
From:	Thomas Meyer <thomas@...3r.de>
To:	Jesse Barnes <jbarnes@...tuousgeek.org>
Cc:	"Rafael J. Wysocki" <rjw@...k.pl>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	Kernel Testers List <kernel-testers@...r.kernel.org>,
	Eric Anholt <eric@...olt.net>
Subject: Re: [Bug #14670] i915: playing video via XVideo extension makes
 the screen flicker

Am Dienstag, den 12.01.2010, 09:57 -0800 schrieb Jesse Barnes:

> Yeah, the function tracer should be able to do it (though I don't know
> how to use it offhand, maybe through the perf tool?).  Or you could
> just add some DRM_ERROR lines. :)

I set the function tracer to the function "drm_mode_getconnector":

here is the output, that i captured after I start playing a video with
totem (i.e. the flickering starts):

# tracer: function
#
#           TASK-PID    CPU#    TIMESTAMP  FUNCTION
#              | |       |          |         |
            Xorg-1443  [000]  1880.280581: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.394308: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.395379: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.406780: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.420169: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.424712: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.444334: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.631332: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.632368: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.643349: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.656874: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.662623: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.764168: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.986639: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.988920: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1880.999856: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.013260: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.024310: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.069299: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.303194: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.305308: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.316421: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.329808: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.337493: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.420231: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.633036: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.634075: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.646363: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.659741: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.670751: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.742476: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.959634: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.960669: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.972904: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.986272: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1881.993965: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.078704: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.295050: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.296104: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.309439: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.322834: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.333858: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.407520: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.622870: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.623896: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.635987: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.649366: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.660390: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.772479: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.992680: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1882.993707: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.005845: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.019238: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.026922: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.142571: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.359167: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.360190: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.372398: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.385862: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.393457: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.479378: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.692285: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.693326: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.705552: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.718920: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.729979: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1883.808964: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.032179: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.033222: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.045422: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.058808: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.066525: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.151051: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.368836: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.369872: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.382019: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.395401: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.403100: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.504375: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.725273: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.726373: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.738545: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.751942: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.759633: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1884.828803: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.045242: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.046283: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.058442: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.071842: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.079498: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.162244: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.388404: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.389429: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.401620: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.415130: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.421548: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.510004: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.685747: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.686776: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.698176: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.711599: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.723703: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1885.808301: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.032422: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.033456: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.044685: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.058081: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.065622: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.140785: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.367987: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.369012: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.381254: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.394621: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.402334: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.456423: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.671279: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.672302: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.684470: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.697844: drm_mode_getconnector <-drm_ioctl
            Xorg-1443  [000]  1886.705543: drm_mode_getconnector <-drm_ioctl

Any idea why the function "drm_mode_getconnector" is called so many
times?

The call chain seems to be

drm_ioctl ->
drm_mode_getconnector ->
drm_helper_probe_single_connector_modes ->
  intel_crt_detect, intel_hdmi_detect and intel_lvds_detect

> 
> > > The LVDS state will also be checked at ACPI LID event time, maybe
> > > your platforms is getting spurious LID events?
> > 
> > maybe! where can I check this? acpid log file?
> 
> Yeah or using acpi_listen I think.
> 

acpi lid events seems to correspond to the lid status.

greets
thomas


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

Powered by blists - more mailing lists