From patchwork Mon Feb 12 15:37:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10213445 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 218A360236 for ; Mon, 12 Feb 2018 15:57:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1176B28924 for ; Mon, 12 Feb 2018 15:57:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 057652893F; Mon, 12 Feb 2018 15:57:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 47E9F28924 for ; Mon, 12 Feb 2018 15:57:51 +0000 (UTC) Received: from localhost ([::1]:45690 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1elGUI-00031q-8y for patchwork-qemu-devel@patchwork.kernel.org; Mon, 12 Feb 2018 10:57:50 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56168) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1elGBk-0003fI-6h for qemu-devel@nongnu.org; Mon, 12 Feb 2018 10:38:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1elGBg-0004QW-Vr for qemu-devel@nongnu.org; Mon, 12 Feb 2018 10:38:40 -0500 Received: from mail-by2nam01on0058.outbound.protection.outlook.com ([104.47.34.58]:2064 helo=NAM01-BY2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1elGBg-0004OV-OE for qemu-devel@nongnu.org; Mon, 12 Feb 2018 10:38:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=SYUiJ8Eo2LeGl7PUCuNhPy5cWETQ7YbQV0VPj1W0x/E=; b=Z6XNNXcT6OoMg7YdnEK8U7N135J0KULALGTu1VWWFkUthijOSJddsV1Gkmz5m2lqOccukPU6rNhKt329LV4b5gOKAPDImnsu8sSot3CwPTLKk5WJO4DLN+SG3Li4u2mZ6GwaRY0/DcZsT2mM4IgKUy+kViXDFPXCD193JMo0J5s= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by BY2PR12MB0146.namprd12.prod.outlook.com (10.162.82.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Mon, 12 Feb 2018 15:38:33 +0000 From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 12 Feb 2018 09:37:06 -0600 Message-Id: <20180212153715.87555-20-brijesh.singh@amd.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180212153715.87555-1-brijesh.singh@amd.com> References: <20180212153715.87555-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: SN4PR0801CA0004.namprd08.prod.outlook.com (10.161.215.142) To BY2PR12MB0146.namprd12.prod.outlook.com (10.162.82.19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: fbe5d381-66e4-46b4-1219-08d5722ead8f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:BY2PR12MB0146; X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 3:8wdOuA/pSsNRctWMn2mowwLJBf+4w3A3Iuo0Mu+nxcJxm3b5scXluiOlfRk1YJmCyQEQQ1KInHXYmzlwXAfvN1t1aqmsNv2lezo9FaHealvS+Gpfc59URUBx2koK1LyJL3RrvR7HTV8nMm4zDD450pmJ/1JJ0xnjdFWw6iawqjUHqNIJO50aILv8u3JJc2R84aPVEmGu6lNoaRDHRTUOBbjACrkDh3mkSDZgq1s0HcsNP/YeYF0dAyWK7W2W1vKq; 25:Zm87VpJTWuaIEMNjczslnLur2HsaxiitiMIyUOQ7RktBsuQlaClYM2daZJuGY9kx74gNaC35vMfByrbiVMY2IOc1F7bNicvNrDKtOr03jtdFT79IvG4FX2mbkxgyR5BIJ6bceJvcob/a/qM/oDG8HsyXgtSGWAs/umHaMLzNTUM3Jb6vvyaiqTXbArri6OBw8V6apaf1G7mcLoLzvEfXpIHNKk1jEkGnjKcjJ3Kx7uUk0D1SJbLQ0ouPTQHvTxwYu+Kq1skdB8Skatv1aGCpTGsAXNwdh1lnkBHHfK408X4lldTfPBokadU6ktXRvg6ZHgj0Qiy1E2P8NVrPNlD56w==; 31:Bn3IheDn6/5k5BcyZxMkOKIHxWjifGrrpAFHD5Hz9ikpM4VeNAzlkKCLUC/h8ATl/ybbYT6iwlhAsIrg1CPxe15bML6C1hXKucHGE3Gd5UyC5DO7uexYbmIYdgkD4XAozOEKF+dcMp+AhPsousPmpus0L3q8a7MQLqwLQpAZOIjDpDwniz7E/YLC3EkfWP7viq59R3jaMix2DxVGTTXMu3Qe2BKY68BHcQ+6UnTniwQ= X-MS-TrafficTypeDiagnostic: BY2PR12MB0146: X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 20:48UJz8nD4pgHJEpkwO3VY9cyfz4GawXuecfty1RSWLVCsX1Om89aHQ1qEpMBHQT3xWXoktFGaUmYJdMg5OvFcZ+S45EgeDu+Yn3iiqoBx2J8GCJPJjVOcwHH+UtHLbVbd7g0EjwVzkgIE8h8s0KMfUVtsSA4ruqzPh30WpJ1eoUKc9ymNDiRzZGZ4dNOkQDAkFSmF+eJLlACtTx7rYudqi434iwTOz2i0uKNlC6P7abnqdjvEoMsc7zX6OIyjqrP1XQmvWONJDUWzAH1v5kqaPv0/lmflHntg5TRm8duWp2j/pPlnI9MMs8JARQ5fs+I3QRmSGjJzjie3Kqccmw8h6LC0tI4ctfkprsHRhOkp1ZsRuZPFT53QFQk4etYZi5cbReTh/YHFNLnfuL2/BkY7GhIcke+oQpnbjqOMr+GoppPV/pU93pszh6L/Rd87c3v774t+tr6AP9fmDVhuplfc9hI/R1ryfdgTPfwaFjMm4u+GTK2kRHgTi/EPKDW7DMK; 4:RNIa8uwCuSHNY6AdiI/T0tBaaskVT7Kway8Q+r3rA0sXAlirFV8ensmj8zOl/W3oMNYqldGzEhT+ewyOrxOWxoZSxkVGs6fJ6K2E7g/5wlUlfCSPEAUa2n1dx5IFaiVfHA9XzQqmzi6qNAhfN1OSJMJHex2Vwbjd37XCMne/ZWV1QkyKEHHFJbdGrSUYT147Yd7zpUjXPUR3ujnWEhTCXR2dybs7zHBMDBVxCt31T77wEWnnPnChUxxfLzXVQUsRKbRZE1dYIvnkPXfIHtRXb9eP+WTHPFj2QGIa4p8Ays3gNRt6zkBK/dDoocK7qdk7 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231101)(2400082)(944501161)(6055026)(6041288)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011); SRVR:BY2PR12MB0146; BCL:0; PCL:0; RULEID:; SRVR:BY2PR12MB0146; X-Forefront-PRVS: 0581B5AB35 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39380400002)(39860400002)(346002)(396003)(366004)(376002)(199004)(189003)(25786009)(53416004)(66066001)(8676002)(7416002)(105586002)(59450400001)(81156014)(76176011)(81166006)(5660300001)(97736004)(186003)(16526019)(8936002)(106356001)(50226002)(2361001)(6116002)(3846002)(47776003)(305945005)(1076002)(86362001)(26005)(2351001)(7736002)(478600001)(51416003)(36756003)(4326008)(2906002)(53936002)(6666003)(2950100002)(8656006)(52116002)(6486002)(48376002)(39060400002)(68736007)(54906003)(16586007)(7696005)(386003)(316002)(6916009)(50466002)(8666007); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR12MB0146; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR12MB0146; 23:+r5U/fQeOr4IJLp5FUOk5tB/dLIGswch99gtyifz1?= =?us-ascii?Q?gBpfuzqwiX/fktkA8qVRTiqwSqpIgWFwg1M1D1+IAi4svSB0czxt2TGs6vqC?= =?us-ascii?Q?8dn9tY3ZCCES+qTAB0r2tRHkfTv4PgFUZWDI+rfqTL8t2uq0O/9sdUqMeIbq?= =?us-ascii?Q?o2zASeVOr4+5NjMQ/IfgknjhRLF3S/FKqp7uJiKChJ4qJh/446W0Yjm2NONC?= =?us-ascii?Q?u15SY1s4Xot6rq6DD02+oj4eJzGSzhpnyqyq32BV2ncH2YPyjdjFLyfV+KpI?= =?us-ascii?Q?wX/1Tkngv+q+nuhZlPGSnC6l+Ghq+Sz3+v1EpEfrDIc/+4Y4W2wx0Kll4sLD?= =?us-ascii?Q?f9o7kD0QaQIzrE9fr9vZQ8meDkvnl96sAIR82hfmDRqQSbkuPBYh6gqrADv0?= =?us-ascii?Q?EA9uLIeMX7ibO8M3CHsZPc2u231SDc+YDCSwZVjVGF0BRQyc91tCft1sEEFy?= =?us-ascii?Q?BW1EjCQ43Umd+1+XbVialnC2EEJRWzACJ3gt6juGDFo60H5PEwbi1X5T3PW8?= =?us-ascii?Q?dmrMnNV2QlGhu105B4ipaKVnPnn+2wPiFJ53RVOl8RH5XUXk0Otjn6yrUhTe?= =?us-ascii?Q?hnp1GCowndpEnTj/g/MDEQ/MwhK5r+EUNXy1MiEjbZBiwF9PaCAr5Qxc6FnS?= =?us-ascii?Q?zONKVUAm6YcMkyQBqD7SRPZAwwt2/KN6l8t3XsqUuSj/+VMjPG7HMqLsxR2V?= =?us-ascii?Q?JWf61gxNfu/Urv7/K158+sCea/eN3YmIbqpWVKM/Z/TrUsXlkB8Z2E4hzzjA?= =?us-ascii?Q?Nh63BysTAUa0yqq3xcNl6nacwFGLTXClTqHnhRIHhMPuJVdReSHHLU29Txml?= =?us-ascii?Q?FYwIJO2HpWTTppRE/mgLVtNlS/0zeV35Q30AF3rknI0WNjwokGjNEeBkWNMn?= =?us-ascii?Q?2+fRscj1+bCooFAGSE4g69nEjy8K1J2qHvOBnOq+jdoEaX8VyMgApdoFj8Yg?= =?us-ascii?Q?eMTNyqexz/ExbcegmVxNulPRycv3V+iZ1b2zyKEvYbg+9mii1t231tv9ufUs?= =?us-ascii?Q?NVWARATr8m4OsFwHpUcS56Cr/BA9a5ZzD3F4I1WPLoVR+H0ao+uEcQLwHjEa?= =?us-ascii?Q?Vw/IHshtB3EhHZafJFXFO56zvy0Te8J62mjXVRklFcDeVN2UrcBDDT29OnFh?= =?us-ascii?Q?0MFP0v5StvMu80SV+vCtwY8OHnL6w7rh3mnMsvRPYQPRrU+lTD8Acm5aJWti?= =?us-ascii?Q?XSvFKtGN8X1qMbLpwu17dbjNtVMXH6ppAZNRQMmsupvFUAp2ZtCNE8Brcu2Z?= =?us-ascii?Q?BlVOlAuwcNjw+Qoc+8KMZ7+XT2CklYJ/6wBaqb00vUCcdD/+Y8bgJz8SjlN1?= =?us-ascii?Q?P1oxj++Y9jC3fFmglcuOpM=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 6:Nwdhzq589F+UWHacfpWAvpzYFAT1K0brYvKDRKyk32fUqHvKzU7W6RDMMNL10YfmpTYZmYwmLTzczFoJeZZxnY+AmtczKnsM9hHZNL1GCly8Xh/GQPIIx9D2+O521nDmLy5BEOygB58WmP+6yPvjkfNH4hzqQ0YbldL98oLly6scSDHYPuWC3Zope72H295+NgD/7UZU2NBRl2GO4p59m3+QIPT9LoHsB4HmgAgEDC2fNJqE4UxEQrY8XzfoCIdVfaLPpCF0NTakiJfzmrbfHT8phkcY/pqsPABd7yZsjg0yFa/35xEWH59H/yMOZcq+Osvn9IbXqryNGFy1Yc0u9Ng9l07Y2Q2q4O7oLDFj1VY=; 5:8jwcRKy1WrFyoi/hSBBJCatrxI0Xls5kdZqveiKXhGaiajGzAuEJOzweG/0lTIg0S8BekVXyroGjmrEsz4mExPFBe6Hi7kjV8fOjoVsa9kA2dkVU0/R9Hv3eTxqEGOw202Z5PnDt9nJOvPG3G8VeMIvHsD9IGWOIS0YAe9RKBW8=; 24:rS+ffFi+u73I6n5fkhO9Q+VogiwYPSnLa1q0+kBh9XKp2ZiHPBn/FpQeOxeFkogBg/ETo1X8FnlmaEHIERxJgFOAFUS0YZ7HVBbjYySsKYE=; 7:WIVymeJ/9RUnvK5VedFFxcZltkGm17Lqub+LDQ6+ipk5iTEMNhUhgbGsw95H8uc7h/y9nJP6UPnX0MledBdBV+Bv7oblJQ8r/T6hGe2ohvAjKylvRJRwj/E02ag95fJawx2siZ2TMDp3DXRNARDIMLFoW1iJJjpoUu7MQ9zoPBStKgmXQB6xCLFDzvZv6GcXvojc9B0dv1uvarL87crEr8Ysby24O1CrD5Hv+G5YRxzEee5fOs1H6ldZRrjDDqrN SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 20:maJhgdh9YTO129SokSk6Jzhzw82wLw5f0Mm6keyEbMuchBB1RsvcS8EPBTF+CHUM2KIPHWFxzmu5WLVxMG+7pKDIbBaD7OC7PNGcoOB04XGBZ8Tol00yjzigAPRMU6tLP+Do5/t02ePv8FjOLUg246wqLsETsLz32ZNfcHm7uAZuxmnlru3XT+Kau+AO8ZuumjQqqZ5OMdCyZ/duWbDjXSNgD+54WYz7hiSqveFE3BAJM+jJyNEnQTQLrs0sq539 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2018 15:38:33.4160 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fbe5d381-66e4-46b4-1219-08d5722ead8f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0146 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.34.58 Subject: [Qemu-devel] [PATCH v8 19/28] sev/i386: finalize the SEV guest launch flow X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Brijesh Singh , kvm@vger.kernel.org, "Michael S. Tsirkin" , Stefan Hajnoczi , Alexander Graf , "Edgar E. Iglesias" , Markus Armbruster , Bruce Rogers , Christian Borntraeger , Marcel Apfelbaum , Borislav Petkov , Thomas Lendacky , Eduardo Habkost , Richard Henderson , "Dr. David Alan Gilbert" , Alistair Francis , Cornelia Huck , Richard Henderson , Peter Crosthwaite , Paolo Bonzini Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP SEV launch flow requires us to issue LAUNCH_FINISH command before guest is ready to run. Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Brijesh Singh --- target/i386/sev.c | 29 +++++++++++++++++++++++++++++ target/i386/trace-events | 1 + 2 files changed, 30 insertions(+) diff --git a/target/i386/sev.c b/target/i386/sev.c index c7a966f2356e..eda64df4cfa5 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -548,6 +548,34 @@ static Notifier sev_machine_done_notify = { .notify = sev_launch_get_measure, }; +static void +sev_launch_finish(SEVState *s) +{ + int ret, error; + + trace_kvm_sev_launch_finish(); + ret = sev_ioctl(KVM_SEV_LAUNCH_FINISH, 0, &error); + if (ret) { + error_report("%s: LAUNCH_FINISH ret=%d fw_error=%d '%s'", + __func__, ret, error, fw_error_to_str(error)); + exit(1); + } + + sev_set_guest_state(SEV_STATE_RUNNING); +} + +static void +sev_vm_state_change(void *opaque, int running, RunState state) +{ + SEVState *s = opaque; + + if (running) { + if (!sev_check_state(SEV_STATE_RUNNING)) { + sev_launch_finish(s); + } + } +} + void * sev_guest_init(const char *id) { @@ -601,6 +629,7 @@ sev_guest_init(const char *id) sev_active = true; ram_block_notifier_add(&sev_ram_notifier); qemu_add_machine_init_done_notifier(&sev_machine_done_notify); + qemu_add_vm_change_state_handler(sev_vm_state_change, s); sev_state = s; diff --git a/target/i386/trace-events b/target/i386/trace-events index f7a1a1e6b85c..b1fbde6e40fe 100644 --- a/target/i386/trace-events +++ b/target/i386/trace-events @@ -14,3 +14,4 @@ kvm_sev_change_state(const char *old, const char *new) "%s -> %s" kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p" kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64 kvm_sev_launch_measurement(const char *value) "data %s" +kvm_sev_launch_finish(void) ""