<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/sfc/rx_common.c, branch linux-6.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.2.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.2.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2022-11-16T09:07:02Z</updated>
<entry>
<title>sfc: add ability for an RXQ to grant credits on refill</title>
<updated>2022-11-16T09:07:02Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree.xilinx@gmail.com</email>
</author>
<published>2022-11-14T13:15:51Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e395153984871e33624ce5e3f72038de979f5b3e'/>
<id>urn:sha1:e395153984871e33624ce5e3f72038de979f5b3e</id>
<content type='text'>
EF100 hardware streams MAE counter updates to the driver over a dedicated
 RX queue; however, the MCPU is not able to detect when RX buffers have
 been posted to the ring.  Thus, the driver must call
 MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS; this patch adds the
 infrastructure to support that to the core RXQ handling code.

Signed-off-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: include vport_id in filter spec hash and equal()</title>
<updated>2022-10-20T00:08:43Z</updated>
<author>
<name>Pieter Jansen van Vuuren</name>
<email>pieter.jansen-van-vuuren@amd.com</email>
</author>
<published>2022-10-18T09:28:41Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c2bf23e4a5af37a4d77901d9ff14c50a269f143d'/>
<id>urn:sha1:c2bf23e4a5af37a4d77901d9ff14c50a269f143d</id>
<content type='text'>
Filters on different vports are qualified by different implicit MACs and/or
VLANs, so shouldn't be considered equal even if their other match fields
are identical.

Fixes: 7c460d9be610 ("sfc: Extend and abstract efx_filter_spec to cover Huntington/EF10")
Co-developed-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: Pieter Jansen van Vuuren &lt;pieter.jansen-van-vuuren@amd.com&gt;
Reviewed-by: Martin Habets &lt;habetsm.xilinx@gmail.com&gt;
Link: https://lore.kernel.org/r/20221018092841.32206-1-pieter.jansen-van-vuuren@amd.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>sfc: move table locking into filter_table_{probe,remove} methods</title>
<updated>2022-07-30T04:22:06Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree.xilinx@gmail.com</email>
</author>
<published>2022-07-28T18:57:50Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=77eb40749d73fe347c47d6903874a924840ff8d5'/>
<id>urn:sha1:77eb40749d73fe347c47d6903874a924840ff8d5</id>
<content type='text'>
We need to be able to drop the efx-&gt;filter_sem in ef100_filter_table_up()
 so that we can call functions that insert filters (and thus take that
 rwsem for read), which means the efx-&gt;type-&gt;filter_table_probe method
 needs to be responsible for taking the lock in the first place.

Signed-off-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>sfc: Encapsulate access to netdev_priv()</title>
<updated>2022-06-29T12:40:47Z</updated>
<author>
<name>Jonathan Cooper</name>
<email>jonathan.s.cooper@amd.com</email>
</author>
<published>2022-06-28T13:59:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8cb03f4e084e8472d5fec77c01ee70eae8fa8b22'/>
<id>urn:sha1:8cb03f4e084e8472d5fec77c01ee70eae8fa8b22</id>
<content type='text'>
Once we separate struct efx_nic memory from net_device memory the
existing usage will have to change.
Apart from the new function efx_netdev_priv() accesses have been
changed using:
  sed -i 's/netdev_priv/efx_netdev_priv/'

Signed-off-by: Jonathan Cooper &lt;jonathan.s.cooper@amd.com&gt;
Co-developed-by: Martin Habets &lt;habetsm.xilinx@gmail.com&gt;
Signed-off-by: Martin Habets &lt;habetsm.xilinx@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Do not free an empty page_ring</title>
<updated>2022-04-04T11:53:52Z</updated>
<author>
<name>Martin Habets</name>
<email>habetsm.xilinx@gmail.com</email>
</author>
<published>2022-04-04T10:48:51Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=458f5d92df4807e2a7c803ed928369129996bf96'/>
<id>urn:sha1:458f5d92df4807e2a7c803ed928369129996bf96</id>
<content type='text'>
When the page_ring is not used page_ptr_mask is 0.
Do not dereference page_ring[0] in this case.

Fixes: 2768935a4660 ("sfc: reuse pages to avoid DMA mapping/unmapping costs")
Reported-by: Taehee Yoo &lt;ap420073@gmail.com&gt;
Signed-off-by: Martin Habets &lt;habetsm.xilinx@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: The size of the RX recycle ring should be more flexible</title>
<updated>2022-02-02T04:34:59Z</updated>
<author>
<name>Martin Habets</name>
<email>habetsm.xilinx@gmail.com</email>
</author>
<published>2022-01-31T11:10:54Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=000fe940e51f03210bd5fb1061d4d82ed9a7b1b6'/>
<id>urn:sha1:000fe940e51f03210bd5fb1061d4d82ed9a7b1b6</id>
<content type='text'>
Ideally the size would depend on the link speed, but the recycle
ring is created when the interface is brought up before the driver
knows the link speed. So size it for the maximum speed of a given NIC.
PowerPC is only supported on SFN7xxx and SFN8xxx NICs.

With this patch on a 40G NIC the number of calls to alloc_pages and
friends went down from about 18% to under 2%.
On a 10G NIC the number of calls to alloc_pages and friends went down
from about 15% to 0 (perf did not capture any calls during the 60
second test).
On a 100G NIC the number of calls to alloc_pages and friends went down
from about 23% to 4%.

Reported-by: Íñigo Huguet &lt;ihuguet@redhat.com&gt;
Signed-off-by: Martin Habets &lt;habetsm.xilinx@gmail.com&gt;
Link: https://lore.kernel.org/r/20220131111054.cp4f6foyinaarwbn@gmail.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>sfc: The RX page_ring is optional</title>
<updated>2022-01-05T02:14:21Z</updated>
<author>
<name>Martin Habets</name>
<email>habetsm.xilinx@gmail.com</email>
</author>
<published>2022-01-02T08:41:22Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1d5a474240407c38ca8c7484a656ee39f585399c'/>
<id>urn:sha1:1d5a474240407c38ca8c7484a656ee39f585399c</id>
<content type='text'>
The RX page_ring is an optional feature that improves
performance. When allocation fails the driver can still
function, but possibly with a lower bandwidth.
Guard against dereferencing a NULL page_ring.

Fixes: 2768935a4660 ("sfc: reuse pages to avoid DMA mapping/unmapping costs")
Signed-off-by: Martin Habets &lt;habetsm.xilinx@gmail.com&gt;
Reported-by: Jiasheng Jiang &lt;jiasheng@iscas.ac.cn&gt;
Link: https://lore.kernel.org/r/164111288276.5798.10330502993729113868.stgit@palantir17.mph.net
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>sfc: Check null pointer of rx_queue-&gt;page_ring</title>
<updated>2021-12-22T20:23:18Z</updated>
<author>
<name>Jiasheng Jiang</name>
<email>jiasheng@iscas.ac.cn</email>
</author>
<published>2021-12-20T13:56:03Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=bdf1b5c3884f6a0dc91b0dbdb8c3b7d205f449e0'/>
<id>urn:sha1:bdf1b5c3884f6a0dc91b0dbdb8c3b7d205f449e0</id>
<content type='text'>
Because of the possible failure of the kcalloc, it should be better to
set rx_queue-&gt;page_ptr_mask to 0 when it happens in order to maintain
the consistency.

Fixes: 5a6681e22c14 ("sfc: separate out SFC4000 ("Falcon") support into new sfc-falcon driver")
Signed-off-by: Jiasheng Jiang &lt;jiasheng@iscas.ac.cn&gt;
Acked-by: Martin Habets &lt;habetsm.xilinx@gmail.com&gt;
Link: https://lore.kernel.org/r/20211220135603.954944-1-jiasheng@iscas.ac.cn
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>xsk: Propagate napi_id to XDP socket Rx path</title>
<updated>2020-11-30T23:09:25Z</updated>
<author>
<name>Björn Töpel</name>
<email>bjorn.topel@intel.com</email>
</author>
<published>2020-11-30T18:52:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b02e5a0ebb172c8276cea3151942aac681f7a4a6'/>
<id>urn:sha1:b02e5a0ebb172c8276cea3151942aac681f7a4a6</id>
<content type='text'>
Add napi_id to the xdp_rxq_info structure, and make sure the XDP
socket pick up the napi_id in the Rx path. The napi_id is used to find
the corresponding NAPI structure for socket busy polling.

Signed-off-by: Björn Töpel &lt;bjorn.topel@intel.com&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Ilias Apalodimas &lt;ilias.apalodimas@linaro.org&gt;
Acked-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Acked-by: Tariq Toukan &lt;tariqt@nvidia.com&gt;
Link: https://lore.kernel.org/bpf/20201130185205.196029-7-bjorn.topel@gmail.com
</content>
</entry>
<entry>
<title>sfc: move initialisation of efx-&gt;filter_sem to efx_init_struct()</title>
<updated>2020-10-21T04:22:23Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree@solarflare.com</email>
</author>
<published>2020-10-20T14:35:08Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=05f90bf3d5df40e1a705527520e5fd56b2b6f09e'/>
<id>urn:sha1:05f90bf3d5df40e1a705527520e5fd56b2b6f09e</id>
<content type='text'>
efx_probe_filters() has not been called yet when EF100 calls into
 efx_mcdi_filter_table_probe(), for which it wants to take the
 filter_sem.

Fixes: a9dc3d5612ce ("sfc_ef100: RX filter table management and related gubbins")
Signed-off-by: Edward Cree &lt;ecree@solarflare.com&gt;
Link: https://lore.kernel.org/r/24fad43e-887d-051e-25e3-506f23f63abf@solarflare.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
</feed>
