freebsd-nq/share
Sean Bruno 23c9098b2a Change EM_MULTIQUEUE to a real kernconf entry and enable support for
up to 2 rx/tx queues for the 82574.

Program the 82574 to enable 5 msix vectors, assign 1 to each rx queue,
1 to each tx queue and 1 to the link handler.

Inspired by DragonFlyBSD, enable some RSS logic for handling tx queue
handling/processing.

Move multiqueue handler functions so that they line up better in a diff
review to if_igb.c

Always enqueue tx work to be done in em_mq_start, if unable to acquire
the TX lock, then this will be processed in the background later by the
taskqueue.  Remove mbuf argument from em_start_mq_locked() as the work
is always enqueued.  (stolen from igb)

Setup TARC, TXDCTL and RXDCTL registers for better performance and stability
in multiqueue and singlequeue implementations. Handle Intel errata  3 and
generic multiqueue behavior with the initialization of TARC(0) and TARC(1)

Bind interrupt threads to cpus in order.  (stolen from igb)

Add 2 new DDB functions, one to display the queue(s) and their settings and
one to reset the adapter.  Primarily used for debugging.

In the multiqueue configuration, bump RXD and TXD ring size to max for the
adapter (4096).  Setup an RDTR of 64 and an RADV of 128 in multiqueue configuration
to cut down on the number of interrupts.  RADV was arbitrarily set to 2x RDTR
and can be adjusted as needed.

Cleanup the display in top a bit to make it clearer where the taskqueue threads
are running and what they should be doing.

Ensure that both queues are processed by em_local_timer() by writing them both
to the IMS register to generate soft interrupts.

Ensure that an soft interrupt is generated when em_msix_link() is run so that
any races between assertion of the link/status interrupt and a rx/tx interrupt
are handled.

Document existing tuneables: hw.em.eee_setting, hw.em.msix, hw.em.smart_pwr_down, hw.em.sbp

Document use of hw.em.num_queues and the new kernel option EM_MULTIQUEUE

Thanks to Intel for their continued support of FreeBSD.

Reviewed by:	erj jfv hiren gnn wblock
Obtained from:	Intel Corporation
MFC after:	2 weeks
Relnotes:	Yes
Sponsored by:	Limelight Networks
Differential Revision:	https://reviews.freebsd.org/D1994
2015-06-03 18:01:09 +00:00
..
colldef
dict Remove ia64. 2014-07-07 00:27:09 +00:00
doc Fix font issues 2015-05-01 11:46:24 +00:00
dtrace Brief demo script showing the various values that can be read via the new SIFTR statically defined tracepoint (SDT). 2015-04-29 18:07:58 +00:00
examples Catch up with Clang 3.6.0. 2015-03-17 05:48:45 +00:00
i18n Revert r258254: Alias WCHAR_T to UCS-4-INTERNAL. 2014-01-03 23:35:01 +00:00
keys Remove scary comment about this being a test key. 2014-01-13 20:55:15 +00:00
man Change EM_MULTIQUEUE to a real kernconf entry and enable support for 2015-06-03 18:01:09 +00:00
me multiple: Remove 3rd clause from BSD license where approved by the 2014-03-14 03:07:51 +00:00
misc Fix DragonFly 4.0.5 release date. 2015-05-06 01:29:31 +00:00
mk Similar to r280178, don't hide command for building static library. 2015-06-02 19:05:02 +00:00
mklocale
monetdef Do not overwrite the new UTF-8 files with the old ISO one 2013-07-17 14:00:51 +00:00
msgdef Don't link two different things to the same paths. As tiebreaker I've 2013-01-24 17:00:11 +00:00
numericdef Don't link two different things to the same paths. As tiebreaker I've 2013-01-24 17:00:11 +00:00
security
sendmail
skel Step 1 of eliminating the "games" distribution: Move binaries to /usr/bin; 2015-02-12 05:35:00 +00:00
snmp
syscons Correct language code -- "Danish" is English 2015-05-14 14:07:44 +00:00
tabset
termcap Fix building termcap.db when make obj is run beforehand from a clean tree by 2014-12-10 23:18:11 +00:00
tests Add some sample test programs. 2013-11-18 12:57:46 +00:00
timedef
vt kbdmap(1): Correct menu title: keyboards have a layout, not a language 2015-05-14 18:09:56 +00:00
zoneinfo Avoid ./ in zoneinfo entries in METALOG 2014-09-03 18:51:33 +00:00
Makefile Only build share/dtrace if MK_CDDL != no 2015-01-25 00:32:17 +00:00
Makefile.inc