Subject: Re: NetBSD/xen network problems (need help)
To: Andreas Wrede <andreas@planix.com>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: port-xen
Date: 03/13/2006 23:50:45
On Mon, Mar 13, 2006 at 05:01:00PM -0500, Andreas Wrede wrote:
>
> On 13-Mar-06, at 3:45 PM, Manuel Bouyer wrote:
> >>
> >>panic: m_makewritable: length changed
> >
> >Not that I know. But AFAIK it's not an issue with m_makewritable() or
> >m_copyback0(), not in Xen itself (it just happens that Xen can
> >triggers
> >it). Can you add some debug checks in m_copyback0() and
> >m_makewritable()
> >to see what's really happening here ?
>
> I'll try but that's somewhat over my head, some guidance would be
> appreciated. The panic occurs regularly during a nightly backup-run
> but so far, I cannot produce it at will yet.
The first thing I would do is print the new mbuf chain in m_makewritable.
We have:
for (n = *mp; n; n = n->m_next)
reslen += n->m_len;
if (origlen != reslen)
panic("m_makewritable: length changed");
I would change it to:
for (n = *mp; n; n = n->m_next)
reslen += n->m_len;
if (origlen != reslen) {
for (n = *mp; n; n = n->m_next)
printf("mbuf len %d type %d flags %d\n",
n->m_next, n->m_type, n->m_flags);
printf("m_makewritable origlen %d newlen %d\n",
origlen, reslen);
panic("m_makewritable: length changed");
}
--
Manuel Bouyer <bouyer@antioche.eu.org>
NetBSD: 26 ans d'experience feront toujours la difference
--