[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 10 Oct 2011 09:25:05 -0700
From: Alexander Duyck <alexander.h.duyck@...el.com>
To: Andi Kleen <andi@...stfloor.org>
CC: Jeff Kirsher <jeffrey.t.kirsher@...el.com>, davem@...emloft.net,
netdev@...r.kernel.org, gospo@...hat.com, sassmann@...hat.com
Subject: Re: [net-next 02/11] igb: Use node specific allocations for the q_vectors
and rings
On 10/09/2011 11:08 AM, Andi Kleen wrote:
> Jeff Kirsher <jeffrey.t.kirsher@...el.com> writes:
>>
>> for (i = 0; i < adapter->num_tx_queues; i++) {
>> - ring = kzalloc(sizeof(struct igb_ring), GFP_KERNEL);
>> + if (orig_node == -1) {
>> + int cur_node = next_online_node(adapter->node);
>> + if (cur_node == MAX_NUMNODES)
>> + cur_node = first_online_node;
>
> RR seems quite arbitrary. Who guarantees those nodes have any
> relationship with the CPUs submitting on those queues? Or the node
> the device is on.
>
> Anyways if it's a good idea probably need to add a
> dma_alloc_coherent_node() too
>
> -Andi
>
The RR configuration is somewhat arbitrary. However it is still better
than dumping everyting on a single node, and it works with the
configuration when the rings numbers line up with the CPU numbers since
normally the CPUs are RR on the nodes. From what I have seen it does
work quite well and it prevents almost all cross-node memory accesses
when running a routing workload.
I was thinking along the same lines for dma_alloc_coherent_node as well.
I've been meaning to get to it but I just haven't had the time. I'm
intentionally holding off on the ixgbe version of these patches until I
get the time to write up such a function. At which time I was going to
write up a patch to convert igb over to it.
Thanks,
Alex
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists