Re: [PATCH 1/1] network memory allocator.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 16, 2006 at 01:27:02PM +0200, Arnd Bergmann ([email protected]) wrote:
> On Wednesday 16 August 2006 11:00, Evgeniy Polyakov wrote:
> > There is drawback here - if data was allocated on CPU wheere NIC is
> > "closer" and then processed on different CPU it will cost more than 
> > in case where buffer was allocated on CPU where it will be processed.
> > 
> > But from other point of view, most of the adapters preallocate set of
> > skbs, and with msi-x help there will be a possibility to bind irq and
> > processing to the CPU where data was origianlly allocated.
> > 
> > So I would like to know how to determine which node should be used for
> > allocation. Changes of __get_user_pages() to alloc_pages_node() are
> > trivial.
> 
> There are two separate memory areas here: Your own metadata used by the
> allocator and the memory used for skb data.
> 
> avl_node_array[cpu] and avl_container_array[cpu] are only designed to
> be accessed only by the local cpu, so these should be done like
> 
> avl_node_array[cpu] = kmalloc_node(AVL_NODE_PAGES * sizeof(void *),
> 			GFP_KERNEL, cpu_to_node(cpu));
> 
> or you could make the whole array DEFINE_PER_CPU(void *, which would
> waste some space in the kernel object file.
> 
> Now for the actual pages you get with __get_free_pages(), doing the
> same (alloc_pages_node), will help accessing your avl_container 
> members, but may not be the best solution for getting the data
> next to the network adapter.

I can create it with numa_node_id() right now and later, if there will
exsist some helper to match netdev->node, it can be used instead.

> 	Arnd <><

-- 
	Evgeniy Polyakov
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux