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

RE: [Fwd: Weird ia64 problem]



On Wed, 2005-10-05 at 15:09 -0700, Luck, Tony wrote:
> >Do you expect a partial write, rather than the EAGAIN?
> 
> I suppose you should expect EAGAIN here: http://tinyurl.com/82wr9
> describes this situation quite clearly.
> 
> So either:
> 1) ia64 thinks 4120 is less than PIPE_BUF, so that it believes
>    that it should not do a partial write

Except that the test code asks the system for PIPE_BUF, and then adds to
it to determine how much to write.  (See lines 26, 32, and 33 of my
test.)  Specifically, we try to write PIPE_BUF + 24 bytes.

> 2) Even though we removed some data from the pipe, it thinks that
>    it is still all the way full.

Hmm.  The spec doesn't seem to say whether a read of PIPE_BUF bytes on a
full pipe _must_ put the pipe in a state where it can accept more input.
The test, certainly, seems to think this is mandatory.

> [My tests on 2.6.14-rc2].
> 
> Which other architectures have you tried this on?  Is ia64 all alone
> in failing this test?

Yup.  In fact, only recent kernels fail; 2.6.8 succeeds, while 2.6.12
fails.

For other architectures, I've tested on i386 and amd64 for both 2.6.8
and 2.6.12 kernels.



Reply to: