From: Kirill Korotaev <dev@sw.ru>
To: David Miller <davem@davemloft.net>
Cc: kuznet@ms2.inr.ac.ru, netdev@vger.kernel.org
Subject: Re: [PATCH] limit rt cache size
Date: Tue, 08 Aug 2006 12:17:57 +0400 [thread overview]
Message-ID: <44D848B5.5080004@sw.ru> (raw)
In-Reply-To: <20060807.204214.68039839.davem@davemloft.net>
David Miller wrote:
> we quickly discover this GIT commit:
>
> 424c4b70cc4ff3930ee36a2ef7b204e4d704fd26
>
> [IPV4]: Use the fancy alloc_large_system_hash() function for route hash table
>
> - rt hash table allocated using alloc_large_system_hash() function.
>
> Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>
> And it is clear that old code used num_physpages, which counts low
> memory only. This shows clearly that Eric's usage of the HASH_HIGHMEM
> flag here is erroneous. So we should remove it.
at least for i686 num_physpages includes highmem, so IMHO this bug was there for years:
./arch/i386/mm/init.c:
static void __init set_max_mapnr_init(void)
{
#ifdef CONFIG_HIGHMEM
num_physpages = highend_pfn;
#else
num_physpages = max_low_pfn;
#endif
}
> Look! This thing even uses num_physpages in current code to compute
> the "scale" argument to alloc_large_system_hash() :)))
the same bug here? :) the good thing is that it only select scale 15 or 17.
no any other possible choice here :)))
>>What's about routing cache size, it looks like it is another bug.
>>route.c should not force rt_max_size = 16*rt_hash_size.
>>I think it should consult available memory and to limit rt_max_size
>>to some reasonable value, even if hash size is too high.
>
>
> Sure. This current setting of 16*rt_hash_size is meant to
> try to limit hash chain lengths I guess. 2.4.x does the same
> thing. Note also that by basing it upon number of routing cache
> hash chains, it is effectively consulting available memory.
> This is why when hash table sizing is crap so it rt_max_size
> calculation. Fix one and you fix them both :)
imho chain lengh limitation to 16 is not that bad, but to avoid such "features"
probably should be fixed :)
> Once the HASH_HIGHMEM flag is removed, assuming system has > 128K of
> memory, what we get is:
>
> hash_chains = lowmem / 128K
> rt_max_size = ((lowmem / 128K) * 16) == lowmem / 8K
>
> So we allow one routing cache entry for each 8K of lowmem we have :)
>
> So for now it is probably sufficient to just get rid of the
> HASH_HIGHMEM flag here. Later we can try changing this multiplier
> of "16" to something like "8" or even "4".
should we remove it for TCP hashes?
Thanks,
Kirill
next prev parent reply other threads:[~2006-08-08 8:16 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <44D75EF8.1070901@sw.ru>
2006-08-07 16:48 ` [PATCH] limit rt cache size Alexey Kuznetsov
2006-08-08 3:42 ` David Miller
2006-08-08 5:11 ` Andi Kleen
2006-08-08 6:18 ` David Miller
2006-08-08 6:53 ` Andi Kleen
2006-08-08 7:01 ` David Miller
2006-08-08 12:54 ` Kirill Korotaev
2006-08-08 12:58 ` Andi Kleen
2006-08-08 20:37 ` akepner
2006-08-08 23:23 ` Andi Kleen
2006-08-09 0:06 ` akepner
2006-08-09 0:11 ` David Miller
2006-08-09 0:11 ` akepner
2006-08-09 0:22 ` David Miller
2006-08-09 1:02 ` Andi Kleen
2006-08-09 16:16 ` akepner
2006-08-09 16:32 ` Andi Kleen
2006-08-10 0:02 ` David Miller
2006-08-09 8:05 ` Kirill Korotaev
2006-08-09 0:24 ` Andi Kleen
2006-08-09 0:32 ` David Miller
2006-08-09 8:09 ` Kirill Korotaev
2006-08-09 8:53 ` Eric Dumazet
2006-08-09 9:22 ` David Miller
2006-08-08 8:17 ` Kirill Korotaev [this message]
2006-08-08 8:34 ` David Miller
2006-08-08 8:57 ` Eric Dumazet
2006-08-08 9:12 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44D848B5.5080004@sw.ru \
--to=dev@sw.ru \
--cc=davem@davemloft.net \
--cc=kuznet@ms2.inr.ac.ru \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.