Bug#492491: Just pressing and holding "a" in konsole recently makes X eat all cpu
Package: konsole
Version: 4:3.5.9.dfsg.1-4
Severity: normal
[I don't know if this is a konsole or X (or qt) bug, but konsole is
where it happens so reporting a bug against konsole, Cc: to
debian-x@l.d.o. Feel free to reassign as you see fit.]
Starting with either kernel 2.6.26 or (which I suspect more) a recent
X update in unstable, just pressing and holding a letter makes X eat
lots (>80 %) of cpu (one core of a modern intel core 2 quad) as the
letters get printed. Also when normally typing, there is a noticeable,
but not tremendous, latency before getting the letters on screen. This
didn't happen before.
I don't use any transparency, either at the X level or the konsole
fake transparency. Schema is white on black, font is Monospace bold
12, antialiased. The same does not happen in gnome-terminal with the
same (and still antialiased) font.
Video card is Radeon HD 2600 with xserver-xorg-video-radeonhd 1.2.1-2
and xserver-xorg-core 2:1.4.2-2, with no direct rendering (I guess DR
is not even supported by the driver yet?). As I mentioned, this used
to work fine for a long time at least until a couple of weeks ago.
Some days ago I rebooted to kernel 2.6.26 and probably also an updated
X server and experienced this bug.
To me a particularly interesting fact is that making the konsole
window larger makes X eat more cpu (despite only the same small
portion of the konsole being updated); with a nearly full-screen
konsole (something like 1600x1120) X takes 80% of cpu; with a 800x600
size (and the same font and everything) the load is 50%.
I did some profiling, all the CPU time gets spent in
xserver-xorg-core's libshadow.so, function shadowUpdatePacked:
------------------------------------------------------------
$ opreport --symbols
warning: [vdso] (tgid:5197 range:0x7fff917ff000-0x7fff91800000) could not be found.
CPU: Core 2, speed 2394 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
samples % image name app name symbol name
2198021 95.0486 libshadow.so libshadow.so shadowUpdatePacked
8679 0.3753 libkdeinit_konsole.so libkdeinit_konsole.so (no symbols)
3118 0.1348 libc-2.7.so libc-2.7.so __gconv_transform_utf8_internal
2966 0.1283 oprofiled oprofiled (no symbols)
2900 0.1254 libc-2.7.so libc-2.7.so mbrtowc
------------------------------------------------------------
If you think it might help, I'm willing to spend some time to debug
this further. For example if you think it would be of any use, I could
get a more detailed source level annotation of shadowUpdatePacked, I
just need to recompile xserver-xorg-core for that.
Sami
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.26 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages konsole depends on:
ii kdelibs4c2a 4:3.5.9.dfsg.1-6 core libraries and binaries for al
ii libc6 2.7-12 GNU C Library: Shared libraries
ii libgcc1 1:4.3.1-7 GCC support library
ii libqt3-mt 3:3.3.8b-5 Qt GUI Library (Threaded runtime v
ii libstdc++6 4.3.1-7 The GNU Standard C++ Library v3
ii libx11-6 2:1.1.4-2 X11 client-side library
ii libxrender1 1:0.9.4-2 X Rendering Extension client libra
konsole recommends no packages.
Versions of packages konsole suggests:
ii khelpcente 4:4.0.0.really.3.5.9.dfsg.1-4 help center for KDE
-- no debconf information
Reply to: