Re: [PATCH 0/3] netfilter : 3 patches to boost ip_tables performance

Andi Kleen
2005-09-22T12:54:46Z

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