Dear Maintainer,
I have virtual machine running with no display manager and a
'/etc/xinit/xinitrc' that has only this content:
#!/bin/sh
set -e
xmessage "wait ..."
After a few (5 to 50) switches between the virtual consoles, the xmessage
window is not properly redrawn (the text is missing) and the UI becomes
unresponsive (switching between VTs no longer possible, ssh login still
possible).
In top 'Xorg' is reported with ~30% CPU usage.
The strace of 'Xorg' looks like this:
...
nanosleep({0, 1000}, NULL) = 0
nanosleep({0, 1000}, NULL) = 0
nanosleep({0, 1000}, NULL) = 0
nanosleep({0, 1000}, NULL) = 0
nanosleep({0, 1000}, NULL) = 0
nanosleep({0, 1000}, NULL) = 0
nanosleep({0, 1000}, NULL) = 0
nanosleep({0, 1000}, NULL) = 0
nanosleep({0, 1000}, NULL) = 0
nanosleep({0, 1000}, NULL) = 0
nanosleep({0, 1000}, NULL) = 0
...
The backtrace of 'Xorg' in gdb looks like this:
#0 0xb716520b in __nanosleep_nocancel ()
at ../sysdeps/unix/syscall-template.S:81
#1 0xb71934ed in usleep (useconds=1) at
.../sysdeps/unix/sysv/linux/usleep.c:32
#2 0xb6b728fa in qxl_wait_for_io_command (qxl=0xb7f1c398, qxl=0xb7f1c398)
at ../../src/qxl_io.c:47
#3 0xb6b72954 in qxl_update_area (qxl=0xb7f1c398) at ../../src/qxl_io.c:76
#4 0xb6b6d727 in qxl_bo_update_area (surf=0xb822c040, x1=180, y1=-15,
x2=212,
y2=17) at ../../src/qxl_mem.c:639
#5 0xb6b6ae9a in qxl_download_box (surface=0xb822c040, x1=180, y1=-15,
x2=212, y2=17) at ../../src/qxl_surface.c:143
#6 0xb6b6afb3 in qxl_surface_prepare_access (surface=0xb822c040,
pixmap=0xb7fb2df0, region=0xbfc15644, access=UXA_ACCESS_RO)
at ../../src/qxl_surface.c:178
#7 0xb6b71971 in qxl_prepare_access (pixmap=0xb7fb2df0, region=0xbfc15708,
access=UXA_ACCESS_RO) at ../../src/qxl_uxa.c:49
#8 0xb6b76477 in uxa_prepare_access (pDrawable=0xb7fb3320,
region=0xbfc15708,
access=UXA_ACCESS_RO) at ../../../src/uxa/uxa.c:172
#9 0xb6b7f2fc in uxa_check_copy_area (pSrc=0xb7fb3320, pDst=0xb82144d8,
pGC=0xb80600f0, srcx=180, srcy=-15, w=32, h=32, dstx=0, dsty=0)
at ../../../src/uxa/uxa-unaccel.c:154
#10 0xb6b77375 in uxa_copy_area (pSrcDrawable=0xb7fb3320,
pDstDrawable=0xb82144d8, pGC=0xb80600f0, srcx=180, srcy=-15, width=32,
height=32, dstx=0, dsty=0) at ../../../src/uxa/uxa-accel.c:637
#11 0xb760c325 in damageCopyArea (pSrc=0xb7fb3320, pDst=0xb82144d8,
pGC=0xb80600f0, srcx=180, srcy=-15, width=32, height=32, dstx=0, dsty=0)
at ../../../miext/damage/damage.c:764
#12 0xb766688d in miDCSaveUnderCursor (pDev=0xb7fb3320, pScreen=0xb80600f0,
x=180, y=-15, w=32, h=32) at ../../mi/midispcur.c:423
#13 0xb76764ba in miSpriteSaveUnderCursor (pDev=pDev@entry=0xb805ec30,
pScreen=pScreen@entry=0xb7f26d28) at ../../mi/misprite.c:880
#14 0xb7677445 in miSpriteSaveUnderCursor (pScreen=0xb7f26d28,
pDev=0xb805ec30)
at ../../mi/misprite.c:869
#15 miSpriteSetCursor (pDev=0xb805ec30, pScreen=0xb7f26d28,
pCursor=0xb800e658, x=195, y=0) at ../../mi/misprite.c:768
#16 0xb75a59fa in xf86CursorSetCursor (pDev=0xb805ec30, pScreen=0xb7f26d28,
pCurs=0xb800e658, x=195, y=0)
at ../../../../hw/xfree86/ramdac/xf86Cursor.c:385
#17 0xb75a5e5e in xf86CursorEnableDisableFBAccess (pScrn=0xb7f1bf38,
enable=1)
at ../../../../hw/xfree86/ramdac/xf86Cursor.c:232
#18 0xb6b69915 in qxl_enter_vt (arg=0xb7f1bf38) at ../../src/qxl_driver.c:861
#19 0xb75a215e in xf86RandR12EnterVT (pScrn=0xb7f1bf38)
at ../../../../hw/xfree86/modes/xf86RandR12.c:1746
#20 0xb755eeae in xf86VTEnter ()
at ../../../../hw/xfree86/common/xf86Events.c:571
#21 0xb755f2eb in xf86VTSwitch ()
at ../../../../hw/xfree86/common/xf86Events.c:633
#22 xf86Wakeup (blockData=0x0, err=-1, pReadmask=0xb7761380 <LastSelectMask>)
at ../../../../hw/xfree86/common/xf86Events.c:291
#23 0xb7522a54 in WakeupHandler (result=-1,
pReadmask=0xb7761380 <LastSelectMask>) at ../../dix/dixutils.c:423
#24 0xb7684443 in WaitForSomething (pClientsReady=0xb8091068)
at ../../os/WaitFor.c:229
#25 0xb751da4e in Dispatch () at ../../dix/dispatch.c:361
#26 0xb7521eca in dix_main (argc=7, argv=0xbfc15ee4,
envp=0xb7753b1c <noPanoramiXExtension>) at ../../dix/main.c:296
#27 0xb750bbca in main (argc=7, argv=0xbfc15ee4, envp=0xbfc15f04)
at ../../dix/stubmain.c:34
Please let me know, if you need further information.
Kind regards,
Kai Harries