From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: ray.ni@intel.com) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by groups.io with SMTP; Thu, 25 Jul 2019 01:53:15 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jul 2019 01:53:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,306,1559545200"; d="scan'208";a="369579695" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga006.fm.intel.com with ESMTP; 25 Jul 2019 01:53:14 -0700 Received: from fmsmsx163.amr.corp.intel.com (10.18.125.72) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 25 Jul 2019 01:53:14 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx163.amr.corp.intel.com (10.18.125.72) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 25 Jul 2019 01:53:14 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.110]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.133]) with mapi id 14.03.0439.000; Thu, 25 Jul 2019 16:53:12 +0800 From: "Ni, Ray" To: "devel@edk2.groups.io" , "Dong, Eric" CC: Laszlo Ersek , "Kumar, Chandana C" , "Zeng, Star" Subject: Re: [edk2-devel] [Patch v3 3/6] UefiCpuPkg/MpInitLibUp: Add MpInitLibStartupAllCPUs API. Thread-Topic: [edk2-devel] [Patch v3 3/6] UefiCpuPkg/MpInitLibUp: Add MpInitLibStartupAllCPUs API. Thread-Index: AQHVQe58JsaS/uvOI0qY+6lOlbUvZ6bbCGwQ Date: Thu, 25 Jul 2019 08:53:11 +0000 Deferred-Delivery: Thu, 25 Jul 2019 08:52:00 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C244EAC@SHSMSX104.ccr.corp.intel.com> References: <20190724070727.14976-1-eric.dong@intel.com> <20190724070727.14976-4-eric.dong@intel.com> In-Reply-To: <20190724070727.14976-4-eric.dong@intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Ray Ni > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Dong, > Eric > Sent: Wednesday, July 24, 2019 3:07 PM > To: devel@edk2.groups.io > Cc: Ni, Ray ; Laszlo Ersek ; Kumar, > Chandana C ; Zeng, Star > > Subject: [edk2-devel] [Patch v3 3/6] UefiCpuPkg/MpInitLibUp: Add > MpInitLibStartupAllCPUs API. >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1973 >=20 > Add new MpInitLibStartupAllCPUs API uses to start all processors at the = same > time. >=20 > Cc: Ray Ni > Cc: Laszlo Ersek > Cc: Chandana Kumar > Cc: Star Zeng > Signed-off-by: Eric Dong > --- > UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c | 35 > ++++++++++++++++++++ > 1 file changed, 35 insertions(+) >=20 > diff --git a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c > b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c > index 36c2bb5326..b4024ee1ae 100644 > --- a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c > +++ b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c > @@ -405,3 +405,38 @@ MpInitLibWhoAmI ( > *ProcessorNumber =3D 0; > return EFI_SUCCESS; > } > + > +/** > + This service executes a caller provided function on all enabled CPUs. > + > + @param[in] Procedure A pointer to the function to be r= un on > + enabled APs of the system. See ty= pe > + EFI_AP_PROCEDURE. > + @param[in] TimeoutInMicroseconds Indicates the time limit in > microseconds for > + APs to return from Procedure, eit= her for > + blocking or non-blocking mode. Ze= ro means > + infinity. TimeoutInMicroseconds i= s ignored > + for BSP. > + @param[in] ProcedureArgument The parameter passed into > Procedure for > + all APs. > + > + @retval EFI_SUCCESS CPU have finished the procedure. > + @retval EFI_INVALID_PARAMETER Procedure is NULL. > + > +**/ > +EFI_STATUS > +EFIAPI > +MpInitLibStartupAllCPUs ( > + IN EFI_AP_PROCEDURE Procedure, > + IN UINTN TimeoutInMicroseconds, > + IN VOID *ProcedureArgument OPTIONAL > + ) > +{ > + if (Procedure =3D=3D NULL) { > + return EFI_INVALID_PARAMETER; > + } > + > + Procedure (ProcedureArgument); > + > + return EFI_SUCCESS; > +} > -- > 2.21.0.windows.1 >=20 >=20 >=20