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 A878743325; Tue, 14 Nov 2023 08:31:56 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3FCBF4027B; Tue, 14 Nov 2023 08:31:56 +0100 (CET) Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2083.outbound.protection.outlook.com [40.107.247.83]) by mails.dpdk.org (Postfix) with ESMTP id 4D5F34026F for ; Mon, 13 Nov 2023 19:15:04 +0100 (CET) ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=OfK48HCh7clxdWqBtE80gw6g+QhPGB9zqqP7Cp6+21EXNZBQwDahqqJiCvCtfjYY1lUcBqJJMOdolnyJLKQzYwbCyT2U6/Ktv1Ua57d6tJQHcyKn+stBQkh6TXcv0MduR4p9KuDWTDmLPbGrBmj3Amk1W9PF49WuXfF72/OiuyFk9Epr0qd8l/W0wkn4cbRtMX25cvQlM9dc6JDvM2aYB79af2ENIGmN9DwC0fyWbceb5hBMX3R2fzG/2OdrWLB6v5DUeOCQV1JBvC5RYooBg1JJ3QLMhCUGYW4yP5KK6z2kf0fGJf9Oq7otNH/QpPRyqdDzdTzTgm7rM1HIEsNt/w== 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=oIFNP6e/nZAfyIS8pvPld0vaVHNAVSNoxDAEi+iFPPo=; b=T7xHpjmRT9DEQLYh2DuThU9MuQJSVDfoZ7vMbKFRLm5qzmSGJtBgZfjNIRnzUym+yTwbfUHUVOBb9K0LUq4zkSquB7zPB0xVPJPEyUhsJ5JJY+EjEvSGp3PvfRYNXNTJJmSGtyQT3683yrxJhATZrGLLbswGahymvey7/q4RobZRDmrEu1qbqJa4gcMYRBdQbPyxVLFkIFKKj0nk2NvH+NmC+RqnoBj49/qDF0w4wp3zYcb3ijy8sg5YI0MvzY8clpvIKKMxiJ38bjFBfX8vr5iesvXknl6zZ50PGIhGyPJZPgJPI5Kzp2B8rTbfWb54VBjy7/eF0O+q1qb7dIU45A== 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=oIFNP6e/nZAfyIS8pvPld0vaVHNAVSNoxDAEi+iFPPo=; b=1mtJWhk2ScU5N80D8eLfqOR6iihRIHx1MN05T0sVc6I1xVYuI5bPDQdt9YaqrkV/tgxzXSX9mZ6YD1N/DTlty4xm28kHKLwV7rAS6BEIHwpXzf4qgvPmtyV/fUdWIWzL2QGA25Z7sUPU+xyz/Idn5+hUjz07rVqgufE7/cWNcWI= Received: from DUZP191CA0010.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f9::27) by AS8PR08MB9955.eurprd08.prod.outlook.com (2603:10a6:20b:639::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.29; Mon, 13 Nov 2023 18:15:02 +0000 Received: from DU6PEPF0000B61E.eurprd02.prod.outlook.com (2603:10a6:10:4f9:cafe::20) by DUZP191CA0010.outlook.office365.com (2603:10a6:10:4f9::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.29 via Frontend Transport; Mon, 13 Nov 2023 18:15:02 +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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DU6PEPF0000B61E.mail.protection.outlook.com (10.167.8.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7002.14 via Frontend Transport; Mon, 13 Nov 2023 18:15:02 +0000 Received: ("Tessian outbound 7c4ecdadb9e7:v228"); Mon, 13 Nov 2023 18:15:02 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: ab43e53a0494a878 X-CR-MTA-TID: 64aa7808 Received: from b27b7ca3e572.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A74B4AAD-B86D-4F7E-92ED-D460D407366B.1; Mon, 13 Nov 2023 18:14:55 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b27b7ca3e572.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 13 Nov 2023 18:14:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hd5JYwONAqrcz6Lv43MCXJbbmCaLnbOJkOptcCvzVs2m2urvThMO45xlQZ9oHo9MG9KxLnOtxC8t+/r5rQeBq5IAQMjqgkq6CDS57RgMUBLHbYj4a57uaE7cpO9SneEBaJDw0ted96NufhSzUG1ZcBBPrGERatL5G5T/aOsPlQmJCbdZzSTYs60KZ3OSGARccghnau3qME1K2fgQZOeM+0pvO49Ff31levlMTTTEBOo4whjKn7ZSnob+bs35oFELyL4/qrC2LpHW8Gcz/X8NlZFKLB8d0rXRw9/x1TZca6R01sXa84Q6aGQTwsqO4ZSnWyljWmfNDW7MXjky0dzaTA== 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=oIFNP6e/nZAfyIS8pvPld0vaVHNAVSNoxDAEi+iFPPo=; b=nIOmfgrGsmyMzBGI5tLZMVws7kh/4fZRkrbongaNQZLos38zjf2m3yYhwccirVp1ZoKj9b04ahy9pDuhUy2MtGouC7rvd82nwNopjxSjhTgjHndNUeG9jk+OMUgzIbYmaMSxnyU2CASXOF3EZE1JevPpsVoA/On3ltp6LXe3mccn2iQYtEjYr39e6pUpwhaVn/P5wRKdEtlVO6AKiRsmTEZv/lXL/BKlFQ1GL/xIUmveI3CD7ja0ysttW/CE9pR8JgJnQPYlQq7O9W3a1em2sFx1HT+S0DAzyNHCbNT2AS4GQJeSmsxh5iDUJ1eBq7LiSEeObciJsRwJ+PfBy8nlAg== 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=oIFNP6e/nZAfyIS8pvPld0vaVHNAVSNoxDAEi+iFPPo=; b=1mtJWhk2ScU5N80D8eLfqOR6iihRIHx1MN05T0sVc6I1xVYuI5bPDQdt9YaqrkV/tgxzXSX9mZ6YD1N/DTlty4xm28kHKLwV7rAS6BEIHwpXzf4qgvPmtyV/fUdWIWzL2QGA25Z7sUPU+xyz/Idn5+hUjz07rVqgufE7/cWNcWI= Received: from PAVPR08MB9185.eurprd08.prod.outlook.com (2603:10a6:102:30d::16) by AS4PR08MB7999.eurprd08.prod.outlook.com (2603:10a6:20b:582::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.29; Mon, 13 Nov 2023 18:14:53 +0000 Received: from PAVPR08MB9185.eurprd08.prod.outlook.com ([fe80::9abc:5d7c:4550:4189]) by PAVPR08MB9185.eurprd08.prod.outlook.com ([fe80::9abc:5d7c:4550:4189%2]) with mapi id 15.20.6977.029; Mon, 13 Nov 2023 18:14:53 +0000 From: Aditya Ambadipudi To: "dev@dpdk.org" Subject: Question about loop unrolling in rte_ring datastructure. Thread-Topic: Question about loop unrolling in rte_ring datastructure. Thread-Index: AQHaFloQHZPgl8xkUkuKMJgXq2GhnQ== Date: Mon, 13 Nov 2023 18:14:53 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAVPR08MB9185:EE_|AS4PR08MB7999:EE_|DU6PEPF0000B61E:EE_|AS8PR08MB9955:EE_ X-MS-Office365-Filtering-Correlation-Id: f2356e45-998a-4b2b-4a32-08dbe474745e 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: QizzD9su4ccR0Y6fj+aJtB5qVqY13+1bzxBOmAuxj9b5bX9U+kXe5RUE3GLVZK4eJJiPt0FOnYkJbccYbJeh4/aNhzBkHsFUenC8anu8mLC/zBOgy92Dl3KOJWogtscP5gol/Ymd72eCilCveOFI0vChYXY6TiNLfRSD/aIpoIZsgdt1gUenHKeLbQNzgdjO3PUVRZNu+sN7kSloYkOkvaH01yTNst5obTR7I7tkX74a8aqhT9rmZYKWAUAzL6EzaLZadPU7EjgrVNfs2T/fIFofb9QJEC/KkQx1OkI0H5PKd6cJRTBirdLybM0MCceNd1M9px5GhG96x/X5/FwgU3TILW32+cWFhUFIGXpDgs53J+9OV1PWfZEwxfCxUAwMYbQLUnH5vfhl46fc6/UrRrcLxbsNoujA5L9pGsm9+IINkISXcEZyPocQH+8ZsPM76cq1Z+OgiAkomDER/Ig5v3Woa6rm5J8cYLuer+POD3ftkcDLOKt27SqHmBgDwhl1OqrrxQzxMXV4765UCu7M2ow0ms3rskobYSrnamJ3Z57Nf8YQ/2PLgp02yUX1bmt+jztwog6wflYlGASyQFVy/qUIb9UJ7uaH12KWD5/Sg5HosNaL4tkAyE7f4B5HA5kVZmnrFzA9pbs6iD+mzeNZpB2F18m9L+wqzFWjmlohCWI= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAVPR08MB9185.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(396003)(346002)(39860400002)(136003)(376002)(230922051799003)(451199024)(64100799003)(186009)(1800799009)(8676002)(8936002)(52536014)(71200400001)(38070700009)(2906002)(5660300002)(86362001)(7696005)(6506007)(55016003)(33656002)(966005)(122000001)(478600001)(41300700001)(19627405001)(38100700002)(83380400001)(166002)(316002)(6916009)(9686003)(76116006)(66946007)(64756008)(66476007)(66556008)(66446008)(91956017)(36394005); DIR:OUT; SFP:1101; Content-Type: multipart/alternative; boundary="_000_PAVPR08MB9185BCDC0DDF8CB6FB4AAD88EFB3APAVPR08MB9185eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7999 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: DU6PEPF0000B61E.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 768ba911-4061-4a69-d786-08dbe4746f18 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GnhK3lvojup2kVwavkcAneQhS1klEn+1c8uc8jSQ3sMEjU+822SJj/6CZ7h9qzYXDP/+CHmkpBW7pXcpG1hWKqa8sQq3lBFZZDv6jdQFo3+3u5wxXrbLQ/I2frCtekZRv+/q2l9R7SBW0JLXS7Q1oCkNu76q7ZhpTElIn+z/Z2AFZwnluIyH+EmK1zqNbFUL5QcrvvwoLJGsilIOE3Y8N131Q4Z5eOo+mKYTW5v+KRGGnhnYFiAQ0A7TJunmf4FvIUScb6lJfHBPnYchpGle9inNkFVE5CMPXWQD7ryyXj8f/B42iRSRede0PQ5nF9o/xK/vIopwv1q1DGBStQJt06isODqOWR0UkaT8ClItNoktHZpRVHOTa8tlX1c96meRcGz7jZUHHlBLJ9fincL62m6kAOjXPsfVr88zZdTUHLT0qPd/hZKElw17qljT7flmD3Pv/OAFla4DAjrjTtz1dI+4HzrmfH1QZZhxw2T2XXS9NYuB/5+kE23KxkLd1AeWN/pACvmpCYVynwOdKD8noUeH/yw2ySY6MksrSWxWRpHOwD3D+OF7zY+AdzMRF8576u2Ueei6OWz62Ed8il4IdkiM/UW8rnIKmSuyq+Lw4HZmvcmPCtgEN5IZfThU64rN4NzxrM5juCgLbuwbFn8roPgKW1LkkATGMeJtXc+i0yEwq40C6n7LDPt34UBFlzloMJ9B8D3qkxkOPqAZCrLx+gP0N34v917oYihnxzYRPk2/eIpkzf5gGB9EWMy+bGsz1S39DgYxFlpQPUQt1Iel3UymMKKqZh7fAY2rt24dPs4= 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:(13230031)(4636009)(396003)(376002)(346002)(39860400002)(136003)(230922051799003)(82310400011)(451199024)(64100799003)(186009)(1800799009)(36840700001)(40470700004)(46966006)(40460700003)(8676002)(8936002)(52536014)(26005)(2906002)(36860700001)(5660300002)(86362001)(82740400003)(356005)(7696005)(6506007)(336012)(47076005)(33656002)(55016003)(966005)(81166007)(478600001)(41300700001)(19627405001)(83380400001)(40480700001)(166002)(6916009)(316002)(9686003)(70586007)(70206006)(36394005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2023 18:15:02.2732 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f2356e45-998a-4b2b-4a32-08dbe474745e 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: DU6PEPF0000B61E.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9955 X-Mailman-Approved-At: Tue, 14 Nov 2023 08:31:55 +0100 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 --_000_PAVPR08MB9185BCDC0DDF8CB6FB4AAD88EFB3APAVPR08MB9185eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello all. My name is Aditya Ambadipudi. I am not the sharpest tool in the shed. I was reading through the rte_ring datastructure. And I have two questions = about the optimizations that are being made there. 1. Loop unrolling: https://github.com/DPDK/dpdk/blob/main/lib/ring/rte_ring_elem_pvt.h#L28-L35 Why are we unrolling these loops manually. GCC will generate SIMD instructi= ons for these loops automatically. Irrespective of wheither or not we unrol= l the loops Unrolled loop: https://godbolt.org/z/n97noqYn7 Regular loop:https://godbolt.org/z/h6G9o9773 This is true of both x86 and ARM. 2. Normalizing to few fixed types: It looks like we separate out enqueue/dequeue operations into 3 functions. = One for each element size 32, 64, 128. Again I am not clear on why we are doing this. Both 128 & 64 are multiples = of 32. Why can't we just normalize everything to 32? I feel like this is in some shape or form related to loop unrolling. But I = am not able to figure it out on my own. I am working on a patch that is closely related to this. And I would greatl= y appreciate any assistance anyone can provide on this. Thank you, Aditya Ambadipudi IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in = any medium. Thank you. --_000_PAVPR08MB9185BCDC0DDF8CB6FB4AAD88EFB3APAVPR08MB9185eurp_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hello all.

My name is Aditya Ambadipudi. I am not the sharpest tool in the shed.

I was reading through the rte_ring datastructure. And I have two questions = about the optimizations that are being made there.

  1. = Loop unrolling:
    https://github.c= om/DPDK/dpdk/blob/main/lib/ring/rte_ring_elem_pvt.h#L28-L35 Why= are we unrolling these loops manually. GCC will generate SIMD instructions= for these loops automatically. Irrespective of wheither or not we unroll the loops

    Regular loop:https://godbolt.org/z/h6G9o9773<= /span>

    This is true of both x86 and ARM.
  2. = Normalizing to few fixed types:

    It looks like we separate out enqueue/dequeue operations into 3 functions. = One for each element size 32, 64, 128.

    Again I am not clear on why we are doing this. Both 128 & 64 are multip= les of 32. Why can't we just normalize everything to 32?

    I feel like this is in some shape or form related to loop unrolling. But I = am not able to figure it out on my own.

I am working on a patch that is closely related = to this. And I would greatly appreciate any assistance anyone can provide on this.

Thank you,
Aditya Ambadipudi
IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in any medium. Thank you. --_000_PAVPR08MB9185BCDC0DDF8CB6FB4AAD88EFB3APAVPR08MB9185eurp_--