From patchwork Sat Oct 12 18:18:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 11186893 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C7FF5912 for ; Sat, 12 Oct 2019 18:20:38 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A2DA5206A1 for ; Sat, 12 Oct 2019 18:20:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="XVm6hhOi" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A2DA5206A1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iJLyr-0002VH-Sr; Sat, 12 Oct 2019 18:19:05 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iJLyr-0002VC-1y for xen-devel@lists.xenproject.org; Sat, 12 Oct 2019 18:19:05 +0000 X-Inumbo-ID: c50b072e-ed1c-11e9-bbab-bc764e2007e4 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id c50b072e-ed1c-11e9-bbab-bc764e2007e4; Sat, 12 Oct 2019 18:19:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1570904344; h=from:to:cc:subject:date:message-id:mime-version; bh=lvW8o85sda6RCA9ctUQgVi7PoEtJO0TQjHgTMs6quKw=; b=XVm6hhOifC9pW9d3lABQF5kQIk8S+Pj6gOqxkJQWGhRDVBcHtUuC9Ind IO8a02tOg7fNrYBSLcvV2A8fg2+CQBWDwXzVjGZmHcA+RdR1bqUsvcDmj OwKdi9cVmCYtPOJg4Kyfo6y9/djBggmqXWkTxzqwvsR0FZVQwQEce4und 4=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa1.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: pV8DUQ2vnYzohalSNo4X04cWxuV1vSsPNRGLSfaBfiHdysUf5nYsyizjsqhPHKP7tkzX+cmZeh AYYP+BSdB23IZ2383TP/yRufODb7O/6DFNle/7CKdzWYwgaFKjXeu0pttHbxsG3OIYZazIaz/b 3XmEOsI/4skr9M6tuIlu63JeMH2CIWbLi6SnL8CeNOw5rv+gMZRpJVI1g7n8Eqiz4I3T/kYTSc RvDEuINGjJ3nM2GST5b15aSdJleEhZfZ17hOdz0GL+Gbq0ks31LLkF4nCoNeYu7nc9bBG4JpSv sOA= X-SBRS: 2.7 X-MesageID: 6887492 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.67,288,1566878400"; d="scan'208";a="6887492" From: Andrew Cooper To: Xen-devel Date: Sat, 12 Oct 2019 19:18:59 +0100 Message-ID: <20191012181859.11110-1-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 Subject: [Xen-devel] [PATCH for-4.13] docs: Extend with details about runtime microcode loading X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Lars Kurth , Stefano Stabellini , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Tim Deegan , Jan Beulich , Ian Jackson Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" The xen-ucode utility is new with the late loading improvements in 4.13. Update the documentation suitably. Signed-off-by: Andrew Cooper Acked-by: Jan Beulich --- CC: George Dunlap CC: Ian Jackson CC: Jan Beulich CC: Konrad Rzeszutek Wilk CC: Stefano Stabellini CC: Tim Deegan CC: Wei Liu CC: Julien Grall CC: Juergen Gross CC: Lars Kurth For 4.13. This is documentation concerning new work. The additions for choosing the application policy, and logic to rescan CPUID/MSRs and start using the new functionatly will have to wait for 4.14 at this point. If anyone is curious about the wording of the warning, it should come as no surprise that an individual blob of microcode might contain more than one thing. On anything semi-modern system, there is Core microcode (the pipeline itself), and Uncore microcode (the "rest" of the integrated functionality on the chip), as well as other ancillary pieces. --- docs/admin-guide/microcode-loading.rst | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/docs/admin-guide/microcode-loading.rst b/docs/admin-guide/microcode-loading.rst index 8265b917a9..e83cadd2c2 100644 --- a/docs/admin-guide/microcode-loading.rst +++ b/docs/admin-guide/microcode-loading.rst @@ -103,3 +103,32 @@ which contains contains one of these two files:: The ``ucode=scan`` command line option will cause Xen to search through all modules to find any CPIO archives, and search the archive for the applicable file. Xen will stop searching at the first match. + + +Run time microcode loading +-------------------------- + +.. warning:: + + If at all possible, microcode updates should be done by firmware updates, + or at boot time. Not all microcode updates (or parts thereof) can be + applied at runtime. + +The ``xen-ucode`` utility can be used to initiate a runtime microcode load. +It will pass the blob to Xen, which will check to see whether the blob is +correct for the processor, and newer than the running microcode. + +If these checks pass, the entire system will be rendezvoused and an update +will be initiated on all CPUs in parallel. As with boot time loading, +diagnostics will be put out onto the console:: + + [root@host ~]# xl dmesg | grep microcode + (XEN) microcode: CPU0 updated from revision 0x1a to 0x25, date = 2018-04-02 + (XEN) microcode: CPU2 updated from revision 0x1a to 0x25, date = 2018-04-02 + (XEN) microcode: CPU4 updated from revision 0x1a to 0x25, date = 2018-04-02 + (XEN) microcode: CPU6 updated from revision 0x1a to 0x25, date = 2018-04-02 + (XEN) 4 cores are to update their microcode + (XEN) microcode: CPU0 updated from revision 0x25 to 0x27, date = 2019-02-26 + (XEN) microcode: CPU4 updated from revision 0x25 to 0x27, date = 2019-02-26 + (XEN) microcode: CPU2 updated from revision 0x25 to 0x27, date = 2019-02-26 + (XEN) microcode: CPU6 updated from revision 0x25 to 0x27, date = 2019-02-26