lkml.org 
[lkml]   [2004]   [Feb]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRE: raw sockets and blocking
    On Wed, 18 Feb 2004, David Schwartz wrote:

    > Then the kernel is broken. It must not block an operation
    > indefinitely when that operation can complete without blocking.

    Aha.

    > It is, however, perfectly legal to say an operation can
    > complete without blocking (say, through 'select' or 'poll') and
    > later return EWOULDBLOCK. (So long as some operation could have
    > completed, not necessarily the one you tried.)

    Right. But that's fine, we can deal with that, if the error is
    posted.

    Problem is no error is posted when we sendmsg[1], yet the socket
    thereafter stays write-blocked, with (sane) way for us to recover.
    (until presumably link comes back, for what ever reason,
    unfortunately the OSPF RFCs do not mandate for hosts to have robots
    attached to do media maintenance :) ).

    In short, for raw sockets at least, the kernel needs to either:

    - post an error for writes to raw sockets if they will block

    or

    - if the network driver concerned is not ready to take the packet,
    drop the packet right there. (upper layers (ie userspace, eg ospfd)
    will follow their own procedures for dealing with packet loss/down
    interfaces.)

    > DS

    1. Least, Hasso has not reported the relevant error message occuring.

    regards,
    --
    Paul Jakma paul@clubi.ie paul@jakma.org Key ID: 64A2FF6A
    warning: do not ever send email to spam@dishone.st
    Fortune:
    Your own qualities will help prevent your advancement in the world.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:01    [W:0.031 / U:30.436 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site