Thunderbolt, Apple Monitor & MBA, and excess kworker load
Dominik Brodowski
linux at dominikbrodowski.net
Thu Jun 21 03:59:00 PDT 2012
On Wed, Jun 20, 2012 at 06:10:12PM +0200, Daniel Vetter wrote:
> On Wed, Jun 20, 2012 at 08:56:26AM -0700, Greg KH wrote:
> > On Wed, Jun 20, 2012 at 05:48:42PM +0200, Dominik Brodowski wrote:
> > > Hi,
> > >
> > > At work, I wish to attach a 27" Apple Display using thunderbolt to my Mac
> > > Book Air 4,2 13". Using OS X, it works fine, but as I prefer using Linux, I
> > > tested out Ubuntu's stock kernel and (among other) 3.5.0-rc3+ as of f40759e.
> > > Hotplug doesn't work (known issue), but also with coldplug the display
> > > reacts _very_ slow, way too slow for real use: The screen updates only every
> > > half second or so. Is this a known bug? Might something go afoul with
> > > kworker -- they need about 75% of the CPU with the large display attached,
> > > and less than 1% _without_ the large display.
> >
> > It's not really a known bug, but it is known that Thunderbolt doesn't
> > work all that well, if at all, in Linux due to the BIOS issues that you
> > have run into (the hotplug stuff.)
Is there anything where I could help?
> > Once the device is seen, it should just work like any other PCI device,
> > and so, that might be a DRM driver issue somehow.
>
> A quick full-system profile would be a good start to tell where we're
> burning through all these cycles exaclty. Also, anything special going on
> with interrupts (if this excessive load is due to supurious display
> hotplug events, drm/i915 should get _tons_ of interrupts).
Did a $ perf record -a -g sleep 10 , and that shows:
- 11,67% kworker/1:1 [kernel.kallsyms]
+ native_read_tsc
+ delay_tsc
- 9,56% kworker/3:2 [kernel.kallsyms]
+ native_read_tsc
+ delay_tsc
and other uninteresting things.
$ echo workqueue:workqueue_queue_work > /sys/kernel/debug/tracing/set_event
$ cat /sys/kernel/debug/tracing/trace_pipe
shows these top functions:
305 i915_hotplug_work_func
504 flush_to_ldisc
14759 do_dbs_timer
so nothing of interest either. Interrupts: pretty normal.
Any ideas on how to debug this further?
Thanks & best,
Dominik
More information about the dri-devel
mailing list