Cygwin/X becomes very slow with > 56 X clients in single window mode. Description: When running Cygwin/X in rooted window mode (with or without -nodecoration), response time is fast for any number of X clients up to and including 56 (as determined by 'xlsclients'). Upon adding one more client, window creation starts taking up to 3 seconds, and mapping/unmpapping becomes quite noticeably slow. Upon removing X clients enough that the number drops below 57, the response time is fast again. (Window content updates are fine as long as I provide '+bs -wm' on Windows 7; these options are not needed on Windows XP or in version 1.10.3 on either Windows XP or Windows 7.) I regularly run 55-70 xterms at once (far too many to use multiwindow), so this makes using Cygwin/X extremely painful. Xming does not have this problem, so I assume this is the result of something in the Cygwin abstraction layer. (Unfortunately, Xming has window refresh speed problems that '+bs -wm' does not fix.) My hope is that this can be traced to to some hard-coded limit that could be easily raised. If that is the case, I could use Cygwin/X once that limit is increased. Thanks very much for your time -- JD Paul Details ------- Cygwin/X Versions tested: 1.10.3 and 1.13.2 ------------------------- OSes affected: Windows XP SP3 and Windows 7 SP1. -------------- Attachments: ------------ cygcheck.out - redacted by changing ${MYCOMPANY}.COM to COMPANY.COM XWin.0.Win7.bs.wm.verbose3.57clients.log - XWin.exe log file when running with '-nodecoration -clipboard +bs -wm -logverbose 3', launching 56 windows, then one more, then removing one, then killing all windows and exiting. Command lines tested (all show the problem): -------------------------------------------- XWin :0 -nodecoration -clipboard +bs -wm -logverbose 3 XWin :0 +bs -wm -logverbose 3 Demonstration: -------------- # X session starts with 2 clients (this does not count the twm window manager): $ time xlsclients | wc -l 2 real 0m0.095s user 0m0.001s sys 0m0.011s # at this point, /proc/$PID/fd for Xwin shows 16 file descriptors: ls -l /proc/13448/fd | grep -v '^total' | cat -n 1 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 0 -> /dev/pty0 2 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 1 -> /dev/pty0 3 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 10 -> socket:[1152] 4 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 11 -> socket:[1180] 5 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 12 -> /dev/windows 6 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 13 -> socket:[1328] 7 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 14 -> socket:[1336] 8 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 15 -> socket:[1348] 9 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 19 -> socket:[1396] 10 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 2 -> /dev/pty0 11 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 3 -> socket:[596] 12 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 4 -> socket:[620] 13 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 5 -> socket:[632] 14 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 6 -> /var/log/xwin/XWin.0.log 15 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 7 -> /usr/lib/X11/protocol.txt 16 lrwxrwxrwx 1 jdpaul Domain Users 0 Feb 21 19:50 8 -> /dev/windows # add another 54 windows: $ for i in `seq 1 54` ; do xmessage -g -0-0 "foo $i" & done # At this point, /proc/$PID/fd for Xwin shows 70 file descriptors. # xlsclients is still fast: $ time xlsclients | wc -l 56 real 0m0.455s user 0m0.005s sys 0m0.017s # Add another client: $ xmessage -g -0-0 "foo 55" & # /proc/$PID/fd for Xwin shows 71 file descriptors. # now things are slow -- xlsclients is 30 times slower: $ time xlsclients | wc -l 57 real 0m14.431s user 0m0.004s sys 0m0.009s # At this point, window creation is excruciatingly slow (several # seconds per window), and all window mapping/unmapping is slow enough # to be quite visible. # Kill one client -- things are fast again: $ time xlsclients | wc -l 56 real 0m0.441s user 0m0.004s sys 0m0.013s Details of PCs tested: ---------------------- 1. Windows 7 PS1 desktop Hardware: Dell Optiplex 980 Graphics card: NVIDIA GeForce 9300 GE graphics card with driver 310.70 (what Microsoft calls 9.18.13.1070). (That driver was the most recent as of a few weeks ago.) 2. Windows 7 PS1 laptop Hardware: Dell Latitude E6400 Graphics: Mobile Intel(R) 4 Series Express Chipset Family 3. Windows XP SP3 laptop Hardware: Dell Inspiron B130 Graphics: Mobile Intel(R) 915GM/GMS,910 GML Chipset Family No Cygwin/X configuration files were modified from default on any PC.