* Keith Packard <[EMAIL PROTECTED]> wrote: > On Tue, 2007-07-03 at 09:22 +0200, Ingo Molnar wrote: > > > which allows xterm-spam (attached) to easily flood the xterm > > (without any scrolling that would act as a throttle) and the xterm > > to flood Xorg. > > It's just an Xterm bug. > > Xterm will look for X input if it ever manages to fill the input > buffer past 32768 bytes. If it manages to get more than 4096 bytes in > one read, it will invoke sched_yield. and then check for input. Gotta > love that sched_yield call. > > As it always processes all of the incoming data before trying to read > again, there doesn't appear to be any way it can ever have more than > 32768 characters in the buffer. > > And, as the kernel will not buffer more than 4095 bytes from a pty, > there isn't any way it will ever read 4096 bytes. > > So, it sits there carefully reading every byte from the pty and > painting them on the screen.
ah. Thanks for the explanation! > You can 'fix' xterm with: > > $ xterm -xrm '*minBufSize: 4095' indeed, that solves the xterm-spam Ctrl-C/Ctrl-Z problem here! > I hesitate to even suggest a patch to xterm that would solve this > problem correctly. Note that xterm has kludges in several of the > output processing steps which explicitly look for input (most vertical > cursor motion, it seems), which is why any application which scrolls > doesn't cause this problem. > > Do you need more reasons to switch to another terminal emulator? > gnome-terminal has finally gotten reasonable; I expect rxvt or konsole > would work just as well. yeah, i use gnome-terminal exclusively. But testers looking for CFS regressions do run every shell on the planet :-) gnome-terminal is also faster all around (at least on my box): $ (echo '#!/bin/bash' ; echo 'for ((i=0; i<100000; i++)); do echo $i; done') > 1.sh; chmod +x 1.sh; time xterm $HOME/1.sh; time gnome-terminal -x ./1.sh real 0m3.193s user 0m2.840s sys 0m0.460s real 0m2.495s user 0m2.430s sys 0m1.520s Ingo - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/