Re: [PATCH 00/16] Remove the ipv4 routing cache
From: Alexander Duyck <hidden>
Date: 2012-07-26 17:18:05
On Thu, Jul 26, 2012 at 1:47 AM, David Miller [off-list ref] wrote:
From: Eric Dumazet <redacted> Date: Thu, 26 Jul 2012 10:27:58 +0200quoted
But isnt DST_NOCACHE intent reverted then ? like you meant : + } else { + /* Routes we intend to cache in the FIB nexthop have + * the DST_NOCACHE bit unset. However, if we are + * unsuccessful at storing this route into the cache + * we really need to set that bit. + */ + rt->dst.flags |= DST_NOCACHE; }Indeed, thanks for catching this bug. Here's a new version of the patch, as I found another error. In fib_semantics.c, we have to change dst_release() to dst_free() for the liberation the nexthop cached routes.
I tested this patch and it looks like it runs, but still has the same performance issue. I did some digging into the annotation for ip_route_intput_noref and it seems like the issue is that I am hitting the dst_hold call in __mkroute_input. You were correct about the ARP entry. It looks like I had messed up my test script and it wasn't putting the static ARP entry back in. I'm amazed it was even working since my SmartBits system doesn't normally even reply to ARPs. Thanks, Alex