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