OpenCloudOS-Kernel/drivers/net/sfc
Ben Hutchings 94b274bf5f sfc: Add TX queues for high-priority traffic
Implement the ndo_setup_tc() operation with 2 traffic classes.

Current Solarstorm controllers do not implement TX queue priority, but
they do allow queues to be 'paced' with an enforced delay between
packets.  Paced and unpaced queues are scheduled in round-robin within
two separate hardware bins (paced queues with a large delay may be
placed into a third bin temporarily, but we won't use that).  If there
are queues in both bins, the TX scheduler will alternate between them.

If we make high-priority queues unpaced and best-effort queues paced,
and high-priority queues are mostly empty, a single high-priority queue
can then instantly take 50% of the packet rate regardless of how many
of the best-effort queues have descriptors outstanding.

We do not actually want an enforced delay between packets on best-
effort queues, so we set the pace value to a reserved value that
actually results in a delay of 0.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
2011-02-15 19:45:35 +00:00
..
Kconfig sfc: Add support for SFC9000 family (2) 2009-11-29 17:23:57 -08:00
Makefile sfc: Add support for SFE4003 board and TXC43128 PHY 2010-09-22 13:26:45 -07:00
bitfield.h sfc: Update version, copyright dates, authors 2009-11-29 17:23:58 -08:00
efx.c sfc: Add TX queues for high-priority traffic 2011-02-15 19:45:35 +00:00
efx.h sfc: Add TX queues for high-priority traffic 2011-02-15 19:45:35 +00:00
enum.h sfc: Update version, copyright dates, authors 2009-11-29 17:23:58 -08:00
ethtool.c sfc: Distinguish queue lookup from test for queue existence 2011-02-15 19:45:34 +00:00
falcon.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2011-01-14 09:29:05 -08:00
falcon_boards.c sfc: Move xmac_poll_required into struct falcon_nic_data 2010-12-03 09:08:09 -08:00
falcon_xmac.c sfc: Move xmac_poll_required into struct falcon_nic_data 2010-12-03 09:08:09 -08:00
filter.c sfc: Generalise filter spec initialisation 2010-12-07 19:11:26 +00:00
filter.h sfc: Generalise filter spec initialisation 2010-12-07 19:11:26 +00:00
io.h sfc: Remove locking from implementation of efx_writeo_paged() 2010-12-06 22:58:41 +00:00
mac.h sfc: make functions static 2010-10-21 03:09:43 -07:00
mcdi.c sfc: Fix event based MCDI completion and MC REBOOT/CMDDONE ordering issue 2010-12-03 09:08:05 -08:00
mcdi.h sfc: make functions static 2010-10-21 03:09:43 -07:00
mcdi_mac.c sfc: Implement message level control 2010-06-24 22:13:22 -07:00
mcdi_pcol.h sfc: Update MCDI protocol definitions 2010-04-28 12:44:37 -07:00
mcdi_phy.c sfc: Remove unnecessary inclusion of various private header files 2010-12-03 09:08:07 -08:00
mdio_10g.c sfc: Remove unnecessary inclusion of various private header files 2010-12-03 09:08:07 -08:00
mdio_10g.h sfc: Implement message level control 2010-06-24 22:13:22 -07:00
mtd.c sfc: Move SPI state to struct falcon_nic_data 2010-12-03 09:08:07 -08:00
net_driver.h sfc: Add TX queues for high-priority traffic 2011-02-15 19:45:35 +00:00
nic.c sfc: Add TX queues for high-priority traffic 2011-02-15 19:45:35 +00:00
nic.h sfc: Update kernel-doc to match earlier move of Toeplitz hash key 2010-12-03 09:08:09 -08:00
phy.h sfc: Add support for SFE4003 board and TXC43128 PHY 2010-09-22 13:26:45 -07:00
qt202x_phy.c sfc: Clear RXIN_SEL when soft-resetting QT2025C 2010-12-03 09:08:04 -08:00
regs.h sfc: Add TX queues for high-priority traffic 2011-02-15 19:45:35 +00:00
rx.c sfc: convert references to LRO to GRO 2010-12-10 15:03:24 -08:00
selftest.c sfc: Add TX queues for high-priority traffic 2011-02-15 19:45:35 +00:00
selftest.h sfc: Create multiple TX queues 2010-04-28 12:44:44 -07:00
siena.c sfc: Store MAC address from NVRAM in net_device::perm_addr 2010-12-03 09:08:11 -08:00
spi.h sfc: Move SPI state to struct falcon_nic_data 2010-12-03 09:08:07 -08:00
tenxpress.c sfc: Remove unnecessary inclusion of various private header files 2010-12-03 09:08:07 -08:00
tx.c sfc: Add TX queues for high-priority traffic 2011-02-15 19:45:35 +00:00
txc43128_phy.c sfc: Add support for SFE4003 board and TXC43128 PHY 2010-09-22 13:26:45 -07:00
workarounds.h sfc: Remove support for SFN4111T, SFT9001 and Falcon GMAC 2010-09-22 13:26:45 -07:00