FH starvation on busy select

From: Yuri Victorovich (yuri_at_tsoft.com)
Date: 08/29/04


Date: 29 Aug 2004 12:42:45 -0700

I tried to post this to linux.kernel but it seems to be
read-only:

---
I have an application that listens with select
for many pipes. There are 100 pipes that actively
receive data (~2 MB/sec total), 100 idle ones and
one that receives short messages (8 bytes)
once in a while. All these 201 being fed to "select"
and then every one being checked with FD_ISSET.
All pipes were created with "pipe" call except
that last one that was created with "socketpair"
(SOCK_DGRAM).
I observe the problem: this last pipe receives
messages with long delay as if they were buffered.
I send them one-by-one from signal handler
and they only being sensed by "select" later
whole bunch at a time.
If data rate on 100 busy pipes drops problem
also disappears and 8-byte messages arrive
instantaneously.
Sounds like filehandle starvation symptom to me.
Anyone experienced similar problem?
Yuri.
OS: Linux linuxXXX.xxxxxx.com 2.4.20-30.7.legacysmp0xe #1 SMP Mon Jun
28 18:16:46 PDT 2004 i686 unknown


Relevant Pages

  • Re: _os_sleep issue
    ... (If you don't have a signal handler the process will be terminated, ... exist until all the data has been read from it, so if you have pipes ... TimeToDelay = 600; ... something wrong with my sleep syntax or what is the probable cause of ...
    (comp.os.os9)
  • Re: FH starvation on busy select
    ... "Yuri Victorovich" wrote in message ... > I have an application that listens with select ... There are 100 pipes that actively ... Do you service all descriptors (including the socket) everytime select ...
    (comp.os.linux.networking)