Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Feb 2014 19:05:26 +0100
From:      Egoitz Aurrekoetxea <egoitz@ramattack.net>
To:        freebsd-hackers@freebsd.org
Subject:   mbuf_tag memory freeing issues with LRO enabled on the XENHVM driver
Message-ID:  <1AECA876-08BC-48F8-B356-42CE35100805@ramattack.net>

next in thread | raw e-mail | index | archive | help
Good afternoon,

It seems the LRO code inside the FreeBSD's kernel is causing the first =
mbuf chain=92s anymbuf->m_hdr->mh_flags due to some failure not to =
contain the M_PKTHDR  flag.=20
Have you ever seen this bad behavior with any of these  drivers having =
LRO enabled :=20

cxgb
cxgbe
e1000
ixgbe
ixgbe
mxge
oce
qlxgb
qlxge
virtio
vxge

The no presence of this flag, seems to be causing the kernel not to be =
able to enter :=20

static void
mb_dtor_pack(void *mem, int size, void *arg)
{
	struct mbuf *m;

	m =3D (struct mbuf *)mem;
	if ((m->m_flags & M_PKTHDR) !=3D 0)
		m_tag_delete_chain(m, NULL);              <=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D to this function.

causing the wired memory to increase a lot due mbuf_tags usage memory to =
be pretty high.

I have noticed about this issue using the XENHVM network driver (xn), =
but taking a look at some other drivers using the same code as this one=85=
 have found the commented before ones=85.

Has anyone too suffered the issue?.

Best regards,





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1AECA876-08BC-48F8-B356-42CE35100805>