[winswitch] very high CPU use of xpra

Thomas Koch thomas at koch.ro
Sat Sep 7 09:14:21 BST 2013


Hi,

xpra uses a lot of CPU resources on my virtual server, running the xpra debian package 0.10.1+dfsg-1 rebuilt
 against Wheezy stable. Xpra spawns 10 child threads (processes?) when one program (like firefox) is running.

Three of the child threads seem to run a loop at full steam and consume each around 10% of CPU resources
(see below). Also the pulseaudio process consumes around 10%. Is there anything I can do to further
investigate this or are you aware of this problem.

1. Thread:

clock_gettime(CLOCK_MONOTONIC, {1696, 356227712}) = 0
futex(0x34a4870, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x2a103b0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f0ca406b3c4, FUTEX_WAIT_PRIVATE, 9795, NULL) = 0
futex(0x7f0ca4085650, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f0ca406b3c4, FUTEX_WAIT_PRIVATE, 9797, NULL) = 0
futex(0x7f0ca4085650, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {1696, 375617815}) = 0

2. Thread

munmap(0x7f0cabfff000, 67112960)        = 0
write(20, "W", 1)                       = 1
futex(0x34035f0, FUTEX_UNLOCK_PI_PRIVATE, 33) = 0
futex(0x34b3de4, FUTEX_WAIT_REQUEUE_PI_PRIVATE, 88035, NULL, 0x34035f0) = 0
munmap(0x7f0cabfff000, 67112960)        = 0
write(20, "W", 1)                       = 1
futex(0x34035f0, FUTEX_UNLOCK_PI_PRIVATE, 33) = 0
futex(0x7f0ca406b3c4, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7f0ca406b3c0, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x7f0ca4085650, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x34b3de4, FUTEX_WAIT_REQUEUE_PI_PRIVATE, 88037, NULL, 0x34035f0) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x34b3de4, FUTEX_WAIT_PRIVATE, 88037, NULL) = -1 EAGAIN (Resource temporarily unavailable)
write(20, "W", 1)                       = 1
munmap(0x7f0cabfff000, 67112960)        = 0
futex(0x34035f0, FUTEX_UNLOCK_PI_PRIVATE, 33) = 0
futex(0x7f0ca406b3c4, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7f0ca406b3c0, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1

3. Thread

sendto(24, "\0\0\0\0\377\377\377\377\0\0\0\20\0\0\0\0@\0\0\0", 20, MSG_NOSIGNAL, NULL, 0) = 20
read(19, "W", 10)                       = 1
clock_gettime(CLOCK_MONOTONIC, {1908, 665097131}) = 0
poll([{fd=19, events=POLLIN}, {fd=24, events=POLLIN|POLLOUT}], 2, 1245) = 1 ([{fd=24, revents=POLLIN|POLLOUT}])
clock_gettime(CLOCK_MONOTONIC, {1908, 665496657}) = 0
recvmsg(24, {msg_name(0)=NULL, msg_iov(1)=[{"\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\200\0\0\0", 20}], msg_controllen=32, {cmsg_len=28, cmsg
clock_gettime(CLOCK_MONOTONIC, {1908, 665652803}) = 0
poll([{fd=19, events=POLLIN}, {fd=24, events=POLLIN}], 2, 1244) = 1 ([{fd=24, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {1908, 665751495}) = 0
recvmsg(24, {msg_name(0)=NULL, msg_iov(1)=[{"\0\0\0\17\366\357\tz\0\0\0@\0\0\3p", 16}], msg_controllen=32, {cmsg_len=28, cmsg_level=SO
open("/dev/shm/pulse-shm-4142860666", O_RDONLY|O_NOFOLLOW|O_CLOEXEC) = 25
fstat(25, {st_mode=S_IFREG|0400, st_size=67108904, ...}) = 0
mmap(NULL, 67112960, PROT_READ, MAP_SHARED, 25, 0) = 0x7f0cabfff000
close(25)                               = 0
futex(0x34b3de4, FUTEX_CMP_REQUEUE_PI_PRIVATE, 1, 2147483647, 0x34035f0, 100926) = 1
clock_gettime(CLOCK_MONOTONIC, {1908, 666261504}) = 0
futex(0x34035f0, FUTEX_UNLOCK_PI_PRIVATE, 33) = 0
poll([{fd=19, events=POLLIN}, {fd=24, events=POLLIN}], 2, 1244) = 1 ([{fd=19, revents=POLLIN}])
sendto(24, "\0\0\0\0\377\377\377\377\0\0\0\17\0\0\0\0@\0\0\0", 20, MSG_NOSIGNAL, NULL, 0) = 20
read(19, "W", 10)                       = 1
clock_gettime(CLOCK_MONOTONIC, {1908, 666757989}) = 0

4. Pulseaudio Thread

read(14, "\1\0\0\0\0\0\0\0", 8)         = 8
sendto(18, "\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\200\0\0\0", 20, MSG_NOSIGNAL, NULL, 0) = 20
ppoll([{fd=7, events=POLLIN}, {fd=18, events=POLLIN|POLLOUT}, {fd=17, events=POLLIN}, {fd=16, events=POLLIN|POLLERR|POLLHUP}, {fd=16,
sendto(18, "\0\0\0\6\366\357\tz\0\0\0@\0\0\3p", 16, MSG_NOSIGNAL, NULL, 0) = 16
ppoll([{fd=7, events=POLLIN}, {fd=18, events=POLLIN|POLLOUT}, {fd=17, events=POLLIN}, {fd=16, events=POLLIN|POLLERR|POLLHUP}, {fd=16,
recvmsg(18, {msg_name(0)=NULL, msg_iov(1)=[{"\0\0\0\0\377\377\377\377\0\0\0\6\0\0\0\0@\0\0\0", 20}], msg_controllen=32, {cmsg_len=28,
read(14, "\1\0\0\0\0\0\0\0", 8)         = 8
sendto(18, "\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\200\0\0\0", 20, MSG_NOSIGNAL, NULL, 0) = 20

Regards, Thomas Koch



More information about the shifter-users mailing list