Re: Bad Network SIGIO on Linux-2.4.19

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



   From: "Richard B. Johnson" <root@chaos.analogic.com>
   Date: Mon, 7 Oct 2002 09:12:13 -0400 (EDT)
   
   If you log-in over the network, so that a socket is being used,
   it will print HELP!!!!!!!  continuously on the screen because
   it is continually being signalled that I/O is possible instead
   of being signaled only when things change. 

First, 2.4.19 did not change the SIGIO behavior of TCP.

Second, SIGIO is sent any time new write/read space is made available
and that space exceeds some "wakeup threshold".  SIGIO is also sent
when an error condition is created.  This is necessary to avoid races
and has been the algorithm for some time in 2.3.x/2.4.x

Any "chatty" protocol like telnet or sshd is going to generate
a ton of SIGIO's for POLL_OUT especially.  Chatty protocols should
not make use of SIGIO for this reason if they care about performance.

Third, your program is buggy because what you're getting SIGIO's for
is POLL_OUT or POLL_ERR, checking only POLL_IN is insufficient.  Every
time a write goes out the socket, or an ACK is finished being
transmitted by a device, socket write space is recovered and a SIGIO
is going to go out if the write space exceeds some threshold.

This behavior is not a bug.
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux