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
For other architectures, I've tested on i386 and amd64 for both 2.6.8
and 2.6.12 kernels.