From nobody Fri May 3 18:21:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1521099525655771.8861418037823; Thu, 15 Mar 2018 00:38:45 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BB0107FDE4; Thu, 15 Mar 2018 07:38:40 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7B5F1614E6; Thu, 15 Mar 2018 07:38:40 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id EF02D180BAD5; Thu, 15 Mar 2018 07:38:39 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w2EFkEMb006802 for ; Wed, 14 Mar 2018 11:46:26 -0400 Received: by smtp.corp.redhat.com (Postfix) id 57B2860A9D; Wed, 14 Mar 2018 15:46:14 +0000 (UTC) Received: from mx1.redhat.com (ext-mx04.extmail.prod.ext.phx2.redhat.com [10.5.110.28]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 133A3608F7; Wed, 14 Mar 2018 15:46:11 +0000 (UTC) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0050.outbound.protection.outlook.com [104.47.37.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 98BCC8046D; Wed, 14 Mar 2018 15:46:09 +0000 (UTC) Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.588.14; Wed, 14 Mar 2018 15:46:04 +0000 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=3MtC57Fa3awNSOYu7u5B2WGNaHANbJBUw0tR/YbUItI=; b=tbdHSLZnxw7e3Xfi86lZZPA0aq0RT/NeNVKiARrEMuzghCzONQgz/m0LIZKGYMOb3EbxXtZQum23FQLXhdk8SYATnGRaYpGljwZl2F3IOBFiB63mxSAxuZIx3tCYfxfbXthWqglwH8fXQW0WqArTEWc/sFWddnoGkRAqO8AwziM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: libvir-list@redhat.com Date: Wed, 14 Mar 2018 10:44:27 -0500 Message-Id: <20180314154435.17991-2-brijesh.singh@amd.com> In-Reply-To: <20180314154435.17991-1-brijesh.singh@amd.com> References: <20180314154435.17991-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: MWHPR1701CA0015.namprd17.prod.outlook.com (2603:10b6:301:14::25) To DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 845be3a6-1c95-41b3-c276-08d589c2b26f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM2PR12MB0156; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 3:byhL6DXtIyKB2+70t9K1pu7GMoN92Oq3kAD+OSdbr7MF5vuFVxhZ1U0+yugdyus+WEuOOPDTuq2Uvn3NJcMKQ/ndvvu/Zd1kjB1uwKZWfImTHIHRHDSNup0YZ0tGpp3XqAi5D0DnvBKbbdraFn4KyxSSva2xwOFMyH6y3djNbrVwK4D5ywarSDtDFfRMMDaGOq88/LUkYI4hA+sBG826WUJ/JTNbdgz+VmKVCR8Lxlq2aUWU4WyzSW2JxqcLO5wl; 25:VG68tXooijEA3mPBoJTpkM1hJ2dxoBSyPenB6cuCpx9XWWTFjCO1BPQcP8KklZmaf5RQJHIUo1o5OAoBTXVCW94JsYyrHEGydznAwKExApKdbDWCRpKGdtdNN2df6glupFVZpNv/IoLLsVg5ZzTxuYbG+VQB7w2+rvQiIzRO/WN9ftv27MDcQ8+0vE+sogkjQy1lmmXrDV8A4kKru4fZ0eEaWXVeF3qF8wMnxFUzqNKB05dO3KiTA8ynhoTwS/6PdZuqUg6y2NqUfM5zOnPTeXERVxlYFDzni0VaUON6OBwspZMAJ9X+zMqNGroCFv78NQNV36ebhcVV97siYShgPg==; 31:q8Fm78duPV+7+m6Zvq9tTeIMEpD8YFnvTLVFgQ2oUXrlPNQJo9PHUxTH+JoFPYfN323djlU+E7Fbo7gDRhGRpfzq09/7BUEGRfz6v3kDg4rp9lflNodfTPDMDKC8utDKo4twmI0Jv7EZSvhWwUSZvxnUtQfq3/3cNGIMo0/a1iMuZfBp/gnrYZ5+vI7ILcbHqadTcyyvTbJ4doeVfjgsZ/OE5kKo/EYrEfcdviVb9L4= X-MS-TrafficTypeDiagnostic: DM2PR12MB0156: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:KMeNGo4DkXbFZHVcmnbD9X+hvMXtceGGtuQBy8rYCG+ei18HTcNNzgeGAM6I4YPpOJBbUJrf0aYkV887ksAl8B0oPAH3cifMe8Fx2y4lE8k2prNir0YYhukwDxa03WSaVlCdDX7i8ivRxpJqCRp1pjmQ76jtwaNrAQohTH7GqhjAvDj/h3WMXiJ5X6PJCjkZnDzChlD5pyoC/A4ER2zUyHBhFnXGFXkqbVQQPJPyFPS8Wx21AuLGkVqsaRIGzZprRrD+hKkvi/xo2KQ8IpkqQliSK7YhODu4iKVjpFN1QB9+ph+5sXiYQndWwIGhUAU381yYHjPjwv6Riy8kMF6m+KrB0YGJma8GL6NM51DD5A3/6mjOPO3JMxuUA903/4VglhCvPHj+lTMn5eGEFuif+7KwgD4Y04Mmp11ts4WkpKTD99zEVuUq2AvHNTSqqAAW0ornmpAcOn8GLkJnJkPXIIRW7nvXXbIgWuBd6zSKDRCN83Cr2pEZhawQS8exsJB/; 4:ZzIDpwjHntVf9m2gqE+QX05l7IVDElaQA3PnYBIp/jvhnyLvLp/olVEek7jpd0rVpOrenQdewCftuM696yW1HmqhuY0UnseIw2t0GCVYYac/baEz3BM0+2HfXpngzt953PYvnmvJCOQ/b2C3hWFgPiIX/OrToiwX1/VIG8qmr8xf6CS664n3+RavocKYtEhmt8paAAinfjwLDnUjQAbiZ2EiBStqLxtrQffPTfY4QYAx6EocEEoouZz+SOsinua4Yp9NeBR4zWxgwvXFr2JNizrDTPffh6VfZmuua3A23Axll4OGDTOpZ2/2Db2jgGTF X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(3231221)(944501244)(52105095)(93006095)(93001095)(6055026)(6041310)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:DM2PR12MB0156; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0156; X-Forefront-PRVS: 0611A21987 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(39860400002)(376002)(346002)(396003)(39380400002)(199004)(189003)(59450400001)(2950100002)(6916009)(81166006)(2351001)(81156014)(4326008)(6116002)(478600001)(6666003)(52116002)(7736002)(8676002)(3846002)(7696005)(305945005)(106356001)(2361001)(23676004)(50466002)(53936002)(76176011)(47776003)(5660300001)(316002)(6486002)(54906003)(53416004)(68736007)(105586002)(97736004)(1076002)(66066001)(8936002)(50226002)(186003)(16526019)(386003)(36756003)(26005)(2906002)(86362001)(25786009)(2870700001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0156; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTU2OzIzOnZjWUJSVkNCa3JzcEVYcjU3cW5OWWlzTjAz?= =?utf-8?B?QjBWNXlUdXl6V2lJYU8wZVBudW1LQVNXaFJIbXd1cGJKc2R6ZDcwS2d6Wnpo?= =?utf-8?B?bVBndUxKQ21ZSWgyZ0VpQUY2SHJ3T2txSzBYejhucGM3dXcxYjBaSnNYSXZC?= =?utf-8?B?dmNzOWlYRWUzdU43ajBqQXNweHBmRFhKY2hueklHdDlIWEtWNXlJSlpIT1NZ?= =?utf-8?B?OWhIdHM4MTZ5bUI2WGZBcUxMRy81dnVDdEFlSEd4L3hCS1cxMDB4M3BlNVlz?= =?utf-8?B?MlA2b0VscHZzTFltL28zNFp1ZGFXWjgwTnVtVGxEd3E0dW5tWHVqeXFxb1Av?= =?utf-8?B?TTJFTXhHclNkZkFXTC9nT2tGdFEyV2NnbFIvRVRHKytya3VYUGlGaEVpczhI?= =?utf-8?B?OFBQYklLZzJjc2dPNlRFSUZWb2RVUWN2a01XUUozT2JLak8yOW1nRDF0Mlk3?= =?utf-8?B?U25xVWh3aHlBRVlyMWl2K2o4YVQyR2ozSlk2djducHZaZVNGSVJMTENCVWtr?= =?utf-8?B?RUdMNy9kV1AxbnJTc1M1WUVHdEZ3eVdJbjdaUnRHUVdlZ2dSa1RDTUpqQi9Q?= =?utf-8?B?NUpiTVlDTXRxczRXUzNhd014Zjg0M3d3bzE5UHJmdDc0MHpZWXk0SmNPNXVI?= =?utf-8?B?VEJOTUtiWEJBcHpiUEltbkg5OGhvMll5a0xkNnoycWIwTjRyRU9XUk9xV2hu?= =?utf-8?B?Qk4xK2tiV0xWalhLTVBaU1JwSXlrZW8wS2NFck9ybXZ0anBac1Zaa2o4dG5Y?= =?utf-8?B?OEx1VTRYWGVrbjlrMkdoQnM3d3I3ZlpSNG11ZEx5QzBBZGplS2l6akdsMVlF?= =?utf-8?B?R1c5U0hZcmUrN0tvMXhmUVRrUnJHUDZIVW5YUWl1eHh3bDNKYVlmREJIOXkw?= =?utf-8?B?M0tTRFc0VWRrb1owR2RSemNSS3V2WmhPcysyOGJ4aW5oOENwTFZaeVdpZytM?= =?utf-8?B?ci82aUtOMWdndThXUk9ubytNSjZXTVNBV0N5Tk1oaVUyNEd2SVM2VWNVR3Ay?= =?utf-8?B?Q3RnYnlFQ00rckc5OGs0T0I2V0JVd2JxWmlPSlZaTElLUVRMUVFFZTNMclRl?= =?utf-8?B?RzRnQzRNTFRxWDVLU3ZZbWNxbkFJdWFxZEwxSGlDbTlxN0xZSU5EWFhtS1h4?= =?utf-8?B?dG1xRGF4OStZQW9MaGdsMFl3bExVMW82dGVpU1ZGdHd2blkrS1hQMFZzL2xn?= =?utf-8?B?YVBZVnROczhBNFo3ZEN0RlVPeW0wV0hoZEJZWVN1SFhJc0tLK0NBbmNMSXg2?= =?utf-8?B?VFJ3eFZIbGc3eFhYc2NaUW9yc3AwVDcyTmthaDhrQkxaVlBVUWEyNkF4a09n?= =?utf-8?B?akllWUtyQWx5TnF4cWhLTG1ZcnRpUzlQTkVVWldpVGYxc3liRXBBV2hhZHg1?= =?utf-8?B?VkVKTXRYWjRxeVhiRWRkNSsrQlNHZDhQOGtiRUFpMXp5bmEyNHJmVUVtNWJK?= =?utf-8?B?UnNONVVrcUE3WjA3dVhaMjNGanhOVnlIWlNUWHVJVDMwUDlWUHJDeXFGZ1Fs?= =?utf-8?B?czVjTS90N1pjQVNNYlJCeFZIWTE4WGVHVXBuQjNOdmF3VGxLV0RXWHNRU1ZT?= =?utf-8?Q?tD8emCoB+GSBNIZsWCJjCWProbHZSGqhPXc9/6QCUu/w=3D?= X-Microsoft-Antispam-Message-Info: tsw+JhXounbGXKfU+1MspgXAoAaw8pBOT6m3vNdqNNdua+z0W5E0McnPpEFmX6b7jFB0PrMTxCPImG4TExRf9jt24E09ywdfF0Rd7PpjTmzd/JXEBJtZUzvH1HyusrQ5O0KeQINSLe05+GAKnsaykVb2wLKhAFI1pYlzHEPhrN0ZOWLK/osYRECesoStDEzf X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 6:MI9P1GfR1nbDRh9QEakBQj/+FTCPgxe355KT4bFnPQPapaOpR5Dch3Roy90tbYA/sPFww1ztFO6GWj/b24SBQcPsDdsNWStnQYQa0Yl71iE5ESvml19s/MNt1VVV2DlE2QFZt7z2FzqATOrz66Su9lVUZEeAWG6Iou7Jfx2TArsZH0BuQ4u9Rx1pIczzJpiELBrX/41EMqhSKtbITv2HR+iOPjVMzp0+RV0Bnt2RnG7muKQ6fEwGtX1kQqnO9yxbQoMhmCNPgOOf/TaQaQ3ay0eOcSjSlg8CUkG89M+pIipHk9mws9RRVCLmXc+43aNf5BYITDES9IUaCVhMJGYzDXrDOyibx2XdXKAfhrb1UvE=; 5:LYQ07EqWBLbwZEKcvGYaHyThD5jwOJ8oDLaEP9GAdm6F6p9LJp8yf4mVnSkhBvpYKTz3ZQDmFde5UxoNELRWq2vWSoZa1M59iGAjEvG+8/6Vqyj4Kh5Jkt7eQiYRbjJtXaXLt+Tb87313JugtwAikpQ++j/a5NlYOdzrCIhuXqY=; 24:d/UoK67aAowYLZzuuv6NIb9A1uA8x0P9VC/DRbiuRBl/s3H0bBoZ2Rf/ds0JUvVUQ42MibFgYExGMcr8xq3lEg4fRSzv3UV+GlkhbncJGoo=; 7:4KKWf9w9crC0oJjgMtDfEGlzOAP9RNAfh1REBwEIQ7k1J2Aw4LgFFr9KXW7JofvZLq/kSfAM9Zuh0ZV8ZjBDqUh5fd6WkOkL/m05oKomtfapZH7UhUTMfGrI6muVJP18C3K7/pKRgJt9Guf8r8V0+22EgOiK5JBc0Iv4uyI/4LmiEi2ZuzIyV+MLAQBcOBtD/ZxkBEuCWluPKT3MibEXMIaykcey69sQyh4jogIUOi/tr6Qfqb6A/cWXmeGDjwpI SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:y9D6jmjBThpp4xzl1kUSjNMujM5UkDfrvzDHgWcPM4K6rh4FO2fmyGcwXZdCQTnSSewM6JxahaYIUrOxa2nx0NQTgwNlgePhD5LnF4fmIgqZN8xtnURrgvHv26GsKUvVEuTsp5t8uMwa/GWqhb1+MOB1iW7PzG7b2108XywfcENtf60r+kKI5WfwVtgdMemCgi9HvQu/OydkSSLr/zSHFpZ08QS5m9ahfIBIEjiINlbzm/k83pKDs33z/Gj9Ff1r X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2018 15:46:04.1403 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 845be3a6-1c95-41b3-c276-08d589c2b26f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0156 X-Greylist: Sender passed SPF test, Sender IP whitelisted by DNSRBL, ACL 207 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 14 Mar 2018 15:46:09 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 14 Mar 2018 15:46:09 +0000 (UTC) for IP:'104.47.37.50' DOMAIN:'mail-cys01nam02on0050.outbound.protection.outlook.com' HELO:'NAM02-CY1-obe.outbound.protection.outlook.com' FROM:'brijesh.singh@amd.com' RCPT:'' X-RedHat-Spam-Score: -0.031 (DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS) 104.47.37.50 mail-cys01nam02on0050.outbound.protection.outlook.com 104.47.37.50 mail-cys01nam02on0050.outbound.protection.outlook.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.28 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: Tom Lendacky , Peter Krempa , Xiaogang Chen , Jon Grimm , Brijesh Singh , Borislav Petkov Subject: [libvirt] [PATCH v3 1/9] qemu: provide support to query the SEV capability X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Thu, 15 Mar 2018 07:38:41 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 QEMU version >=3D 2.12 provides support for launching an encrypted VMs on AMD x86 platform using Secure Encrypted Virtualization (SEV) feature. This patch adds support to query the SEV capability from the qemu. Reviewed-by: "Daniel P. Berrang=C3=A9" Signed-off-by: Brijesh Singh --- src/conf/domain_capabilities.h | 13 ++++++++ src/qemu/qemu_capabilities.c | 38 ++++++++++++++++++++++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_capspriv.h | 4 +++ src/qemu/qemu_monitor.c | 9 ++++++ src/qemu/qemu_monitor.h | 3 ++ src/qemu/qemu_monitor_json.c | 73 ++++++++++++++++++++++++++++++++++++++= ++++ src/qemu/qemu_monitor_json.h | 3 ++ 8 files changed, 144 insertions(+) diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index fa4c1e442f57..72e9daf9120f 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -137,6 +137,19 @@ struct _virDomainCapsCPU { virDomainCapsCPUModelsPtr custom; }; =20 +/* + * SEV capabilities + */ +typedef struct _virSEVCapability virSEVCapability; +typedef virSEVCapability *virSEVCapabilityPtr; +struct _virSEVCapability { + char *pdh; + char *cert_chain; + unsigned int cbitpos; + unsigned int reduced_phys_bits; +}; + + struct _virDomainCaps { virObjectLockable parent; =20 diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 3eb5ed6d1a60..6da7cf7477c7 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -459,6 +459,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST, "pl011", "machine.pseries.max-cpu-compat", "dump-completed", + "sev", ); =20 =20 @@ -525,6 +526,8 @@ struct _virQEMUCaps { size_t ngicCapabilities; virGICCapability *gicCapabilities; =20 + virSEVCapability *sevCapabilities; + virQEMUCapsHostCPUData kvmCPU; virQEMUCapsHostCPUData tcgCPU; }; @@ -1694,6 +1697,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[= ] =3D { { "sclplmconsole", QEMU_CAPS_DEVICE_SCLPLMCONSOLE }, { "isa-serial", QEMU_CAPS_DEVICE_ISA_SERIAL }, { "pl011", QEMU_CAPS_DEVICE_PL011 }, + { "sev-guest", QEMU_CAPS_SEV }, }; =20 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBalloon[]= =3D { @@ -2770,6 +2774,21 @@ virQEMUCapsSetGICCapabilities(virQEMUCapsPtr qemuCap= s, qemuCaps->ngicCapabilities =3D ncapabilities; } =20 +void +virQEMUCapsSetSEVCapabilities(virQEMUCapsPtr qemuCaps, + virSEVCapability *capabilities) +{ + virSEVCapability *cap =3D qemuCaps->sevCapabilities; + + if (cap) { + VIR_FREE(cap->pdh); + VIR_FREE(cap->cert_chain); + } + + VIR_FREE(qemuCaps->sevCapabilities); + + qemuCaps->sevCapabilities =3D capabilities; +} =20 static int virQEMUCapsProbeQMPCommands(virQEMUCapsPtr qemuCaps, @@ -3273,6 +3292,19 @@ virQEMUCapsProbeQMPGICCapabilities(virQEMUCapsPtr qe= muCaps, return 0; } =20 +static int +virQEMUCapsProbeQMPSEVCapabilities(virQEMUCapsPtr qemuCaps, + qemuMonitorPtr mon) +{ + virSEVCapability *caps =3D NULL; + + if (qemuMonitorGetSEVCapabilities(mon, &caps) < 0) + return -1; + + virQEMUCapsSetSEVCapabilities(qemuCaps, caps); + + return 0; +} =20 bool virQEMUCapsCPUFilterFeatures(const char *name, @@ -4906,6 +4938,12 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION)) virQEMUCapsSet(qemuCaps, QEMU_CAPS_CPU_CACHE); =20 + /* Probe for SEV capabilities */ + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SEV)) { + if (virQEMUCapsProbeQMPSEVCapabilities(qemuCaps, mon) < 0) + virQEMUCapsClear(qemuCaps, QEMU_CAPS_SEV); + } + ret =3D 0; cleanup: return ret; diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index c2ec2be19311..02acae491ab5 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -444,6 +444,7 @@ typedef enum { QEMU_CAPS_DEVICE_PL011, /* -device pl011 (not user-instantiable) */ QEMU_CAPS_MACHINE_PSERIES_MAX_CPU_COMPAT, /* -machine pseries,max-cpu-= compat=3D */ QEMU_CAPS_DUMP_COMPLETED, /* DUMP_COMPLETED event */ + QEMU_CAPS_SEV, /* -object sev-guest,... */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_capspriv.h b/src/qemu/qemu_capspriv.h index 222f3368e3b6..1fa85cc14f07 100644 --- a/src/qemu/qemu_capspriv.h +++ b/src/qemu/qemu_capspriv.h @@ -86,6 +86,10 @@ virQEMUCapsSetGICCapabilities(virQEMUCapsPtr qemuCaps, virGICCapability *capabilities, size_t ncapabilities); =20 +void +virQEMUCapsSetSEVCapabilities(virQEMUCapsPtr qemuCaps, + virSEVCapability *capabilities); + int virQEMUCapsParseHelpStr(const char *qemu, const char *str, diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 1d67a97789e7..2820714b5c55 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -4007,6 +4007,15 @@ qemuMonitorGetGICCapabilities(qemuMonitorPtr mon, return qemuMonitorJSONGetGICCapabilities(mon, capabilities); } =20 +int +qemuMonitorGetSEVCapabilities(qemuMonitorPtr mon, + virSEVCapability **capabilities) +{ + QEMU_CHECK_MONITOR_JSON(mon); + + return qemuMonitorJSONGetSEVCapabilities(mon, capabilities); +} + =20 int qemuMonitorNBDServerStart(qemuMonitorPtr mon, diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index adfa87aba91b..aaa14f66fdfb 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -767,6 +767,9 @@ int qemuMonitorSetMigrationCapability(qemuMonitorPtr mo= n, int qemuMonitorGetGICCapabilities(qemuMonitorPtr mon, virGICCapability **capabilities); =20 +int qemuMonitorGetSEVCapabilities(qemuMonitorPtr mon, + virSEVCapability **capabilities); + typedef enum { QEMU_MONITOR_MIGRATE_BACKGROUND =3D 1 << 0, QEMU_MONITOR_MIGRATE_NON_SHARED_DISK =3D 1 << 1, /* migration with non-= shared storage with full disk copy */ diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 08dfffdf6435..c51b98d2bda7 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6398,6 +6398,79 @@ qemuMonitorJSONGetGICCapabilities(qemuMonitorPtr mon, return ret; } =20 +int +qemuMonitorJSONGetSEVCapabilities(qemuMonitorPtr mon, + virSEVCapability **capabilities) +{ + int ret =3D -1; + virJSONValuePtr cmd; + virJSONValuePtr reply =3D NULL; + virJSONValuePtr caps; + virSEVCapability *capability =3D NULL; + const char *pdh =3D NULL, *cert_chain =3D NULL; + int cbitpos, reduced_phys_bits; + + *capabilities =3D NULL; + + if (!(cmd =3D qemuMonitorJSONMakeCommand("query-sev-capabilities", + NULL))) + return -1; + + if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0) + goto cleanup; + + + if (qemuMonitorJSONCheckError(cmd, reply) < 0) + goto cleanup; + + caps =3D virJSONValueObjectGetObject(reply, "return"); + + if (virJSONValueObjectGetNumberInt(caps, "cbitpos", &cbitpos) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("'cbitpos' field is missing")); + goto cleanup; + } + + if (virJSONValueObjectGetNumberInt(caps, "reduced-phys-bits", + &reduced_phys_bits) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("'reduced-phys-bits' field is missing")); + goto cleanup; + } + + if (!(pdh =3D virJSONValueObjectGetString(caps, "pdh"))) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("'pdh' field is missing")); + goto cleanup; + } + + if (!(cert_chain =3D virJSONValueObjectGetString(caps, "cert-chain")))= { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("'cert-chain' field is missing")); + goto cleanup; + } + + if (VIR_ALLOC(capability) < 0) + goto cleanup; + + if (VIR_STRDUP(capability->pdh, pdh) < 0) + goto cleanup; + + if (VIR_STRDUP(capability->cert_chain, cert_chain) < 0) + goto cleanup; + + capability->cbitpos =3D cbitpos; + capability->reduced_phys_bits =3D reduced_phys_bits; + *capabilities =3D capability; + ret =3D 0; + + cleanup: + virJSONValueFree(cmd); + virJSONValueFree(reply); + + return ret; +} + static virJSONValuePtr qemuMonitorJSONBuildInetSocketAddress(const char *host, const char *port) diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index ec243becc4ae..305f789902e9 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -152,6 +152,9 @@ int qemuMonitorJSONSetMigrationCapability(qemuMonitorPt= r mon, int qemuMonitorJSONGetGICCapabilities(qemuMonitorPtr mon, virGICCapability **capabilities); =20 +int qemuMonitorJSONGetSEVCapabilities(qemuMonitorPtr mon, + virSEVCapability **capabilities); + int qemuMonitorJSONMigrate(qemuMonitorPtr mon, unsigned int flags, const char *uri); --=20 2.14.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 18:21:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1521099516744790.0422350408325; Thu, 15 Mar 2018 00:38:36 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 77FCFC05B022; Thu, 15 Mar 2018 07:38:34 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 03EB763132; Thu, 15 Mar 2018 07:38:34 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 91E21180BAD7; Thu, 15 Mar 2018 07:38:33 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w2EFkG4N006805 for ; Wed, 14 Mar 2018 11:46:28 -0400 Received: by smtp.corp.redhat.com (Postfix) id 7DB5960244; Wed, 14 Mar 2018 15:46:16 +0000 (UTC) Received: from mx1.redhat.com (ext-mx04.extmail.prod.ext.phx2.redhat.com [10.5.110.28]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9298160BEB; Wed, 14 Mar 2018 15:46:13 +0000 (UTC) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0050.outbound.protection.outlook.com [104.47.37.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F3E098047A; Wed, 14 Mar 2018 15:46:11 +0000 (UTC) Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.588.14; Wed, 14 Mar 2018 15:46:05 +0000 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=f+x91TFgMs4COKQTZxrcs8KppTE6jXEDksPGugVfE9g=; b=VIEakAJyB4SoUqwqoKT9EMCjcYkgRTdBFMUmBqFl3LJxa4Dr9OdcIwZT0KMB1i9MUTQsv2XPYlN3K9/TLqyuMp0ylo8hdcsLBygn6IlS0S/Eg5g5AD+NgskrtnOfLvcW/GIp29ucSUBSKJLQW/iL111IJ03PpjfTKpzDueDAEPY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: libvir-list@redhat.com Date: Wed, 14 Mar 2018 10:44:28 -0500 Message-Id: <20180314154435.17991-3-brijesh.singh@amd.com> In-Reply-To: <20180314154435.17991-1-brijesh.singh@amd.com> References: <20180314154435.17991-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: MWHPR1701CA0015.namprd17.prod.outlook.com (2603:10b6:301:14::25) To DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ff6e11f3-590b-44c6-a4e1-08d589c2b354 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM2PR12MB0156; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 3:mcMnkkspdFeuCkbpI0wdi8I443qo3uHGvLA/U+mFAqJTR4muNXg9ZTOCN5sAFRZVpw7AYA0p060O4AaG+e3653PVEAFuzMbZX9IKLOtOuv8QEZEI/iSu1hARosOiItnyE4YXWXULorV4fyXfNXjNVcNOkmB+IbgiI2wyxkpb1GMZcQY/qvEoRCkKQgh7SimQ23rghwQpOt4l4+BwzxZyFuEn6FZ/RyXwGsCUZd4KmyRa7Z9YGSq1nkyy5AzbcFnn; 25:Qkq19kPub38kInPH/Prl7Q0y/eKvidmXvyjNBnrOvmwOUbnGlINkrOvL6KAAzdO3LazIAZ6wvTAJIR2nYYRzSf2rW1OF8yzSw0LvAR9nB4flo0BXFBPs3UTjqwu3u/YwZZdH7E+9aJmYNQIGjJ9WJlytttEt5RNC4r3+zAYk3dcRL1fWiKbGL+n14TFzH4L7djv0i4EI4Piyhg+RB3l10B8CViDL8wgCoQRuVSA6bteSyFTXyKPSrQo46G29FtpjivkEjxKsdUzQ5JYBj8rmOKOQNPCj6JvlthgkHZwmGI7tHLr+n2dtt6t3OKBp0KgofVMHjgMWS0lFwMT1mPPrSw==; 31:T87DhsLpZ6cKczJ0bX7Ky+tAP2ewFc6zOSbz9070OMiN7EZJ44lN+5HkXYVxPPmIA4kEdbtgnEOyO+4GCbRG01tkZYbg3Uy+lRenVdZZszjpdOfo31IK/HiRc5nYCjbKYYxPT+wjpqVPCPFieqWXotqEd618WecXPVNq/Svv+MEsV2X83MOjVInK8dF0PQ+Pm/Xnz8cSOkASmlLVaHOX6z6i8zD0kVW63csDYQGKmQo= X-MS-TrafficTypeDiagnostic: DM2PR12MB0156: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:WkEwTpWjygMUF5C4qyC7hM1pyS/1v+P/tqklFYwhvBupSOCI+QaUmAXiXjM5Jkslst6YfwgHlU2yiqKT2it9vwl0bwhXiMhSInlcTa2Cj2cROLpsr+jTy/+ZfR33T6fQOCmidus6DKQVYbH3kk05CuCWKHFFWhjyK1rSVeGr2PAoYI99p6STv8ufJnSv1Aoakrp51XPptaGwRQqAK2QJ5FciyhLjOmUv8kD4oJbfqTi/G7xSf3sDLuaxVWc1gP4U1KxMlx4+EulIhOjs0HtCa7B1qOVw92UUNLmlyDL7xXVC0lQz9wH6zgJugNseJ2Wb5+2c1sDL7OAiILEJ+0ZeY11IJA+ABWKs6QCeuLQO18IzriS74gGTbmDaE6C/V7voHe10/UzA04ZJKVkC9WIwTWrlqDserGKfi4lHguUlPxW3moARaOQoKlr6u5hfZZZt03do+LCjswpA/DtUveAWJorQimFcriRZ4SF8BvnbvIeXko25n6yDJdanYlHVUfA2; 4:J74t4jn4abQSpNxB3UtW5Ez/OY19X+nSDxPvvuAyxNYIwe9bLzsCUOeFSAVn5ebMd8ebOZyp8Gysh3pSWU29kOSYJRd9a1uBZbvCR9G2u21B5o4v+EYz8YUCa6X8NsCbTzMOkNHHXtB2PAVoxXw6qw8YUwNkufHYBX6IXHcwTCzMchdcMI2JSIdvlZddIMkF0a9+KAKi2puMhGRT4dzJc149wF2k7QHRXzYcP0GIfeBNoMcgdZmnjdM5fmpBLOpGEhQkrktaKOzfNyXN8Kj7RfCzRR4CM9gXePy5WkhSUSuDZAJNrTBhp6Jt7fKxyAwW X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(3231221)(944501244)(52105095)(93006095)(93001095)(6055026)(6041310)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:DM2PR12MB0156; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0156; X-Forefront-PRVS: 0611A21987 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(39860400002)(376002)(346002)(396003)(39380400002)(199004)(189003)(59450400001)(2950100002)(6916009)(81166006)(2351001)(81156014)(4326008)(6116002)(478600001)(6666003)(52116002)(7736002)(8676002)(6306002)(3846002)(7696005)(298455003)(236005)(106356001)(2361001)(23676004)(50466002)(53936002)(76176011)(47776003)(5660300001)(316002)(6486002)(54906003)(53416004)(68736007)(105586002)(97736004)(1076002)(66066001)(8936002)(606006)(50226002)(186003)(16526019)(386003)(36756003)(26005)(2906002)(86362001)(25786009)(2870700001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0156; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTU2OzIzOlNibU0rNjNiS0pWRWo4clFPbi81NHJjUlVX?= =?utf-8?B?UmZCaFJBb2VQYi93MFZFQmZrVHo2TXBYY1dRRExNdXRIM0FuZFIreUJKNkFG?= =?utf-8?B?RmJwdTVQUXBSdCtHelFNSnNKaDJTZkMrYTM0TEpPMUNUTDV1YW90Sk83UjFL?= =?utf-8?B?bHZCK0o5c1JGU3FSMmU1a1VYTDZVTWEweGY4RXJKT0czRmd2RUc2OTdoV2NK?= =?utf-8?B?RlpGZUdxNkh1L0I5Ym5VMTV0bXozQlhRRUorTXo0NmkybHNXQ05ybS8zRVdo?= =?utf-8?B?K1JyVjY2WGtLTVp6OSs5KzFEb0lvT3FaT0JqK1k4MlhwMy90VEpNSWpNNnNK?= =?utf-8?B?WTlJQ256Wmx2MVNrS2xkRi8rRFlZSE5lNXkwUzh2TUNTUGtUTGR2TG4reE55?= =?utf-8?B?WWNYZnJNZHMrNlpMQU93MXNhTFB6L2NMS21qY1ZkSVgxSElpN2pLcjltZDFo?= =?utf-8?B?M0Nka1FwbEp4Rk1BM0xzUVdBcCtBSmw5bE5paGFUMUFLY2piTU5Qam1waDV4?= =?utf-8?B?ODErK3NxZy9aVXg3MVVpZEFhbXdaK2ZSamdwaitHU0h2c0lsMTVESUxqaEFG?= =?utf-8?B?aFV0UEVMOGZMNkRxdUZoY3JYR1o5bFplRzQ5MSt0WnBBYzBua3FpdGpPd3o3?= =?utf-8?B?R1RSeDR2Q0JTSzJPeC9INVRac21uaTdabjZhOVkzZHZiZnFvSGJLL3ZFVFBx?= =?utf-8?B?RWJDcGJUcUI3YU9FVERRR1F1cXc5NlZva2RIeU9qVHlRTVJnVCtZNWU5MS9t?= =?utf-8?B?M01wWUtDdXkraEwwYUZKSVg0WE1obGZpV1F1NjdkU0preFRUUDNPZnNNSXBV?= =?utf-8?B?akNtVThkcVJlbGV2WXFHQnhKRzdaeGY2bU5Jc2d0MmZMM3JZenUxeG94V0ZK?= =?utf-8?B?RTBIQ0lUV252SnRaSkxjRWFaQXoxeFQzQTBhMlZFcFo3dlVOZWdXLzdVamtO?= =?utf-8?B?eTJSTko3blNxeEFtYmdheGsyY3dJMmUyMCtCU21vOGFYb0R1anRZRHJ3KytF?= =?utf-8?B?MnNMSEZ1WmIyUWNjdm5BN3l5Yit1NFFUdkJBclBWYUs3UVJtR0I1ZC9zSi84?= =?utf-8?B?MTUzZG5wUDRwWDVEaCtKWk81RW1HeTNza2ovNWxIenQrTFFkRzRCTkxIa3dW?= =?utf-8?B?Ym9BV2ltZ1lyc0tkTUdwSTBKOGQ5ZVFYQmczL1k4M0U4cG5qbGZlUWJlS3ZD?= =?utf-8?B?WG9qZ01ESGM1M0FzUVdjZm1jcUJZNWc5Y0J3bEdBbGdPKzE5ZDJtSFk4RkRr?= =?utf-8?B?V3BJRVJIUWJGWHJwNjZ1NlBQVVh6cmlFQ1gwaysxeDRZcDBsUXV3dTh1Vkxz?= =?utf-8?B?RlJJcnlLVUEyMzZXWE1KNDlCSnVnYjA5WHp4SkZaQnBYTTJrWXZidi9RaUJM?= =?utf-8?B?MVpTUzRwQWdGdlhGQzAyaEZLN2FOdEU3OW5BMm16MktHRXZzMDNXRkIzUzU3?= =?utf-8?B?bTA2VTNKV08vQlV6U2hRdWlnTGFaaXBJT1JCZ29PK2MyQUtpVXM5OEc0c2l3?= =?utf-8?B?Unc1VlFuM21mNGdDVTc3YVhjRlJLRCtucmlZMlhGN05pcEhTdVhaSXZ1M2gx?= =?utf-8?B?bGllNWljKytDZ1JaYVRWcG9FSElHempnemxUTGQxSTNrdGcybzJGeHR3K2d2?= =?utf-8?B?RElUVEUvV29qeTRodzdvMm91b1NhUW5kZjJkVDZTSEFobjcwRVYwaG84S3Ja?= =?utf-8?Q?wSfyeWLq60ySqd59jk=3D?= X-Microsoft-Antispam-Message-Info: D1xsu2DGWA2Chr6JEWiQBtwBzkZk7Wgi7/wJqAoUXjPXBkXG7uFK5jNGRS9sxiz2o3XlcgkJlCC//F1yU8lACeKeNM3pZawY819Jo2begscrZWX2ARkw9TgHD9jzYfD464lYlI3d0UAE4ebq1VFTdptPBBCeb43Sg5/k/nOAo4/MhEEdnDx1gd3BLkWDYqsy X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 6:L3Et/R4bpsuSBMK5ff6DmYcU4sj53kVCSfmrmewvYiOxT13Km0i+hCWEz7ZSmzk5rf13NuVRIj/VPM59B2t1Pguab5Q0fnow0PeguZt0sHa3T1UsPEdA0/EUaKat7du0d7lw848Q6Tb+ZzOIPUQzpBn76CMJ9THGBYnoSL/RCqpqS5DHPLfHBpf0wS9K5Zp+oxoy0xj0LqZ65Oua2ES0ZW9FinT5NcLbUIU6V1waAwTdqK2gW2Rlrg4GlU8Fm8xJEcaLjVjMdYiOKZek/qn0vlYskEmz3AhDf9NcVGm/mrXlqYAIfhkoOp4W6JRvGdF6DP2JDpdwJis1UCiyVIJDYzbaSnTrzeqO6xuqBmimtPo=; 5:NSXzauVahfnuVyb1QQSUjmPGvIIXNu7MWWhn5v87YVRhMaqrSY/BA05Vx1gYy3pyor1mTl8GZArj//Bc0qY/ArrXw4Co2DUjkwyhYjBYoXxBe0VDox6oCmJboQYFjoaTJsAY7GOyZeXmEDmJsjYOL38JLqMs7JOe5WEit91nBNk=; 24:Kn4ZDs36mdXgXpgm869VqpJ8hfKQWBpARrzbp2h/8P/v0kM9MoJ/J6g2TluswUkE/XMCYJIy6UHRgDLIIvkv59pj5EM4ods0OHs9vWHTJrs=; 7:lJNu5EEgcs4/JV7uOA2cBP47K3NO9Vgjgxb5SP5SG070KsWSS9EZqGG4dH59HD+QWBhqqHZWjVEpJyk4z0r5RDtHPAW3Hcd8poVyTre254U1l7svrEG+2fPCbZ640Va8SeIxtvCshGXj17VjEqdfmZpvRGg0vwFfQ649JYTZE5fZeq5xoI1ftZCyuH9MMUS+UpTHnYls/fpx6/sC4nKCGDMSKOGOGCLZ31yzokM/GN4TSZgAW0MuzEcbgX8dLQV9 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:N4BSvdR6sZFmM17Hzq2uJ5TB2xOx/ycr4uFu9tdb7MVSzCjdgpiiBMOWG7JQFY+JAtvO73lKhOb3nDxAUAgMFRz0WTaLS4YLkaN471QIpcZrCha9zCpNOk7AeJQTBp1oD2eGF3pl5bTqfPEqhPuxvWxjIrqYitQJQ0JGMuijdLPPSoQmcwYq0OvsDwcai7jp6Q91IZfae6gnvEO5slIWlnkQ6j6zqe+K7wX6/WgBpSwMeXl9u4amI410hV8ZCjce X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2018 15:46:05.6560 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ff6e11f3-590b-44c6-a4e1-08d589c2b354 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0156 X-Greylist: Sender passed SPF test, Sender IP whitelisted by DNSRBL, ACL 207 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 14 Mar 2018 15:46:12 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 14 Mar 2018 15:46:12 +0000 (UTC) for IP:'104.47.37.50' DOMAIN:'mail-cys01nam02on0050.outbound.protection.outlook.com' HELO:'NAM02-CY1-obe.outbound.protection.outlook.com' FROM:'brijesh.singh@amd.com' RCPT:'' X-RedHat-Spam-Score: -0.031 (DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS) 104.47.37.50 mail-cys01nam02on0050.outbound.protection.outlook.com 104.47.37.50 mail-cys01nam02on0050.outbound.protection.outlook.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.28 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Tom Lendacky , Peter Krempa , Xiaogang Chen , Jon Grimm , Brijesh Singh , Borislav Petkov Subject: [libvirt] [PATCH v3 2/9] qemu: introduce SEV feature in hypervisor capabilities X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Thu, 15 Mar 2018 07:38:35 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Extend hypervisor capabilities to include sev feature. When available, hypervisor supports launching an encrypted VM on AMD platform. The sev feature tag provides additional details like platform diffie-hellman key and certificate chain which can be used by the guest owner to establish a cryptographic session with the SEV firmware to negotiate keys used for attestation or to provide secret during launch. Reviewed-by: "Daniel P. Berrang=C3=A9" Signed-off-by: Brijesh Singh --- docs/formatdomaincaps.html.in | 40 ++++++++++++++++++++++++++++++++++++++= ++ docs/schemas/domaincaps.rng | 20 ++++++++++++++++++++ src/conf/domain_capabilities.c | 20 ++++++++++++++++++++ src/conf/domain_capabilities.h | 1 + src/qemu/qemu_capabilities.c | 2 ++ 5 files changed, 83 insertions(+) diff --git a/docs/formatdomaincaps.html.in b/docs/formatdomaincaps.html.in index 6bfcaf61caae..f38314166ac3 100644 --- a/docs/formatdomaincaps.html.in +++ b/docs/formatdomaincaps.html.in @@ -417,6 +417,12 @@ <value>3</value> </enum> </gic> + <sev> + <pdh> </pdh> + <cert-chain> </cert-chain> + <cbitpos> </cbitpos> + <reduced-phys-bits> </reduced-phys-bits> + </sev> </features> </domainCapabilities> @@ -441,5 +447,39 @@ gic element. =20 +

SEV capabilities

+ +

AMD Secure Encrypted Virtualization (SEV) capabilities are exposed = under + the sev element. + SEV is an extension to the AMD-V architecture which supports running + virtual machines (VMs) under the control of a hypervisor. When support= ed, + guest owner can create a VM whose memory contents will be transparently + encrypted with a key unique to that VM. + + For more details on SEV feature see: + + SEV API spec and \n"); + virBufferAdjustIndent(buf, 2); + virBufferAsprintf(buf, "%d\n", sev->cbitpos); + virBufferAsprintf(buf, "%d\n", + sev->reduced_phys_bits); + virBufferAsprintf(buf, "%s\n", sev->pdh); + virBufferAsprintf(buf, "%s\n", + sev->cert_chain); + virBufferAdjustIndent(buf, -2); + virBufferAddLit(buf, "\n"); +} + =20 char * virDomainCapsFormat(virDomainCapsPtr const caps) @@ -587,6 +606,7 @@ virDomainCapsFormat(virDomainCapsPtr const caps) virBufferAdjustIndent(&buf, 2); =20 virDomainCapsFeatureGICFormat(&buf, &caps->gic); + virDomainCapsFeatureSEVFormat(&buf, caps->sev); =20 virBufferAdjustIndent(&buf, -2); virBufferAddLit(&buf, "\n"); diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index 72e9daf9120f..2e8596ceea58 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -170,6 +170,7 @@ struct _virDomainCaps { /* add new domain devices here */ =20 virDomainCapsFeatureGIC gic; + virSEVCapabilityPtr sev; /* add new domain features here */ }; =20 diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 6da7cf7477c7..4517ea19224d 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -5925,6 +5925,8 @@ virQEMUCapsFillDomainCaps(virCapsPtr caps, virQEMUCapsFillDomainDeviceHostdevCaps(qemuCaps, hostdev) < 0 || virQEMUCapsFillDomainFeatureGICCaps(qemuCaps, domCaps) < 0) return -1; + + domCaps->sev =3D qemuCaps->sevCapabilities; return 0; } =20 --=20 2.14.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 18:21:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 152109952566075.15192171159458; Thu, 15 Mar 2018 00:38:45 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5AEA67B02E; Thu, 15 Mar 2018 07:38:44 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 246AD60BF4; Thu, 15 Mar 2018 07:38:44 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E2801B34AA; Thu, 15 Mar 2018 07:38:43 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w2EFkHvE006808 for ; Wed, 14 Mar 2018 11:46:29 -0400 Received: by smtp.corp.redhat.com (Postfix) id AE8505D70B; Wed, 14 Mar 2018 15:46:17 +0000 (UTC) Received: from mx1.redhat.com (ext-mx04.extmail.prod.ext.phx2.redhat.com [10.5.110.28]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 858A35D6B2; Wed, 14 Mar 2018 15:46:15 +0000 (UTC) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0050.outbound.protection.outlook.com [104.47.37.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A738C8048D; Wed, 14 Mar 2018 15:46:13 +0000 (UTC) Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.588.14; Wed, 14 Mar 2018 15:46:07 +0000 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=UBodXDT7VHC4IF4lVR6SxDVJ67t2bVEhzXoTEeeVTx0=; b=5eH55l6WiMk05pVwVt0uVoioake+Mg1Nc++oYu3LEmdoAZyCrcCZuoNwDj7CDejncFA1rUVQzQqQBNJqIG59KMXoewAeZ8xnNRHuLWoP+l1bfL87hSV6CTwRDyzNEfibZzzEHXjAp/vkdN2aHROCv0RwuT2hEFXVkZ/0JjwBwWc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: libvir-list@redhat.com Date: Wed, 14 Mar 2018 10:44:29 -0500 Message-Id: <20180314154435.17991-4-brijesh.singh@amd.com> In-Reply-To: <20180314154435.17991-1-brijesh.singh@amd.com> References: <20180314154435.17991-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: MWHPR1701CA0015.namprd17.prod.outlook.com (2603:10b6:301:14::25) To DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 053e3f01-5be5-4411-e99f-08d589c2b43b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM2PR12MB0156; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 3:UkfvvhDk5kNE+k9xYG6MadmBhBFX84xcC7QsedbDqBxY/zA90iiscYq7FFsevrlKVATvWtTbl8NXwLSqbPQzpHxDjf9TT2giP7AP9lDJxnytaIfxqESeSdJ0MBl607S3SWGn35Owlwt8P044hNnaOm3owWx0WXojt0ztFaqoorNqAcFnrPeZTvDjO7JIQ77a8jdPvOJyG+6QaOQBpNvE0kfUBOJMz570tFhqrFOrw/yevfpyeA+TzWyd3/Bz/N1j; 25:z/ZbZ1lTy4jUCt82neTDSJKyCR5IzMeK3YaLhQ1a/RkqfYgai3L8drhVvYRsfT4L09GtJdkwdIl47Bfk6p/ETH+VVz8wFcis0VaJt60YsjB98FL2w+ywjNsPOFVNG/a59WZgBl9UhKnhm5dWSLe6L9dB4RAGzWmDMpRKs5v7pgYOU6kyHMYLslUa1aNy8uy4BQEsd3x196yk/TRaSOQ2zbJcYEhKH05V7RU4fzgj3kguK0bTXTDVmgzEOU5mXkk2T+qWV+KS+mw9I36qOspRU0su4U2i8L1Ot2B3KpFjGU+0ro/fOYU/a+H9A+ye8JeKhmYNuRgYvb2uCtkO4BHjEA==; 31:+jCgn2Vie+PX5cMCwKdDN+n4pyTtYhOXvtLYjZu45AEAzAE94zxc3OGy4JtoulrRvecyZdI+vVcBQPjLJTJkZYh3XwW7JrVJAJI8OHO/odhIPMadmcZtQeWuK3bFHljO7dzj1V4YjiC3o8KPORo/fRvcaBuxd5IGlWBDmCrhvfDDTvf41E++uhIXU9+qzfIvcgiDaAzo6AhVlQ8xda1nc/nFXKbmzqu+kERN1jJhHW0= X-MS-TrafficTypeDiagnostic: DM2PR12MB0156: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:aXqPBmOvQbc7yG3t5PQn1TSvYndv2pCwBEC32pv3P+HGlvNWZ2BlH+PKIqTw5ejE0Jzb8I6L2y5j06y/GwejL4c3MR5RCPobZmQtPnrrEOErtuvqlH64A+eO9M0DEkZ/luYSiE4HKHCvj9+sAhF8Ru1ae2yV//clFuR0vY9ksbI8hGdXZHvL2GEna1EeyoYPAUtSQ0EBKvUZz8rJF+l0Uhd1kEq4/5FkcZ/AqIIdbMDxu9TSd1Cb0bYLvmB7eL5SiNGGHHr972YrYzkVbqpep06z8eLKLDEktjoK7iWtvb+Mp/f7o1qnRzG/owL6qn0ES0fRmmrhhvKFNgRtPeTDJ1+ZGg0YARFSgVEYik2kJoZ8GfRP1juWK5KjMVtTfXEmggIYN0S4u9oQ8KCmGEgPAOmyT1betEj1UMBPpoO3brVCC8xEtAwMebZnQ1SKAiUAsZJADEdUMnG4xX4fmjSY8ZT/qeZpA2choIw/bf1hWTjLkTJY22tgyW9Qcr78wLk6; 4:PFafUbadmXIY5z5KPkgDQm0B3j477hUoDtSEKcp+8dOMiL1RL4T9ZS+cLXyl+pjcgwMs+TvpyOVEuCvoqC1XdmtH9GCF0Jqm/e5S9X+qxO0lqAptIl2MiiSqsPpAcZhDFXrn7UXu3wDsCrc0DR2DW6W+QtuUJ1EKUe29qXRBGo84AXoJLkcIzbRIZvV3rIGhQmApCd09JydS6D5Ms3PdF4R35w1v1ZpMyrIIRaKS/uuQCPWjWqiXTJnRgFpjvHp2oFAVz3jxL6ELp1WdQZCQz6zxt5J7qwvrkSnVPPDNpI+9OGbf4XJXNmahMgw6a62AyZRQD8/wk4iPtrgAEemyItK9y72Y2xRcAhoFQUN+6hU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192374486261705)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(3231221)(944501244)(52105095)(93006095)(93001095)(6055026)(6041310)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:DM2PR12MB0156; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0156; X-Forefront-PRVS: 0611A21987 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(39860400002)(376002)(346002)(396003)(39380400002)(199004)(189003)(59450400001)(2950100002)(6916009)(81166006)(2351001)(81156014)(4326008)(6116002)(478600001)(6666003)(52116002)(7736002)(8676002)(6306002)(3846002)(7696005)(305945005)(236005)(106356001)(2361001)(23676004)(50466002)(53936002)(76176011)(47776003)(5660300001)(316002)(6486002)(54906003)(53416004)(68736007)(105586002)(97736004)(966005)(1076002)(66066001)(8936002)(606006)(50226002)(186003)(16526019)(15650500001)(386003)(36756003)(26005)(2906002)(86362001)(25786009)(2870700001)(19607625011); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0156; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTU2OzIzOnN1NWxadHZqMDVLNkR3bkV6ZWVCSWh0TkFD?= =?utf-8?B?YW1CMktKb1lkRjJvNkw1N2w0R2NHU09zTWxIQ1IzWGpFUnMyVkZZcEZJS1VO?= =?utf-8?B?SUZGNGUxeGhaV3I2UG15cDNiM1BHaWl3bDROaUZ6eDdQOWRaZ0JVYlRqVHZx?= =?utf-8?B?WDU5aWNsSDJlRVBPZ2xkRGN5dlNMTXR0S1pGNGpxOHFlczBxRVJyN29yNUdO?= =?utf-8?B?WnlUdkZ6U3NpR0diVHkyQXdVMXJXb2x2QjRqUXpkcmZ3TEJLR2ltbHZwSnpO?= =?utf-8?B?ZTBMMWxhL08vcStkNytkVkI1L3piY3ZUK24wTlNud3JhdXJWM1NzZnZBMER4?= =?utf-8?B?ZWFoT2U1R1laK3l3LzVpNXhockFndWp1N1lrQllCOTVkMDFWSktLZW5LUTBQ?= =?utf-8?B?Vjk3WUhHcEQ1aTVsWXlCbHI1eHk3M05IZTJpS1pLbGI0RkNNVk1BNEFPSE5p?= =?utf-8?B?ZDhWTm1RN3lDREs2YVF4dmU5c0Q3alZTdk9rVmljN2FGa0V6aGtvUHZmMGV3?= =?utf-8?B?eThXeW9IcTlLNjd0Tzl0NXdGakwrYWNTVjVRYi9KZ25TOEVDYjE5ekd6bkVq?= =?utf-8?B?Vlhwcjc4OFV0NStOTlY1NjA5ZzhUdkNHanpjRXBOODV5YjM1M2hDUjk0aFMr?= =?utf-8?B?NEpKYkh6M2JSODR2YWRZaWNRYXZhWTZwZW1ldWljOERkaTNDcDI1Z3dCQ1p4?= =?utf-8?B?Z0RBa1JjQ2s0a2tRbnpSSHAxT0VSKzhLUGo4aFhOaTI4bDdwK1dOeXRMcTd1?= =?utf-8?B?dHlCcDdNQWpmZGI5ZG9YaFlpZDZFYU4wc29XL0xGWXd0dFliYnlXTHZ1eEs1?= =?utf-8?B?ZysvL2dRYnNhY21yS1QwdzF2UlNNMlhVOUhpZU5TWXBXOEJ5WW5rQ1FLeVoy?= =?utf-8?B?V3VrRjlRbGZNaXNaNitWUnpVSFdQamFmVzg0S0NMV2p4bHNPcUhwVGdnL0FC?= =?utf-8?B?Uy9hNTc0cy9CVEcwSERua0ROYmZwQ3ZSRDFOY0o4WW5kUnVBMVlodURiVkU1?= =?utf-8?B?VGV0OXFiTFhjT3B6eXl2UW5GTkUvamxFK3UrbXgrRkFCWVJuUG9jT2ozeHZR?= =?utf-8?B?eW9LbVRZYlNEbFF5M0twb3RpWGRyaS9jZXN5enQ5dHlHMHJYVm4xbXBjQnpl?= =?utf-8?B?MVlUTjE3aitHTGZCNldOZDBpckMxaFRWdzRQeWlYSkJUeVUyTTRIWFcwVXJJ?= =?utf-8?B?dGpOazNGRE40Y0ZQeXNaNzNFY2hnSGJJLzNEa1VWMURxMDVDN3R4ckI1dDIy?= =?utf-8?B?b21sVHJLNUNKQTA5RWlJSFBLOEZacjZ1RWRIL09Db3ViTHdmMVpYbDloRmwr?= =?utf-8?B?UEFhaVpId0Z1b0lzL2N1WXFVUzhNejJMR0RLcGdlWGkwRmdlRmZWcEY2YXNH?= =?utf-8?B?eVZ5Y0NLclJOWmV4Nk9velZTY1pPMG5kL1RpWGNkUmhySU0vaFUwVEJXY005?= =?utf-8?B?R0g3ejlHdHNyK3BMNm96QnJIQ3JidjlBN28rd0NxMGFwZVgrbnpGTVdqeDFF?= =?utf-8?B?a2ZvSnFjeU55a3hSZ0JzMHRzMll2a3YxNm1mc3RHWDF5a3JDcHVxWFBldWFw?= =?utf-8?B?dU9NN2JpdnBhT0xvT09SSUhBSzNDYjhHSk9nck5Pc210MmR4djdqcXBnOVVx?= =?utf-8?B?U05UMnRiQ0NBM0tXcmQ0QVExTGZKQmhsS3RWN1Y2TnBWZVZ0Mk1lZERlQjRv?= =?utf-8?B?Sk42N2NkOEVBSnZ0UFBKZlM4azRoNk5YRFhrL1ZrZUFyU1ArVDdHWUtCcE9h?= =?utf-8?Q?VcngPAD1+mySOuCjIz2gkn9F5sLmjKsjHZKtU=3D?= X-Microsoft-Antispam-Message-Info: NkfGL2KLg1F/rh9tgeiCpgLxdIswLjt3gMQMHrqMFM0l9RztdEPhPxT4rdzpRydu4xbVSsPg8kA9QIRkvFpbdFSgyjA+aT7WE8jZvkvRKaRyLclRToeyUsyp9BUtX5VtRr8o02EZ6uTpKiX4C6ok+a7p/S0TbmZi9gBAFP2rcGiH5sh/CpYabx/3o04W0emI X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 6:05+mwRRxT/DXI+JYbtb40fgD8EU65S/UDcsWSOYzwWNw5F7Av0hLevC02BnNixkU34cQqoNakb+ISCs0OU2IaoAvvz4Syge1Vd0Hw5nZnuUvFnwrFOEx9JzzzHmbwhft37Kx8u7yvzxgKb+/tQG2EJldcLahOia2BBTR1XJ4DI1RYgNK4X9oWx+th5NUljScK5qWIIYlVdppR2MXEAV1TfWc/lVeY63VzVgjBF7iSmv6U9baNS10RPBqY1577/GnKaY3FB/ifPBXP97YMa/FX62DvFaLfy+lWEPIXecOVrWCg5MJJ+ta0wEO1n3mxJhlf1uxsPU5zMkxe29nGbrXvQFMKax9ktLtEAvISdnrOig=; 5:VQsB2VVP4OyXEmqDHxyVB4DqnaN/sS0u/9RHjgVfi5qmZVlJd5HfLpKzTPfxOdtIjgh9xIaOnz9sVIjBUbnj6HkLQMDc+HOmJXjsRRtL8vbEu+h/mv15VzYHmIpo0WPam6/36gv8i6COPMRzM4hSn8Uiviqr/8sGHn4AxpHXoc0=; 24:Osge43+lO4Rolmdp7RVDlBPwCcv0V1ObhOQeWeso0iPc+e8q3CKaMIJbQH/ENZKLDXgle1stQTWAmpkYBpey5SyjtvOfDORD3Rp5bhKyNn8=; 7:xOwl3t4uBo1YzPWjXFxtZEBpJDBTJ0rhlO1KjnyINWeNH//vexLBxAW+uHFUEMZCxeWEduubmGPse2o1EE1tjHjANbzDCVZINGcs0TzlXKzK+Z1bzCVh8DQ0VEg5ZoMV6jkb2o4Vpq5SiJRZexXEg9T7Ofn9sBVoWNjubse61m2mnYUm/mzEyahl4Jp5QQJvwq6m0yEtaoMh+b8ObdcMO6yJLkfsiiTNXCbn38Dw4xksaL41LOKb9F+qq7C0/UW/ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:YMU7zugVStkJAbyql8+QsDuzcqYwX90VHMft8CELN/zqQYgyR7POz0TiTUOZgylBOSzdlZWP7oVOvury29T1cpL/QUhiCtJYfwP7thMlf9N4JoIexJox78DgFK+r3KH3KWbGHOpnLETZmWykwb0TdGG8uobpqkpkJEQ+q2HyLAZV1oD6xBmky2Uc/r1pXV57oA8Qa/YfuQvFYQGBEzpudH2GHVVRytAfT8lyvER95YKga5UPUyvXsTPTZThGgpkn X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2018 15:46:07.1560 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 053e3f01-5be5-4411-e99f-08d589c2b43b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0156 X-Greylist: Sender passed SPF test, Sender IP whitelisted by DNSRBL, ACL 207 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 14 Mar 2018 15:46:13 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 14 Mar 2018 15:46:13 +0000 (UTC) for IP:'104.47.37.50' DOMAIN:'mail-cys01nam02on0050.outbound.protection.outlook.com' HELO:'NAM02-CY1-obe.outbound.protection.outlook.com' FROM:'brijesh.singh@amd.com' RCPT:'' X-RedHat-Spam-Score: -0.031 (DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS) 104.47.37.50 mail-cys01nam02on0050.outbound.protection.outlook.com 104.47.37.50 mail-cys01nam02on0050.outbound.protection.outlook.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.28 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: Tom Lendacky , Peter Krempa , Xiaogang Chen , Jon Grimm , Brijesh Singh , Borislav Petkov Subject: [libvirt] [PATCH v3 3/9] conf: introduce launch-security element in domain X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Thu, 15 Mar 2018 07:38:44 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 The launch-security element can be used to define the security model to use when launching a domain. Currently we support 'sev'. When 'sev' is used, the VM will be launched with AMD SEV feature enabled. SEV feature supports running encrypted VM under the control of KVM. Encrypted VMs have their pages (code and data) secured such that only the guest itself has access to the unencrypted version. Each encrypted VM is associated with a unique encryption key; if its data is accessed to a different entity using a different key the encrypted guests data will be incorrectly decrypted, leading to unintelligible data. Reviewed-by: "Daniel P. Berrang=C3=A9" Signed-off-by: Brijesh Singh --- docs/formatdomain.html.in | 120 ++++++++++++++++++++++++++++++++++++++= ++++ docs/schemas/domaincommon.rng | 39 ++++++++++++++ src/conf/domain_conf.c | 110 ++++++++++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 26 +++++++++ 4 files changed, 295 insertions(+) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 6fd2189cd2f4..830d2a3c59be 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -8195,6 +8195,126 @@ qemu-kvm -net nic,model=3D? /dev/null =20

Note: DEA/TDEA is synonymous with DES/TDES.

=20 +

Secure Encrypted Virtualization (SEV)

+ +

+ The contents of the <launch-security type=3D'sev'> element + is used to provide the guest owners input used for creating an encr= ypted + VM using the AMD SEV feature. + + SEV is an extension to the AMD-V architecture which supports running + encrypted virtual machine (VMs) under the control of KVM. Encrypted + VMs have their pages (code and data) secured such that only the gue= st + itself has access to the unencrypted version. Each encrypted VM is + associated with a unique encryption key; if its data is accessed to= a + different entity using a different key the encrypted guests data wi= ll + be incorrectly decrypted, leading to unintelligible data. + + For more information see various input parameters and its format se= e SEV API spec + https://support.amd.com/TechDocs/55766_SEV-KM%20API_Specifi= cation.pdf + Since 4.2.0 +

+
+<domain>
+  ...
+  <launch-security type=3D'sev'>
+    <policy> 0 </policy>
+    <cbitpos> 47 </cbitpos>
+    <reduced-phys-bits> 5 </reduced-phys-bits>
+    <session> ... </session>
+    <dh-cert> ... </dh>
+  </sev>
+  ...
+</domain>
+
+ +

+ A least cbitpos and reduced-phys-bits must be + nested within the launch-security element. +

+
+
cbitpos
+
The cbitpos element provides the C-bit (aka encrypt= ion bit) + location in guest page table entry. The value of cbitpos is + hypervisor dependent and can be obtained through the sev element + from domaincapabilities. +
+
reduced-phys-bits
+
The reduced-phys-bits element provides the physical + address bit reducation. Similar to cbitpos the value of= + reduced-phys-bit is hypervisor dependent and can be obtained + through the sev element from domaincapabilities. +
+
policy
+
The optional policy element provides the guest poli= cy + which must be maintained by the SEV firmware. This policy is enforce= d by + the firmware and restricts what configuration and operational comman= ds + can be performed on this guest by the hypervisor. The guest policy + provided during guest launch is bound to the guest and cannot be cha= nged + throughout the lifetime of the guest. The policy is also transmitted + during snapshot and migration flows and enforced on the destination = platform. + + The guest policy is a 4-byte structure with the fields shown in Tabl= e: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Bit(s) Description
0 Debugging of the guest is disallowed when set
1 Sharing keys with other guests is disallowed when set
2 SEV-ES is required when set
3 Sending the guest to another platform is disallowed when se= t
4 The guest must not be transmitted to another platform that = is + not in the domain when set.
5 The guest must not be transmitted to another platform that = is + not SEV capable when set.
15:6 reserved
16:32 The guest must not be transmitted to another platform with a + lower firmware version.
+ Default value is 0x1 + +
+
dh-cert
+
The optional dh-cert element provides the guest own= ers public + Diffie-Hellman (DH) key. The key is used to negotiate a master secret + key between the SEV firmware and guest owner. This master secret key= is + then used to establish a trusted channel between SEV firmware and gu= est + owner. The value must be encoded in base64. +
+
session
+
The optional session element provides the guest own= ers + session blob defined in SEV API spec. The value must be encoded in b= ase64. + + See SEV spec LAUNCH_START section for session blob format. +
+
+

Example configs

=20

diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 8165e699d67e..e3dcc69067c2 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -77,6 +77,9 @@ + + + @@ -436,6 +439,42 @@ =20 + + + + sev + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +