William Lee Irwin III a ?crit :
>> The proper way to do this is to convert the large system hashtable
>> users to use some data structure / algorithm other than hashing by
>> separate chaining.
On Sat, May 19, 2007 at 08:41:01PM +0200, Eric Dumazet wrote:
> No thanks. This was already discussed
William Lee Irwin III a ?crit :
The proper way to do this is to convert the large system hashtable
users to use some data structure / algorithm other than hashing by
separate chaining.
On Sat, May 19, 2007 at 08:41:01PM +0200, Eric Dumazet wrote:
No thanks. This was already discussed to
thing work.
Otherwise the individual pages don't have page references, only
the head page of the high-order page will.
Oh thanks David for the hint.
I added a split_page() call and it seems to work now.
[PATCH] MM : alloc_large_system_hash() can free some memory for non
power-of-two buck
From: Eric Dumazet <[EMAIL PROTECTED]>
Date: Sat, 19 May 2007 20:07:11 +0200
> Maybe David has an idea how this can be done properly ?
>
> ref : http://marc.info/?l=linux-netdev=117706074825048=2
You need to use __GFP_COMP or similar to make this splitting+freeing
thing work.
Otherwise the
William Lee Irwin III a écrit :
On Fri, May 18, 2007 at 11:54:54AM +0200, Eric Dumazet wrote:
alloc_large_system_hash() is called at boot time to allocate space
for several large hash tables.
Lately, TCP hash table was changed and its bucketsize is not a
power-of-two anymore.
On most setups,
On Fri, May 18, 2007 at 11:54:54AM +0200, Eric Dumazet wrote:
> alloc_large_system_hash() is called at boot time to allocate space
> for several large hash tables.
> Lately, TCP hash table was changed and its bucketsize is not a
> power-of-two anymore.
> On most setups, alloc_large_system_hash()
Andrew Morton a écrit :
On Fri, 18 May 2007 11:54:54 +0200 Eric Dumazet <[EMAIL PROTECTED]> wrote:
alloc_large_system_hash() is called at boot time to allocate space for several
large hash tables.
Lately, TCP hash table was changed and its bucketsize is not a power-of-two
anymore.
On most
On Fri, 18 May 2007 11:54:54 +0200 Eric Dumazet <[EMAIL PROTECTED]> wrote:
> alloc_large_system_hash() is called at boot time to allocate space for
> several large hash tables.
>
> Lately, TCP hash table was changed and its bucketsize is not a power-of-two
> anymore.
>
> On most setups,
On Fri, 18 May 2007 11:54:54 +0200 Eric Dumazet [EMAIL PROTECTED] wrote:
alloc_large_system_hash() is called at boot time to allocate space for
several large hash tables.
Lately, TCP hash table was changed and its bucketsize is not a power-of-two
anymore.
On most setups,
Andrew Morton a écrit :
On Fri, 18 May 2007 11:54:54 +0200 Eric Dumazet [EMAIL PROTECTED] wrote:
alloc_large_system_hash() is called at boot time to allocate space for several
large hash tables.
Lately, TCP hash table was changed and its bucketsize is not a power-of-two
anymore.
On most
On Fri, May 18, 2007 at 11:54:54AM +0200, Eric Dumazet wrote:
alloc_large_system_hash() is called at boot time to allocate space
for several large hash tables.
Lately, TCP hash table was changed and its bucketsize is not a
power-of-two anymore.
On most setups, alloc_large_system_hash()
William Lee Irwin III a écrit :
On Fri, May 18, 2007 at 11:54:54AM +0200, Eric Dumazet wrote:
alloc_large_system_hash() is called at boot time to allocate space
for several large hash tables.
Lately, TCP hash table was changed and its bucketsize is not a
power-of-two anymore.
On most setups,
From: Eric Dumazet [EMAIL PROTECTED]
Date: Sat, 19 May 2007 20:07:11 +0200
Maybe David has an idea how this can be done properly ?
ref : http://marc.info/?l=linux-netdevm=117706074825048w=2
You need to use __GFP_COMP or similar to make this splitting+freeing
thing work.
Otherwise the
work.
Otherwise the individual pages don't have page references, only
the head page of the high-order page will.
Oh thanks David for the hint.
I added a split_page() call and it seems to work now.
[PATCH] MM : alloc_large_system_hash() can free some memory for non
power-of-two bucketsize
On Fri, 18 May 2007, Eric Dumazet wrote:
> table = (void*) __get_free_pages(GFP_ATOMIC, order);
ATOMIC? Is there some reason why we need atomic here?
> + /*
> + * If bucketsize is not a power-of-two, we may free
> +
alloc_large_system_hash() is called at boot time to allocate space for several
large hash tables.
Lately, TCP hash table was changed and its bucketsize is not a power-of-two
anymore.
On most setups, alloc_large_system_hash() allocates one big page (order > 0)
with __get_free_pages(GFP_ATOMIC,
alloc_large_system_hash() is called at boot time to allocate space for several
large hash tables.
Lately, TCP hash table was changed and its bucketsize is not a power-of-two
anymore.
On most setups, alloc_large_system_hash() allocates one big page (order 0)
with __get_free_pages(GFP_ATOMIC,
On Fri, 18 May 2007, Eric Dumazet wrote:
table = (void*) __get_free_pages(GFP_ATOMIC, order);
ATOMIC? Is there some reason why we need atomic here?
+ /*
+ * If bucketsize is not a power-of-two, we may free
+
18 matches
Mail list logo