]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
ixgbe changes:
authorluigi <luigi@FreeBSD.org>
Thu, 26 Jan 2012 09:55:16 +0000 (09:55 +0000)
committerluigi <luigi@FreeBSD.org>
Thu, 26 Jan 2012 09:55:16 +0000 (09:55 +0000)
commitef0f580b115817d8afe45a865d1ca2ba5871b349
tree01efeb9d30a687dd3be500eed4d8958da0d348fb
parentf5a0f14ed085331f4ea8751de323feaa61fb4142
ixgbe changes:
- remove experimental code for disabling CRC
- use the correct constant for conversion between interrupt rate
  and EITR values (the previous values were off by a factor of 2)
- make dev.ix.N.queueM.interrupt_rate a RW sysctl variable.
  Changing individual values affects the queue immediately,
  and propagates to all interfaces at the next reinit.
- add dev.ix.N.queueM.irqs rdonly sysctl, to export the actual
  interrupt counts

Netmap-related changes for ixgbe:
- use the "new" format for TX descriptors in netmap mode.
- pass interrupt mitigation delays to the user process doing poll()
  on a netmap file descriptor.
  On the RX side this means we will not check the ring more than once
  per interrupt. This gives the process a chance to sleep and process
  packets in larger batches, thus reducing CPU usage.
  On the TX side we take this even further: completed transmissions are
  reclaimed every half ring even if the NIC interrupts more often.
  This saves even more CPU without any additional tx delays.

Generic Netmap-related changes:
- align the netmap_kring to cache lines so that there is no false sharing
  (possibly useful for multiqueue NICs and MSIX interrupts, which are
  handled by different cores). It's a minor improvement but it does not
  cost anything.

Reviewed by: Jack Vogel
Approved by: Jack Vogel
sys/dev/ixgbe/ixgbe.c
sys/dev/netmap/ixgbe_netmap.h
sys/dev/netmap/netmap.c
sys/dev/netmap/netmap_kern.h