On Fri, Jun 06, 2014 at 05:13:14PM -0700, Daniele Di Proietto wrote:
> The netdev_send function has been modified to accept multiple packets, to
> allow netdev providers to amortize locking and queuing costs.
> This is especially true for netdev-dpdk.
> 
> Later commits exploit the new API.
> 
> Signed-off-by: Daniele Di Proietto <ddiproie...@vmware.com>

If I'm reading the patch right (it has conflicts against current
master), then netdev_linux_send() has a special case that transforms
ENOBUFS into EAGAIN but then it replaces it immediately with ENOBUFS
from errno:
            /* The Linux AF_PACKET implementation never blocks waiting for room
             * for packets, instead returning ENOBUFS.  Translate this into
             * EAGAIN for the caller. */
            if (errno == ENOBUFS) {
                error = EAGAIN;
            } else if (errno == EINTR) {
                continue;
            }
            error = errno;
            break;
If I understand the intent, I'd probably write that as:
            /* The Linux AF_PACKET implementation never blocks waiting for room
             * for packets, instead returning ENOBUFS.  Translate this into
             * EAGAIN for the caller. */
            error = errno == ENOBUFS ? EAGAIN : errno;
            if (error == EINTR) {
                continue;
            }
            break;

That jumped out at me because it was the site of a conflict, but I
didn't really read the read.  I'd appreciate a rebase and repost.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to