From: Simon Kirby <sim@netnation.com> Date: Mon, 9 Jun 2003 01:18:03 -0700 On Sun, Jun 08, 2003 at 11:56:22PM -0700, David S. Miller wrote: > + if (cand) { > + *candp = cand->u.rt_next; > + rt_free(cand); > } Hmm...It looks like this is still freeing the entry.. Is it possible to recycle the dst without reallocating it? Yes, can you test the patch I just sent you? We can modify that to recycle easily instead of freeing. Well... one problem is that in 2.5.x we have to kill off entries using RCU so such recycling may not be so easy there. This is with a routing table of 300,000 entries (though only one prefix) and with your hash fix patch. ip_route_input is still highest, but dst_alloc is an obvious second. ip_route_input is actually always the highest (excluding the IRQ handling stuff), and doesn't seem to change at all based on routing table size. We spend a decent amount of time mucking with fib rules, turning off multiple-tables support would kill that, although I suspect you're actually using that :) - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html