<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/xen/netfront, branch releng/14.3</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F14.3</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F14.3'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2024-10-11T07:06:25Z</updated>
<entry>
<title>xen-netfront: attempt to make cleanup idempotent</title>
<updated>2024-10-11T07:06:25Z</updated>
<author>
<name>Roger Pau Monné</name>
<email>royger@FreeBSD.org</email>
</author>
<published>2023-11-03T09:28:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c1782c2d28a59fab389aa6457f109afe3e9b43fc'/>
<id>urn:sha1:c1782c2d28a59fab389aa6457f109afe3e9b43fc</id>
<content type='text'>
Current cleanup code assumes that all the fields are allocated and/or setup by
the time cleanup is called, but this is not always true: a failure in mid-setup
of the device will cause the functions to be called with possibly uninitialized
fields.

Fix the functions to cope with such sate, while also attempting to make the
cleanup idempotent.

Finally fix an error path during setup that would not mark the device as
closed, and hence prevents the kernel from finishing booting.

Fixes: 96375eac945c ("xen-netfront: add multiqueue support")
Sponsored by: Citrix Systems R&amp;D

(cherry picked from commit 318bbb6d5a1eae77eb5dc687bcc63c0f99558e21)
</content>
</entry>
<entry>
<title>xen/netfront: Decouple XENNET tags from mbuf lifetimes</title>
<updated>2024-08-20T13:27:05Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2024-08-02T13:09:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7178003234932e62dd552da9b39d2e6c35ed97f8'/>
<id>urn:sha1:7178003234932e62dd552da9b39d2e6c35ed97f8</id>
<content type='text'>
netmap's generic mode tries to improve performance by minimizing mbuf
allocations.  In service of this goal, it maintains an extra reference
to the mbuf and polls the counter to see if the driver has released its
reference by calling m_freem().  As a result, the extref destructor is
not called when expected by the netfront driver, and mbufs tags are not
freed.

Modify the tx path to release its mbuf tags promptly when reclaiming tx
descriptors.  They are drawn from a fixed-size pool, so otherwise are
quickly exhausted when a netfront interface is in netmap generic mode.

Co-authored by:	royger
MFC after:	2 weeks
Fixes:	dabb3db7a817 ("xen/netfront: deal with mbuf data crossing a page boundary")
Sponsored by:	Cloud Software Group
Sponsored by:	Klara, Inc.
Sponsored by:	Zenarmor

(cherry picked from commit 2e4781cb12af2d13262ed5decf6fd95c8d58d9f5)
</content>
</entry>
<entry>
<title>netfront: fix the support for disabling LRO at boot time</title>
<updated>2023-11-12T10:37:16Z</updated>
<author>
<name>Doug Rabson</name>
<email>dfr@FreeBSD.org</email>
</author>
<published>2023-08-12T13:19:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=61ba094af4b4798bf2887c30af5c14d66ead706f'/>
<id>urn:sha1:61ba094af4b4798bf2887c30af5c14d66ead706f</id>
<content type='text'>
The driver has a tunable hw.xn.enable_lro which is intended to control
whether LRO is enabled. This is currently non-functional - even if its
set to zero, the driver still requests LRO support from the backend.
This change fixes the feature so that if enable_lro is set to zero, LRO
no longer appears in the interface capabilities and LRO is not requested
from the backend.

PR:		273046
MFC after:	1 week
Reviewed by:	royger
Differential Revision: https://reviews.freebsd.org/D41439

(cherry picked from commit da4b0d6eb06d730487d48e15d2d5e10c56266fd9)
</content>
</entry>
<entry>
<title>sys: Remove $FreeBSD$: one-line .c pattern</title>
<updated>2023-08-16T17:54:36Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2023-08-16T17:54:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=685dc743dc3b5645e34836464128e1c0558b404b'/>
<id>urn:sha1:685dc743dc3b5645e34836464128e1c0558b404b</id>
<content type='text'>
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
</content>
</entry>
<entry>
<title>spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD</title>
<updated>2023-05-12T16:44:03Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2023-05-10T15:40:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4d846d260e2b9a3d4d0a701462568268cbfe7a5b'/>
<id>urn:sha1:4d846d260e2b9a3d4d0a701462568268cbfe7a5b</id>
<content type='text'>
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with:		pfg
MFC After:		3 days
Sponsored by:		Netflix
</content>
</entry>
<entry>
<title>Mechanically convert Xen netfront/netback(4) to IfAPI</title>
<updated>2023-04-24T13:54:23Z</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2022-03-01T17:52:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=02f3b17fa5967b15d3841d9f7df56264557d1bfb'/>
<id>urn:sha1:02f3b17fa5967b15d3841d9f7df56264557d1bfb</id>
<content type='text'>
Reviewed by:	zlei
Sponsored by:	Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D37800
</content>
</entry>
<entry>
<title>xen/netfront: deal with mbuf data crossing a page boundary</title>
<updated>2022-11-03T12:32:21Z</updated>
<author>
<name>Roger Pau Monné</name>
<email>royger@FreeBSD.org</email>
</author>
<published>2022-11-03T12:29:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=dabb3db7a817f003af3f89c965ba369c67fc4910'/>
<id>urn:sha1:dabb3db7a817f003af3f89c965ba369c67fc4910</id>
<content type='text'>
There's been a report recently of mbufs with data that crosses a page
boundary. It seems those mbufs are generated by the iSCSI target
system:

https://lists.xenproject.org/archives/html/xen-devel/2021-12/msg01581.html

In order to handle those mbufs correctly on netfront use the bus_dma
interface and explicitly request that segments must not cross a page
boundary. No other requirements are necessary, so it's expected that
bus_dma won't need to bounce the data and hence it shouldn't
introduce a too big performance penalty.

Using bus_dma requires some changes to netfront, mainly in order to
accommodate for the fact that now ring slots no longer have a 1:1
match with mbufs, as a single mbuf can use two ring slots if the data
buffer crosses a page boundary. Store the first packet of the mbuf
chain in every ring slot that's used, and use a mbuf tag in order to
store the bus_dma related structures and a refcount to keep track of
the pending slots before the mbuf chain can be freed.

Reported by: G.R.
Tested by: G.R.
MFC: 1 week
Differential revision: https://reviews.freebsd.org/D33876
</content>
</entry>
<entry>
<title>xen: Remove unused devclass arguments to DRIVER_MODULE.</title>
<updated>2022-05-06T22:46:58Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2022-05-06T22:46:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f929eb1ed50f079f1638cdabe511ac2e347f541a'/>
<id>urn:sha1:f929eb1ed50f079f1638cdabe511ac2e347f541a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>xen: switch to use headers in contrib</title>
<updated>2022-02-07T09:11:56Z</updated>
<author>
<name>Elliott Mitchell</name>
<email>ehem+freebsd@m5p.com</email>
</author>
<published>2021-10-13T02:00:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ad7dd5149910a7bc5ff5353a54393e64e3e74690'/>
<id>urn:sha1:ad7dd5149910a7bc5ff5353a54393e64e3e74690</id>
<content type='text'>
These headers originate with the Xen project and shouldn't be mixed with
the main portion of the FreeBSD kernel. Notably they shouldn't be the
target of clean-up commits.

Switch to use the headers in sys/contrib/xen.

Reviewed by: royger
</content>
</entry>
<entry>
<title>xen: plug some of set-but-not-used vars</title>
<updated>2021-12-15T13:46:17Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2021-12-15T13:45:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e7236a7ddf37ffe330d323c7b6037230d10afee4'/>
<id>urn:sha1:e7236a7ddf37ffe330d323c7b6037230d10afee4</id>
<content type='text'>
Sponsored by:	Rubicon Communications, LLC ("Netgate")
</content>
</entry>
</feed>
