mbuf_tag memory freeing issues with LRO enabled on the XENHVM driver

Adrian Chadd adrian at freebsd.org
Tue Feb 11 23:35:16 UTC 2014


+net

.. any ideas?


-a

On 11 February 2014 10:05, Egoitz Aurrekoetxea <egoitz at ramattack.net> wrote:
> Good afternoon,
>
> It seems the LRO code inside the FreeBSD's kernel is causing the first mbuf chain's anymbuf->m_hdr->mh_flags due to some failure not to contain the M_PKTHDR  flag.
> Have you ever seen this bad behavior with any of these  drivers having LRO enabled :
>
> 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 :
>
> static void
> mb_dtor_pack(void *mem, int size, void *arg)
> {
>         struct mbuf *m;
>
>         m = (struct mbuf *)mem;
>         if ((m->m_flags & M_PKTHDR) != 0)
>                 m_tag_delete_chain(m, NULL);              <============ 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... have found the commented before ones....
>
> Has anyone too suffered the issue?.
>
> Best regards,
>
>
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"


More information about the freebsd-hackers mailing list