[lkml]   [2005]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] 2.6.13: POSIX violation in pipes on ia64 for kernels > 2.6.10

    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.

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2009-11-18 23:46    [W:0.021 / U:10.100 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site