Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Jun 2011 22:13:51 -0400
From:      grarpamp <grarpamp@gmail.com>
To:        freebsd-hackers@freebsd.org
Cc:        freebsd-net@freebsd.org
Subject:   FreeBSD I/OAT (QuickData now?) driver
Message-ID:  <BANLkTinuOS_yZYrqZ4cmU4cim%2BKFHNA=hQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Is this work part of what's needed to enable the FreeBSD
equivalent of TNAPI?

I know we've got polling. And probably MSI-X in a couple drivers.
Pretty sure there is still one CPU doing the interrupt work?
And none of the multiple queue thread spreading tech exists?

http://www.ntop.org/blog
http://www.ntop.org/TNAPI.html
TNAPI attempts to solve the following problems:
    * Distribute the traffic across cores (i.e. the more core the more
scalable is your networking application) for improving scalability.
    * Poll packets simultaneously from each RX queue (contraty to
sequential NAPI polling) for fetching packets as fast as possible
hence improve performance.
    * Through PF_RING, expose the RX queues to the userland so that
the application can spawn one thread per queue hence avoid using
semaphores at all.
TNAPI achieves all this by starting one thread per RX queue. Received
packets are then pushed to PF_RING (if available) or through the
standard Linux stack. However in order to fully exploit this
technology it is necessary to use PF_RING as it provides a straight
packet path from kernel to userland. Furthermore it allows to create a
virtual ethernet card per RX queue.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTinuOS_yZYrqZ4cmU4cim%2BKFHNA=hQ>