Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Nov 2013 22:08:21 +0100
From:      Luigi Rizzo <rizzo@iet.unipi.it>
To:        "George V. Neville-Neil" <gnn@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r258328 - head/sys/net
Message-ID:  <20131119210821.GA13961@onelab2.iet.unipi.it>
In-Reply-To: <201311182258.rAIMwEFd048783@svn.freebsd.org>
References:  <201311182258.rAIMwEFd048783@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Nov 18, 2013 at 10:58:14PM +0000, George V. Neville-Neil wrote:
> Author: gnn
> Date: Mon Nov 18 22:58:14 2013
> New Revision: 258328
> URL: http://svnweb.freebsd.org/changeset/base/258328
> 
> Log:
>   Allow ethernet drivers to pass in packets connected via the nextpkt pointer.
>   Handling packets in this way allows drivers to amortize work during packet reception.

yes.

This is only a first step and eventually we should pass the entire
batch to the netisr handler to further reduce overhead.

Some of the followup emails suggested to change the argument from
struct mbuf * to something else.
I do think we should change it, but what we need is a struct with
head and tail pointers _and_ a counter, because sometimes the code
downstream may have to append the mbuf/batch to a queue,
and these extra fields would save iterating through the chain.

Related to this: at some point we should also address batching
in the transmit path, and for that we will eventually need to
introduce a 'more packets to come' flag to the API/mbuf so that
intermediate functions in the path will build batches before passing
them down.

cheers
luigi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131119210821.GA13961>