Re: Regression, bisected: reference leak with IPSec since ~2.6.31

From: David Miller
Date: Mon Sep 20 2010 - 16:00:33 EST


From: Nick Bowler <nbowler@xxxxxxxxxxxxxxxx>
Date: Mon, 20 Sep 2010 15:52:56 -0400

> On 2010-09-20 20:20 +0200, Eric Dumazet wrote:
>> If you change your program to send small frames (so they are not
>> fragmented), is the problem still present ?
>
> I changed MAX_DGRAM_SIZE in the test program to 1000 (mtu on the
> interface is 1500). The short answer is that the references are
> not leaked, and things seem to get cleaned up. So the rest of this
> mail probably describes a separate issue.
>
> The long answer, however, is interesting: With latest Linus' git, the
> references are cleaned up much later than I would expect. After running
> the test program and flushing the SAD/SPD, the reference count is still
> 1. If I repeat the test immediately, the reference count will increase
> further. I can easily raise the reference count to, say, 100. Now, if
> I wait a while (10 minutes or so), the reference count will still be
> 100. However, when I run the setkey script after this delay, the
> reference count drops immediately to 1. If I then flush the SAD/SPD, it
> drops to 0.

This is because we actually cache IPSEC routes correctly, previously
we'd create a new routing cache entry every time a lookup happened.

--
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/