History log of /freebsd-10-stable/sys/dev/sfxge/sfxge_port.c
Revision Date Author Comments
# 312169 14-Jan-2017 arybchik

MFC r311983

sfxge(4): add sysctl to change MAC stats update period

The sysctl controls the period per interface.

Sponsored by: Solarflare Communications, Inc.


# 312168 14-Jan-2017 arybchik

MFC r311977

sfxge(4): add tunable to configure MAC stats update period

Sponsored by: Solarflare Communications, Inc.


# 312167 14-Jan-2017 arybchik

MFC r311962

sfxge(4): stats refresh in SW should depend on HW update period

The period should be taken into account by the function which
refreshes driver stats.

Reviewed by: philip
Sponsored by: Solarflare Communications, Inc.


# 311766 09-Jan-2017 arybchik

MFC r311638

sfxge(4): use SFXGE_LINK_UP() to report link up state

Sponsored by: Solarflare Communications, Inc.


# 304679 23-Aug-2016 arybchik

MFC r301724

sfxge(4): handle negative ticks difference correctly

ticks are signed int and if statistics is not updated for a long time
(more than INT_MAX ticks, but less than UINT_MAX) difference becomes
negative and less than hz for a long time.

Other option to repeat is simply load driver (which initializes
timestamps to 0) when ticks are negative.

Sponsored by: Solarflare Communications, Inc.


# 301388 04-Jun-2016 arybchik

MFC r300607

sfxge(4): cleanup: update copyright to 2016

Sponsored by: Solarflare Communications, Inc.


# 292089 11-Dec-2015 arybchik

sfxge: implement interface statistics shown by netstat

PR: 202907
Submitted by: Boris Misenov <Boris.Misenov at oktetlabs.ru>
Reviewed by: gnn, philip
Sponsored by: Solarflare Communications, Inc.
Differential Revision: https://reviews.freebsd.org/D4317


# 284555 18-Jun-2015 arybchik

MFC: r283514

sfxge: add 7xxx NICs family support

Support 7xxx adapters including firmware-assisted TSO and VLAN tagging:

- Solarflare Flareon Ultra 7000 series 10/40G adapters:
- Solarflare SFN7042Q QSFP+ Server Adapter
- Solarflare SFN7142Q QSFP+ Server Adapter

- Solarflare Flareon Ultra 7000 series 10G adapters:
- Solarflare SFN7022F SFP+ Server Adapter
- Solarflare SFN7122F SFP+ Server Adapter
- Solarflare SFN7322F Precision Time Synchronization Server Adapter

- Solarflare Flareon 7000 series 10G adapters:
- Solarflare SFN7002F SFP+ Server Adapter

Support utilities to configure adapters and update firmware.

The work is done by Solarflare developers
(Andy Moreton, Andrew Lee and many others),
Artem V. Andreev <Artem.Andreev at oktetlabs.ru> and me.

Sponsored by: Solarflare Communications, Inc.


# 284554 18-Jun-2015 arybchik

sfxge: use if_initbaudrate() to set interface baudrate

It is required to cope with u_long limit for 10 Gbps in a right way.
It is a direct commit to stable/10 since head differs (head does not
have if_initbaudrate(), if_baudrate is simply uint64_t).

Sponsored by: Solarflare Communications, Inc.
Differential Revision: https://reviews.freebsd.org/D2849


# 283682 29-May-2015 arybchik

MFC: r283599

sfxge: mask ifmedia options (pauses) when looking for matching mode

Sponsored by: Solarflare Communications, Inc.


# 283213 21-May-2015 arybchik

MFC: r283007

sfxge: avoid usage of ifm_data

The driver uses ifm_data to save capabilities mask calculated during
initialization when supported phy modes are discovered.
The patch simply calculates it when either media or options are changed.

Sponsored by: Solarflare Communications, Inc.


# 283202 21-May-2015 arybchik

MFC: r282897

sfxge: add missing const qualifier to sfxge_link_mode

Sponsored by: Solarflare Communications, Inc.


# 280610 25-Mar-2015 arybchik

MFC: 280380

sfxge: remove unnecessary and wrong prediction

Sponsored by: Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2085


# 280596 25-Mar-2015 arybchik

MFC: 279351

sfxge: expect required init_state on data path and in periodic calls

With the patch applied the number of instruction events is 1% less and
number of mispredicted branch events is 5% less under multistream TCP
traffic load close to line rate.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280533 25-Mar-2015 arybchik

MFC: 278838

sfxge: SYSCTL_IN/OUT should not be called with non-sleepable lock held

The problem is found using WITNESS option enabled.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280524 25-Mar-2015 arybchik

MFC: 278250

sfxge: make lock names unique

Lock name should include interface name.
Tx queue and event queue lock name should include queue number.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280523 25-Mar-2015 arybchik

MFC: 278248

sfxge: access statistics buffers under port lock

Allow access to statistics data not only from sysctl handlers.

Submitted by: Boris Misenov <Boris.Misenov at oktetlabs.ru>
Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280522 25-Mar-2015 arybchik

MFC: 278221

sfxge: Add macros to init, destroy, acquire, release and assert locks

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280514 25-Mar-2015 arybchik

MFC: 277890

sfxge: Do not bzero() DMA allocated memory once again

sfxge_dma_alloc() calls bus_dmamem_alloc() with BUS_DMA_ZERO flag, so
allocated memory is already filled in by zeros

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280501 25-Mar-2015 arybchik

MFC: 272325

cleanup: code style fixes

Remove trailing whitespaces and tabs.
Enclose value in return statements in parentheses.
Use tabs after #define.
Do not skip comparison with 0/NULL in boolean expressions.

Submitted by: Andrew Rybchenko <arybchenko at solarflare.com>
Sponsored by: Solarflare Communications, Inc.


# 265884 11-May-2014 gnn

MFC: 263302, 264461, 264772

263302:
fix mbuf leak if it does not fit in software queue

264461:
Commit various fixes for the SolarFlare drivers, in particular
this set of patches fixes support for systems with > 32 cores.

Details include

sfxge: RXQ index (not label) comes from FW in flush done/failed events

Change the second argument name of the efx_rxq_flush_done_ev_t and
efx_rxq_flush_failed_ev_t prototypes to highlight that RXQ index (not label)
comes from FW in flush done and failed events.

sfxge: TXQ index (not label) comes from FW in flush done event

Change the second argument name of the efx_txq_flush_done_ev_t prototype to
highlight that TXQ index (not label) comes from FW in flush done event.

sfxge: use TXQ type as label to support more than 32 TXQs

There are 3 TXQs in event queue 0 and 1 TXQ (with TCP/UDP checksum offload)
in all other event queues.

264772:
Check that port is started when MAC filter is set

The MAC filter set may be called without softc_lock held in the case of
SIOCADDMULTI and SIOCDELMULTI ioctls. The ioctl handler checks IFF_DRV_RUNNING
flag which implies port started, but it is not guaranteed to remain.
softc_lock shared lock can't be held in the case of these ioctls processing,
since it results in failure where kernel complains that non-sleepable
lock is held in sleeping thread.

Both problems are repeatable on LAG with LACP proto bring up.

Submitted by: Andrew Rybchenko <Andrew.Rybchenko at oktetlabs.ru>
Sponsored by: Solarflare Communications, Inc.


# 284555 18-Jun-2015 arybchik

MFC: r283514

sfxge: add 7xxx NICs family support

Support 7xxx adapters including firmware-assisted TSO and VLAN tagging:

- Solarflare Flareon Ultra 7000 series 10/40G adapters:
- Solarflare SFN7042Q QSFP+ Server Adapter
- Solarflare SFN7142Q QSFP+ Server Adapter

- Solarflare Flareon Ultra 7000 series 10G adapters:
- Solarflare SFN7022F SFP+ Server Adapter
- Solarflare SFN7122F SFP+ Server Adapter
- Solarflare SFN7322F Precision Time Synchronization Server Adapter

- Solarflare Flareon 7000 series 10G adapters:
- Solarflare SFN7002F SFP+ Server Adapter

Support utilities to configure adapters and update firmware.

The work is done by Solarflare developers
(Andy Moreton, Andrew Lee and many others),
Artem V. Andreev <Artem.Andreev at oktetlabs.ru> and me.

Sponsored by: Solarflare Communications, Inc.


# 284554 18-Jun-2015 arybchik

sfxge: use if_initbaudrate() to set interface baudrate

It is required to cope with u_long limit for 10 Gbps in a right way.
It is a direct commit to stable/10 since head differs (head does not
have if_initbaudrate(), if_baudrate is simply uint64_t).

Sponsored by: Solarflare Communications, Inc.
Differential Revision: https://reviews.freebsd.org/D2849


# 283682 29-May-2015 arybchik

MFC: r283599

sfxge: mask ifmedia options (pauses) when looking for matching mode

Sponsored by: Solarflare Communications, Inc.


# 283213 21-May-2015 arybchik

MFC: r283007

sfxge: avoid usage of ifm_data

The driver uses ifm_data to save capabilities mask calculated during
initialization when supported phy modes are discovered.
The patch simply calculates it when either media or options are changed.

Sponsored by: Solarflare Communications, Inc.


# 283202 21-May-2015 arybchik

MFC: r282897

sfxge: add missing const qualifier to sfxge_link_mode

Sponsored by: Solarflare Communications, Inc.


# 280610 25-Mar-2015 arybchik

MFC: 280380

sfxge: remove unnecessary and wrong prediction

Sponsored by: Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2085


# 280596 25-Mar-2015 arybchik

MFC: 279351

sfxge: expect required init_state on data path and in periodic calls

With the patch applied the number of instruction events is 1% less and
number of mispredicted branch events is 5% less under multistream TCP
traffic load close to line rate.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280533 25-Mar-2015 arybchik

MFC: 278838

sfxge: SYSCTL_IN/OUT should not be called with non-sleepable lock held

The problem is found using WITNESS option enabled.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280524 25-Mar-2015 arybchik

MFC: 278250

sfxge: make lock names unique

Lock name should include interface name.
Tx queue and event queue lock name should include queue number.

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280523 25-Mar-2015 arybchik

MFC: 278248

sfxge: access statistics buffers under port lock

Allow access to statistics data not only from sysctl handlers.

Submitted by: Boris Misenov <Boris.Misenov at oktetlabs.ru>
Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280522 25-Mar-2015 arybchik

MFC: 278221

sfxge: Add macros to init, destroy, acquire, release and assert locks

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280514 25-Mar-2015 arybchik

MFC: 277890

sfxge: Do not bzero() DMA allocated memory once again

sfxge_dma_alloc() calls bus_dmamem_alloc() with BUS_DMA_ZERO flag, so
allocated memory is already filled in by zeros

Sponsored by: Solarflare Communications, Inc.
Approved by: gnn (mentor)


# 280501 25-Mar-2015 arybchik

MFC: 272325

cleanup: code style fixes

Remove trailing whitespaces and tabs.
Enclose value in return statements in parentheses.
Use tabs after #define.
Do not skip comparison with 0/NULL in boolean expressions.

Submitted by: Andrew Rybchenko <arybchenko at solarflare.com>
Sponsored by: Solarflare Communications, Inc.


# 265884 11-May-2014 gnn

MFC: 263302, 264461, 264772

263302:
fix mbuf leak if it does not fit in software queue

264461:
Commit various fixes for the SolarFlare drivers, in particular
this set of patches fixes support for systems with > 32 cores.

Details include

sfxge: RXQ index (not label) comes from FW in flush done/failed events

Change the second argument name of the efx_rxq_flush_done_ev_t and
efx_rxq_flush_failed_ev_t prototypes to highlight that RXQ index (not label)
comes from FW in flush done and failed events.

sfxge: TXQ index (not label) comes from FW in flush done event

Change the second argument name of the efx_txq_flush_done_ev_t prototype to
highlight that TXQ index (not label) comes from FW in flush done event.

sfxge: use TXQ type as label to support more than 32 TXQs

There are 3 TXQs in event queue 0 and 1 TXQ (with TCP/UDP checksum offload)
in all other event queues.

264772:
Check that port is started when MAC filter is set

The MAC filter set may be called without softc_lock held in the case of
SIOCADDMULTI and SIOCDELMULTI ioctls. The ioctl handler checks IFF_DRV_RUNNING
flag which implies port started, but it is not guaranteed to remain.
softc_lock shared lock can't be held in the case of these ioctls processing,
since it results in failure where kernel complains that non-sleepable
lock is held in sleeping thread.

Both problems are repeatable on LAG with LACP proto bring up.

Submitted by: Andrew Rybchenko <Andrew.Rybchenko at oktetlabs.ru>
Sponsored by: Solarflare Communications, Inc.