From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: redhat.com, ip: 209.132.183.28, mailfrom: lersek@redhat.com) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by groups.io with SMTP; Fri, 02 Aug 2019 14:45:34 -0700 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2823089AD0; Fri, 2 Aug 2019 21:45:32 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-116-36.ams2.redhat.com [10.36.116.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id B243310016EA; Fri, 2 Aug 2019 21:45:30 +0000 (UTC) Subject: Re: [edk2-devel] [Patch 0/2] UefiCpuPkg: Default avoid print. To: Andrew Fish , devel@edk2.groups.io, brian.johnson@hpe.com Cc: Eric Dong , Ray Ni , Mike Kinney References: <20190731073502.24640-1-eric.dong@intel.com> <3a28f2c6-6ef1-c830-b3c6-3cf69c5ca60f@hpe.com> <93d4a7e7-9b86-b3c9-a476-ac1a40dc4723@redhat.com> From: "Laszlo Ersek" Message-ID: Date: Fri, 2 Aug 2019 23:45:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 02 Aug 2019 21:45:32 +0000 (UTC) Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 7bit On 08/01/19 23:14, Andrew Fish wrote: > The MpServices API and even the BSP don't apply at runtime, but then > again you can't run code on the APs at runtime. My understanding is that the OS can invoke a runtime service on any processor. Plus, the UEFI spec classifies runtime services into groups, and while in any given group at most one runtime service may be executed at a time, a runtime service from another group can be invoked by the OS on another processor. See "Table 35. Rules for Reentry Into Runtime Services" (and the containing section "8.1 Runtime Services Rules and Restrictions") in UEFI-2.8. As an example, one CPU could activate GetVariable() while another CPU could activate GetTime(). If both services produce debug output (most likely on a device that is excluded from OS control), some coordination could be necessary. That said, a conservative OS would likely avoid calling any runtime service while another was busy (on any processor) :) Thanks Laszlo