<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/cxgbe/t4_netmap.c, branch releng/12.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2020-08-25T02:54:48Z</updated>
<entry>
<title>MFC r362616:</title>
<updated>2020-08-25T02:54:48Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2020-08-25T02:54:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f96e05aecd96f8f9f6f042a77eeda7d4e869356d'/>
<id>urn:sha1:f96e05aecd96f8f9f6f042a77eeda7d4e869356d</id>
<content type='text'>
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.

Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>MFC r351444, r357475, r357479, r357481-r357482, r358859, and r364497.</title>
<updated>2020-08-25T02:14:36Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2020-08-25T02:14:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a884debd536e94692627a94d1f9e8aaa5aa94ca8'/>
<id>urn:sha1:a884debd536e94692627a94d1f9e8aaa5aa94ca8</id>
<content type='text'>
All these are rx improvements in the cxgbe(4) driver.

r351444:
cxgbe(4): Use the same buffer size for TOE rx queues as the NIC rx queues.

This is a minor simplification.

r357475:
cxgbe(4): Initialize the rx buffer's metadata on first-use and not on
allocation.

refill_fl doesn't touch any part of a freshly allocated cluster after
this change.

r357479:
cxgbe(4): Avoid ext_arg2 in rxb_free.

ext_arg2 is the only item in the third cacheline in an mbuf and could be
cold by the time rxb_free runs.  Put the information needed by rxb_free
in the same line as the refcount, which is very likely to be hot given
that rxb_free runs when the refcount is decremented and reaches 0.

r357481:
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.

r357482:
cxgbe(4): Treat NIC rx as special and run its handler directly and not
via the t4_cpl_handler dispatch table.

r358859:
cxgbe(4): Do not try to use 0 as an rx buffer address when the driver is
already allocating from the safe zone and the allocation fails.

This bug was introduced in r357481.

r364497:
cxgbe(4): Use large clusters for TOE rx queues when TOE+TLS is enabled.

Rx is more efficient within the chip when the receive buffer size
matches the TLS PDU size.

Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>MFC r359159:</title>
<updated>2020-03-27T03:58:00Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2020-03-27T03:58:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7953983a18a84d200d377ae232f368a155e1dacd'/>
<id>urn:sha1:7953983a18a84d200d377ae232f368a155e1dacd</id>
<content type='text'>
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.

Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>MFC r357552:</title>
<updated>2020-03-14T02:05:12Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2020-03-14T02:05:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=601e34708ee1290481282c2bff513e2311b57a64'/>
<id>urn:sha1:601e34708ee1290481282c2bff513e2311b57a64</id>
<content type='text'>
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.

Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>MFC r357551:</title>
<updated>2020-03-14T01:59:39Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2020-03-14T01:59:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=73e6dc532c96c3016df513276d0f4ff1d8126507'/>
<id>urn:sha1:73e6dc532c96c3016df513276d0f4ff1d8126507</id>
<content type='text'>
cxgbe(4): Report accurate rx_buf_maxsize to netmap.

Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>MFC r355580, r355673, and r357553.</title>
<updated>2020-03-14T01:03:48Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2020-03-14T01:03:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2345e141144c51d70cf59c1ec4b536a462e1199e'/>
<id>urn:sha1:2345e141144c51d70cf59c1ec4b536a462e1199e</id>
<content type='text'>
r355580:
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.

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

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

hw.cxgbe.nm_txcsum=1

Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>MFC r354106:</title>
<updated>2019-11-30T17:56:04Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2019-11-30T17:56:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ca20a0f5c6823ca915ae656b4aed9b5c917725d1'/>
<id>urn:sha1:ca20a0f5c6823ca915ae656b4aed9b5c917725d1</id>
<content type='text'>
cxgbe(4): Use correct FetchBurstMin values for T6.

Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>MFC r340375 (by jch@):</title>
<updated>2019-04-30T21:24:44Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2019-04-30T21:24:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8b3adb27aad3e7f6d6b160639ccc1307aef69559'/>
<id>urn:sha1:8b3adb27aad3e7f6d6b160639ccc1307aef69559</id>
<content type='text'>
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 &lt;nwitkowski@verisign.com&gt;
Reviewed by:	np
Sponsored by:	Verisign, Inc.
Differential Revision:	https://reviews.freebsd.org/D17802
</content>
</entry>
<entry>
<title>MFC r339717, r339749, and r339809.</title>
<updated>2019-03-27T19:37:50Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2019-03-27T19:37:50Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ca3f2cbd11ffcfa8732701e930d4fe7b23a8c9e8'/>
<id>urn:sha1:ca3f2cbd11ffcfa8732701e930d4fe7b23a8c9e8</id>
<content type='text'>
r339717:
cxgbe(4): Allow "pass" filters to distribute matching traffic using a
subset of a VI's RSS indirection table.

This makes it possible to make groups out of rx queues and steer
different kinds of traffic to different groups.  For example, an
interface with 8 rx queues could have all non-TCP traffic delivered to
queues 0-3 and all TCP traffic to queues 4-7.

Note that it is already possible for filters to steer traffic to a
particular queue or to distribute it using the full indirection table
(much like normal rx does).

Sponsored by:	Chelsio Communications

r339749:
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

r339809:
cxgbetool(8): Add a subaction (tcbrss &lt;n&gt;) that can be used with "pass"
action to distribute traffic using the half of the VI's RSS indirection
table.

The value specified should either be the start of the VI's RSS slice
(available at dev.&lt;ifname&gt;.&lt;inst&gt;.rss_base since r339700) or the
midpoint (rss_base + rss_size/2).  The traffic that hits the filter will
use the first or second half of the indirection table respectively.
The indirection table can be populated in different ways to achieve
different kinds of traffic/load distributions.  For example, r339749
allows a netmap interface to have half the rx queues in the first half
of the table and the rest in the other.

Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>MFC r339705:</title>
<updated>2019-03-27T19:24:37Z</updated>
<author>
<name>Navdeep Parhar</name>
<email>np@FreeBSD.org</email>
</author>
<published>2019-03-27T19:24:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c71b995248d906a99256e8cfa728a72a8fd9ba3a'/>
<id>urn:sha1:c71b995248d906a99256e8cfa728a72a8fd9ba3a</id>
<content type='text'>
cxgbe(4): Update the VI's default queue when netmap is enabled/disabled.

Sponsored by:	Chelsio Communications
</content>
</entry>
</feed>
