Re: git: f08247fd888e - main - Assert that mbufs are writable if we write to them
Date: Wed, 11 Sep 2024 20:56:17 UTC
M_EXTPGS mbufs are marked read-only because they refer to external data. The original crypto code, (before kTLS was converted to OCF), used to just build an iovec using PHYS_TO_DMAP() on the page array. I think this case was missed during the conversion to OCF. I'm not sure what the best thing to do is, as they should be read only, except this one specific case.... I'd be tempted to just nerf the KASSERT for EXTPGS. On Wed, Sep 11, 2024, at 11:02 AM, Kristof Provost wrote: > On 11 Sep 2024, at 16:45, Mark Johnston wrote: > > On Wed, Sep 11, 2024 at 11:18:26AM +0000, Kristof Provost wrote: > >> The branch main has been updated by kp: > >> > >> URL: https://cgit.FreeBSD.org/src/commit/?id=f08247fd888e6f7db0ecf2aaa39377144ac40b4c > >> > >> commit f08247fd888e6f7db0ecf2aaa39377144ac40b4c > >> Author: Kristof Provost <kp@FreeBSD.org> > >> AuthorDate: 2024-09-10 20:15:31 +0000 > >> Commit: Kristof Provost <kp@FreeBSD.org> > >> CommitDate: 2024-09-11 11:17:48 +0000 > >> > >> Assert that mbufs are writable if we write to them > >> > >> m_copyback() modifies the mbuf, so it must be a writable mbuf. > > > > This change still triggers a panic for me when running KTLS tests. I > > note that EXTPG mbufs always have M_RDONLY set, but I'm not quite sure > > why. I suspect such mbufs need special handling with respect to the new > > assertion. > > > > syzbot also triggered this panic: > > https://syzkaller.appspot.com/bug?extid=58c918369f9dc323409d > > > Yeah, I saw that one before I went out for a bike ride. > > Clearly something is wrong. Either ktls is using read-only buffers or the M_WRITABLE() macro isn’t quite smart enough to spot this specific case. > > I’m not familiar enough with ktls to easily tell which. > > I’ll back this assertion change out for now, so we’re not panicing test machines while we figure this out. > > Best regards, > Kristof >