From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <47E35D73.6060703@cosmosbay.com> Date: Fri, 21 Mar 2008 08:02:11 +0100 From: Eric Dumazet MIME-Version: 1.0 Subject: Re: [14/14] vcompound: Avoid vmalloc for ehash_locks References: <20080321061703.921169367@sgi.com> <20080321061727.491610308@sgi.com> In-Reply-To: <20080321061727.491610308@sgi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Sender: owner-linux-mm@kvack.org Return-Path: To: Christoph Lameter Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Linux Netdev List List-ID: Christoph Lameter a ecrit : > Avoid the use of vmalloc for the ehash locks. > > Signed-off-by: Christoph Lameter > > --- > include/net/inet_hashtables.h | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > Index: linux-2.6.25-rc5-mm1/include/net/inet_hashtables.h > =================================================================== > --- linux-2.6.25-rc5-mm1.orig/include/net/inet_hashtables.h 2008-03-20 22:21:02.680501729 -0700 > +++ linux-2.6.25-rc5-mm1/include/net/inet_hashtables.h 2008-03-20 22:22:15.416565317 -0700 > @@ -164,7 +164,8 @@ static inline int inet_ehash_locks_alloc > if (sizeof(rwlock_t) != 0) { > #ifdef CONFIG_NUMA > if (size * sizeof(rwlock_t) > PAGE_SIZE) > - hashinfo->ehash_locks = vmalloc(size * sizeof(rwlock_t)); > + hashinfo->ehash_locks = __alloc_vcompound(GFP_KERNEL, > + get_order(size * sizeof(rwlock_t))); > else > #endif > hashinfo->ehash_locks = kmalloc(size * sizeof(rwlock_t), > @@ -185,7 +186,7 @@ static inline void inet_ehash_locks_free > unsigned int size = (hashinfo->ehash_locks_mask + 1) * > sizeof(rwlock_t); > if (size > PAGE_SIZE) > - vfree(hashinfo->ehash_locks); > + __free_vcompound(hashinfo->ehash_locks); > else > #endif > kfree(hashinfo->ehash_locks); > But, isnt it defeating the purpose of this *particular* vmalloc() use ? CONFIG_NUMA and vmalloc() at boot time means : Try to distribute the pages on several nodes. Memory pressure on ehash_locks[] is so high we definitly want to spread it. (for similar uses of vmalloc(), see also hashdist=1 ) Also, please CC netdev for network patches :) Thank you -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org