Re: 2.6.24-rc3, 4GB RAM, swiotlb, r8169, out of space

From: Francois Romieu
Date: Sat Nov 24 2007 - 20:19:23 EST


Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> :
[...]
> You seem to have a leak, which actually isn't suprising
>
> rtl8169_xmit_frags allocates a set of maps for a fragmented packet
>
> rtl8169_start_xmit allocates a buffer
>
> When we finish the transit we free the main buffer (always using skb->len
> when sometimes its skb->headlne. We don't seem to free the fragment
> buffers at all.
> Looks like the unmap path for fragmented packets is broken with any kind
> of iommu

Are you referring to the pci_unmap part ?

There is a 1:1 correspondance between a Tx descriptor entry and
{an unfragmented skb or a fragment of a skb}. Afaiks rtl8169_unmap_tx_skb()
is issued for each Tx descriptor entry, be it after a Tx completion irq or
a general Tx ring cleanup.

I'll read it again after some sleep but the leak does not seem clear to me.

--
Ueimor
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/