History log of /dflybsd-src/sys/dev/netif/igb/if_igb.h (Results 1 – 25 of 45)
Revision Date Author Comments
# 620b9679 28-Oct-2017 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Free tx mbufs proactively.

For 82575, which is earliest product of this product line, the RS
bit is set on every packet's last TX desc by default, since in the
'head write back' mode, the conte

igb: Free tx mbufs proactively.

For 82575, which is earliest product of this product line, the RS
bit is set on every packet's last TX desc by default, since in the
'head write back' mode, the content of TDH register does not move,
if the content of the 'header', which is memory based, does not
move. It is still allowed to reduce the density of RS TX descs,
which will be useful for workloads w/o using sendfile.

This is preparation for the dillon's upcoming sendfile patch.

show more ...


# 1bbd565e 15-May-2017 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Use ringmap to do MSI-X cpu assignment and fill redirect table.


# ba0123e0 19-Dec-2015 Sepherosa Ziehau <sephe@dragonflybsd.org>

ig_hal/igb: Merge Intel igb-2.4.3

- Add one more device
- Fix settings for i354

Tested-by: dillon@ (I354, I217[emx]) me (I350, 82580, 82576, 82575)


# aee05168 21-Dec-2015 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Optimize the aggregated TX/RX MSI-X handler a bit

By checking whether there are any TX descs to collect or not, before
holding the TX ring serializer.

This requires that igb_txeof() is only ca

igb: Optimize the aggregated TX/RX MSI-X handler a bit

By checking whether there are any TX descs to collect or not, before
holding the TX ring serializer.

This requires that igb_txeof() is only called in interrupt handler,
thus we remove the igb_txeof() from igb_start(), which does nothing
most of the time. Removal of igb_txeof() from igb_start() also allows
us to simplify the TX ring OACTIVE detection, so several unused water
marks are also removed.

show more ...


# fa2e32fb 14-Dec-2015 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Partly rework MSI-X support to bypass one serializer

For aggregated TX/RX MSI-X handler, there is no need to use
an independent serializer; using RX ring's serializer just
works (well, this dri

igb: Partly rework MSI-X support to bypass one serializer

For aggregated TX/RX MSI-X handler, there is no need to use
an independent serializer; using RX ring's serializer just
works (well, this driver's MSI-X support was added when we
still lacked of experience about how to serialize aggregated
TX/RX MSI-X handler).

Enable aggregated TX/RX MSI-X handling by default to avoid
extra TX interrupt (though its pretty low for TCP streams).

show more ...


# d2f385fb 23-Nov-2015 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Integrate ifmedia flow control support.

Other minor bits:
- Set media to IFM_NONE, if there is no link yet.
- Remove the IFM_1000_LX bits. Cards supported by igb(4) do
not have PHYs supporti

igb: Integrate ifmedia flow control support.

Other minor bits:
- Set media to IFM_NONE, if there is no link yet.
- Remove the IFM_1000_LX bits. Cards supported by igb(4) do
not have PHYs supporting 1000baseLX.
- Remove no longer used dev.igb.X.flow_ctrl sysctl node.
ifconfig igbX [mediaopt|-mediaopt] [rxpause|txpause|forcepause]
should be used instead.

show more ...


# ad4bef87 20-Nov-2015 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Support flow control change and default to RX pause


# 26595b18 28-Nov-2014 Sascha Wildner <saw@online.de>

kernel: Use the new auto-created sysctl ctx/tree in various drivers.

Everywhere where we formerly rolled a hw.fooX.* per-device ctx/tree
ourselves.

This commit switches it to dev.foo.X.*


# d46e097f 14-Jul-2014 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: enable MSI-X for i354 on C2550 SoC


# 8b7c6465 03-Sep-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Merge Intel igb-2.3.10

- More I210 chips are supported
- Add I354 support
- Fix multicast filtering settings if promisc mode exits


# 06421337 15-Mar-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

ifnet: Simplify ifnet_serialize_array function interface

It is no longer used to hold RX or TX serializers, so the RX/TX
serializer offset function arguments are not necessary at all.


# 9832ceaa 16-Feb-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Fix comment


# c50f8a0b 16-Feb-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Remove unused macros


# d734c6e7 06-Feb-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Sync w/ intel igb-2.3.7

- Support I210 and I211
- EEE settings are only applied to copper chips
- Explicitly disable DMA coalesce, if not requested


# 77671e5e 29-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Rework serializer array setup


# 5d1c889d 28-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Add per-TX ring tx_pkt sysctl node, if IGB_TSS_DEBUG is enabled


# ddaf4d42 28-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Add per-TX ring enable flag.

For TX rings' whose enable flag are not set, which could happen during
polling entering/exiting, its corresponding subqueue will be purged.


# 81b8cfc6 28-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Move IGB_FLAG_TSO_IPLEN0 into TX rings

Avoid extra access to softc and leave enough space for TX ring specific
flags.


# 5a612d02 28-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Define macros for wreg_nsegs, instead of using magic number


# 9d8e892a 27-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Merge per-RX queue rx_wregs into single rx_wreg_nsegs node

There is no use case that it needs to be tuned on per-RX queue base.


# d802cc67 25-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Don't assume only one TX queue will be enabled.

Prepare multiple TX queue support.

- Add TX queue count when MSI-X is used
- Add currently used TX queue count

Number of TX queues are still li

igb: Don't assume only one TX queue will be enabled.

Prepare multiple TX queue support.

- Add TX queue count when MSI-X is used
- Add currently used TX queue count

Number of TX queues are still limited to 1 as of this commit.

show more ...


# 16109efc 25-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Utilize subqueue watchdog functions

Prepare for the multiple TX queue support


# f0a26983 11-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

if: Multiple TX queue support step 1 of many; introduce ifaltq subqueue

Put the plain queue information, e.g. queue header and tail, serializer,
packet staging scoreboard and ifnet.if_start schedule

if: Multiple TX queue support step 1 of many; introduce ifaltq subqueue

Put the plain queue information, e.g. queue header and tail, serializer,
packet staging scoreboard and ifnet.if_start schedule netmsg etc. into
its own structure (subqueue). ifaltq structure could have multiple of
subqueues based on the count that drivers can specify.

Subqueue's enqueue, dequeue, purging and states updating are protected
by the subqueue's serializer, so for hardwares supporting multiple TX
queues, contention on queuing operation could be greatly reduced.

The subqueue is passed to if_start to let the driver know which hardware
TX queue to work on. Only the related driver's TX queue serializer will
be held, so for hardwares supporting multiple TX queues, contention on
driver's TX queue serializer could be greatly reduced.

Bunch of ifsq_ prefixed functions are added, which is used to perform
various operations on subqueues. Commonly used ifq_ prefixed functions
are still kept mainly for the drivers which do not support multiple TX
queues (well, these functions also ease the netif/ convertion in this
step :).

All of the pseudo network devices under sys/net are converted to use the
new subqueue operation. netproto/802_11 is converted too. igb(4) is
converted to use the new subqueue operation, the rest of the network
drivers are only changed for the if_start interface modification.

For ALTQs which have packet scheduler enabled, only the first subqueue
is used (*).

(*) Whether we should utilize multiple TX queues if ALTQ's packet scheduler
is enabled is quite questionable. Mainly because hardware's multiple TX
queue packet dequeue mechanism could have negative impact on ALTQ's packet
scheduler's decision.

show more ...


# 0e23628a 05-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Save TX interrupt CPUID into tx_ring struct

This will be used to unify the ifnet.if_cpuid and ifnet.if_npoll_cpuid


# b56e8196 09-Dec-2012 Sepherosa Ziehau <sephe@dragonflybsd.org>

igb: Improve tiny packets reception performance on low frequency CPU

Update RDT register a little bit often, so the RX descriptors are made
to the NIC chip on a more regularly base:
The RDT register

igb: Improve tiny packets reception performance on low frequency CPU

Update RDT register a little bit often, so the RX descriptors are made
to the NIC chip on a more regularly base:
The RDT register is updated after certain amount of RX descriptors are
added to the hardware RX ring. The default value of the amount of RX
descriptors are 32. This value could be further tuned by per-device
sysctl node hw.igbX.rxY_wreg.

The default value improves tiny packets reception performance w/ 82576
on AMD970@800Mhz under interrupt mode for single stream (1.28Mpps ->
1.48Mpps) and it does not increase CPU usage on AMD970@3500Mhz (CPU
usage stays @36%).

This commit does _not_ seem to affect the tiny packet reception
performance when the workload are evenly distributed to all CPUs.

show more ...


12