From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from userp2130.oracle.com (userp2130.oracle.com [156.151.31.86]) by mx.groups.io with SMTP id smtpd.web11.711.1616093146649043700 for ; Thu, 18 Mar 2021 11:45:46 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@oracle.com header.s=corp-2020-01-29 header.b=p3sKYjGV; spf=pass (domain: oracle.com, ip: 156.151.31.86, mailfrom: ankur.a.arora@oracle.com) Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12IIipBM034360; Thu, 18 Mar 2021 18:45:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : content-transfer-encoding : content-type : mime-version; s=corp-2020-01-29; bh=8we7258Yg3buV96VlCMNct3vzP0s3gXVqrH4Hxht8RA=; b=p3sKYjGVWrBCwuOzSqqBwEdiXgoDHd/5+++ggIDE1kMjILpCyJ8DOF5l+Pphco2ll4lv d0mQsK1ioNGHJ5HN8cMA8OKd/m2ZtRH+zIdRQ6s75hBvdai5XCcyITaobc/fya95KtKK k24jYwdol+5K77rqqNz29XbttPgwJKT+oUHhnSMC85beh9L8I6QaAaSra2OygcYfcDXo WDZynkOlXjRj6At9MktAi0igYhXKuyarbIm2y5wb4CM7BXbFrq7o7AnjEXpL51piyMY1 dTNPAL7puyTn3TmG/X1ypKov7lYEB86FZ7CZmJbzdoeF5BVJkeycj91iUdS2AgJIMqap vg== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 37a4ekwgqj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 Mar 2021 18:45:17 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 12IIimle078485; Thu, 18 Mar 2021 18:45:16 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2103.outbound.protection.outlook.com [104.47.55.103]) by aserp3030.oracle.com with ESMTP id 3796ywjp1r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 Mar 2021 18:45:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RfmUp8ycJIze5VoV/h7awc/HZqCAmKcoxsbhs3S2ddFlJ8hDpPXmSjfwBlgIRX2PJfC4P+eQA3WqJFIvaImJXsJKbnx5gVTrBaf59QIgV+d3T7TP+b12jmsD+DHrNYyfsv+PnsehdTUnasaGLf64zn3tkbFeyDcgGsdqKDhsNOOyccic76IC1GEk/B4MflMeQXTMxrJPk898tswBn6ioGr0+26Vh8iN0EkcpwK6ShvwW90O4ToCLITbNxzx55KN7M8Tn6wjTnxzc1jOWKe9/29OsuqAs0dOf3sMGdqqry2TGFYqz9pBsLJtrVfcwN+8z3zXSd4qSe5Vj4WDV2bFxYg== 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=8we7258Yg3buV96VlCMNct3vzP0s3gXVqrH4Hxht8RA=; b=E9J8p2wcZYJ4cFL2755+voU+81usHIkZ70++ARJwgDS0x8aIWMu7t9Bbhml03D0VaEIUnKhrSm9LkMQ/1od/5DgtgT1aMnVK/cNUHtX5bqRPHm7ftJGr3vxvYUZjWczjKK0/6uLzlB+3fDSYDLEMe3Tu3Q9wX/8TOhUwloyRVJ/aWdaMYXq+Z8pbejWCOYYKUoLuvZrC6n/o6HpI8n1IivGI6HYHhQ5u4P/9MVIHpqdrtR3cWsOQtVs1XmbBCVJwhK5w4Ny7z4xek5DXIlIhWwzRy4IXo35fLoIc58XHbKRL9MBkTcLAIqkLpXDKQkUtLqSWGGXD1QqNi/vTRHFaPA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8we7258Yg3buV96VlCMNct3vzP0s3gXVqrH4Hxht8RA=; b=n7V2v0toKHJnBUG0UXezA6ZP3irEl6T2vmoXqEwrL9MAJXSJ9Q4O3ZMeQF4kI4P+4z8khi6/u2XkNeKHe2kH1ROaNhFLNS2oWPhO7iofyrZB632LJa/ec8V92GQcH2Ejszu9Rh40vzdLeYLhKp2pHp0s82F6uMHOsbAj+Kn0NUA= Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=oracle.com; Received: from SJ0PR10MB4605.namprd10.prod.outlook.com (2603:10b6:a03:2d9::24) by BYAPR10MB3557.namprd10.prod.outlook.com (2603:10b6:a03:125::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Thu, 18 Mar 2021 18:45:13 +0000 Received: from SJ0PR10MB4605.namprd10.prod.outlook.com ([fe80::a021:790:7ce6:6f16]) by SJ0PR10MB4605.namprd10.prod.outlook.com ([fe80::a021:790:7ce6:6f16%6]) with mapi id 15.20.3912.031; Thu, 18 Mar 2021 18:45:13 +0000 From: "Ankur Arora" To: devel@edk2.groups.io Cc: Ankur Arora , Liming Gao , Michael D Kinney , Laszlo Ersek Subject: [PATCH v2] MdePkg: use CpuPause() in CpuDeadLoop() Date: Thu, 18 Mar 2021 11:45:04 -0700 Message-Id: <20210318184504.2745112-1-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.29.2 X-Originating-IP: [148.87.23.7] X-ClientProxiedBy: MWHPR1701CA0016.namprd17.prod.outlook.com (2603:10b6:301:14::26) To SJ0PR10MB4605.namprd10.prod.outlook.com (2603:10b6:a03:2d9::24) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from prion.us.oracle.com (148.87.23.7) by MWHPR1701CA0016.namprd17.prod.outlook.com (2603:10b6:301:14::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Thu, 18 Mar 2021 18:45:12 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 270b359d-75ba-4945-34c7-08d8ea3df6ea X-MS-TrafficTypeDiagnostic: BYAPR10MB3557: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 36iZtFJoo6hC7SUE7Yj05C0qLUq7dNPpzmD7jDHQ3Kdtuh+tuBsojeBKx/vFT6QTd2X/YBxInMVnhd7R2q9xjdXSeetbOqWtsGbEJySn1I06BGI7Ced70Ok0MmUP2JZgTVIFz9LQJ6a5rmlEdwvwQ9WfOD+d/Gf+BnIvHsuoW4zbudufr8FNlIBvwF4ewogVbnS18Cyc3mV2PV0jSoThVtda8DocPrbu5eh/+FR3LqWO7f1pvF76Jd0cbAjZYm4SBhCR9eGqD7lzg7KPRUON+5H5H3OQgYgoZVTZp5YwGnYwrNAJ1t4qpJAkaufrb+v3/O89XmdBFHZNsB9aM9Nn3OSzhfNA7dnFKyxsCeYY8MhnaNHJsRVRFoYJI+ec12Zv53uqKunBFctxMCFzOcPf/3gdPvnfgCC0Xy4HovaFgsg31tDGueEaS+BGBzxfOvfLHxprUmhayanGS/O6t3WCk9NS+7sUOIUgdse8mPkKM4EB8H7Yp1hAXQ6KXiryGrS0vnFXfbBTU2PTXdkucnEyrZ3FZ7dbL1xcgzXZjqzRmkcMEGMwKMgRgY0gkNXpOOM7Nvi6ei3e8EwjylsewobkKTBDunygR0f7r1vDy/DYcCKWOTd9/h2WgX8HmASk4EjQ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR10MB4605.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(396003)(376002)(346002)(366004)(136003)(39860400002)(86362001)(478600001)(6916009)(186003)(4326008)(2906002)(26005)(103116003)(16526019)(5660300002)(6666004)(956004)(2616005)(1076003)(66946007)(36756003)(38100700001)(8676002)(316002)(6486002)(54906003)(52116002)(66476007)(8936002)(83380400001)(7696005)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?ogGeYDTGECBctwLpM5RTkqAYJwQM421uR5TeaxSPR6TbWXi/1lQFs4tuORgx?= =?us-ascii?Q?+zTlVks8T059Iz7MjlDiC0oL7VR4OQpBDwIFyu+PcDgs13VPF/c9F7ajNRYz?= =?us-ascii?Q?1ve1tS2iUJ0vvV6YGXZBaDXtZUfd7+pNtXRs8yQ+dMgJzYE1pU7U1l6C+R/g?= =?us-ascii?Q?jmlJwLfTDClUXSVOBM+dYu6xgbGYOdjUDZX7wJnYFuJQZlHiYq4NtdrJYffm?= =?us-ascii?Q?ftxzVuJrs++ju/32/VMk3iz0eDExWWy9zsBkBI8mYn6WPn04/lzlbZCbubAx?= =?us-ascii?Q?KnEOuRf4KrUXSuQS33uuRRNBVz/L2vqobGyKrnrhgZ8LnHvnUroT/mRD+jdo?= =?us-ascii?Q?VAp8gUf27M/mPBIvLoFTS9v5qdVb37QaZGjm2fqGcjwqPQBmycNoaM5w9e65?= =?us-ascii?Q?ciZR/tKRuMJSYQtiwL5KwLysPJAWaY3WM6kniJOX71b9WIkSz/XuEiIe+6Pl?= =?us-ascii?Q?XleczIUUeSa/7sjDj+UWzwtKJ2ETgoK3uGUInaQ6BpIRra7xlTiYI0FtFCDR?= =?us-ascii?Q?FyQwRlqqbNH+8JuSHDVxrIbHrYMf1OUa2kSk2i2KoadkQC+C+bgg3WIo+cyJ?= =?us-ascii?Q?9tEVmLxlkbNaQ1Z7y57iDpUZ4G47AyE7AlKkF4Yg3YkZxDFKZ0ZH3qcLfNG1?= =?us-ascii?Q?f8HBLZiF1+k1k4GDOxNeOsjFbaNAT/KmuX9/fBjTimLqY6tHsYXG1eZTjSiy?= =?us-ascii?Q?J75uvs8R/bjodrSZMEkL3NJV10TKxUca8413hqDWa13FeA9saeRplPIfS1VZ?= =?us-ascii?Q?rdozFuop0QNIbiugLsjMuPjzRHf04cj000vEQGCrivRYGBH5L9hwrpJQiIL8?= =?us-ascii?Q?Sjz154mAnyYsY37fqViUkoRMtwT2zDc6As6MGiW78V3Qi56FYcSoUvmhmwn+?= =?us-ascii?Q?0GTZSH+9cHwdiISeQrfgLvvRPQmCFsLMr7HC3M4tKpTk/BV4b3tRninqDZ/C?= =?us-ascii?Q?pfDj6wkmCAgldyay3QXUgBdGSlV1SGX7mScjhpBojHbG9E8CjnhhMzzzGHU7?= =?us-ascii?Q?sZfFKB9xj2ATPcnmkC5hLk/VGVjZj6P6qNE8+o5i22K8dMjA6iGCkjKgjief?= =?us-ascii?Q?bQenZtr0CRN7qdR7vJRC4sYfN70cEvlpq+dFY/MuWqKgVi1pU9PmD6Qea0Tk?= =?us-ascii?Q?5rS7k8w+t/bdnquG9m8wzqTxBXAuS2mKYVoiA2x4TgD1ug6GYn4JWppOaiHX?= =?us-ascii?Q?Q7BekeCSbzYkasZkCS9LJmvOa5tkDyrUCTYhFgf56t2CQiRIQxpEvGRxr7E5?= =?us-ascii?Q?Vz+v3ZD315gbeHl6UtXJK+dHYB/N5R92SFPZtAeWV3KOgygBSWmIIkZdnB3Y?= =?us-ascii?Q?OzuTVZZm4KgQkFjAtgLluPLZ?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 270b359d-75ba-4945-34c7-08d8ea3df6ea X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB4605.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2021 18:45:13.0688 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mZ7i5oIWKaKcDcH+qB9QLo/86PLtr3naFh0g43C2Ad2CwITrLzWRTQWfp8mqMeoUpqkLTalFfg3F8An+pX8AEAICiA1uqlOnZaOSqTBs7KQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3557 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9927 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 adultscore=2 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103180132 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9927 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 mlxlogscore=999 spamscore=0 priorityscore=1501 adultscore=0 phishscore=0 suspectscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103180132 X-MIME-Autoconverted: from 8bit to quoted-printable by userp2130.oracle.com id 12IIipBM034360 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable CpuPause() might allow the CPU to go into a lower power state state while we spin. On X86, CpuPause() executes a PAUSE instruction which the Intel and AMD specs describe as follows: Intel: "PAUSE: An additional function of the PAUSE instruction is to reduce the power consumed by a processor while executing a spin loop. A processor can execute a spin-wait loop extremely quickly, causing the processor to consume a lot of power while it waits for the resource it is spinning on to become available. Inserting a pause instruction in a spin-wait loop greatly reduces the processor=E2=80=99s power consumptio= n." AMD: "PAUSE: Improves the performance of spin loops, by providing a hint to the processor that the current code is in a spin loop. The processor may use this to optimize power consumption while in the spin loop. Architecturally, this instruction behaves like a NOP instruction." On RISC-V and ARM64, CpuPause() executes a NOP, which is no worse than the tight loop we have. Cc: Liming Gao Signed-off-by: Ankur Arora Reviewed-by: Michael D Kinney Reviewed-by: Laszlo Ersek --- MdePkg/Library/BaseLib/CpuDeadLoop.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MdePkg/Library/BaseLib/CpuDeadLoop.c b/MdePkg/Library/BaseLi= b/CpuDeadLoop.c index 9e110cacbc96..3cd304351a65 100644 --- a/MdePkg/Library/BaseLib/CpuDeadLoop.c +++ b/MdePkg/Library/BaseLib/CpuDeadLoop.c @@ -28,5 +28,7 @@ CpuDeadLoop ( { volatile UINTN Index; =20 - for (Index =3D 0; Index =3D=3D 0;); + for (Index =3D 0; Index =3D=3D 0;) { + CpuPause(); + } } --=20 2.9.3