numam-dpdk/lib
Didier Pallard 937cca79c9 mem: change default per socket memory allocation
Currently, if there is more memory in hugepages than the amount
requested by dpdk application, the memory is allocated by taking as much
memory as possible from each socket, starting from first one.
For example if a system is configured with 8 GB in 2 sockets (4 GB per
socket), and dpdk is requesting only 4GB of memory, all memory will be
taken in socket 0 (that have exactly 4GB of free hugepages) even if some
cores are configured on socket 1, and there are free hugepages on socket
1...

Change this behaviour to allocate memory on all sockets where some cores
are configured, spreading the memory amongst sockets using following
ratio per socket:
N° of cores configured on the socket / Total number of configured cores
* requested memory
If this new algorithm fails, it defaults to previous behaviour.

This algorithm is used when memory amount is specified globally using
-m option. Per socket memory allocation can always be done using
--socket-mem option.

It is implemented only for Linux as BSD part looks not to be ready for NUMA.

Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Venky Venkatesan <venky.venkatesan@intel.com>
2014-05-14 11:06:49 +02:00
..
librte_cmdline add FreeBSD support 2014-02-25 21:29:18 +01:00
librte_eal mem: change default per socket memory allocation 2014-05-14 11:06:49 +02:00
librte_ether ethdev: introduce if_index in device info 2014-02-26 11:07:28 +01:00
librte_hash hash: make arg for jhash2 const 2014-03-24 18:58:25 +01:00
librte_ivshmem ivshmem: library changes for mmaping using ivshmem 2014-02-25 21:29:19 +01:00
librte_kni kni: add kni close function 2014-02-25 21:29:19 +01:00
librte_kvargs devargs: use a comma instead of semicolon to separate key/values 2014-04-10 15:50:11 +02:00
librte_lpm update Intel copyright years to 2014 2014-02-25 21:29:14 +01:00
librte_malloc malloc: simplify heap initialisation 2014-04-30 11:31:22 +02:00
librte_mbuf mbuf: copy offload flags when doing attach/clone 2014-03-24 18:58:25 +01:00
librte_mempool mempool: use GCC push/pop_options 2014-03-24 18:58:25 +01:00
librte_meter update Intel copyright years to 2014 2014-02-25 21:29:14 +01:00
librte_net update Intel copyright years to 2014 2014-02-25 21:29:14 +01:00
librte_pmd_e1000 igb: release software locked semaphores on initialization 2014-04-09 18:30:02 +02:00
librte_pmd_ixgbe ixgbe: release software locked semaphores on initialization 2014-04-09 18:30:02 +02:00
librte_pmd_pcap vdev: new registration API 2014-04-11 16:17:42 +02:00
librte_pmd_ring vdev: new registration API 2014-04-11 16:17:42 +02:00
librte_pmd_virtio pci: remove virtio-uio workaround 2014-05-13 13:20:35 +02:00
librte_pmd_vmxnet3 vmxnet3: rename library 2014-03-21 15:40:30 +01:00
librte_pmd_xenvirt vdev: new registration API 2014-04-11 16:17:42 +02:00
librte_power update Intel copyright years to 2014 2014-02-25 21:29:14 +01:00
librte_ring ring: allow to initialize without memzone 2014-05-13 14:40:09 +02:00
librte_sched sched: use common macro RTE_DIM 2014-02-25 21:29:18 +01:00
librte_timer timer: missing optimization flag in compile 2014-02-25 21:29:18 +01:00
Makefile kvargs: add a new library to parse key/value arguments 2014-02-26 11:01:13 +01:00