From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8FA04A0505; Fri, 6 May 2022 00:59:46 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6DF1A4014F; Fri, 6 May 2022 00:59:46 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80059.outbound.protection.outlook.com [40.107.8.59]) by mails.dpdk.org (Postfix) with ESMTP id 5DEA340042 for ; Fri, 6 May 2022 00:59:44 +0200 (CEST) ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=hDCkIVAcq4pACSj2GWgRzcR8oq4FoKgrPp/Llu7zN1e+A11r0XYLgV7vhYNL4s5CIR9NfUPBsxc2aq/eJQPs5ry7LJj0S75LpJb9412XZX+uQaul/c5rJheDTwT/OmGaVNe7qwSdg2Cn9z4UaEMALnk/vJw9tFw23vCoZAP+TbmfG7a2NNkEGhYrRPrw37SrZUexPgvtpqyrvOZsGHbCP4lVxpV1vNPaz3LmrWdiaFZ5xqhmeLqk/rWcROFgdnAKgnfnxLH0kdaw7l6r1Sx4mzYaTbZ24SFmIjaerJZg+x2SLfSC1/jq/URM3Ramcom+t5oSOrMcZvoTFrrK4+gypw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hA85HMr4atmDBBgPyRECKynuDUrnd0juFJ3JfNyKk+0=; b=ktEzOnaK0jxEvwyiNKDknB2FMq4g0YrEaRceg0SanLICvsvydZp2FwAr7DY7dD5TaEjKFz0AE92yGqwvAz/cirVHHiO7Niyv9S0/XYzjpfxG2tPF3JaQS4dw0+5kV9GWMOMObzvBPf0vgjeYiNHByACDCOSid+bM5pD/NEThTQ/SiYNG5NiDjw3v5B8V5HGelHPgANDxLgvtzVdVfY0lVuYVnhW1PA1LvWFAyf2fObbo93qST4sWGvpxP1ZsuX6dtEF8LsjfeDHXCNtsO8UlYN3a2FV4k33PzqNPqF34qB5eq5UoD+0FvRT7KglRfzjUNvRQKDPy1trolEu0kZk7Dg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=dpdk.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) 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=hA85HMr4atmDBBgPyRECKynuDUrnd0juFJ3JfNyKk+0=; b=8ICp81BIx/ZNF1SMWhYI7O4QJ9dFA2fQPglnQIzDU+19rITzXS3LCkvuAo7frgLfnxFDu20ZK5N4kOH8J6p9f/uqRQGLehP0M/E6IGYUHDmuE1vznmxj11SRuR/P0JMT1zqqtCZYmlgiIMpGo5ZZAk79SLUWmtleCkgA7GEP2Tg= Received: from DB8PR03CA0030.eurprd03.prod.outlook.com (2603:10a6:10:be::43) by VI1PR08MB4480.eurprd08.prod.outlook.com (2603:10a6:803:f6::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.25; Thu, 5 May 2022 22:59:41 +0000 Received: from DBAEUR03FT014.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:be:cafe::d9) by DB8PR03CA0030.outlook.office365.com (2603:10a6:10:be::43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.27 via Frontend Transport; Thu, 5 May 2022 22:59:41 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass 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 DBAEUR03FT014.mail.protection.outlook.com (100.127.143.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.15 via Frontend Transport; Thu, 5 May 2022 22:59:41 +0000 Received: ("Tessian outbound ab7864ef57f2:v118"); Thu, 05 May 2022 22:59:41 +0000 X-CR-MTA-TID: 64aa7808 Received: from 66bdd54dc931.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id BD01A7E4-1C3C-4BD5-B20C-4284ADC84A75.1; Thu, 05 May 2022 22:59:35 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 66bdd54dc931.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 05 May 2022 22:59:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FokM7It9LjXBKuIFKan0vlbV2+rRs3tsvUH9yB3OVk0JHaYLhz/cOiI3Qzp3KM78VLSY9eS+JlLxRHccc8MpBEtYleQTCdDeRnF9AjQqQ9oXTqEtv0aYrJvqdA8qulreEIVVpC/6SzDPVz6zT90t7V6E11Omm7jxpv7jLNHb7Z48vM214DeMQjkZQc/j0nA9BJuEEY7l0jPwoQi0tRL+2Q0MEIvILEV+HLxrLU0L+ZgAWguXblflwVai5gWs/KG1D966CvF35VRJDFhQ7lTEGPWgArid+BBdzDF4cSOkJuv4tJbfYd7MT8syTBcvhJqndP/59Xrp7X0ezlcukn16UQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hA85HMr4atmDBBgPyRECKynuDUrnd0juFJ3JfNyKk+0=; b=HlXrNCkIfbzZfYDvmtuWom4g8zkU+O/pPWHJfu8EryXr64OeS+XVPbwG1eXzRAmVaMNCW39A0sjv/+O/UEXqPisWcE/ThIQUYdJh0H+jKpPNrbHJXt5+sZ7SAneTdIOxJWFGvt/ff5euVhHmTTHK43DBl+7hAST8yFIK52XMF+j2uwxAY05MLQ8mC4GstJKWeRmeUmZRWXT7h/CH+L6TOAJI0nf9fGlBmy5R/6vLIZ8gEEewUfW/mokahWIVKN4Zi9p4mNqLD8al1j7PY/tzTBc8QgCFtNxWEmFwZK8fx/dlqXqwd+S+qkHqIbJwGtdwhJas0Xlv0aFjHnGJaDcKIA== 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=hA85HMr4atmDBBgPyRECKynuDUrnd0juFJ3JfNyKk+0=; b=8ICp81BIx/ZNF1SMWhYI7O4QJ9dFA2fQPglnQIzDU+19rITzXS3LCkvuAo7frgLfnxFDu20ZK5N4kOH8J6p9f/uqRQGLehP0M/E6IGYUHDmuE1vznmxj11SRuR/P0JMT1zqqtCZYmlgiIMpGo5ZZAk79SLUWmtleCkgA7GEP2Tg= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by VI1PR08MB3007.eurprd08.prod.outlook.com (2603:10a6:803:4a::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Thu, 5 May 2022 22:59:32 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::44cf:1f8d:e477:1f99]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::44cf:1f8d:e477:1f99%6]) with mapi id 15.20.5206.027; Thu, 5 May 2022 22:59:32 +0000 From: Honnappa Nagarahalli To: Stephen Hemminger , "dev@dpdk.org" CC: nd , nd Subject: RE: [RFC] rte_ring: don't use always inline Thread-Topic: [RFC] rte_ring: don't use always inline Thread-Index: AQHYYNHmId4l1/D/6UKz4cX05KFGVK0Q5Zpw Date: Thu, 5 May 2022 22:59:32 +0000 Message-ID: References: <20220505224547.394253-1-stephen@networkplumber.org> In-Reply-To: <20220505224547.394253-1-stephen@networkplumber.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: E46A9163CC17584ABD2BE2D8A31D40D4.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: c20217e1-9d9a-45f7-fb19-08da2eeaf035 x-ms-traffictypediagnostic: VI1PR08MB3007:EE_|DBAEUR03FT014:EE_|VI1PR08MB4480:EE_ X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: SJuKOypBAM5fiWZmCkhcO45A+hPcikCaIm0e3lgAJqHimOG8v2sWNxApDA36xTPNECpJhvIOII5UXO9mBt2ifVU5H2mnwwwHUtXj/25M1Yk5Y43kDbwYJaQjhsUhXAwrvfAu9EMBoAyJAr45uJFCQvjDrxpQvipoyDZ001upF6Mn5ieDPcbhMLGB9LIlURmsPxWI2WqjUynyo8a1JC4iG5Hk4XJW2s7gd7HgyEQnt9RHWOQ7WUbM8c42fd6xUXUbwZSHwXBR052yWSm6kaR9EdqnURLK4ugjfoTPLmOPnAuyFp/IXVK1xKqmMC332ynumlTEzv31x13f4FRuwCptsQWvnfELiwGdszoyR/5HJo+BK2Z/wRt0uL4mc66fiBLxlbFXyGMCyXfhJEff59bfhWRjSHjRxlADWenj5F3ZdEABfSnKe6lzDpZl6+hFQtk0vmTPCijpOQAKVVfIZBmmq5thpGmHSISbf4F3tfRT6+pKU/Apxw6IbfWtStN6mLzXuX2FQzZcCcA1L/4nYPZMxGfqv/scZgUEuu9NneEqIcYWyr8Pz6h6AZCED2qSK1hWYsthF4hu5azOy6fak8eKyJNXquARpFJ6eIMAtYlmxaSDTKip47vLBumC5F/ZaTuKEpHOOn1zO8yAuPAT3NgMhLbnbLzewQ4uX7Sg0YbvA9Za2xA/P/XT5pSnxB6ot2sBBCaP+d0L3R4pxQRJX8bJUw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(30864003)(55016003)(53546011)(66446008)(66476007)(66556008)(508600001)(86362001)(6506007)(8936002)(5660300002)(64756008)(4326008)(8676002)(316002)(76116006)(110136005)(66946007)(186003)(54906003)(26005)(122000001)(52536014)(33656002)(38100700002)(38070700005)(2906002)(71200400001)(83380400001)(7696005)(9686003); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3007 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT014.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 67f97b06-7eeb-4e3d-ef74-08da2eeaeb04 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: t9gFYFk+iDKXS8JekXsSeYKKMHiXI8R2e7gnaYz4EAbulBEpw2mp9U78HdRRiyq6b0dE+x6whkeP4eWf5TXN/ul3zlXwi0YqYTP9yXsSlP+cvEZt5Pq2o7VBFlmdBuV6E5xs3C9fl+MXV4LJ32jXkEYkP+vpyA7krtZ7XwmK8jUw9ZRxoXLzX4aj2fOsx3axaY6bJhPbJ1gxELQs7rwnn2xK9nWOfJ8uTNC9Rla2L/H4TGdxMvnnYJEUoSP7HxoDw6Yrl5DOmOboJKYu8V5Sx/7Arrl/lMiIU5E1z6K+NSy+GM7EaKinYQdhzzJtWfj1NuvDHSRBg7DbVEz8f1ET9KbJPk5uVyiqnh4g4yIVmR/DFbX5SK/loNR0yI+8miEVPxhHtVKy8fxMUU3W/4wSctaHuZyaw4qhmscrQ9raeYyRvXBLfEdaA3qIoz/PExlpcXM7MtnUMc4PDiVkCvJ+bsbxN6OGxkiarp23+m7c4ApAu3raNxzWMB1Z48q6JnlY4QzsSeN/AUdJqfoatNdMIrCOf9o9BB7Efkvt7+yg9OO+7ooWVoLxp55lhmj6YPljqwIzDr1hxR7lqz/uE/sIAIOfJifVFde66PeWoV/go/YA72245rKkroWIeZrzwmFZxc3HIfeMRcabn9PkKFvLFXhzwXmF6LN+Ok41yla0CIM= 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; SFS:(13230001)(4636009)(40470700004)(36840700001)(46966006)(83380400001)(54906003)(508600001)(5660300002)(82310400005)(30864003)(36860700001)(110136005)(8936002)(52536014)(2906002)(316002)(8676002)(4326008)(70586007)(70206006)(47076005)(26005)(7696005)(33656002)(186003)(9686003)(336012)(53546011)(6506007)(40460700003)(86362001)(55016003)(356005)(81166007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2022 22:59:41.3640 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c20217e1-9d9a-45f7-fb19-08da2eeaf035 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-AuthSource: DBAEUR03FT014.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4480 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Thanks Stephen. Do you see any performance difference with this change? > -----Original Message----- > From: Stephen Hemminger > Sent: Thursday, May 5, 2022 5:46 PM > To: dev@dpdk.org > Cc: Stephen Hemminger > Subject: [RFC] rte_ring: don't use always inline >=20 > Forcing compiler to inline with always inline can lead to worse and somet= imes > broken code. Better to use the standard inline keyword and let compiler h= ave > some flexibilty. >=20 > Signed-off-by: Stephen Hemminger > --- >=20 > This is RFC because the use of large scale inlining is debatable. > This change may slow things down on some versions of Gcc and architecture= s. >=20 > If you follow Linux kernel list, this has been a debated topic over the y= ears, with > opinions for and against inlining. > Combined with bad inlining in various Gcc versions. >=20 > lib/ring/rte_ring.h | 36 ++++++++++++++++++------------------ > lib/ring/rte_ring_c11_pvt.h | 6 +++--- > lib/ring/rte_ring_elem.h | 36 ++++++++++++++++++------------------ > 3 files changed, 39 insertions(+), 39 deletions(-) >=20 > diff --git a/lib/ring/rte_ring.h b/lib/ring/rte_ring.h index > 980e92e59493..4a2588beed9e 100644 > --- a/lib/ring/rte_ring.h > +++ b/lib/ring/rte_ring.h > @@ -226,7 +226,7 @@ void rte_ring_dump(FILE *f, const struct rte_ring *r)= ; > * @return > * The number of objects enqueued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_mp_enqueue_bulk(struct rte_ring *r, void * const *obj_table, > unsigned int n, unsigned int *free_space) { @@ - > 249,7 +249,7 @@ rte_ring_mp_enqueue_bulk(struct rte_ring *r, void * const > *obj_table, > * @return > * The number of objects enqueued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_sp_enqueue_bulk(struct rte_ring *r, void * const *obj_table, > unsigned int n, unsigned int *free_space) { @@ - > 276,7 +276,7 @@ rte_ring_sp_enqueue_bulk(struct rte_ring *r, void * const > *obj_table, > * @return > * The number of objects enqueued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_enqueue_bulk(struct rte_ring *r, void * const *obj_table, > unsigned int n, unsigned int *free_space) { @@ -298,7 > +298,7 @@ rte_ring_enqueue_bulk(struct rte_ring *r, void * const *obj_tab= le, > * - 0: Success; objects enqueued. > * - -ENOBUFS: Not enough room in the ring to enqueue; no object is > enqueued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_mp_enqueue(struct rte_ring *r, void *obj) { > return rte_ring_mp_enqueue_elem(r, &obj, sizeof(void *)); @@ -315,7 > +315,7 @@ rte_ring_mp_enqueue(struct rte_ring *r, void *obj) > * - 0: Success; objects enqueued. > * - -ENOBUFS: Not enough room in the ring to enqueue; no object is > enqueued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_sp_enqueue(struct rte_ring *r, void *obj) { > return rte_ring_sp_enqueue_elem(r, &obj, sizeof(void *)); @@ -336,7 > +336,7 @@ rte_ring_sp_enqueue(struct rte_ring *r, void *obj) > * - 0: Success; objects enqueued. > * - -ENOBUFS: Not enough room in the ring to enqueue; no object is > enqueued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_enqueue(struct rte_ring *r, void *obj) { > return rte_ring_enqueue_elem(r, &obj, sizeof(void *)); @@ -360,7 > +360,7 @@ rte_ring_enqueue(struct rte_ring *r, void *obj) > * @return > * The number of objects dequeued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_mc_dequeue_bulk(struct rte_ring *r, void **obj_table, > unsigned int n, unsigned int *available) { @@ -384,7 +384,7 > @@ rte_ring_mc_dequeue_bulk(struct rte_ring *r, void **obj_table, > * @return > * The number of objects dequeued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_sc_dequeue_bulk(struct rte_ring *r, void **obj_table, > unsigned int n, unsigned int *available) { @@ -411,7 +411,7 > @@ rte_ring_sc_dequeue_bulk(struct rte_ring *r, void **obj_table, > * @return > * The number of objects dequeued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_dequeue_bulk(struct rte_ring *r, void **obj_table, unsigned int= n, > unsigned int *available) > { > @@ -434,7 +434,7 @@ rte_ring_dequeue_bulk(struct rte_ring *r, void > **obj_table, unsigned int n, > * - -ENOENT: Not enough entries in the ring to dequeue; no object is > * dequeued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_mc_dequeue(struct rte_ring *r, void **obj_p) { > return rte_ring_mc_dequeue_elem(r, obj_p, sizeof(void *)); @@ -452,7 > +452,7 @@ rte_ring_mc_dequeue(struct rte_ring *r, void **obj_p) > * - -ENOENT: Not enough entries in the ring to dequeue, no object is > * dequeued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_sc_dequeue(struct rte_ring *r, void **obj_p) { > return rte_ring_sc_dequeue_elem(r, obj_p, sizeof(void *)); @@ -474,7 > +474,7 @@ rte_ring_sc_dequeue(struct rte_ring *r, void **obj_p) > * - -ENOENT: Not enough entries in the ring to dequeue, no object is > * dequeued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_dequeue(struct rte_ring *r, void **obj_p) { > return rte_ring_dequeue_elem(r, obj_p, sizeof(void *)); @@ -681,7 > +681,7 @@ struct rte_ring *rte_ring_lookup(const char *name); > * @return > * - n: Actual number of objects enqueued. > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_mp_enqueue_burst(struct rte_ring *r, void * const *obj_table, > unsigned int n, unsigned int *free_space) { @@ - > 704,7 +704,7 @@ rte_ring_mp_enqueue_burst(struct rte_ring *r, void * cons= t > *obj_table, > * @return > * - n: Actual number of objects enqueued. > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_sp_enqueue_burst(struct rte_ring *r, void * const *obj_table, > unsigned int n, unsigned int *free_space) { @@ - > 731,7 +731,7 @@ rte_ring_sp_enqueue_burst(struct rte_ring *r, void * cons= t > *obj_table, > * @return > * - n: Actual number of objects enqueued. > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_enqueue_burst(struct rte_ring *r, void * const *obj_table, > unsigned int n, unsigned int *free_space) { @@ -759,7 > +759,7 @@ rte_ring_enqueue_burst(struct rte_ring *r, void * const *obj_ta= ble, > * @return > * - n: Actual number of objects dequeued, 0 if ring is empty > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_mc_dequeue_burst(struct rte_ring *r, void **obj_table, > unsigned int n, unsigned int *available) { @@ -784,7 +784,7 > @@ rte_ring_mc_dequeue_burst(struct rte_ring *r, void **obj_table, > * @return > * - n: Actual number of objects dequeued, 0 if ring is empty > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_sc_dequeue_burst(struct rte_ring *r, void **obj_table, > unsigned int n, unsigned int *available) { @@ -811,7 +811,7 > @@ rte_ring_sc_dequeue_burst(struct rte_ring *r, void **obj_table, > * @return > * - Number of objects dequeued > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_dequeue_burst(struct rte_ring *r, void **obj_table, > unsigned int n, unsigned int *available) { diff --git > a/lib/ring/rte_ring_c11_pvt.h b/lib/ring/rte_ring_c11_pvt.h index > f895950df487..6972a9825cb7 100644 > --- a/lib/ring/rte_ring_c11_pvt.h > +++ b/lib/ring/rte_ring_c11_pvt.h > @@ -11,7 +11,7 @@ > #ifndef _RTE_RING_C11_PVT_H_ > #define _RTE_RING_C11_PVT_H_ >=20 > -static __rte_always_inline void > +static inline void > __rte_ring_update_tail(struct rte_ring_headtail *ht, uint32_t old_val, > uint32_t new_val, uint32_t single, uint32_t enqueue) { @@ - > 50,7 +50,7 @@ __rte_ring_update_tail(struct rte_ring_headtail *ht, uint32= _t > old_val, > * Actual number of objects enqueued. > * If behavior =3D=3D RTE_RING_QUEUE_FIXED, this will be 0 or n only. > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > __rte_ring_move_prod_head(struct rte_ring *r, unsigned int is_sp, > unsigned int n, enum rte_ring_queue_behavior behavior, > uint32_t *old_head, uint32_t *new_head, @@ -126,7 +126,7 > @@ __rte_ring_move_prod_head(struct rte_ring *r, unsigned int is_sp, > * - Actual number of objects dequeued. > * If behavior =3D=3D RTE_RING_QUEUE_FIXED, this will be 0 or n only= . > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > __rte_ring_move_cons_head(struct rte_ring *r, int is_sc, > unsigned int n, enum rte_ring_queue_behavior behavior, > uint32_t *old_head, uint32_t *new_head, diff --git > a/lib/ring/rte_ring_elem.h b/lib/ring/rte_ring_elem.h index > fb1edc9aad1f..35e110fc5b4b 100644 > --- a/lib/ring/rte_ring_elem.h > +++ b/lib/ring/rte_ring_elem.h > @@ -128,7 +128,7 @@ struct rte_ring *rte_ring_create_elem(const char > *name, unsigned int esize, > * @return > * The number of objects enqueued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_mp_enqueue_bulk_elem(struct rte_ring *r, const void *obj_table, > unsigned int esize, unsigned int n, unsigned int *free_space) { > @@ -157,7 +157,7 @@ rte_ring_mp_enqueue_bulk_elem(struct rte_ring *r, > const void *obj_table, > * @return > * The number of objects enqueued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_sp_enqueue_bulk_elem(struct rte_ring *r, const void *obj_table, > unsigned int esize, unsigned int n, unsigned int *free_space) { > @@ -191,7 +191,7 @@ rte_ring_sp_enqueue_bulk_elem(struct rte_ring *r, > const void *obj_table, > * @return > * The number of objects enqueued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_enqueue_bulk_elem(struct rte_ring *r, const void *obj_table, > unsigned int esize, unsigned int n, unsigned int *free_space) { > @@ -235,7 +235,7 @@ rte_ring_enqueue_bulk_elem(struct rte_ring *r, const > void *obj_table, > * - 0: Success; objects enqueued. > * - -ENOBUFS: Not enough room in the ring to enqueue; no object is > enqueued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_mp_enqueue_elem(struct rte_ring *r, void *obj, unsigned int esi= ze) { > return rte_ring_mp_enqueue_bulk_elem(r, obj, esize, 1, NULL) ? 0 : > @@ -259,7 +259,7 @@ rte_ring_mp_enqueue_elem(struct rte_ring *r, void > *obj, unsigned int esize) > * - 0: Success; objects enqueued. > * - -ENOBUFS: Not enough room in the ring to enqueue; no object is > enqueued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_sp_enqueue_elem(struct rte_ring *r, void *obj, unsigned int esi= ze) { > return rte_ring_sp_enqueue_bulk_elem(r, obj, esize, 1, NULL) ? 0 : > @@ -285,7 +285,7 @@ rte_ring_sp_enqueue_elem(struct rte_ring *r, void > *obj, unsigned int esize) > * - 0: Success; objects enqueued. > * - -ENOBUFS: Not enough room in the ring to enqueue; no object is > enqueued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_enqueue_elem(struct rte_ring *r, void *obj, unsigned int esize)= { > return rte_ring_enqueue_bulk_elem(r, obj, esize, 1, NULL) ? 0 : > @@ -314,7 +314,7 @@ rte_ring_enqueue_elem(struct rte_ring *r, void *obj, > unsigned int esize) > * @return > * The number of objects dequeued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_mc_dequeue_bulk_elem(struct rte_ring *r, void *obj_table, > unsigned int esize, unsigned int n, unsigned int *available) { > @@ -342,7 +342,7 @@ rte_ring_mc_dequeue_bulk_elem(struct rte_ring *r, > void *obj_table, > * @return > * The number of objects dequeued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_sc_dequeue_bulk_elem(struct rte_ring *r, void *obj_table, > unsigned int esize, unsigned int n, unsigned int *available) { > @@ -373,7 +373,7 @@ rte_ring_sc_dequeue_bulk_elem(struct rte_ring *r, > void *obj_table, > * @return > * The number of objects dequeued, either 0 or n > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_dequeue_bulk_elem(struct rte_ring *r, void *obj_table, > unsigned int esize, unsigned int n, unsigned int *available) { > @@ -418,7 +418,7 @@ rte_ring_dequeue_bulk_elem(struct rte_ring *r, void > *obj_table, > * - -ENOENT: Not enough entries in the ring to dequeue; no object is > * dequeued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_mc_dequeue_elem(struct rte_ring *r, void *obj_p, > unsigned int esize) > { > @@ -442,7 +442,7 @@ rte_ring_mc_dequeue_elem(struct rte_ring *r, void > *obj_p, > * - -ENOENT: Not enough entries in the ring to dequeue, no object is > * dequeued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_sc_dequeue_elem(struct rte_ring *r, void *obj_p, > unsigned int esize) > { > @@ -470,7 +470,7 @@ rte_ring_sc_dequeue_elem(struct rte_ring *r, void > *obj_p, > * - -ENOENT: Not enough entries in the ring to dequeue, no object is > * dequeued. > */ > -static __rte_always_inline int > +static inline int > rte_ring_dequeue_elem(struct rte_ring *r, void *obj_p, unsigned int esiz= e) { > return rte_ring_dequeue_bulk_elem(r, obj_p, esize, 1, NULL) ? 0 : > @@ -499,7 +499,7 @@ rte_ring_dequeue_elem(struct rte_ring *r, void *obj_p= , > unsigned int esize) > * @return > * - n: Actual number of objects enqueued. > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_mp_enqueue_burst_elem(struct rte_ring *r, const void *obj_table= , > unsigned int esize, unsigned int n, unsigned int *free_space) { > @@ -528,7 +528,7 @@ rte_ring_mp_enqueue_burst_elem(struct rte_ring *r, > const void *obj_table, > * @return > * - n: Actual number of objects enqueued. > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_sp_enqueue_burst_elem(struct rte_ring *r, const void *obj_table= , > unsigned int esize, unsigned int n, unsigned int *free_space) { > @@ -559,7 +559,7 @@ rte_ring_sp_enqueue_burst_elem(struct rte_ring *r, > const void *obj_table, > * @return > * - n: Actual number of objects enqueued. > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_enqueue_burst_elem(struct rte_ring *r, const void *obj_table, > unsigned int esize, unsigned int n, unsigned int *free_space) { > @@ -609,7 +609,7 @@ rte_ring_enqueue_burst_elem(struct rte_ring *r, const > void *obj_table, > * @return > * - n: Actual number of objects dequeued, 0 if ring is empty > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_mc_dequeue_burst_elem(struct rte_ring *r, void *obj_table, > unsigned int esize, unsigned int n, unsigned int *available) { > @@ -638,7 +638,7 @@ rte_ring_mc_dequeue_burst_elem(struct rte_ring *r, > void *obj_table, > * @return > * - n: Actual number of objects dequeued, 0 if ring is empty > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_sc_dequeue_burst_elem(struct rte_ring *r, void *obj_table, > unsigned int esize, unsigned int n, unsigned int *available) { > @@ -669,7 +669,7 @@ rte_ring_sc_dequeue_burst_elem(struct rte_ring *r, > void *obj_table, > * @return > * - Number of objects dequeued > */ > -static __rte_always_inline unsigned int > +static inline unsigned int > rte_ring_dequeue_burst_elem(struct rte_ring *r, void *obj_table, > unsigned int esize, unsigned int n, unsigned int *available) { > -- > 2.35.1