From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andi Kleen Subject: Re: [PATCH 0/3] netfilter : 3 patches to boost ip_tables performance Date: Thu, 22 Sep 2005 14:54:22 +0200 Message-ID: <200509221454.22923.ak@suse.de> References: <43308324.70403@cosmosbay.com> <43329F6E.3030706@cosmosbay.com> <20050922124941.GA26936@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Cc: Eric Dumazet , Christoph Lameter , "David S. Miller" , linux-kernel@vger.kernel.org, netfilter-devel@lists.netfilter.org, netdev@vger.kernel.org Return-path: To: Christoph Hellwig In-Reply-To: <20050922124941.GA26936@infradead.org> Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Thursday 22 September 2005 14:49, Christoph Hellwig wrote: > On Thu, Sep 22, 2005 at 02:11:26PM +0200, Eric Dumazet wrote: > > +#ifdef CONFIG_NUMA > > +/** > > + * vmalloc_node - allocate virtually contiguous memory > > + * > > + * @size: allocation size > > + * @node: preferred node > > + * > > + * This vmalloc variant try to allocate memory from a preferred node. > > + */ > > +void *vmalloc_node(unsigned long size, int node) > > +{ > > + void *result; > > + struct mempolicy *oldpol = current->mempolicy; > > + mm_segment_t oldfs = get_fs(); > > + DECLARE_BITMAP(prefnode, MAX_NUMNODES); > > + > > + mpol_get(oldpol); > > + bitmap_zero(prefnode, MAX_NUMNODES); > > + set_bit(node, prefnode); > > + > > + set_fs(KERNEL_DS); > > + sys_set_mempolicy(MPOL_PREFERRED, prefnode, MAX_NUMNODES); > > + set_fs(oldfs); > > + > > + result = vmalloc(size); > > + > > + mpol_free(current->mempolicy); > > + current->mempolicy = oldpol; > > + return result; > > +} > > No way, sorry. If you want a vmalloc node do it right. The implementation looks fine to me, so I think it's already right. -Andi