[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 0/3] amd/msr: implement MSR_VIRT_SPEC_CTRL for HVM guests


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • Date: Tue, 1 Feb 2022 17:46:48 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none
  • 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=hGPY1jN8DxvfaKtqXBqMnzr4TdR32OJ/pPgeJPgLEX4=; b=kaxYvJmUBtk4jxsSkM6zeVqOWKPTXk8clMYZ0GSmDVnBTFibFHsXHKcHrL92TWcFQCoXJxDPqFr8NOWg4NiSQDMaNyV9IJpQMpDEQ8FtvVZC6xSunsfSlK4QBARJkY8EBfpcNtjtTjHTWuI3MPCq/7pjzYO0Nl+Cr0LnNKJj3FmW5yv8QvH061EdlcmeKsHGIWD6STiCiAC7VXla3v8/1JeTTlUTWl9EL/hqrk68DvlQT9KSfXcwcj7hHFXrlcK4lE+Vh5z0z8XwV0OweYSFhly3+zZY45VBbtAY15z6iECVaFoDppLBuQWCOYeiiJhs31IH+c9znKe/SiFpP5pTKg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nVZn64yVMjR/KyHngXzqdOmfNdtDKiqRqnOWqDJ4Bd/0IDq382Ygi6jYnktIR3WAM1Pfk1acmaTkKKvW1p7Oe5Q7R7rLZRmRiFlYKfuEVM6H8PelONuqtH+rhq5jC4laNGz2X3UOhjP8z1XV5+3E0ZUfvehK+tHocBm80UP4WGSzKAibdScsDmq6nYAzzCqRQmMShLsrKwzy8yzDCTaPh6/T1vxTf0fQcoWR8CiAcwr4cN59pCrG7cFl6xeoIJ4/9l69PSDVDwkYkoj2h62SzFs1TpJozh16jMYJmJXpVAnh578T2e8W7KXOuDHaC2U30kmDz7jJev27VW/4zRHkQw==
  • Authentication-results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Roger Pau Monne <roger.pau@xxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, "Jan Beulich" <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, "Stefano Stabellini" <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Tue, 01 Feb 2022 16:47:50 +0000
  • Ironport-data: A9a23:g2qAoaxIveAvFIEdeIp6t+e+wSrEfRIJ4+MujC+fZmUNrF6WrkUEz GAaCj+GOfnfNDHyctglb4m19k4FuZXSnYA1QVNs/iAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx 59DAjUVBJlsFhcwnvopW1TYhSEUOZugH9IQM8aZfHAhLeNYYH1500g7wbZg2tQAbeWRWGthh /uj+6UzB3f9s9JEGjp8B3Wr8U4HUFza4Vv0j3RmDRx5lAa2e0o9VfrzEZqZPXrgKrS4K8bhL wr1IBNVyUuCl/slIovNfr8W6STmSJaKVeSFoiI+t6RPHnGuD8H9u0o2HKN0VKtZt9mGt95O1 vdkiZe/cgECOb/xqP5AAjgfHj4raMWq+JefSZS+mcmazkmAeHrw2fR+SkoxOOX0+M4uXzsIr 6ZBbmlQMFbT3Ipaw5riIgVort4kI8TxepsWp1lrzC3DDOZgSpfGK0nPzYEDgmts3JARdRrYT 9UrNzFtXhfHWixSO3MoJIMHzMCF3WaqJlW0r3rK/PFqsgA/1jdZy6PxOdDYftiLQ8R9nUuCo G/CuWPjDXkyK9i32TeDtHW2iYfnnz7/WY8UPK218LhtmlL77nweDlgaWEW2pdG9i1WiQJRPJ koM4C0soKMuskuxQbHVXRe1vXqFtR40QMdLHqsx7wTl90bPy1/HXC5eFGcHMYF48p9tLdA36 rOXt93WGx5GjLaacnS28aWpnSnvaAlSIHBXMEfoUjA5y9XkpYgyiDfGQdBiDLO5g7XJJN3g/ 9yZhHNg3utO1Kbnw43+pAma2Gz0+vAlWyZovl2/Y46z0u9uiGdJjaSM4EOT0/tPJZ3xorKp7 CldwJj2AAzj4PiweM2xrAclQevBCxWtamS0bbtT838JrW7FF5mLJtg43d2GDB01WvvogBewC KMphStf5YVIIFyhZrJtboS6BqwClPa8Tom1CaiEMIsSM/CdkTNrGgk0PyZ8OEi2yCARfVwXY 8/HIa5A815HYUiY8NZGb7hEiuJ6rszP7WjSWYr633yaPUm2PxaopUM+GALWNIgRtfrcyC2Mq oo3H5bUl313DbOvCgGKod97BQ1bdhATWMGpw/G7g8beeGKK7kl7Va+IqV7gEqQ495loehDgp SDgAxIIlQak2BUq62yiMxheVV8mZr4mxVoTNi0wJ1e4nX8lZIek9qAEcJUrO7Ig8YReITRcF altlxyoDqsdRzLZ1S4aaJWh/oVueA7y3VCFPja/YSh5dJllHlSb9tjhdwrp1S8PEivo6pdu/ +z+jlvWEcgZWgBvLMfKc/bznVm/imcQxbBpVEzSL9gNJEi1qNp2Kzb8h+McKt0XLUmR3SOT0 gubWE9KpeTEr4Iv3sPOgKSI89WgH+dkRxIIFGjH97emcyLd+zP7k4NHVe+JexHbVX/1p/r+N bkEkamkPaRezlhQsod6H7J69o4E5oPi9+1A0wBpPHTXdFD3WLluFWaLgJtUvapXy74H5QbvA hCT+sNXMKmiMd/+FAJDPxIsa+mO2K1GmjTW6vhpckz26DUuoeiCWERWeRKNlDZcPP1+N4Z8m bUtv8sf6gqejBs2M4nZ0nAIpjrUdnFQAb86spw6AZPwjlt5w15PVpXQFyvq7czdcN5LKEQrf meZiaeqa26wHaYen67fzUTw4Nc=
  • Ironport-hdrordr: A9a23:Io519K/3Bij5WvpnrtRuk+E2db1zdoMgy1knxilNoENuHPBwxv rAoB1E73PJYVYqOE3Jmbi7Sc69qBTnhONICOgqTM2ftWzd2VdAQ7sSlLcKrweQfhEWldQtq5 uIEZIOcOEYZGIS5a2RjXjaYrQdKbG8gd+VbIzlvhFQpG9RGsVdB1ATMHfmLqQ6fngPObMJUL 6nouZXrTupfnoaKuy9G3k+RuDG4/nGjojvbxIqDwMurFDmt0Lj1JfKVzyjmjsOWTJGxrkvtU DDjgzC/62m99W20AXV2WP/54lf3PHh1txALsqRjdV9EESmti+YIKBaH5GStjE8p++irH4sjd n3uh8le/9+7nvAF1vF1ifF6k3F6nID+nXiwViXjT/IusriXg83DMJHmMZwbgbZw1BIhqAy7I t7m0ai87ZHBxLJmyrwo/LSUQtxq0ayqX0+1cYOkn1kV5cEYrM5l/1SwKpsKuZAIMvG0vFmLA E3Z/usp8q+MGnqIkwxh1MfjuBFBR8Ib1W7qktrgL3g79EZpgE986Ii/r1uop43zuNJd3B13Z W0Dk1WrsA8ciZvV9MHOA4ge7rANoWfe2OEDIqtSW6XZp3vfUi976LK3A==
  • Ironport-sdr: rBm4U5mhg7EzJd67m+tOSkD1koJKCPx5b6mkyO5J4Hk32Mvk8mCEo1gp+JaYXLndmlnK/WKAoo 1IrDWcqdKO+UMUD3vtG0mtsluzZdA7iw1pKsDfP6LlJxXXuXPCDc3CuAD7HSh7vklsIE6HGcGW hnJALZOvI7qNpQVpZqK4FLtk7HZzjNMoyP2TqN67bVxPsLH+/HIICuJcr456/4rxCNOAq5l1A+ 5Azl0LsorCbpYTlbYggjtnzAbvUx4e4ZT09TuhKWYHxiZ5QEXKoZGXMoEgGGv2GOv/T+G2cuWE k9kSrRwiCab53pWQjHHCsMkq
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hello,

The following series implements support for MSR_VIRT_SPEC_CTRL on
different AMD CPU families.

Note that the support is added backwards, starting with the newer CPUs
that support MSR_SPEC_CTRL and moving to the older ones either using
MSR_VIRT_SPEC_CTRL or the SSBD bit in LS_CFG.

First patch is quite clean, as it uses the shadow SPEC_CTRL in order to
set the SSBD bit and have it context switched by Xen using the existing
logic recently added.

The next two patches introduce a different way to context switch SSBD
either depending on the underlying SSBD support, so it's either using
VIRT_SPEC_CTRL or the LS_CFG MSR. They also kind of overload the usage of
several spec_ctrl variables in the hypervisor in order to store the
status of SSBD even when not using MSR_SPEC_CTRL itself. I've tried to
document those in the commit messages, but it could be controversial.

Thanks, Roger.

Roger Pau Monne (3):
  amd/msr: implement VIRT_SPEC_CTRL for HVM guests on top of SPEC_CTRL
  amd/msr: allow passthrough of VIRT_SPEC_CTRL for HVM guests
  amd/msr: implement VIRT_SPEC_CTRL for HVM guests using legacy SSBD

 docs/misc/xen-command-line.pandoc           |   5 +-
 xen/arch/x86/cpu/amd.c                      | 116 +++++++++++++++++---
 xen/arch/x86/cpuid.c                        |  18 +++
 xen/arch/x86/hvm/hvm.c                      |   1 +
 xen/arch/x86/hvm/svm/entry.S                |   8 +-
 xen/arch/x86/hvm/svm/svm.c                  |  67 +++++++++++
 xen/arch/x86/include/asm/amd.h              |   3 +
 xen/arch/x86/include/asm/cpufeatures.h      |   2 +
 xen/arch/x86/include/asm/msr.h              |   6 +-
 xen/arch/x86/msr.c                          |  15 +++
 xen/arch/x86/spec_ctrl.c                    |  11 +-
 xen/include/public/arch-x86/cpufeatureset.h |   2 +-
 12 files changed, 230 insertions(+), 24 deletions(-)

-- 
2.34.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.