From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.6722.1687845111294531776 for ; Mon, 26 Jun 2023 22:51:51 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=L/4SjvLq; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687845110; x=1719381110; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=bpODRk5iimwWqNFFU2UVbf/VzveUdK+8hz1+cgKwUHw=; b=L/4SjvLq5AYMDL1LYul6UfQCPkFjBVIjPfHlEUQaSXpKxq5DHNkIK4sO n7gs1Y1+4kmiWa2qg5JabypmUUs9MSicgQU161dtVYNIi3jSrFx/Q6dmt gyqhzHU4XZToLp56dYOgzDWo7UqrJBvcndaaTXPoVmheBddCVA3aFJozx AmFf8LJYHb46zobYgXntYWCPEhIaJDmbUMr+qWTi3f8ePgydTK9C2Uc+/ MVJkVnQgU+qlFmq4Mr+7p2WF68kWD5p/8abavNTAeOI0MvHgKskuKfTQC r+QkBH7r1YEpnC9+6vHYcuWzU2FHUe+e80ZIn1jJspH3e+v/fzLnd3PUU g==; X-IronPort-AV: E=McAfee;i="6600,9927,10753"; a="364028577" X-IronPort-AV: E=Sophos;i="6.01,161,1684825200"; d="scan'208";a="364028577" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jun 2023 22:51:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10753"; a="693724398" X-IronPort-AV: E=Sophos;i="6.01,161,1684825200"; d="scan'208";a="693724398" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga006.jf.intel.com with ESMTP; 26 Jun 2023 22:51:48 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 26 Jun 2023 22:51:48 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 26 Jun 2023 22:51:47 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Mon, 26 Jun 2023 22:51:47 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.173) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Mon, 26 Jun 2023 22:51:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gi69+BmJwpRg/mIZ8yyKTumRFZ7L3x2WA9spI6grvhiADRema4YUf8mgMpFfu3RUzyT/DwuFWk5qFmNOKEsj+6dVcSXCJ79WNrXbZqfPWhc4PR9Jgru/yfw2nz86IP+slf24he/Nont1N5l9hU9WIOEIP9yPUfZFIVjmbrh0PoFyhQAPjwXXwBDNx31+sX2MhjalduI+6G/+PVmBb67MotwJipCnAEMovd95N0wrSNM42aA0TLono1ez27qOSyBG+NM9JHKGMh8VJbixA6McGta//UYZwmbC+1nVCdRPBP7uF/GZW3jwhZbROYstrg+wuv77CDAc3nrh5/WE9tTdgA== 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=gKi4vTMTLEmAMGMlMiLKXLdQzyJiD7C9HNtMxYagad4=; b=ZcGQudxnLpt+Sl6md4criEld0j9FnLRYl11BCJnxSZudShxD+3sI1+GhxZmMbFjYoPYW1xm/TE1eZve4MuUp0/tae46GI+/Ayz47VZDMbYBTsYPiMGNnnlIhq+918rX4xcFI03KQOFW+elH6Gpt4R9obFWWDfB2/jGAHYgeYF2UHPxhC2gfwCH8nuMtfqGeTK4Mv3YlJuUinGs7vXl6jsVR1/78EThdA/6myo+xNE0Fihkad4lMjnE1uK/yAMs+iz3PZAymQD5XcCtK8p7/nxTXUbiNsDC6bD1JarSwndpFKpxvz8ZlbRfN/eDSpL7LFFgtK3OduONrKrmWG3VqxrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by SJ2PR11MB8566.namprd11.prod.outlook.com (2603:10b6:a03:56e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.23; Tue, 27 Jun 2023 05:51:45 +0000 Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d%2]) with mapi id 15.20.6521.023; Tue, 27 Jun 2023 05:51:45 +0000 From: "Ni, Ray" To: "Xie, Yuanhao" , "devel@edk2.groups.io" CC: Gerd Hoffmann , "Dong, Eric" , "Kumar, Rahul R" , Tom Lendacky Subject: Re: [Patch V3 5/5] UefiCpuPkg: Eliminate the second INIT-SIPI-SIPI sequence. Thread-Topic: [Patch V3 5/5] UefiCpuPkg: Eliminate the second INIT-SIPI-SIPI sequence. Thread-Index: AQHZp/Md1Zzn3DH7jUCrJFtCBy9PaK+c1vLg Date: Tue, 27 Jun 2023 05:51:44 +0000 Message-ID: References: <20230626055705.57145-1-yuanhao.xie@intel.com> <20230626055705.57145-6-yuanhao.xie@intel.com> In-Reply-To: <20230626055705.57145-6-yuanhao.xie@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN6PR11MB8244:EE_|SJ2PR11MB8566:EE_ x-ms-office365-filtering-correlation-id: 033d711f-de1b-439c-80d2-08db76d296e3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VaqGH/3ymJD//1U6PLCx/yIcQ/IKeBNQZGfwMujjtMOWw5gRQ+2BzXvE1IjZBggR6EvK1jezeM8rOuVuh9MQIPkzUtsSby0zkxt+9ftHvU4O94c/Vk2d1rHowyZknfvl0EG1Aq/S8IQSVPw9lm/A8qF0U6jEQjKLTljCeGRoHF7n2nkAKWwWNNt9OovttZyhBoZ4rJS4DdMB9iL5ay6uB5x26AH2zL8EiqCIIFf9h+DPU549alOUrQYciYdSTrYVDua/fwEqJRaH2pEAvgO7ogdLnsUEAn5g6YNbxH3C/ZphiOzCOUwMYlyHJgBGEaw+2w21apZcSmuyOY7kk+nHhnPoLpNEr1ZcnGPpALN735wJ+AuVUJGct6SWEwjJfvFW0/2vB+YeJsEJ0P6+KzGAtJ9yfDz68tIgs+h0QFKaOCe9Oce5xk/jwnLa0XJe0O94Qmdq1ISF6BVj4h8EcDXm91BpH3u1HsZ/kChUnO5HsyCBK8H2SAmfIHl99R8apNXzTStzDvVggc44bwqlHWpmUhwbE3+z7vAf3OOLUDJbGbj7/m6C/R1Y+6W4ZX8wV2ftAVYKvgKi8pBHseWnDJ7t2qgxYIqzOA6wGdqLmjcoJFV//mtnzpYLb4c5IBYSqiIK x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN6PR11MB8244.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(346002)(136003)(366004)(39860400002)(376002)(451199021)(5660300002)(52536014)(66946007)(66556008)(66446008)(4326008)(76116006)(66476007)(64756008)(33656002)(478600001)(316002)(8676002)(8936002)(2906002)(110136005)(55016003)(19627235002)(54906003)(38070700005)(86362001)(41300700001)(7696005)(71200400001)(186003)(9686003)(6506007)(26005)(82960400001)(38100700002)(122000001)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?RZznXtUKpU3UYJLKt7weO3G9D8RQIw2NG9Ha5WREkcOr2d1u3SDLk31vrSdJ?= =?us-ascii?Q?i6up6hoGCSIDb2hsuaERoQKBClhphRQq6ILMWhNHDqgTcCcNDR6kMKezf2NC?= =?us-ascii?Q?C2kR8MMwWLcPVhf0P3/WjigDYveNaWowwNNh58DLFhWKqA6qkG1dcQn8IpvQ?= =?us-ascii?Q?cO4NglMNbrOGR1rPCvPuXjNk1mWpPq+xcCIzWQ4MME4jSKVJJI4tr6sTEFfd?= =?us-ascii?Q?1gN9hGlbJ4Exdj2fyp8dRx/2E9E1OOLon3LCyzGzQmzHLxhANHl/u/XxTeKS?= =?us-ascii?Q?Ds1UXmxKOo5C8dN1M8/jjebAXs32fx/kV1fAfbLNTOsRdk6O7ArT52McbHZO?= =?us-ascii?Q?Bmt0gsjcrcRrtTnXbYnEfoy65A5MxH8zajyUvr+PtjnI1bRPSILBj2G4oL1b?= =?us-ascii?Q?k09KVEXIjQZnCUWTtioUk3iHGv/PqA4P7Vj9zeMZR1SnoqH5ukwxen7mcqkX?= =?us-ascii?Q?07PirWsHDTL46Hby0QnmyNuoRJzrk/Bcz3z7iatnmekEGchPHS44/hEjYT37?= =?us-ascii?Q?Shr7+UczXZ5KWgJUCSSzWRcph8K+d3hRp4HiZwtZmxh0YjRqZI8LpxZBi8JN?= =?us-ascii?Q?uPSguclKg57vgA22ZPAb+9nPfHtl3fUARPIKoitoMgNM2d9bBZ4zKpUvBVpK?= =?us-ascii?Q?j+2Z4s/v3+xoqfnLXHExnK51C//w1Iu5jBoRaF6veDtPdDL5bnSSiOn0lCXD?= =?us-ascii?Q?T7FXITTEgIWDdvftrhOd+MWJkBkoWgSAaEI1VS2+DaNZyonwXeFq9DFZLwaY?= =?us-ascii?Q?z0+Eb9bZvxIboZ26JXwJwR80uXqzDbpMcy6Mg+P9prJTXeTzAp5ecioRxsaA?= =?us-ascii?Q?ZoPLGa1OBN4ceIKW0VlQfeUuXsqPLvBntu6c4/G4SUrxAnvcwPv7TDD9DjuA?= =?us-ascii?Q?SrxGK5YLWGQyPOuBG5u5oCH4f8xRUhLCSS+VsU8Cf3LeLZ7OGWNEFBBfUsNK?= =?us-ascii?Q?JMmu2ddhgC+tBSaYBu6Rt4NX567gmPpe96vEwkPjdh3OG0u0xKY/mcMN5Ryq?= =?us-ascii?Q?6uHPiqNH+GfmISzN+qEcIfK2GjQ1WqRH5MnY2HDbjsyesIt3BMvDf8tIudRM?= =?us-ascii?Q?dsY1fHufm4GyQnfo6EzRK807JrowcdMC7y9WIJfyFGyO7NsvyEFbLozgsy6i?= =?us-ascii?Q?wwuCF5VVY68HrRuQvYkenOZpNNY8HmbZRQ0jar5iobObmcu19C5ABzHZz1g9?= =?us-ascii?Q?NjiG+HtVGHtE3iWJgBTtnOc+f0vdyViS4iqfa1V3boDkq9DPZOCU+t8T7DDR?= =?us-ascii?Q?H3RWQjkJcZ89THFnr0RKepffIA1Fas+BZSVe754sA4vd6xaYWSyRBZ+Pm/lK?= =?us-ascii?Q?HHeIv08IP8Oa+1GMjz/gNiHIE+HR/3i2ozZBRwpWvBQLkcLIpjOee9fyBg/7?= =?us-ascii?Q?iTZTmDW5w8QvQeVgt4+dPLddp5s/AslzJQPunvm9BZ5fwWbmNY99muaqSqy7?= =?us-ascii?Q?SEgs6kuMi89XYnSuD57ZBM9WSxHBQ9Kc1JM9LqnK1oRDt59oWyWEVsv0fHwV?= =?us-ascii?Q?mamgv6bFsj2ok5LfhZy9KrMpse6w0Ot6neLZCyAtC2rzDbGhLj7pyR41CGI/?= =?us-ascii?Q?QUL0xnj9MIEIvwu+FHk=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 033d711f-de1b-439c-80d2-08db76d296e3 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2023 05:51:44.9715 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pderg0XbG0YlqAzqwq2fjP0hrxe7h9FpqkcRkZKM9h2BJmE/+0wdlwMRVym5p/AleCi2dwXLYa8j6GrljTk1mw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB8566 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable > + OriginalValue =3D InterlockedCompareExchange32 ( > + (UINT32 *)ApStartupSignalBuffer, > + MP_HAND_OFF_SIGNAL, > + 0 > + ); > + if (OriginalValue =3D=3D MP_HAND_OFF_SIGNAL) { > + SetApState (&CpuMpData->CpuData[ProcessorNumber], CpuStateReady)= ; > + } 1. I don't think InterlockedCompareExchange32() is needed. But it's consist= ent with the following code. Ok to me. > + > InterlockedCompareExchange32 ( > (UINT32 *)ApStartupSignalBuffer, > WAKEUP_AP_SIGNAL, > @@ -887,6 +897,32 @@ ApWakeupFunction ( > } > } >=20 > +DxeApEntryPoint ( > + CPU_MP_DATA *CpuMpData > + ) > +{ > + UINTN ProcessorNumber; > + > + GetProcessorNumber (CpuMpData, &ProcessorNumber); > + InterlockedIncrement ((UINT32 *)&CpuMpData->FinishedCount); > + RestoreVolatileRegisters (&CpuMpData->CpuData[0].VolatileRegisters, FA= LSE); > + PlaceAPInMwaitLoopOrRunLoop ( > + CpuMpData->ApLoopMode, > + CpuMpData->CpuData[ProcessorNumber].StartupApSignal, > + CpuMpData->ApTargetCState > + ); 2. CpuMpData->ApLoopMode is set to PcdGet8 (PcdCpuApLoopMode) in DXE phase. It's possible that when building the Dxe instance of the library, PcdC= puApLoopMode is ApInHltLoop. Then above code should not expect the CpuMpData->ApLoopMode is either = MwaitLoop or RunLoop. But, if the CPU runs here, PcdCpuApLoopMode in PEI phase should not be= APInHltLoop. So the question becomes: Shall MpInitLib support different PcdCpuApLoo= pMode values? I prefer no for keeping the configuration simple. Then, can you please add an assertion before calling SwitchApContext()= ? (see comments below) > + if (MpHandOff->WaitLoopExecutionMode =3D=3D sizeof (VOID *)) { 3. can you add "ASSERT (CpuMpData->ApLoopMode !=3D APInHltLoop)" here? > + // > + // In scenarios where both the PEI and DXE phases run in the same > + // execution mode (32bit or 64bit), the BSP triggers > + // a start-up signal during the DXE phase to wake up the APs. This= causes any > + // APs that are currently in a loop on the memory prepared during = the PEI > + // phase to awaken and run the SwitchContextPerAp procedure. This > procedure > + // enables the APs to switch to a different memory section and con= tinue their > + // looping process there. > + // > + CpuMpData->FinishedCount =3D 0; > + CpuMpData->InitFlag =3D ApInitDone; > + SaveCpuMpData (CpuMpData); > + SwitchApContext (MpHandOff); > + ASSERT (CpuMpData->FinishedCount =3D=3D (CpuMpData->CpuCount - 1))= ;