DPDK usage discussions
 help / color / mirror / Atom feed
* [dpdk-users] Memory Allocation
@ 2017-05-16 16:14 Kumaraparameshwaran Rathnavel
  2017-05-16 16:30 ` Anupam Kapoor
  2017-05-16 16:30 ` Stephen Hemminger
  0 siblings, 2 replies; 3+ messages in thread
From: Kumaraparameshwaran Rathnavel @ 2017-05-16 16:14 UTC (permalink / raw)
  To: users

Hi All,

When I have a system with NUMA enabled and say my application is running one DPDK thread and I use that thread for the memory allocation will the memory be physically allocated during the access time or will the memory be allocated on the Node where the DPDK thread was initially running when the memory allocation functions was called. So threads accessing the memory locations from the other nodes remotely will suffer a degradation in performance. Please correct me if I am wrong. 

Thanking You,
Param.

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

* Re: [dpdk-users] Memory Allocation
  2017-05-16 16:14 [dpdk-users] Memory Allocation Kumaraparameshwaran Rathnavel
@ 2017-05-16 16:30 ` Anupam Kapoor
  2017-05-16 16:30 ` Stephen Hemminger
  1 sibling, 0 replies; 3+ messages in thread
From: Anupam Kapoor @ 2017-05-16 16:30 UTC (permalink / raw)
  To: Kumaraparameshwaran Rathnavel; +Cc: users

On Tue, May 16, 2017 at 9:44 PM, Kumaraparameshwaran Rathnavel <
krath@cloudsimple.com> wrote:

> will the memory be allocated on the Node where the DPDK thread was
> initially running when the memory allocation functions was called


​rte_malloc​(...) will return memory allocated on the NUMA socket of the
core which made the invokation. access to this from other locations will
incur the qpi penalty...

​--
thanks
anupam​


In the beginning was the lambda, and the lambda was with Emacs, and Emacs
was the lambda.

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

* Re: [dpdk-users] Memory Allocation
  2017-05-16 16:14 [dpdk-users] Memory Allocation Kumaraparameshwaran Rathnavel
  2017-05-16 16:30 ` Anupam Kapoor
@ 2017-05-16 16:30 ` Stephen Hemminger
  1 sibling, 0 replies; 3+ messages in thread
From: Stephen Hemminger @ 2017-05-16 16:30 UTC (permalink / raw)
  To: Kumaraparameshwaran Rathnavel; +Cc: users

On Tue, 16 May 2017 21:44:46 +0530
Kumaraparameshwaran Rathnavel <krath@cloudsimple.com> wrote:

> Hi All,
> 
> When I have a system with NUMA enabled and say my application is running one DPDK thread and I use that thread for the memory allocation will the memory be physically allocated during the access time or will the memory be allocated on the Node where the DPDK thread was initially running when the memory allocation functions was called. So threads accessing the memory locations from the other nodes remotely will suffer a degradation in performance. Please correct me if I am wrong. 
> 
> Thanking You,
> Param.
> 
> 

Most of the memory allocation mechansisms (malloc, mmap) in Linux are not NUMA aware.
If you read the source (which is always the definitive place to look), for DPDK you
will see that rte_malloc, rte_mempool, and other routines have option to take a NUMA
node as argument. It is up to the application to determine what the "right" node is.
Often it is the node where the hardware is located (for mbuf pools), or the node
where the thread is running. But unless you lock the thread to a node, the scheduler
is likely to move it around under load.

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

end of thread, other threads:[~2017-05-16 16:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-16 16:14 [dpdk-users] Memory Allocation Kumaraparameshwaran Rathnavel
2017-05-16 16:30 ` Anupam Kapoor
2017-05-16 16:30 ` Stephen Hemminger

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).