numam-dpdk/lib
Anatoly Burakov 7e54f18326 mem: fix deadlock on secondary allocation
Previous fix used `rte_malloc_heap_socket_is_external()` to check if the
heap was an external heap. However, that API is thread-safe, and when
we're inside the allocation process, we're already write-locked, so
calling `rte_malloc_heap_socket_is_external()` will result in a
deadlock followed by a timeout.

Fix it by replacing the API call with a check against maximum number of
NUMA nodes, because external heaps always have higher socket ID's.

Fixes: 7ac31e82bc ("mem: improve parameter checking on memory hotplug")

Reported-by: Jim Harris <james.r.harris@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
2021-01-30 00:26:49 +01:00
..
librte_acl build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bbdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bitratestats bitrate: fix missing header include 2021-01-21 10:27:44 +01:00
librte_bpf build: force pkg-config for dependency detection 2021-01-26 00:43:59 +01:00
librte_cfgfile build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_cmdline cmdline: avoid name clash with Windows system types 2020-11-05 17:49:00 +01:00
librte_compressdev lib: fix doxygen for parameters of function pointers 2021-01-29 15:58:06 +01:00
librte_cryptodev lib: fix doxygen for parameters of function pointers 2021-01-29 15:58:06 +01:00
librte_distributor build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_eal mem: fix deadlock on secondary allocation 2021-01-30 00:26:49 +01:00
librte_efd efd: fix tailq entry leak in error path 2020-10-22 22:07:15 +02:00
librte_ethdev ethdev: add MPLS RSS offload type 2021-01-29 18:16:08 +01:00
librte_eventdev eventdev: make driver-only headers private 2021-01-29 20:59:09 +01:00
librte_fib fib: fix missing header includes 2021-01-21 10:27:47 +01:00
librte_flow_classify build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_graph build: standardize component names and defines 2020-10-19 22:15:34 +02:00
librte_gro gro: fix packet type detection with IPv6 tunnel 2020-11-14 10:56:30 +01:00
librte_gso gso: support VXLAN UDP/IPv4 2021-01-15 11:31:28 +01:00
librte_hash build: add header includes check 2021-01-29 20:59:37 +01:00
librte_ip_frag ip_frag: remove padding length of fragment 2021-01-15 11:31:28 +01:00
librte_ipsec build: add header includes check 2021-01-29 20:59:37 +01:00
librte_jobstats build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_kni build: align wording of non-support reasons 2020-11-20 16:05:35 +01:00
librte_kvargs build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_latencystats latency: switch Rx timestamp to dynamic mbuf field 2020-11-03 16:21:15 +01:00
librte_lpm build: add header includes check 2021-01-29 20:59:37 +01:00
librte_mbuf mbuf: fix missing header include 2021-01-21 10:21:40 +01:00
librte_member build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_mempool build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_meter build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_metrics build: force pkg-config for dependency detection 2021-01-26 00:43:59 +01:00
librte_net net: fix missing header include 2021-01-21 10:21:40 +01:00
librte_node node: fix missing header include 2021-01-21 10:27:47 +01:00
librte_pci build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_pdump pdump: cleanup logs and variables 2021-01-19 15:24:46 +01:00
librte_pipeline pipeline: fix missing header includes 2021-01-21 10:27:47 +01:00
librte_port lib: fix doxygen for parameters of function pointers 2021-01-29 15:58:06 +01:00
librte_power power: fix missing header includes 2021-01-29 20:59:09 +01:00
librte_rawdev lib: fix doxygen for parameters of function pointers 2021-01-29 15:58:06 +01:00
librte_rcu rcu: use EAL memory barrier API 2021-01-11 15:34:21 +01:00
librte_regexdev build: add header includes check 2021-01-29 20:59:37 +01:00
librte_reorder reorder: switch sequence number to dynamic mbuf field 2020-10-31 22:14:30 +01:00
librte_rib rib: fix missing header include 2021-01-29 20:59:09 +01:00
librte_ring build: add header includes check 2021-01-29 20:59:37 +01:00
librte_sched build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_security lib: fix doxygen for parameters of function pointers 2021-01-29 15:58:06 +01:00
librte_stack build: add header includes check 2021-01-29 20:59:37 +01:00
librte_table build: add header includes check 2021-01-29 20:59:37 +01:00
librte_telemetry telemetry: fix missing header include 2021-01-21 10:21:40 +01:00
librte_timer build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_vhost vhost: fix missing header includes 2021-01-21 10:27:47 +01:00
meson.build build: add header includes check 2021-01-29 20:59:37 +01:00