netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* dma_alloc_coherent() to use memory close to cpu
@ 2015-05-13 12:40 Amir Vadai
  2015-05-13 15:49 ` Alexander Duyck
  0 siblings, 1 reply; 3+ messages in thread
From: Amir Vadai @ 2015-05-13 12:40 UTC (permalink / raw)
  To: Alexander Duyck; +Cc: achiad, Or Gerlitz, netdev@vger.kernel.org

Hi Alex,

dma_alloc_coherent() is allocating memory close to the device -
according to dev_to_node(dev). Sometimes it is better to use memory
close to the CPU. e.g. when it is a buffer that NIC writes and CPU reads.

It seems that you thought that too, and added a commit to ixgbe driver
that follows that logic [1].
You added calls to set_dev_node() before and after the allocation.
This seems to be prone to races in case multiple process want to alloc
in parallel. The proper fix seems to be to extend the
dma_alloc_coherent() to accept a NUMA node as an argument (if device's
node is not good enough).

I looked for, but couldn't find any discussion about that - is there a
special reason not to extend dma_alloc_coherent()?

[1] - de88eee ("ixgbe: Allocate rings as part of the q_vector")

Thanks,
Amir

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-05-14  7:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-13 12:40 dma_alloc_coherent() to use memory close to cpu Amir Vadai
2015-05-13 15:49 ` Alexander Duyck
2015-05-14  7:15   ` Amir Vadai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).