Re: [PATCH] 2.6.13: POSIX violation in pipes on ia64 for kernels > 2.6.10

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

 




On Thu, 13 Oct 2005, Jeff Licquia wrote:
>
> On architectures where PAGE_SIZE > PIPE_BUF, a read of PIPE_BUF bytes
> from a full pipe does not change the pipe's write state.  This behavior
> is different from kernels 2.6.9 and earlier, and it triggers failures of
> the LSB tests.  

Sounds like the tests are broken.

It also sounds like your patch is broken: allowing partial short writes is 
in explicit violation of the POSIX specs, and breaks the only thing that 
PIPE_BUF _really_ guarantees, namely that writes smaller than that size 
must be atomic.

The _only_ guarantees wrt PIPE_BUF is literally that a write smaller than 
or equal to the PIPE_BUF will always either complete fully or not at all, 
and that a reader will see the write as an atomic packet (ie two writers 
will never have their write buffers interleaved within such a single 
"write()" system call).

How empty the pipe has to be for a write to be able to do so is outside 
the spec, and any code (including LSB tests) that depends on it is broken.

			Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux