Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Nov 2005 12:34:47 -0800
From:      Julian Elischer <julian@elischer.org>
To:        Gleb Smirnoff <glebius@freebsd.org>
Cc:        rwatson@freebsd.org, Vsevolod Lobko <seva@ip.net.ua>, net@freebsd.org
Subject:   Re: parallelizing ipfw table
Message-ID:  <438A1867.1030009@elischer.org>
In-Reply-To: <20051127135529.GF25711@cell.sick.ru>
References:  <20051127005943.GR25711@cell.sick.ru> <20051127135529.GF25711@cell.sick.ru>

index | next in thread | previous in thread | raw e-mail

Gleb Smirnoff wrote:

>On Sun, Nov 27, 2005 at 03:59:43AM +0300, Gleb Smirnoff wrote:
>T> A patch displaying the idea is attached. Not tested yet, read
>T> below. The patch moves the tables array into the ip_fw_chain
>T> structure. This is not necessary now, but in future we can
>T> have multiple independent chains in ipfw, that's why I try
>T> to avoid usage of &layer3_chain in the functions that are
>T> deeper in the call graph. I try to supply chain pointer
>T> from the caller.
>T> 
>T> The only problem is the caching in table lookup. This "hack"
>T> makes the lookup function modify the table structure. We need
>T> to remove caching to make the lookup_table() function fully
>T> lockless and reenterable at the same time. The attached patch
>T> doesn't removes caching, since it only displays the original
>T> idea.
>
>Okay, I have made a working patch, that is now undergoing testing
>on SMP. I have axed all the caching from ipfw tables, to make
>lookup_table() lockless and reenterable. This axing simplified
>things much. I believe that the caching gives a benefit only
>when we serve a small number of clients, and is only additional
>workload when we are routing hundreds and thousands of simultaneous
>IP flows.
>
>The patch attached. I'm going to put it into production testing as
>soon as I can reboot the prod box.
>
>  
>

would caching help when there are two successive packets of the same flow?
That is not that uncommon, even though larger groupings are less common.



home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?438A1867.1030009>