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 9A29AA0561; Sun, 19 Apr 2020 04:33:14 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 68CDB1D542; Sun, 19 Apr 2020 04:33:09 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2085.outbound.protection.outlook.com [40.107.20.85]) by dpdk.org (Postfix) with ESMTP id F2D041D524 for ; Sun, 19 Apr 2020 04:33:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eN5fAU+96x5rz8G67Px4DsDrs99fJlzsAYJuOjVqDeU=; b=hiy/SZNtGMywBLjfdQmxc2eqbiG10pUT4U68KC69Gu8EzIRqTh0drhk5V6shotRjfHlBGUl+WLZ4P0ueEpGncCgMWPykbwom1LLzrO7ntLDSI88dLjMrhECzkzMSDRPWKDXIuCcqZxuDV9e59waMPGG3yPsOAsp81q1ASHDAJfE= Received: from DBBPR09CA0031.eurprd09.prod.outlook.com (2603:10a6:10:d4::19) by DBBPR08MB4760.eurprd08.prod.outlook.com (2603:10a6:10:f6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.29; Sun, 19 Apr 2020 02:33:06 +0000 Received: from DB5EUR03FT045.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:d4:cafe::51) by DBBPR09CA0031.outlook.office365.com (2603:10a6:10:d4::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.25 via Frontend Transport; Sun, 19 Apr 2020 02:33:06 +0000 Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT045.mail.protection.outlook.com (10.152.21.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2900.18 via Frontend Transport; Sun, 19 Apr 2020 02:33:06 +0000 Received: ("Tessian outbound 43fc5cd677c4:v53"); Sun, 19 Apr 2020 02:33:06 +0000 X-CR-MTA-TID: 64aa7808 Received: from feb55344f6c3.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id CB0A7BB8-A4E4-408C-81EC-5DE3F4DA1308.1; Sun, 19 Apr 2020 02:33:01 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id feb55344f6c3.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Sun, 19 Apr 2020 02:33:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R8yGAAdfLiDHMmfnrqk4m1YB3CKsSO3NLH5OzQFld8JzTmQPjrV7+BKTSgUDKJsuNut3iD8zZyEvAPR0zAcxOtFnXvAx1k83QAU2Gv+yZwRkfsJvHlHCj3vfQuNJQ3d1WUSIzimIGr1Jx+plnhDDEHzqX/cMRGdUhNUw1FvL1x1EDIkzvKXdTBsdc0elqfEHwX4NPn8xaYNmgQxP7TBgqUff7f0ARxN4gQHuUtQQPYQfc6ceWmhUFCg5gFPC84k8uOnoqYywiX9vBXWdoIY14B564iFtetqJc8MFNH/FwCKYsb+KgrOmyAFRwrUn5XffBWNVJAUwIx+URNNjV5JtIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eN5fAU+96x5rz8G67Px4DsDrs99fJlzsAYJuOjVqDeU=; b=lIed+kx2jhPUJhLmQ7gCY10RbKiK3m44AqqM6o2Ry0xTndxAYc+Eely9UGHcJ2Xff66+5uvwIHLgK/hkrKHnrTIdA+2Vk6Z8i6EHuNmydPG7dqXccOy6Wy1cSHgLdiYoebv4i33OeEgae65Sz06CAEqLtbElHni3E2dWdheOaqCsnmnDp9Zc6f/JariT5mSRtPompR9MxKCTXbalPE/VKUsdH93hx2+9Ru72Rkqf06Fg3cgf7f3F5BLQ2XpsA0i8NX7wudI6l5mDvdYCQDvUcw8roJ5WhAcpJVCxP5zFtOd0LNLiCp8Pa9h5qpiLQOnxHQshO7uLA4SG/PlGy8ZozQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eN5fAU+96x5rz8G67Px4DsDrs99fJlzsAYJuOjVqDeU=; b=hiy/SZNtGMywBLjfdQmxc2eqbiG10pUT4U68KC69Gu8EzIRqTh0drhk5V6shotRjfHlBGUl+WLZ4P0ueEpGncCgMWPykbwom1LLzrO7ntLDSI88dLjMrhECzkzMSDRPWKDXIuCcqZxuDV9e59waMPGG3yPsOAsp81q1ASHDAJfE= Received: from DBBPR08MB4646.eurprd08.prod.outlook.com (2603:10a6:10:f5::16) by DBBPR08MB4297.eurprd08.prod.outlook.com (2603:10a6:10:c3::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.29; Sun, 19 Apr 2020 02:32:59 +0000 Received: from DBBPR08MB4646.eurprd08.prod.outlook.com ([fe80::1870:afc4:b90f:609d]) by DBBPR08MB4646.eurprd08.prod.outlook.com ([fe80::1870:afc4:b90f:609d%5]) with mapi id 15.20.2921.027; Sun, 19 Apr 2020 02:32:59 +0000 From: Honnappa Nagarahalli To: Konstantin Ananyev , "dev@dpdk.org" CC: "david.marchand@redhat.com" , "jielong.zjl@antfin.com" , nd , Honnappa Nagarahalli , nd Thread-Topic: [PATCH v5 0/9] New sync modes for ring Thread-Index: AQHWFZ77Y48jISk8zUm9c0UdOFKwAKh/qugw Date: Sun, 19 Apr 2020 02:32:59 +0000 Message-ID: References: <20200417133639.14019-1-konstantin.ananyev@intel.com> <20200418163225.17635-1-konstantin.ananyev@intel.com> In-Reply-To: <20200418163225.17635-1-konstantin.ananyev@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: d1c96114-dae9-42f6-98fb-344187f03bf9.0 x-checkrecipientchecked: true Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; x-originating-ip: [70.113.25.165] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 63797332-4911-40b8-c100-08d7e409fe1c x-ms-traffictypediagnostic: DBBPR08MB4297:|DBBPR08MB4297:|DBBPR08MB4760: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; x-forefront-prvs: 0378F1E47A X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBBPR08MB4646.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(136003)(39850400004)(376002)(396003)(366004)(346002)(478600001)(52536014)(54906003)(110136005)(33656002)(71200400001)(53546011)(7696005)(2906002)(6506007)(4326008)(5660300002)(8936002)(316002)(966005)(76116006)(66946007)(83080400001)(8676002)(66446008)(64756008)(66556008)(66476007)(81156014)(9686003)(186003)(55016002)(86362001)(26005); DIR:OUT; SFP:1101; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: Vbjsh8YXbV+6ph35E4UATFmR3IHyoS4X00bVQDEb9RUVYVfibYZLYakRrAao9J8I0Ws4oAREeRao9hm4Rcb20WOU5uxmCB5DnzP49esF3++sJKFfY8q6iSFkcko3SPJYBQ4L+8cPVkeOztnT+C+xoBJctN5XtH6J/VZKPmrOj+cxhqT5i7vBcGUC9t2h4OUIwEXcoQQ9DLVN30OeVcwUahhYRGmfJ5fESjtGDdeRvJKWm1K5kZT2p1qwhYsC69Q09HkHN4v0jV+L++NChbcNEhg/I6hlH4Y5r/QqrrSDlmDJg+J201ksjT4oLLzZyyfDFvXJHZNDulwlf0JAVtJ1Psc69BQvjBvNwlB74YQp6VBZZL6zPX/9C6clPYBCIimJHm8la/Sf4wcWKR7CkKIAh/mpDBvSK6dhdDqLm7DohihLLc69hpME0io9H16MZDdyL3cE4QiwzZDh5qaz5dW/rniDJ64mGKIW84Nv9YBGfr7fkhKe52j4esYhFb4PQo8l5A3PSBviqXfpDMx295e/TQ== x-ms-exchange-antispam-messagedata: IMVpEuwLNjOpeHtWDrIzYVwxqoL+5SVgDKQbB0qLRiVVBW1jvDgjmCniGTjgCf+2RB4wsDvxyymdcwJvLpiZJ8IXOMTCqTCa1LyT0NBDNw2zizNk4n4LIN/ma4jYsfSu/ckAMBj5716jLC1ln05Kvw== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4297 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT045.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(376002)(396003)(136003)(39850400004)(346002)(46966005)(26005)(81166007)(7696005)(336012)(70206006)(70586007)(8676002)(52536014)(186003)(2906002)(55016002)(5660300002)(9686003)(83080400001)(81156014)(33656002)(54906003)(478600001)(966005)(86362001)(316002)(4326008)(82740400003)(110136005)(8936002)(47076004)(6506007)(53546011)(356005); DIR:OUT; SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: b9040463-c0bb-4b9d-247f-08d7e409fa36 X-Forefront-PRVS: 0378F1E47A X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CjpEjiFdd2xB9jItaarxxHSbMqjyTIgM9Lw6dSUH+62ivNmjUv/6G0qIJz7jiyJGhmJHp1eB7yxeH/DYeCH6pMbQrjUdTM+pDo1qTmV/KitZtwhH8wSa4zqW8pPno+HEkiypwdvNUpmcDHdZyVPIScCHaJd1JKh3KEGUxJ3tnu+1JuBc2q9VQOcz2MWSw4gTPg4t4XnKzZAa0xo/ju/tXsN+Gna4rEf1Qr1krh2KdzpBVyArkF7gZgSRRBL/6cljGPWKj6h4pdGXWqq/4630nFRRDyd4I84E0hqqMpniwYVrPs1eGZ6OOGCMnR3sEfwr4TjD70MUP94ERa9LsRXPfjnYNnagd/9Qqura8jYf61NGNeRhfHCe1uYCIvaH2YpokKLOmnWhNInkJ5gW+OBvfNi3w9cFVe7cHW7XqU+nLRfc9JNtjhhy384Zf6gkc4xnXLTUeGT318tp4vZMOcf4Piv198/lU98GOND6Fkj3I5j2sZLBJiKmsqmT+BHNegIduJSqURhIHPCpbl9Vuw1AmHNH1HFoBTmlKEiiQDQXLNUuV1BB9Ri39iNnWN6b3qc34178efw6qI6g8ltQJlmMzg== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2020 02:33:06.5280 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 63797332-4911-40b8-c100-08d7e409fe1c X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4760 Subject: Re: [dpdk-dev] [PATCH v5 0/9] New sync modes for ring 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" Hi Konstantin, Changes look good overall, I have integrated RCU defer APIs patch as well.= Please consider adding the following (in another patch?) 1) Release notes 2) Updates to programmer guide for RTS and HTS modes Thank you, Honnappa > -----Original Message----- > From: Konstantin Ananyev > Sent: Saturday, April 18, 2020 11:32 AM > To: dev@dpdk.org > Cc: Honnappa Nagarahalli ; > david.marchand@redhat.com; jielong.zjl@antfin.com; Konstantin Ananyev > > Subject: [PATCH v5 0/9] New sync modes for ring >=20 > V4 - V5: > 1. fix i686 clang build problem > 2. fix formal API comments >=20 > V3 - V4 changes: > Address comments from Honnappa: > 1. for new sync modes make legacy API wrappers around _elem_ calls 2. > remove rte_ring_(hts|rts)_generic.h 3. few changes in C11 version 4. peek= API > - add missing functions for _elem_ 5. remove _IS_SP/_IS_MP, etc. internal > macros 6. fix param types (obj_table) for _elem_functions 7. fix formal A= PI > comments 8. deduplicate code for test_ring_stress 9. added functional tes= ts > for new sync modes >=20 > V2 - V3 changes: > 1. few more compilation fixes (for gcc 4.8.X) 2. extra update > devtools/libabigail.abignore (workaround) >=20 > V1 - V2 changes: > 1. fix compilation issues > 2. add C11 atomics support > 3. updates devtools/libabigail.abignore (workaround) >=20 > RFC - V1 changes: > 1. remove ABI brekage (at least I hope I did) 2. Add support for ring_ele= m 3. > rework peek related API a bit 4. rework test to make it less verbose and = unite > all test-cases > in one command > 5. add new test-case for MT peek API >=20 > TODO list: > 1. Update docs >=20 > These days more and more customers use(/try to use) DPDK based apps > within overcommitted systems (multiple acttive threads over same pysical > cores): > VM, container deployments, etc. > One quite common problem they hit: > Lock-Holder-Preemption/Lock-Waiter-Preemption with rte_ring. > LHP is quite a common problem for spin-based sync primitives (spin-locks,= etc.) > on overcommitted systems. > The situation gets much worse when some sort of fair-locking technique is > used (ticket-lock, etc.). > As now not only lock-owner but also lock-waiters scheduling order matters= a > lot (LWP). > These two problems are well-known for kernel within VMs: > http://www-archive.xenproject.org/files/xensummitboston08/LHP.pdf > https://www.cs.hs-rm.de/~kaiser/events/wamos2017/Slides/selcuk.pdf > The problem with rte_ring is that while head accusion is sort of un-fair = locking, > waiting on tail is very similar to ticket lock schema - tail has to be up= dated in > particular order. > That makes current rte_ring implementation to perform really pure on some > overcommited scenarios. > It is probably not possible to completely resolve LHP problem in userspac= e > only (without some kernel communication/intervention). > But removing fairness at tail update helps to avoid LWP and can mitigate = the > situation significantly. > This patch proposes two new optional ring synchronization modes: > 1) Head/Tail Sync (HTS) mode > In that mode enqueue/dequeue operation is fully serialized: > only one thread at a time is allowed to perform given op. > As another enhancement provide ability to split enqueue/dequeue > operation into two phases: > - enqueue/dequeue start > - enqueue/dequeue finish > That allows user to inspect objects in the ring without removing > them from it (aka MT safe peek). > 2) Relaxed Tail Sync (RTS) > The main difference from original MP/MC algorithm is that tail value is > increased not by every thread that finished enqueue/dequeue, but only by = the > last one. > That allows threads to avoid spinning on ring tail value, leaving actual = tail > value change to the last thread in the update queue. >=20 > Note that these new sync modes are optional. > For current rte_ring users nothing should change (both in terms of API/AB= I > and performance). > Existing sync modes MP/MC,SP/SC kept untouched, set up in the same way > (via flags and _init_), and MP/MC remains as default one. > The only thing that changed: > Format of prod/cons now could differ depending on mode selected at _init_= . > So user has to stick with one sync model through whole ring lifetime. > In other words, user can't create a ring for let say SP mode and then in = the > middle of data-path change his mind and start using MP_RTS mode. > For existing modes (SP/MP, SC/MC) format remains the same and user can > still use them interchangeably, though of course it is an error prone pra= ctice. >=20 > Test results on IA (see below) show significant improvements for average > enqueue/dequeue op times on overcommitted systems. > For 'classic' DPDK deployments (one thread per core) original MP/MC > algorithm still shows best numbers, though for 64-bit target RTS numbers = are > not that far away. > Numbers were produced by new UT test-case: ring_stress_autotest, i.e.: > echo ring_stress_autotest | ./dpdk-test -n 4 --lcores=3D'...' >=20 > X86_64 @ Intel(R) Xeon(R) Platinum 8160 CPU @ 2.10GHz > DEQ+ENQ average cycles/obj > MP/MC HTS RTS > 1thread@1core(--lcores=3D6-7) 8.00 8.15 8.99 > 2thread@2core(--lcores=3D6-8) 19.14 19.61 20.3= 5 > 4thread@4core(--lcores=3D6-10) 29.43 29.79 31.8= 2 > 8thread@8core(--lcores=3D6-14) 110.59 192.81 119.= 50 > 16thread@16core(--lcores=3D6-22) 461.03 813.12 495.= 59 > 32thread/@32core(--lcores=3D'6-22,55-70') 982.90 1972.38 1160= .51 >=20 > 2thread@1core(--lcores=3D'6,(10-11)@7' 20140.50 23.58 25.1= 4 > 4thread@2core(--lcores=3D'6,(10-11)@7,(20-21)@8' 153680.60 76.88 80.0= 5 > 8thread@2core(--lcores=3D'6,(10-13)@7,(20-23)@8' 280314.32 294.72 > 318.79 16thread@2core(--lcores=3D'6,(10-17)@7,(20-27)@8' 643176.59 > 1144.02 1175.14 32thread@2core(--lcores=3D'6,(10-25)@7,(30-45)@8' > 4264238.80 4627.48 4892.68 >=20 > 8thread@2core(--lcores=3D'6,(10-17)@(7,8))' 321085.98 298.59 307.= 47 > 16thread@4core(--lcores=3D'6,(20-35)@(7-10))' 1900705.61 575.35 678.= 29 > 32thread@4core(--lcores=3D'6,(20-51)@(7-10))' 5510445.85 2164.36 > 2714.12 >=20 > i686 @ Intel(R) Xeon(R) Platinum 8160 CPU @ 2.10GHz > DEQ+ENQ average cycles/obj > MP/MC HTS RTS > 1thread@1core(--lcores=3D6-7) 7.85 12.13 11.3= 1 > 2thread@2core(--lcores=3D6-8) 17.89 24.52 21.8= 6 > 8thread@8core(--lcores=3D6-14) 32.58 354.20 54.5= 8 > 32thread/@32core(--lcores=3D'6-22,55-70') 813.77 6072.41 2169= .91 >=20 > 2thread@1core(--lcores=3D'6,(10-11)@7' 16095.00 36.06 34.7= 4 > 8thread@2core(--lcores=3D'6,(10-13)@7,(20-23)@8' 1140354.54 346.61 > 361.57 16thread@2core(--lcores=3D'6,(10-17)@7,(20-27)@8' 1920417.86 > 1314.90 1416.65 >=20 > 8thread@2core(--lcores=3D'6,(10-17)@(7,8))' 594358.61 332.70 357.= 74 > 32thread@4core(--lcores=3D'6,(20-51)@(7-10))' 5319896.86 2836.44 > 3028.87 >=20 > Konstantin Ananyev (9): > test/ring: add contention stress test > ring: prepare ring to allow new sync schemes > ring: introduce RTS ring mode > test/ring: add contention stress test for RTS ring > ring: introduce HTS ring mode > test/ring: add contention stress test for HTS ring > ring: introduce peek style API > test/ring: add stress test for MT peek API > test/ring: add functional tests for new sync modes >=20 > app/test/Makefile | 5 + > app/test/meson.build | 5 + > app/test/test_pdump.c | 6 +- > app/test/test_ring.c | 93 ++++-- > app/test/test_ring_hts_stress.c | 32 ++ > app/test/test_ring_mpmc_stress.c | 31 ++ > app/test/test_ring_peek_stress.c | 43 +++ > app/test/test_ring_rts_stress.c | 32 ++ > app/test/test_ring_stress.c | 57 ++++ > app/test/test_ring_stress.h | 38 +++ > app/test/test_ring_stress_impl.h | 396 ++++++++++++++++++++++ > devtools/libabigail.abignore | 7 + > lib/librte_pdump/rte_pdump.c | 2 +- > lib/librte_port/rte_port_ring.c | 12 +- > lib/librte_ring/Makefile | 8 +- > lib/librte_ring/meson.build | 11 +- > lib/librte_ring/rte_ring.c | 114 ++++++- > lib/librte_ring/rte_ring.h | 243 ++++++++------ > lib/librte_ring/rte_ring_c11_mem.h | 44 +++ > lib/librte_ring/rte_ring_core.h | 184 ++++++++++ > lib/librte_ring/rte_ring_elem.h | 141 ++++++-- > lib/librte_ring/rte_ring_generic.h | 48 +++ > lib/librte_ring/rte_ring_hts.h | 332 +++++++++++++++++++ > lib/librte_ring/rte_ring_hts_c11_mem.h | 207 ++++++++++++ > lib/librte_ring/rte_ring_peek.h | 442 +++++++++++++++++++++++++ > lib/librte_ring/rte_ring_rts.h | 439 ++++++++++++++++++++++++ > lib/librte_ring/rte_ring_rts_c11_mem.h | 179 ++++++++++ > 27 files changed, 2977 insertions(+), 174 deletions(-) create mode 1006= 44 > app/test/test_ring_hts_stress.c create mode 100644 > app/test/test_ring_mpmc_stress.c create mode 100644 > app/test/test_ring_peek_stress.c create mode 100644 > app/test/test_ring_rts_stress.c create mode 100644 > app/test/test_ring_stress.c create mode 100644 app/test/test_ring_stress= .h > create mode 100644 app/test/test_ring_stress_impl.h create mode 100644 > lib/librte_ring/rte_ring_core.h create mode 100644 > lib/librte_ring/rte_ring_hts.h create mode 100644 > lib/librte_ring/rte_ring_hts_c11_mem.h > create mode 100644 lib/librte_ring/rte_ring_peek.h create mode 100644 > lib/librte_ring/rte_ring_rts.h create mode 100644 > lib/librte_ring/rte_ring_rts_c11_mem.h >=20 > -- > 2.17.1