numam-dpdk/lib
Maxime Coquelin 1aadb2f6b1 vhost: fix deadlock on IOTLB miss
An optimization was done to only take the iotlb cache lock
once per packet burst instead of once per IOVA translation.

With this, IOTLB miss requests are sent to Qemu with the lock
held, which can cause a deadlock if the socket buffer is full,
and if Qemu is waiting for an IOTLB update to be done.

Holding the lock is not necessary when sending an IOTLB miss
request, as it is not manipulating the IOTLB cache list, which
the lock protects. Let's just release it while sending the
IOTLB miss.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
2017-10-13 22:08:21 +02:00
..
librte_acl lib: remove duplicate includes 2017-07-16 17:30:06 +02:00
librte_bitratestats ethdev: increase port id range 2017-10-06 18:23:25 +02:00
librte_cfgfile cfgfile: rework load function 2017-10-09 00:50:48 +02:00
librte_cmdline cmdline: fix compilation with -Og 2017-10-06 02:49:50 +02:00
librte_compat fix typos using codespell utility 2017-06-14 23:54:13 +02:00
librte_cryptodev crypto/openssl: support AES-CCM 2017-10-12 15:22:07 +01:00
librte_distributor lib: remove duplicate includes 2017-07-16 17:30:06 +02:00
librte_eal igb_uio: fix legacy MSI masking 2017-10-13 21:57:48 +02:00
librte_efd efd: fix build when compiler does not support AVX2 2017-10-13 22:08:21 +02:00
librte_ether ethdev: rework xstats retrieve by id 2017-10-13 01:29:53 +01:00
librte_eventdev eventdev: add eth Rx adapter implementation 2017-10-10 18:34:09 +02:00
librte_gro gro: fix typo in map file 2017-08-31 23:02:54 +02:00
librte_gso gso: support GRE GSO 2017-10-12 01:36:57 +01:00
librte_hash hash: optimize Toeplitz RSS computation 2017-10-07 13:50:43 +02:00
librte_ip_frag ip_frag: rename map file to standardized name 2017-08-31 23:02:57 +02:00
librte_jobstats jobstats: fix a doxygen comment 2017-10-08 22:22:08 +02:00
librte_kni ethdev: increase port id range 2017-10-06 18:23:25 +02:00
librte_kvargs mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
librte_latencystats ethdev: increase port id range 2017-10-06 18:23:25 +02:00
librte_lpm lib: remove duplicate includes 2017-07-16 17:30:06 +02:00
librte_mbuf eal: allow user to override default mempool driver 2017-10-06 20:48:22 +02:00
librte_member member: add AVX for HT mode 2017-10-09 00:02:45 +02:00
librte_mempool mempool: remove get capability debug log 2017-10-12 03:30:26 +02:00
librte_meter mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
librte_metrics metrics: fix compilation with -Og 2017-10-06 02:49:50 +02:00
librte_net net: fix inner L2 length in packet type parser 2017-10-05 23:34:45 +02:00
librte_pdump ethdev: increase port id range 2017-10-06 18:23:25 +02:00
librte_pipeline mk: optimize directory dependencies 2017-03-27 23:28:43 +02:00
librte_port ethdev: increase port id range 2017-10-06 18:23:25 +02:00
librte_power power: add send channel msg function to map file 2017-10-12 00:46:11 +01:00
librte_reorder fix typos using codespell utility 2017-06-14 23:54:13 +02:00
librte_ring ring: increase maximum ring size 2017-10-05 23:23:12 +02:00
librte_sched eal: move bitmap from sched library 2017-10-12 22:31:33 +02:00
librte_table update Cavium Inc copyright headers 2017-07-08 17:43:49 +02:00
librte_timer timer: use 64-bit specific code on more platforms 2017-10-11 22:59:31 +02:00
librte_vhost vhost: fix deadlock on IOTLB miss 2017-10-13 22:08:21 +02:00
Makefile gso: support TCP/IPv4 GSO 2017-10-12 01:36:57 +01:00