History log of /freebsd-13.1/sys/dev/cxgbe/t4_netmap.c (Results 1 – 25 of 62)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: release/12.4.0, release/13.1.0, release/12.3.0
# 8ec8f56c 26-Apr-2021 Navdeep Parhar <[email protected]>

cxgbe(4): Separate the sw- and hw-specific parts of resource allocations

The driver uses both software resources (locks, callouts, memory for
descriptors and for bookkeeping, sysctls, etc.) and hard

cxgbe(4): Separate the sw- and hw-specific parts of resource allocations

The driver uses both software resources (locks, callouts, memory for
descriptors and for bookkeeping, sysctls, etc.) and hardware resources
(VIs, DMA queues, TCAM entries, etc.) to operate the NIC. This commit
splits the single *_ALLOCATED flag used to track all these resources
into separate *_SW_ALLOCATED and *_HW_ALLOCATED flags.

This is the simplified pseudocode that now applies to most queues (foo
can be ctrlq/txq/rxq/ofld_txq/ofld_rxq):

/* Idempotent */
alloc_foo
{
if (!SW_ALLOCATED)
init_iq/init_eq/init_fl no-fail sw init
alloc_iq_fl/alloc_eq/alloc_wrq may-fail sw alloc
add_foo_sysctls, etc. no-fail post-alloc items
if (!HW_ALLOCATED)
alloc_iq_fl_hwq/alloc_eq_hwq hw resource allocation
}

/* Idempotent */
free_foo
{
if (!HW_ALLOCATED)
free_iq_fl_hwq/free_eq_hwq release hw resources
if (!SW_ALLOCATED)
free_iq_fl/free_eq/free_wrq release sw resources
}

The routines that take the driver to FULL_INIT_DONE and VI_INIT_DONE and
back are now all idempotent. The quiesce routines pay attention to the
HW_ALLOCATED flag and will not wait on the hardware for pidx/cidx
updates and other completions if this flag is not set.

Sponsored by: Chelsio Communications

(cherry picked from commit 43bbae19483fbde0a91e61acad8a6e71e334c8b8)

show more ...


Revision tags: release/13.0.0
# 564d1f6a 19-Mar-2021 Navdeep Parhar <[email protected]>

cxgbe(4): use standard sysctl routines to deal with 16b values.

These routines to handle 8b and 16b types were added in r289773 5+ years
ago.

Sponsored by: Chelsio Communications

(cherry picked fr

cxgbe(4): use standard sysctl routines to deal with 16b values.

These routines to handle 8b and 16b types were added in r289773 5+ years
ago.

Sponsored by: Chelsio Communications

(cherry picked from commit 473f6163e310b773dfd7e500e255d01d7328dd16)

show more ...


# 8eba75ed 03-Dec-2020 Navdeep Parhar <[email protected]>

cxgbe(4): Stop but don't free netmap queues when netmap is switched off.

It is common for freelists to be starving when a netmap application
stops. Mailbox commands to free queues can hang in such

cxgbe(4): Stop but don't free netmap queues when netmap is switched off.

It is common for freelists to be starving when a netmap application
stops. Mailbox commands to free queues can hang in such a situation.
Avoid that by not freeing the queues when netmap is switched off.
Instead, use an alternate method to stop the queues without releasing
the context ids. If netmap is enabled again later then the same queue
is reinitialized for use. Move alloc_nm_rxq and txq to t4_netmap.c
while here.

MFC after: 1 week
Sponsored by: Chelsio Communications

show more ...


# f42f3b29 02-Dec-2020 Navdeep Parhar <[email protected]>

cxgbe(4): Revert r367917.

r367917 fixed the backpressure on the netmap rxq being stopped but that
doesn't help if some other netmap rxq is starved (because it is stopping
too although the driver doe

cxgbe(4): Revert r367917.

r367917 fixed the backpressure on the netmap rxq being stopped but that
doesn't help if some other netmap rxq is starved (because it is stopping
too although the driver doesn't know this yet) and blocks the pipeline.
An alternate fix that works in all cases will be checked in instead.

Sponsored by: Chelsio Communications

show more ...


# b3718e2d 21-Nov-2020 Navdeep Parhar <[email protected]>

cxgbe(4): Catch up with in-flight netmap rx before destroying queues.

The netmap application using the driver is responsible for replenishing
the receive freelists and they may be totally depleted w

cxgbe(4): Catch up with in-flight netmap rx before destroying queues.

The netmap application using the driver is responsible for replenishing
the receive freelists and they may be totally depleted when the
application exits. Packets in flight, if any, might block the pipeline
in case there aren't enough buffers left in the freelist. Avoid this by
filling up the freelists with a driver allocated buffer.

MFC after: 1 week
Sponsored by: Chelsio Communications

show more ...


Revision tags: release/12.2.0
# b20b25e7 22-Oct-2020 Navdeep Parhar <[email protected]>

cxgbe(4): fix the size of the iq/eq maps.

The firmware can allocate ingress and egress context ids anywhere from
its configured range. Size the iq/eq maps to match the entire range
instead of assum

cxgbe(4): fix the size of the iq/eq maps.

The firmware can allocate ingress and egress context ids anywhere from
its configured range. Size the iq/eq maps to match the entire range
instead of assuming that the firmware always allocates the first
available context id.

Reported by: Baptiste Wicht @ Verisign
MFC after: 1 week
Sponsored by: Chelsio Communications

show more ...


# 822967e7 29-Sep-2020 Navdeep Parhar <[email protected]>

cxgbe(4): Avoid unnecessary work in the firmware during netmap tx.

Bind the netmap tx queues to a special '0xff' scheduling class which
makes the firmware skip some processing related to rate limiti

cxgbe(4): Avoid unnecessary work in the firmware during netmap tx.

Bind the netmap tx queues to a special '0xff' scheduling class which
makes the firmware skip some processing related to rate limiting on the
outgoing traffic. Future firmwares will do this automatically.

MFC after: 1 week
Sponsored by: Chelsio Communications

show more ...


# 7efe2562 29-Sep-2020 Navdeep Parhar <[email protected]>

Remove duplicate line.


# 15ca0766 29-Sep-2020 Navdeep Parhar <[email protected]>

cxgbe(4): adjust the doorbell threshold for netmap freelists to match the
maximum burst size used when fetching descriptors from the list.

MFC after: 1 week
Sponsored by: Chelsio Communications


# f7b8615a 29-Sep-2020 Navdeep Parhar <[email protected]>

cxgbe(4): display an error message when netmap cannot be enabled because
the interface is down.

MFC after: 1 week


# a9f47658 29-Sep-2020 Navdeep Parhar <[email protected]>

cxgbe(4): fixes for netmap operation with only some queues active.

- Only active netmap receive queues should be in the RSS lookup table.

- The RSS table should be restored for NIC operation when t

cxgbe(4): fixes for netmap operation with only some queues active.

- Only active netmap receive queues should be in the RSS lookup table.

- The RSS table should be restored for NIC operation when the last
active netmap queue is switched off, not the first one.

- Support repeated netmap ON/OFF on a subset of the queues. This works
whether the the queues being enabled and disabled are the only ones
active or not. Some kring indexes have to be reset in the driver for
the second case.

MFC after: 1 week
Sponsored by: Chelsio Communications

show more ...


# 7c228be3 25-Jun-2020 Navdeep Parhar <[email protected]>

cxgbe(4): Add a pointer to the adapter softc in vi_info.

There were quite a few places where port_info was being accessed only to
get to the adapter.

Reviewed by: jhb@
MFC after: 1 week
Sponsored b

cxgbe(4): Add a pointer to the adapter softc in vi_info.

There were quite a few places where port_info was being accessed only to
get to the adapter.

Reviewed by: jhb@
MFC after: 1 week
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D25432

show more ...


Revision tags: release/11.4.0
# aa301e5f 20-Mar-2020 Navdeep Parhar <[email protected]>

cxgbe(4): Split sge_nm_rxq into three cachelines.

This reduces the lines bouncing around between the driver rx ithread and
the netmap rxsync thread. There is no net change in the size of the
struct

cxgbe(4): Split sge_nm_rxq into three cachelines.

This reduces the lines bouncing around between the driver rx ithread and
the netmap rxsync thread. There is no net change in the size of the
struct (it continues to waste a lot of space).

This kind of split was originally proposed in D17869 by Marc De La
Gueronniere @ Verisign, Inc.

MFC after: 1 week
Sponsored by: Chelsio Communications

show more ...


# f4220a70 05-Feb-2020 Navdeep Parhar <[email protected]>

cxgbe(4): Add a knob to allow netmap tx traffic to be checksummed by
the hardware.

hw.cxgbe.nm_txcsum=1

MFC after: 2 weeks
Sponsored by: Chelsio Communications


# ba8b75ae 05-Feb-2020 Navdeep Parhar <[email protected]>

cxgbe(4): Allow nm_black_hole and nm_cong_drop to be set at any time.

The cong_drop setting will apply to queues created after the setting is
changed and not to existing queues.

MFC after: 2 weeks

cxgbe(4): Allow nm_black_hole and nm_cong_drop to be set at any time.

The cong_drop setting will apply to queues created after the setting is
changed and not to existing queues.

MFC after: 2 weeks
Sponsored by: Chelsio Communications

show more ...


# 3479fe20 04-Feb-2020 Navdeep Parhar <[email protected]>

cxgbe(4): Report accurate rx_buf_maxsize to netmap.

MFC after: 2 weeks
Sponsored by: Chelsio Communications


# 46e1e307 04-Feb-2020 Navdeep Parhar <[email protected]>

cxgbe(4): Retire the allow_mbufs_in_cluster optimization.

This simplifies the driver's rx fast path as well as the bookkeeping
code that tracks various rx buffer sizes and layouts.

MFC after: 1 wee

cxgbe(4): Retire the allow_mbufs_in_cluster optimization.

This simplifies the driver's rx fast path as well as the bookkeeping
code that tracks various rx buffer sizes and layouts.

MFC after: 1 week
Sponsored by: Chelsio Communications

show more ...


# 82694ec0 12-Dec-2019 Navdeep Parhar <[email protected]>

cxgbe(4): Never use hardware checksumming in netmap tx.

MFC after: 1 week
Sponsored by: Chelsio Communications


# aa7bdbc0 10-Dec-2019 Navdeep Parhar <[email protected]>

cxgbe(4): Use TX_PKTS2 work requests in netmap Tx if it's available.

TX_PKTS2 is more efficient within the firmware and this improves netmap
Tx by a few Mpps in some common scenarios.

MFC after: 1

cxgbe(4): Use TX_PKTS2 work requests in netmap Tx if it's available.

TX_PKTS2 is more efficient within the firmware and this improves netmap
Tx by a few Mpps in some common scenarios.

MFC after: 1 week
Sponsored by: Chelsio Communications

show more ...


Revision tags: release/12.1.0
# adb0cd84 25-Oct-2019 Navdeep Parhar <[email protected]>

cxgbe(4): Use correct FetchBurstMin values for T6.

MFC after: 1 week
Sponsored by: Chelsio Communications


Revision tags: release/11.3.0, release/12.0.0
# 43cf589c 28-Nov-2018 Vincenzo Maffione <[email protected]>

cxgbe: revert r309725

After the fix contained in r341144, cxgbe does not need anymore
to set the IFCAP_NETMAP flag manually.

Reviewed by: np
Approved by: gnn (mentor)
MFC after: 3 days
Differential

cxgbe: revert r309725

After the fix contained in r341144, cxgbe does not need anymore
to set the IFCAP_NETMAP flag manually.

Reviewed by: np
Approved by: gnn (mentor)
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D17987

show more ...


# 2d714dbc 27-Nov-2018 John Baldwin <[email protected]>

Add read-only sysctls for all tunables in the cxgbe(4) driver.

Reviewed by: np
MFC after: 1 month
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D18360


# 23d903a7 12-Nov-2018 Julien Charbon <[email protected]>

cxgbe/netmap: Fix cxgbe netmap when interface is DOWN

A kernel panic can occur if the cxgbe interface is DOWN
when activating netmap. This patch prevents the driver
from freeing up cxgbe netmap reso

cxgbe/netmap: Fix cxgbe netmap when interface is DOWN

A kernel panic can occur if the cxgbe interface is DOWN
when activating netmap. This patch prevents the driver
from freeing up cxgbe netmap resources when they have not
been allocated.

Submitted by: Nicolas Witkowski <[email protected]>
Reviewed by: np
MFC after: 1 week
Sponsored by: Verisign, Inc.
Differential Revision: https://reviews.freebsd.org/D17802

show more ...


# f02c9e69 25-Oct-2018 Navdeep Parhar <[email protected]>

cxgbe(4): Add a knob to split the rx queues for a netmap enabled
interface into two groups. Filters can be used to match traffic
and distribute it across a group.

hw.cxgbe.nm_split_rss

Sponsored b

cxgbe(4): Add a knob to split the rx queues for a netmap enabled
interface into two groups. Filters can be used to match traffic
and distribute it across a group.

hw.cxgbe.nm_split_rss

Sponsored by: Chelsio Communications

show more ...


# b77aaff9 25-Oct-2018 Navdeep Parhar <[email protected]>

cxgbe(4): Update the VI's default queue when netmap is enabled/disabled.

Sponsored by: Chelsio Communications


123