Activity log for bug #320150

Date Who What changed Old value New value Message
2009-01-22 18:34:19 Mike bug added bug
2009-01-22 20:41:22 Bryce Harrington libx11: status New Incomplete
2009-01-22 20:58:05 Mike bug added attachment 'lspci-vvnn.txt' (lspci-vvnn.txt)
2009-01-22 20:59:54 Mike bug added attachment 'Xorg.0.log' (Xorg.0.log)
2009-01-22 21:00:20 Mike bug added attachment 'xorg.conf' (xorg.conf)
2009-03-24 03:57:43 Bryce Harrington description Binary package hint: libx11-6 Description: Ubuntu 8.04.2 Release: 8.04 libx11-6: Installed: 2:1.1.3-1ubuntu2 Candidate: 2:1.1.3-1ubuntu2 Version table: *** 2:1.1.3-1ubuntu2 0 500 http://us.archive.ubuntu.com hardy/main Packages 100 /var/lib/dpkg/status Symptoms: very slow drawing times for text strings in X clients, restored to normal if mouse moves over the X client's window while drawing. Originally seen in charts produced in the scilab application, but underlying problem appears to exist in all X clients due to Hardy X11 runtime library problem. This problem did not exist in Gutsy (I recently upgraded). Cause: strace shows that X clients under Ubuntu 8.04 do not set X client-server socket's TCP_NODELAY option. Therefore X server can potentially wait until X server's timeout before sending ACK packet back to X client. This occurs in some (or all) X text drawing commands which do not require a reply, therefore waiting for the ACK until the next packet happens to be sent from X server back to X client. Under Windows this delay is 200 ms, causing extremely slow drawing times if the window contains a lot of text. ACK delay under Hardy is very small (< 1 ms), making this issue imperceptible when X server is also running (displaying) on a Hardy machine. Strace run on Ubuntu 8.04 contains this trace for opening the socket to the X server: 6246 socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3 6246 connect(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("192.168.0.14")}, 16) = 0 6246 getpeername(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("192.168.0.14")}, [16]) = 0 The same startup on RedHat: [pid 8014] socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3 [pid 8014] setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0 [pid 8014] setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0 [pid 8014] connect(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("192.168.0.14")}, 16) = 0 [pid 8014] getpeername(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("192.168.0.14")}, [16]) = 0 Note the lack of setsockopt() calls in Hardy. The missing setsockopt() calls occur in apparently all Hardy X clients, including (for example) xterm, therefore I am *guessing* at this point that the problem occurs in the base X11 client library. How to duplicate: strace -f -e trace=network,read,write,open,close -o ./strace.out /usr/bin/scilab -nw plot(1:10,1:10,'-m'); Notice the very slow drawing times for axes labels (text). Look in strace.out file for the lines above. Run same strace command under Gutsy or under other Linux versions (such as RedHat, etc.). Strace shows the same difference in setsockopt() calls for any other X client starting, such as xterm. Binary package hint: libx11-6 Description: Ubuntu 8.04.2 Release: 8.04 libx11-6: Installed: 2:1.1.3-1ubuntu2 Candidate: 2:1.1.3-1ubuntu2 Version table: *** 2:1.1.3-1ubuntu2 0 500 http://us.archive.ubuntu.com hardy/main Packages 100 /var/lib/dpkg/status Symptoms: very slow drawing times for text strings in X clients, restored to normal if mouse moves over the X client's window while drawing. Originally seen in charts produced in the scilab application, but underlying problem appears to exist in all X clients due to Hardy X11 runtime library problem. This problem did not exist in Gutsy (I recently upgraded). Cause: strace shows that X clients under Ubuntu 8.04 do not set X client-server socket's TCP_NODELAY option. Therefore X server can potentially wait until X server's timeout before sending ACK packet back to X client. This occurs in some (or all) X text drawing commands which do not require a reply, therefore waiting for the ACK until the next packet happens to be sent from X server back to X client. Under Windows this delay is 200 ms, causing extremely slow drawing times if the window contains a lot of text. ACK delay under Hardy is very small (< 1 ms), making this issue imperceptible when X server is also running (displaying) on a Hardy machine. Strace run on Ubuntu 8.04 contains this trace for opening the socket to the X server: 6246 socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3 6246 connect(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("192.168.0.14")}, 16) = 0 6246 getpeername(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("192.168.0.14")}, [16]) = 0 The same startup on RedHat: [pid 8014] socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3 [pid 8014] setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0 [pid 8014] setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0 [pid 8014] connect(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("192.168.0.14")}, 16) = 0 [pid 8014] getpeername(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("192.168.0.14")}, [16]) = 0 Note the lack of setsockopt() calls in Hardy. The missing setsockopt() calls occur in apparently all Hardy X clients, including (for example) xterm, therefore I am *guessing* at this point that the problem occurs in the base X11 client library. How to duplicate: strace -f -e trace=network,read,write,open,close -o ./strace.out /usr/bin/scilab -nw plot(1:10,1:10,'-m'); Notice the very slow drawing times for axes labels (text). Look in strace.out file for the lines above. Run same strace command under Gutsy or under other Linux versions (such as RedHat, etc.). Strace shows the same difference in setsockopt() calls for any other X client starting, such as xterm. [lspci] 00:00.0 Host bridge [0600]: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller [8086:29c0] (rev 02) Subsystem: Micro-Star International Co., Ltd. Unknown device [1462:7338] 01:00.0 VGA compatible controller [0300]: nVidia Corporation G72 [GeForce 7300 SE] [10de:01d3] (rev a1) (prog-if 00 [VGA controller]) Subsystem: eVga.com. Corp. Unknown device [3842:c428]
2009-04-21 00:09:57 Bryce Harrington libx11 (Ubuntu): status Incomplete Confirmed
2009-09-02 22:44:19 Bryce Harrington tags needs-lspci-vvnn needs-xorglog hardy needs-lspci-vvnn needs-xorglog
2011-04-28 03:38:46 bugbot libx11 (Ubuntu): status Confirmed New
2011-04-28 03:38:48 bugbot libx11 (Ubuntu): status New Incomplete
2011-04-28 10:12:09 Bryce Harrington marked as duplicate 277069