Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Apr 2023 10:10:27 -0400
From:      "Drew Gallatin" <gallatin@freebsd.org>
To:        "Gleb Smirnoff" <glebius@freebsd.org>, zlei@freebsd.org, hselasky@freebsd.org, kib@freebsd.org, bz@freebsd.org
Cc:        current@freebsd.org
Subject:   Re: IFF_KNOWSEPOCH -> IFF_NEEDSEPOCH
Message-ID:  <540b450c-ea31-4f8f-be87-db99d86d2e85@app.fastmail.com>
In-Reply-To: <ZC8Qzq3kcYLfq9Gl@FreeBSD.org>
References:  <ZC8Qzq3kcYLfq9Gl@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--2c4baf6487604194a585d590f9328120
Content-Type: text/plain

This sounds like a good plan to me

On Thu, Apr 6, 2023, at 2:34 PM, Gleb Smirnoff wrote:
>   Hi,
> 
> recently we had several drivers marked with IFF_KNOWSEPOCH
> which reminded me that this flag was supposed to be temporary.
> 
> Here is the change that introduced it e87c4940156. It was
> caused by several drivers sending packets from non-interrupt
> context and thus triggering NET_EPOCH_ASSERT(). It was about
> 10 - 20 drivers having this problem initially and reduced down
> to a few after 4426b2e64bd. We had a pretty heated dicussion
> back then and I apologize for that.
> 
> May I suggest before entering FreeBSD 14.0-RELEASE cycle we
> will get back to what was there before e87c4940156?
> 
> To avoid the driver fallout that we used to have back in
> early 2020, here is the plan. In ether_input() where we
> now conditionally on the IFF_KNOWSEPOCH flag enter/exit the
> epoch with INVARIANTS we will also conditionally enter/exit
> in case we are supposed to be in the epoch wrt the flag, but
> we are not. We will also print a warning once, like "interface
> foo0 called if_input without epoch". This handling will be
> converted to normal assertion after a couple months.
> 
> If everybody is fine with this suggestion I will post
> a review. Otherwise please express your concerns.
> 
> -- 
> Gleb Smirnoff
> 
--2c4baf6487604194a585d590f9328120
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div>This sounds lik=
e a good plan to me<br></div><div><br></div><div>On Thu, Apr 6, 2023, at=
 2:34 PM, Gleb Smirnoff wrote:<br></div><blockquote type=3D"cite" id=3D"=
qt" style=3D""><div>&nbsp; Hi,<br></div><div><br></div><div>recently we =
had several drivers marked with IFF_KNOWSEPOCH<br></div><div>which remin=
ded me that this flag was supposed to be temporary.<br></div><div><br></=
div><div>Here is the change that introduced it e87c4940156. It was<br></=
div><div>caused by several drivers sending packets from non-interrupt<br=
></div><div>context and thus triggering NET_EPOCH_ASSERT(). It was about=
<br></div><div>10 - 20 drivers having this problem initially and reduced=
 down<br></div><div>to a few after 4426b2e64bd. We had a pretty heated d=
icussion<br></div><div>back then and I apologize for that.<br></div><div=
><br></div><div>May I suggest before entering FreeBSD 14.0-RELEASE cycle=
 we<br></div><div>will get back to what was there before e87c4940156?<br=
></div><div><br></div><div>To avoid the driver fallout that we used to h=
ave back in<br></div><div>early 2020, here is the plan. In ether_input()=
 where we<br></div><div>now conditionally on the IFF_KNOWSEPOCH flag ent=
er/exit the<br></div><div>epoch with INVARIANTS we will also conditional=
ly enter/exit<br></div><div>in case we are supposed to be in the epoch w=
rt the flag, but<br></div><div>we are not. We will also print a warning =
once, like "interface<br></div><div>foo0 called if_input without epoch".=
 This handling will be<br></div><div>converted to normal assertion after=
 a couple months.<br></div><div><br></div><div>If everybody is fine with=
 this suggestion I will post<br></div><div>a review. Otherwise please ex=
press your concerns.<br></div><div><br></div><div>--&nbsp;<br></div><div=
>Gleb Smirnoff<br></div><div><br></div></blockquote></body></html>
--2c4baf6487604194a585d590f9328120--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?540b450c-ea31-4f8f-be87-db99d86d2e85>