Fix the Linux driver so that it doesn't use 5-15% CPU when my DisplayLink device is _unplugged_.
When unplugged, I consistently (and continuously, not just short spikes) see the DisplayLinkManager process take up 5-15% CPU. I don't understand why it's using so much CPU when there's literally nothing for it to do. It's really hurting my battery life & performance.
This should now be fixed in Ubuntu release 1.2 available from our website:
-
Devil Scheme commented
I’ve been trying to figure out why my system is burning so much CPU even when it’s barely doing anything. Not only does it tank performance, but it drains the battery way faster than it should. Issues like this really highlight how important efficient system design is https://emsys.com/battery-testing —whether we’re talking about computers or battery service hardware. That’s why I appreciate EMSYS Design’s approach: their modern hardware reduces setup and maintenance time, and their software cuts down the effort spent analyzing data and generating compliance reports. When the tools around your power system are optimized properly, you get better performance, longer battery life, and far fewer headaches from unnecessary resource usage.
-
Aftab Naveed
commented
This seems to be not fixed, DisplayLink manager is still most power consuming process even when I have no display attached.
mmary: 6635.1 wakeups/second, 0.0 GPU ops/seconds, 0.0 VFS ops/sec and 126.7% CPU use
Usage Events/s Category Description
31.9 ms/s 1693.4 Process [PID 29086] /opt/displaylink/DisplayLinkManager -
Wouter Bolsterlee
commented
i also suffer from this. displaylinkmanager drains my battery when NO external screen is connected. strace reveals a lot of select() syscalls with a 0 timeout. is that really needed?
[pid 3436] nanosleep({0, 1000000}, NULL) = 0
[pid 3436] select(10, [5 9], NULL, NULL, NULL) = 1 (in [9])
[pid 3436] write(15, "\n", 1 <unfinished ...>
[pid 3438] <... select resumed> ) = 1 (in [10])
[pid 3436] <... write resumed> ) = 1
[pid 3438] futex(0x24636f0, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
[pid 3436] futex(0x24636f0, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid 3438] <... futex resumed> ) = -1 EAGAIN (Resource temporarily unavailable)
[pid 3436] <... futex resumed> ) = 0
[pid 3438] read(10, <unfinished ...>
[pid 3436] nanosleep({0, 1000000}, <unfinished ...>
[pid 3438] <... read resumed> "\n", 1000) = 1
[pid 3438] futex(0x24636f0, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 3438] select(10, [9], NULL, NULL, {0, 0}) = 1 (in [9], left {0, 0})
[pid 3438] read(9, "", 1) = 0
[pid 3438] access("/tmp/PmMessagesPort_in", F_OK) = 0
[pid 3438] select(14, [10 11 13], NULL, NULL, NULL <unfinished ...>
[pid 3436] <... nanosleep resumed> NULL) = 0