From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 78468A04BC; Sat, 10 Oct 2020 00:02:29 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B29981D5CF; Sat, 10 Oct 2020 00:02:27 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id A0B831D5C8 for ; Sat, 10 Oct 2020 00:02:24 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20201009220213euoutp02ae612e7f68d928840136bf6a6b52d084~8cgT9esan1684516845euoutp02o for ; Fri, 9 Oct 2020 22:02:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20201009220213euoutp02ae612e7f68d928840136bf6a6b52d084~8cgT9esan1684516845euoutp02o DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1602280933; bh=H8qZyXjRp3f0teW08Lm7RuAaHyaDOWOtK8JcTKT2v78=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nzqql0BK3yPovKQxQaocFWcRSpfzC8NvAXra+2xrkeDVY6xHKLK/soinXZNmP6r0e IQ18qpjiQr0PL/aWUs+CoYb+ljGmivmMcRGyiV3hQRMfbZ8I+xiy7YzX8Kv/OUuBLR qiCu/Uqs8Xvs3bViCSJjanGAK4w1vgoNLpXhHiG4= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20201009220208eucas1p2b2a5eba749b5d94a70b97cb567ea6eee~8cgPIPd5b1926719267eucas1p2a; Fri, 9 Oct 2020 22:02:08 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id FD.77.06456.FDDD08F5; Fri, 9 Oct 2020 23:02:07 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20201009220207eucas1p1d83b63b4f0e05cbaf0a58f7f01ec0052~8cgOT9FNa1023910239eucas1p1Z; Fri, 9 Oct 2020 22:02:07 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20201009220207eusmtrp2d9d0757a37def6f0c48ac8a15be22321~8cgOTdiCm1642116421eusmtrp2V; Fri, 9 Oct 2020 22:02:07 +0000 (GMT) X-AuditID: cbfec7f2-809ff70000001938-e6-5f80dddf0c69 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 22.E2.06314.FDDD08F5; Fri, 9 Oct 2020 23:02:07 +0100 (BST) Received: from Padamandas.fritz.box (unknown [106.210.88.70]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20201009220205eusmtip1317622a70ee6109b5608761a52aa0ee8~8cgNBIEdJ1334813348eusmtip1q; Fri, 9 Oct 2020 22:02:05 +0000 (GMT) From: Lukasz Wojciechowski To: Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com Date: Sat, 10 Oct 2020 00:01:47 +0200 Message-Id: <20201009220202.20834-1-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201008052323.11547-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGIsWRmVeSWpSXmKPExsWy7djP87r37zbEG5zfYWXx7tN2JotnPesY HZg8fi1Yyupx8N0epgCmKC6blNSczLLUIn27BK6MlSv3sRQsFq24fP40UwPjX4EuRk4OCQET iUn/+5m7GLk4hARWMEpc/baGDcL5wiix/8NfRgjnM6PEp20vGWFalu/9B9WynFHi8Y4WqKpP jBKvFh9hAaliE7CVODLzKyuILSLAIrHy+3ewOLOAkcTL7onMILawgIPE9/072UBsFgFViWvn /oPV8Aq4SlxcMYUFYpu8xOoNB8DqOQXcJM7+v8sKskxCYAubxMT9n6GKXCQePfsPdZ6wxKvj W9ghbBmJ/zvnM0E0bAP67vdPRghnP6PE9d4VUFXWEof//QY6gwPoPE2J9bv0IcKOEnc2/GQB CUsI8EnceCsI8QCfxKRt05khwrwSHW1CENV6Ek97pjLCrP2z9gnUaR4SX29cZocE0ExGiZ1H drNPYJSfhbBsASPjKkbx1NLi3PTUYsO81HK94sTc4tK8dL3k/NxNjMDYPv3v+KcdjF8vJR1i FOBgVOLhbUhuiBdiTSwrrsw9xCjBwawkwut09nScEG9KYmVValF+fFFpTmrxIUZpDhYlcV7j RS9jhQTSE0tSs1NTC1KLYLJMHJxSDYzcK7+f9LpXelp+1rf1E189tTvy2DS2MOKqQGHV2SiD 5UH7KhT2JtueCp1eGV1xr1b8fMq3qLcc6QumP12zc+YHER911hfV/zjny37IVTjc8jDZLXqa 6PsPecyM6xMMdJT+yHkXzdr1hlHOonz/k9daMg/X7DmfKRn/hFfWKbvn/NT1QmEKE5iUWIoz Eg21mIuKEwEckbxs6QIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrCLMWRmVeSWpSXmKPExsVy+t/xu7r37zbEG3zayGLx7tN2JotnPesY HZg8fi1Yyupx8N0epgCmKD2bovzSklSFjPziElulaEMLIz1DSws9IxNLPUNj81grI1MlfTub lNSczLLUIn27BL2MlSv3sRQsFq24fP40UwPjX4EuRk4OCQETieV7/zGD2EICSxkl1k+p7WLk AIrLSHy4BFUiLPHnWhdbFyMXUMkHRonpt/+ygCTYBGwljsz8ygpiiwiwSKz8/h0szgw08/a8 JjYQW1jAQeL7/p1gNouAqsS1c//BangFXCUurpjCArFAXmL1hgNgN3AKuEmc/X+XFeIeV4k/ uw8xTmDkW8DIsIpRJLW0ODc9t9hQrzgxt7g0L10vOT93EyMwxLYd+7l5B+OljcGHGAU4GJV4 eDUSG+KFWBPLiitzDzFKcDArifA6nT0dJ8SbklhZlVqUH19UmpNafIjRFOioicxSosn5wPDP K4k3NDU0t7A0NDc2NzazUBLn7RA4GCMkkJ5YkpqdmlqQWgTTx8TBKdXAyO2m4J/i633Fzq/5 aGb0vDiemGSz7D1RzsbPPtz98ejJNd2gJ8167ar+hat6VN4WFNy5vXy9TfEDkZd6c5KaNM9o BP9RV9Ut2ixc8M/Mx3nt71U9c6Xeit1IvTrdc7906RIOplmXFOo8t31RfX2JsfvsjwvG7Grv ZQ+qvioJOmktkhptklCqxFKckWioxVxUnAgAMn/yKkcCAAA= X-CMS-MailID: 20201009220207eucas1p1d83b63b4f0e05cbaf0a58f7f01ec0052 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20201009220207eucas1p1d83b63b4f0e05cbaf0a58f7f01ec0052 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20201009220207eucas1p1d83b63b4f0e05cbaf0a58f7f01ec0052 References: <20201008052323.11547-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-dev] [PATCH v6 00/15] fix distributor synchronization issues 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" During review and verification of the patch created by Sarosh Arif: "test_distributor: prevent memory leakages from the pool" I found out that running distributor unit tests multiple times in a row causes fails. So I investigated all the issues I found. There are few synchronization issues that might cause deadlocks or corrupted data. They are fixed with this set of patches for both tests and librte_distributor library. --- v6: * fix comments indentation * fix stats atomic operations memory mode from ACQUIRE/RELEASE to RELAXED v5: * implement missing functionality in burst mode - worker shutdown * fix shutdown test to always shutdown busy worker * use atomic stores instead of barrier in tests clear_packet_count() * reorder patches * new patch 7: fix call to return_pkt in single mode * new patch 11: replacing delays with spinlock on atomics in tests * new patch 12: fix scalar matching algorithm * new patch 13: new test with marking and checking every packet * new patch 14: flush also in flight packets * new patch 15: fix clearing returns buffer * minor fixes in other patches v4: * adjust commit name prefixes app/test -> test/distributor: * reorder patches * use NULL oldpkt in rte_distributor_get_pkt() calls in tests v3: * add missing acked and tested by statements from v1 v2: * assign NULL to freed mbufs in distributor test * fix handshake check on legacy single distributor rte_distributor_return_pkt_single() * add patch 7 passing NULL to legacy API calls if no bufs are returned * add patch 8 fixing API documentation Lukasz Wojciechowski (15): distributor: fix missing handshake synchronization distributor: fix handshake deadlock distributor: do not use oldpkt when not needed distributor: handle worker shutdown in burst mode test/distributor: fix shutdown of busy worker test/distributor: synchronize lcores statistics distributor: fix return pkt calls in single mode test/distributor: fix freeing mbufs test/distributor: collect return mbufs distributor: align API documentation with code test/distributor: replace delays with spin locks distributor: fix scalar matching test/distributor: add test with packets marking distributor: fix flushing in flight packets distributor: fix clearing returns buffer app/test/test_distributor.c | 317 ++++++++++++++---- lib/librte_distributor/distributor_private.h | 3 + lib/librte_distributor/rte_distributor.c | 219 +++++++++--- lib/librte_distributor/rte_distributor.h | 23 +- .../rte_distributor_single.c | 4 + 5 files changed, 445 insertions(+), 121 deletions(-) -- 2.17.1