From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id EDC3CAAAE for ; Wed, 9 May 2018 11:43:45 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 97E862104B; Wed, 9 May 2018 05:43:45 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 09 May 2018 05:43:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= date:from:message-id:subject:to:x-me-sender:x-me-sender :x-sasl-enc; s=mesmtp; bh=3yeMARPl2oAcpGyHVKMEpRHOQa8G+QeKiG39/J VorI4=; b=st51eO26uqhon2048WbRvVfMLq402DcNOxD4T4mWV/mq3jiWflYflY AEEEGxdjJEYLHGc1KtEum8RZnv/kE8ViNNO/ZkX0LZbSSAXM6SVm0xlxxNpiqd03 U1XOrjwoAKB1DDpg2v8aigAn3VCO08el/bcKYPiz2vAQzkhKFPhOE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=date:from:message-id:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=3yeMARPl2oAcpGyHV KMEpRHOQa8G+QeKiG39/JVorI4=; b=ZeL/p21xm0uW0l/jqo4hSBYzhxQi8hMUn IBeffSV1xMNDB5VhNkzfGlMgu22ktVGfwrdPZrvnyPs2XGvCKVoi8HbELuMaFoF1 gvwRUgdTED52Xm1NkQHrfNF7TsCfIzarOwGUY5eWIleomnqMNrnI9X51gaJmqMSt DeaL58D9lbfN/aJYm9yIjKJOVXbV2mVGvD9TXIjRnDtDiSMC4gdz/5CLi53ITQmu w8CFpVb7KNM00wU4Fr5rV+eeVbIwYAH2igkMMOvbS2wPKNwHzqbFsbHUqlOcZh4F 0ylQQzaAyple5yiJIGFSyy0Vl6pnsrN8+tQ2xSPns5VVZ1HkQn3ng== X-ME-Sender: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 133A2E5086 for ; Wed, 9 May 2018 05:43:44 -0400 (EDT) From: Thomas Monjalon To: dev@dpdk.org Date: Wed, 9 May 2018 11:43:26 +0200 Message-Id: <20180509094337.26112-1-thomas@monjalon.net> X-Mailer: git-send-email 2.16.2 Subject: [dpdk-dev] [PATCH 00/11] ethdev: fix race conditions in iterator and notifications X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 09:43:46 -0000 We have discovered some race conditions when using the port iterator and/or the notifications recently added. The work was done mostly with failsafe but some bugs could be reproduced with other drivers. These 11 patches are fixing all these issues. The PMDs are modified to call a new function at the end of the probing. Matan Azrad (4): ethdev: allow ownership operations on unused port ethdev: add lock to port allocation check net/failsafe: fix sub-device ownership race ethdev: fix port removal notification timing Thomas Monjalon (7): ethdev: fix debug log of owner id net/failsafe: fix sub-device visibility ethdev: add doxygen comments for each state drivers/net: use higher level of probing helper for PCI ethdev: add probing finish function ethdev: fix port visibility before initialization ethdev: fix port probing notification drivers/net/af_packet/rte_eth_af_packet.c | 2 + drivers/net/ark/ark_ethdev.c | 2 + drivers/net/avp/avp_ethdev.c | 15 +----- drivers/net/bnx2x/bnx2x_ethdev.c | 20 ++----- drivers/net/bonding/rte_eth_bond_pmd.c | 2 + drivers/net/cxgbe/cxgbe_ethdev.c | 1 + drivers/net/cxgbe/cxgbe_main.c | 5 ++ drivers/net/cxgbe/cxgbevf_ethdev.c | 1 + drivers/net/cxgbe/cxgbevf_main.c | 5 ++ drivers/net/dpaa/dpaa_ethdev.c | 5 +- drivers/net/dpaa2/dpaa2_ethdev.c | 4 +- drivers/net/failsafe/failsafe.c | 24 +++++++-- drivers/net/failsafe/failsafe_eal.c | 59 ++++++++++++-------- drivers/net/failsafe/failsafe_ether.c | 23 ++++++++ drivers/net/failsafe/failsafe_private.h | 4 ++ drivers/net/kni/rte_eth_kni.c | 2 + drivers/net/liquidio/lio_ethdev.c | 15 +----- drivers/net/mlx4/mlx4.c | 1 + drivers/net/mlx5/mlx5.c | 2 + drivers/net/mvpp2/mrvl_ethdev.c | 1 + drivers/net/nfp/nfp_net.c | 2 + drivers/net/null/rte_eth_null.c | 2 + drivers/net/octeontx/octeontx_ethdev.c | 3 ++ drivers/net/pcap/rte_eth_pcap.c | 2 + drivers/net/ring/rte_eth_ring.c | 1 + drivers/net/softnic/rte_eth_softnic.c | 3 ++ drivers/net/szedata2/rte_eth_szedata2.c | 2 + drivers/net/tap/rte_eth_tap.c | 2 + drivers/net/vhost/rte_eth_vhost.c | 2 + drivers/net/virtio/virtio_user_ethdev.c | 3 ++ lib/librte_ethdev/rte_ethdev.c | 89 ++++++++++++++++++++----------- lib/librte_ethdev/rte_ethdev.h | 6 ++- lib/librte_ethdev/rte_ethdev_driver.h | 14 +++++ lib/librte_ethdev/rte_ethdev_pci.h | 2 + lib/librte_ethdev/rte_ethdev_version.map | 1 + test/test/virtual_pmd.c | 2 + 36 files changed, 230 insertions(+), 99 deletions(-) -- 2.16.2