From patchwork Wed Feb 7 16:06:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 870501 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="aZVcC2Oy"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zc6Gp6jgzz9s71 for ; Thu, 8 Feb 2018 03:29:22 +1100 (AEDT) Received: from localhost ([::1]:56215 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ejSb1-0004WZ-AM for incoming@patchwork.ozlabs.org; Wed, 07 Feb 2018 11:29:19 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51758) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ejSFw-00065e-T4 for qemu-devel@nongnu.org; Wed, 07 Feb 2018 11:07:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ejSFs-0006z0-T5 for qemu-devel@nongnu.org; Wed, 07 Feb 2018 11:07:32 -0500 Received: from mail-by2nam01on0079.outbound.protection.outlook.com ([104.47.34.79]:51968 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 1ejSFs-0006yU-Iv for qemu-devel@nongnu.org; Wed, 07 Feb 2018 11:07:28 -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=sfNXKzir1Xz02yshbxwOEQ33xyCv3kyC7qZ8DYGALiQ=; b=aZVcC2OyWLJVWOo+wpCqcUu1uKPeATo3MJ/PeBJ0Bt13ISHmbIdOAoEzkfpfUNd02Fdltn3w34XASA+79VtcN/vtB+sB6Jzxztc+m6DwsJw4LbEMnRTDqUNqqwwFgL+yjintkgVyrcg/y6B2+fXty7miSj52to+jfmxHmnQZRlA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by CY1PR12MB0152.namprd12.prod.outlook.com (10.161.173.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.464.11; Wed, 7 Feb 2018 16:07:25 +0000 From: Brijesh Singh To: qemu-devel@nongnu.org Date: Wed, 7 Feb 2018 10:06:31 -0600 Message-Id: <20180207160638.98872-19-brijesh.singh@amd.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180207160638.98872-1-brijesh.singh@amd.com> References: <20180207160638.98872-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM3PR12CA0071.namprd12.prod.outlook.com (10.161.151.143) To CY1PR12MB0152.namprd12.prod.outlook.com (10.161.173.22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 797f6732-8720-4b21-818c-08d56e44e187 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:CY1PR12MB0152; X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0152; 3:yL7/R9tRgX+L2jD/IfZnc7pCC1yS4rLnI7sKCeb4cZBfnOkW9rbTTbspPKjBfhx6ED0DjH+iPuuV1prklIfaMoBbxRznMvnaW+CcMLF169m3lAi9GPINonU8LSwGllTxjP+cMjhrmgo4ic41Rt2iJTclDm3FMALhv+Ay/imwcIfR/X4i5ym7X0fcyei2cXBQvtpQQBKYqvXso3jFCRsLRzAuNUct0kjk8GOjQlC7ev31OAbUTpr/i9vUBbxV2TYc; 25:CpjKJf2aP8cBAAkWOzI/EI466zBiYiJHKEH2qIwppegG4pJ0/PBGes0ecfWyscpi2f+mIvH12TnIEfK5zj3Ibtqse8/u9eXBOgs5nJgsFR1QKH7c0xMIMdra/qwqbKeiG3v5Uvwmo0pgpufWGughU52CCiv/hAp3wqeYYofrDsRQqfw3mWtuOzoLt6fjfuXh2Olk2gSmzBgpHsy9kDZCmTrZNIn5X7wyllsLfq1yB11M3S7wJELjO/CluEPmVQhE0JHHARNpZTttIthu/pT+P6mwBIJ6J1Qm70PTRUfU6FN09CSMZA75pU0og8wo7EVY2BMTeJ8ZTdO7fu5B5T/xNw==; 31:w7yqvQv6B4aCVp1UoSzKzVK0sGkfqgjkckx6sQUxXZRdBBD3nPkYmRXsEHBlwpNmVEYb0Wu4qxx5TGCcT7I7dmNwj7TNqrcj1tz0XYDwpCxSvPhRirs94IUOOl9ZS6KjSF3gHfAl8ImKMWu3lvs+bJ/gmG7G6OsfHJEDkYk+TXHFUsrtfZLW1GyrKcZaEKhjyQqnX8Lv5Zuz8LkCfKyS0Wn/kIUqcaWTgf3qs+OqSMg= X-MS-TrafficTypeDiagnostic: CY1PR12MB0152: X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0152; 20:J9b9o61Zr2HqBQYjKhZQgEtFlqcEKUm1jOsFcbz0QCRUs61BTnxvabPZMpJWkd89Vzj3h7aID9FWOldbfv0f9xOzcwgBmVcSSqu+UmAbXKwp1EjWHe/msmnOAZAw0g9eZETfsYaff4ow5VT+V7r3Ck0V/1lG0CBDQEEqRw+tDUmACyt3VpSLUbktFvFVuyXQTogsZR88AdDW6J1XCMi75c81GnpYUw2N773i5l67QwH82/HIp20bNSaypwz4TREVkK2DWlGFRf2tZnm0PQreIpcltSe1qKQy1TzVBifkUfnMkQKdIAzlWSwKj/7afSUR7ZlFBZi6NklBVT8JoCAbhq7CZclSp2oPBcaDQmrwlsxAEt+WaSd6PIP0aC0u06NyeqJCMk/vM9AF8A/+6vXPpIrNbQKxSAIXA7YH7nmSFkZ5SJSgXNNgncg4Y6c+0/KNdAvVV1D/8VQO5hmi2eRGZY3zqMycd0FEDdMqi263qBqpYzZDBUKIMD1h9BiP6Sad; 4:tsagpRe7iPog7v4acA+l/8Rqk1vaevsIa1tHIPV4Mj7D2W0Dw3mivE26xvgOlicqhsTRq7BbsKCQVGw+4Gz33Ma2SYGn5SAPEVliuGVG5hhkrvSTjejviUYutuSeiJg2NGzJOPprPt534hKVB33YIy7kyoZnaJ6OHgZa5lKolHOd7c8QJbGOML76pSSYXlrrcGYpDx9gIxIrUyngDMs9kPgEOny86pLp6dj1shJo2P25VhcesPpu4rdWG40hn4jDaGHKsZMQiZl4CpWg391ekOscrTf8aeG2E0qXrXJBLrWVOFNavK0JKqXOxY+C7dxMF6BWiv4sQ9ibNbViVIgd7A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231101)(2400082)(944501161)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:CY1PR12MB0152; BCL:0; PCL:0; RULEID:; SRVR:CY1PR12MB0152; X-Forefront-PRVS: 0576145E86 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(1496009)(39860400002)(366004)(39380400002)(346002)(396003)(376002)(199004)(189003)(50226002)(68736007)(8666007)(51416003)(6916009)(7696005)(16526019)(1076002)(50466002)(6486002)(53416004)(7736002)(575784001)(305945005)(53936002)(8656006)(8936002)(8676002)(7416002)(86362001)(4326008)(81156014)(81166006)(52116002)(6666003)(2950100002)(478600001)(2351001)(66066001)(16586007)(2906002)(54906003)(5660300001)(106356001)(2361001)(47776003)(48376002)(105586002)(3846002)(59450400001)(6116002)(36756003)(386003)(316002)(39060400002)(26005)(97736004)(186003)(76176011)(25786009)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR12MB0152; 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; CY1PR12MB0152; 23:buuD0Tp/dHuB33Hvm3YI+jEPT1Fo7ZWNAPJGUbJBR?= 7Wa0OVUID++H3q7WOGeOu577kloqqwsXJVhU++Gb/2bfn8EGw/dRHza/aNg3536cftJt1OH3u7dDSfgVzPppHZEauf9iqCBIpAUpLzW9FmP12ctDfqDjdahqztBOueHSW0Zv+3Eub9H62+B8ts5GmeA0XMK7bM3uNitoCjtWcxvz9Kp3UimpL39yHFIa8Rnos4RLRha6Llvjvyr4Se+/A5n8e770zoYzsTn0ri11yMPPTUCOBNtjDyT/Z1LJBg5f995Z9/CzQojDM+kJI3denIAxFWPt+M+UtlW9cJYeaa+GuM6wdv330bipeUlzx7bIT8EfpYuRfnsAjbDCdMlC6oJQnYGmh0KRzyw9hUYLcmS0aBYFjcYm24wjfEACe8M+4Ib+fpTxBllYWDREVIYoCDm50ceH4YnNOSIoP791mel3lqZ4tHc1Ao7EmmzTrqOrAYGvfRGTlzBD9i2wvBHEefsJhx5x5fZAOeIPD0O1SCtO83nTp2EbsPP5QjfvvgI3OB2poD+x9kd7k8SnmsCC7rs9yO3RxB4gW6NHW4r7+sWrbK4LG6yLPHte3jGb/t5vRzDteRDmYRrSTuTaynCylHtpiOaeoFtr5FE/PZ+3elosctvwzSzQ/CVHYtdn6QjIsBUCE56SfRkrOaa5vNC8igz9mRj8/k9DZszVI9Lq/COMVfN/Uy7Q/5m9jg2EHX1qrekMmHkpaWOYGa8Vc83NgVIO+4Vz48xizoJBI8MjqJT8F49sPoUKyLEFdLs22WkHGcqD28mHZRW8dcHZvt1P964RYFIqH9H6O4Fqj1xA0yl94ec2PLOEiW7WoqxkKuhIQopBKejL+1EB79LICY/EMBtqFue/lretraZ5jxsGin+0Y0kE+Op0KPVdy77o7UScHDs7Qq/PelreBvHwvYJ/nnQkt8vE9DCkqnic9u0xNWggUBSGhQmbPndbw/6DYdufSasakDB4qJpQkWlDa8nA2ZQeywDeO0vLt8fJLFxOs28kiSaSUzh2GUWR2GwzOBl7gyEtnaJghG2r5uXX//Yx3ojMVETS8oRNoTbStgBnLm47vLkpWwYKM7jfFBBtwuCwKSdYjLRPFEnh10lUcENfLLd0uuGLRZ+GUKFxgOPtvhf6kVCxme/XKhrj3OV2zExxYMSGfAgOxjv8hrPA4OCAj7pKNOxSAG7MvZkf537vhr8gV5EeB1q/ye88SwThHiQGvJJq6Ivy1NV6F4Yn1VCSnNkTuJmHXTwlx8Bhe2FdLBnsbzHXS794z7oN3TZCjbt74U/UMXUls6XHHG1a/C6tbQzrzhwghTimAhHvrTXTGTqwFZd6Igsnd6Q4D3Qz0VujpGsQpipgvFxaz7fRCpsvQiY0zr8bNZXP4QpOdfYCbhPbQ== X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0152; 6:05mZCDiCm6TiGyLCALwNDyAaAY1Msr9zJ/SuRkDPjsvRzd4vQQHub4KRZLKmzXIO+2PDtJheSZJfRAQZyFZeUVtTqBgU2CL3uCaDhrhn9d5NEVher4+Ei91ZvatCjWEm44cbiKHqmDjWxtpdhnqXWDC9eGQ4sDtq8fOSFNy31gXUG68ZgTsElESCFR9LlLZWKl+PXD38xJlzlBqf0Epd0Xa27FqGogpU8/5xLzV3FOBGjXXqLct4jWZTUnE24tTUOySad45hxQWnhCY7iB9doYZiRwM0/YMnTgbQqQHq2rdTWsAYVmbHv8U6XF3i8TVEhMkbjOvQ30FJfpKLcBhwG/1EhaDoHIcytSJhgzitXOk=; 5:GoRL3tBV1DvYMGWZzoNtBLbIMyXTb2NdbRq1oM8B2eTYIhZkWZz/8Pwzlx25Gs+3KaOvzzbDodMsBhbhOk6HKqCLHSsfvlzMA/tfZcXZNH7IUHJhVJi0DW+VH+L9udgSlzrp/7jlbSXaNBY+CpGiAP4/TchCmqSGyZxsCMRmH7w=; 24:8lrX5OYI26yZLSteQG8Di2xwydD5lTRqQNHBfzpV8LN79lQVabyMGyrRI/kpQATGXEvIaBdt9GJLsGEkG5Ryb1X3b+NMUuTTo9eq/9tmrtg=; 7:eMmd9Tfjfjgv7wwDfCWSQnjprL2pzpSn+fwBL7iaq8Ad8s2nSsGtGEaSkUADyBYiBpMVE05PISKcFPe9/m3fqmkEx7mImrn6tadjClsnTEj7sMV3jbHzJ1GM+jzHPQZDbm5TwYAbQGvb6XoiOmM/DNVJUsi3uUXNSY6c+OWJcegSvGrCTYsXqsKw+Sb1JE4yumT71jE7Rz/0EYMYUfp34RIp/cRlO4oc8t1TtlUujafc5fPx6t9PbBpuLFzOS/Qd SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0152; 20:3S4bo/d6aPSkYKP8LVmh4tozq9eRQRy8aSlelzBzJkxJn9oil1xCng40ppEJXOE7QjjBkcR/a3pYY6I+62P1ENq+iioB0pMgYA0sf+cdo5/xf+hpGJqn47tKrCgM40onHtO8EP99zQZxeRl4qPXDCTGTN3j42klovPIqsCRNb4enkDieGd4ApIN46YgwJU7SevBq8hwRFcRpOyeQrf9bT4B+i77YM0QdEs3mn9kW2llUgiT5B3ZaYw7i2vo+YvtN X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2018 16:07:25.4003 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 797f6732-8720-4b21-818c-08d56e44e187 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0152 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.34.79 Subject: [Qemu-devel] [PATCH v7 19/26] sev: 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: "Edgar E. Iglesias" , Peter Maydell , Eduardo Habkost , kvm@vger.kernel.org, "Michael S. Tsirkin" , Marcel Apfelbaum , Markus Armbruster , Peter Crosthwaite , Richard Henderson , "Dr. David Alan Gilbert" , Alistair Francis , Christian Borntraeger , Brijesh Singh , Stefan Hajnoczi , Cornelia Huck , Paolo Bonzini , Thomas Lendacky , Borislav Petkov Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" SEV launch flow requires us to issue LAUNCH_FINISH command before guest is ready to run. Cc: Paolo Bonzini Cc: kvm@vger.kernel.org Signed-off-by: Brijesh Singh --- accel/kvm/sev.c | 29 +++++++++++++++++++++++++++++ accel/kvm/trace-events | 1 + 2 files changed, 30 insertions(+) diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c index 8d99c6cda4d2..e422f43caa0b 100644 --- a/accel/kvm/sev.c +++ b/accel/kvm/sev.c @@ -547,6 +547,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) { @@ -600,6 +628,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/accel/kvm/trace-events b/accel/kvm/trace-events index 19742bf9dd30..e810d75ea1b3 100644 --- a/accel/kvm/trace-events +++ b/accel/kvm/trace-events @@ -21,3 +21,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) ""