Re: select() bug

From: Paul Marquis (pmarquis@iname.com)
Date: Thu Nov 02 2000 - 18:44:05 EST


Okay, I see your point, thanks. A couple of comments/questions:

- Does this make sense with devices with small kernel buffers? From
my experimentation, pipes on Linux have a 4K buffer and tend to be
read and written very quickly.

- If I'm correct that pipes have a 4K kernel buffer, then writing 1
byte shouldn't cause this situation, as the buffer is well more than
half empty. Is this still a bug?

Semantic issues aside, since Apache does the test I mentionned earlier
to determine child status and since it could be misled, should this
feature be turned off?

Thanks for your input.

Alan Cox wrote:
> > I'm not exactly sure what you mean by this statement. Would you mind
> > explaining further?
>
> Well take a socket with 64K of buffering. You don't want to wake processes
> waiting in select or in write every time you can scribble another 1460 bytes
> to the buffer. Instead you wait until there is 32K of room then wake the
> user. That means that there is one wakeup/trip through userspace every 32K
> rather than potentially every time a byte is read the other end

-- 
Paul Marquis
pmarquis@iname.com

If it's tourist season, why can't we shoot them? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Nov 07 2000 - 21:00:12 EST