[Intel-gfx] Suggestions on fixing fill_modes ioctl() delays under i915

Adam Jackson ajax at redhat.com
Mon Apr 16 18:37:08 CEST 2012


On Mon, 2012-04-16 at 18:54 +0300, Dan Aloni wrote:

> Okay, with 3.4-rc3 I can confirm that it works much better. For the
> xrandr test case, I've timed each ioctl to about 60 milli-secs with 9
> calls spanning over half a second. Any further suggestions? Isn't it
> possible to tell that nothing is connected and then not try to probe
> those ports at all?

There could be such detection, but there is not.  We have hotplug
interrupts, but we don't trust them to actually tell us whether
something is connected.  (We don't trust them because we think they're
unreliable, and then they remain unreliable because we don't fix the
implementation to be trustworthy.)  We just turn the interrupts into
uevents and then rely on userspace to compensate for the kernel not
doing a good enough job.

Since we don't do that, the only way to tell that nothing is connected
is to probe.  We could make probing a bit faster by caching previous
EDID and memcmp'ing the first 16 bytes (which include the
vendor/model/serial tuple, which should be unique enough) instead of
retrying the whole EDID fetch unconditionally.

But, as Chris said: You probably want to fix SDL to use
GetScreenResourcesCurrent since GetScreenResources is really only meant
for the session's configuration manager; and if you're running xrandr by
hand, use xrandr --current.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20120416/80fe114d/attachment.sig>


More information about the Intel-gfx mailing list