From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517247845764430.03642239737644; Mon, 29 Jan 2018 09:44:05 -0800 (PST) Received: from localhost ([::1]:53642 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDTQ-0006pt-Rw for importer@patchew.org; Mon, 29 Jan 2018 12:44:04 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48942) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRJ-0005VL-U7 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRG-0003Dx-0D for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:53 -0500 Received: from mail-dm3nam03on0615.outbound.protection.outlook.com ([2a01:111:f400:fe49::615]:51935 helo=NAM03-DM3-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 1egDRF-0003CJ-Qn for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:49 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:41:46 +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=kdWO/mtApKHXW47zfk1e22t7/GIj+0zSwHMc9pE8lzw=; b=5ZmwjeHiIUwRVJaqhCzbkrZUt3zZ8EHsKHxnOFMjgx+8fda/O5a2q8VoRCaBaiQ51KoPX/eu3ym4cZ3C9/sSsubSNm5KCurK5Bzzd+cYyhtu5sOSWF7kzTi4txH4VF/aPSk1YK9yCcimsfnsznAZK1ciVEcV2uUlGCuMfQ0K6Ek= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:10 -0600 Message-Id: <20180129174132.108925-2-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1350bb8b-e28d-45f0-a61e-08d5673f922b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:sSnMKlZpk4z8mQfwAzzM4XZ/aKm9ERSUChAW/MHAkS++DKgoXidbkK7s72gG3S6Xn2I6/XHxy9TwXU59w4pt2ACtbYd0xIkdM926JEzVTj4uV4d3MTsVUdNSKN/dRrsrqvIGAM9YvYOyM/MhDmUVHUvBHD1zRzdt48Gz/SV6O0zmOTOi0Nc8TKazlkuz5uBEKU6NTpIQgE9KmDMdv3inCZvIPpzzaXJkUTKC4f1plThp6+Q4BKml/YNyfpoQvbxt; 25:HSllL0uIRcoGxRB5OR03R5NdvxwS7MZJwkZ3reHUCTvo5xcV5rKcQxSUnAKM7wUniI2Bt9mzb3x5vauKeN3Lg+iHjkWEI0Ic6pM2aPvL4dazBLSctRfMWQ4E6Xm6KvyDrpPSU+Y7g5UG4Bpow4AUwi7+luyMH81nAX1IDjuRlGRd4uZ3fPCyRcDtIq9PSHMw2ZL4gmCWZwLNO61kYfQzVB9Degl27yl/kRIC2Ep1WH+dbPG9te8W9ntK1jiz59DW3R2QjbhW0GHHtVzsTJd1ulPCJBGchkCGluZOjWyurpBAgMwinhI2SYb8+CPlvvNmqy8jGSCFYKS6Cldrwq7eUw==; 31:MsFWntahSEb4kqFpbExOM7oHFShpEJ2dOGvFrXxRV3Jfex62uW0on+j/7eVGN2Swk6qFTvZ4iKwf4pWjNuNK9AOIkyGgm8741u/AcQpYEB/zkzaPPytstu6Kxw4DpFgOEpicJAaJWten1hEKWEi1NgLT3CMIxeeYj9YY1A5mYEA3r8ag6+K6HlR7nXHO5kBF0GTLYLE/2oUHfom5bmFNk35+fPCx53iZ1Uj+JWQd12w= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:IasQxKXD+GqeuaEzYXXf6yTPHTSZs7ZKYACidjCLCVGKKxUYTbUZmGoI+k1f3uF8iZCeo15NZp7J3MAj8cOHS5Lu89wUw8+7zogisIKX/+6wxvFM9tz38l1XdFesHOE16jkbZxOXhixSv/j5TK3aakG636RzVi7Frx4TT1t2piyzZiS8HUNxJUcsaXm8BJ8AhKqDFvuSWBne2BwQ1RksYg9dHm0KDnpY+Iz3e1VaZTxqTNwLBE+Er+asLzlXoDOy0BeX1PiNdw03iKs/C7MgU14MUwyCpUz4aN8056vhMJVRwFgG/H8zfO2lfCOGO2hJcm+4tfbI5ocXiSNLIHH0cWY74GO1NJuIPPveRfI6lnpdQAETrgIDLT94wOrkXGMKeo7qsVPzLHnx2tf4/SRrKjxs3605xT+u72qD2eC+fQHbHIUA/nkQU+28I9utBQJGHLlMM7wPpJr+QdUP5IWx8D6mFnLnsGSSgZFCfkO3FvCwM+xZBqeR3P2Z/iV+qNrC; 4:VWH9Rhl8VblgAelRWZVnF741iyoIDCVpxhfqmj86vNJf2pje34Xc0yy+pH5BjVDNwu0U8bEjTCOOUGLVy5xhAtf+pyFXD6KsH1HK7TdTPgZ16NCrcq5SUulKvLDb4nc6exU8PKlAyDpW6xAt6BQkDwRiCOseVlHsVeDdtwK8gRWWMWzlw8fX33KVYfVYth/NDjdzlVAJGZpsIqgrCpiCvDm0k6wkmLsyQy5hPT2CjEtLka9SqooSgc+NkfIpt9lsNHMc9QqLjHKc+KqyYrZfdeGh/5JWGpAHE9DN2mfNRs3w9ocsNAARWWIoGlWRl0Yh49QWzw37fRc8OH3jokiPMQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:JAt0UbsPr6JsyOizkyK1qHcch9rFBn6kIF+OtnD3e?= =?us-ascii?Q?O68K6FlOa90ta1V8MWRAFEQeoshYauPl3vsXpbaHFuhNm0W1HWBVxjQ0HPN8?= =?us-ascii?Q?9ShiqvqJuiBLb06Z2e9HLXqrlyL3ujJhoIqiFbffz6JwlXbWtG8PoXflkNS9?= =?us-ascii?Q?P5eMKskdM5j/EF0GTQBmVcZDdjcb76MKEJpCB5Zbd9naLh0uacvnKTXqhDlN?= =?us-ascii?Q?9aJshHauRrn49xPm9KXuq8wyUhKY7hiJ0rJJ8cHRNXkCe8CF4Eu/gvKXG6qX?= =?us-ascii?Q?wDJz44SJ1OzS8l9yGJT2JG2jAULS5rkrPFNrrCjpjN8SO1k/MVHOFh/pSWKg?= =?us-ascii?Q?PoiYrt4lrHBDi0cyT3TkFbaRGz6MVz9VRV4LU9iWhTGdK2CztVRJ4Jrq7Klb?= =?us-ascii?Q?zDl6l5lwEJDKux4SPyZlglf/k/o1t/KlfP3THuItoaJLTEcEEtPfeAA+kj37?= =?us-ascii?Q?I7NxA101GsAKeM4mSOFHAokRDSHtUEJprRf02tFwzpqDhftAmoi0AwLRgIfa?= =?us-ascii?Q?HOyX8XuJOCwimqepMHB/LYErbvwqf5GRapvYSpTjKffK+bJdUaBkJXZLdzPS?= =?us-ascii?Q?uksSog9SjKEEe1JL83W0cvxtTsSzssylsiPph2W+CXmOQbUG+rrSpMlr2sMF?= =?us-ascii?Q?tGRFEvoTlsy8z+HxKscsvPWComm8gAQEqbPDVVr1Y8Uv95K5+yAuXxNIFdJQ?= =?us-ascii?Q?vhSdFQuMaKdgquIQ8zRuvSiHue/W4EwlIKek4cQNwcwm9Xgieb7q9mjtRegs?= =?us-ascii?Q?ZGYnd2U0OcydQ8PMF3vLY0RWX3OjkGX8xbmhMIDXYLI98o9AcM/EJJJcd/4Q?= =?us-ascii?Q?hrWZyNMdmEqlviIBNJ/gAw2Ds9GRyXAxFpKxBUKJ/BkSiCL+PXwTw3j4Lp2z?= =?us-ascii?Q?LTOt2FGFWCPOwS0m/4RnwixRSzl5N2Mz5fg/HH5qUfoCUUjv0qbVcCmBYbG1?= =?us-ascii?Q?TrncXhN2UUPCJ8gKnog8a6mhOGzvdvTmTraYAamhI4P4z35QqjT0mJeC579W?= =?us-ascii?Q?ScNJDuFGAJTpieVDEjW4P9E8lg0vqa6T8nH9MgM24mry5BvPMYspQmJEoARy?= =?us-ascii?Q?kBX0ZXG3ehBjEEqVcJMdE0kd5jf5xI8NTG94Bogzqpfhgr9QEl7jM6UtM8Al?= =?us-ascii?Q?ep/8YAVevFZqko9jp6hR2RY81/3AqtmMSoHMhzVgg9YwT3DQUOR8cRY2iI/0?= =?us-ascii?Q?Zdvn/9/XB/cB0BBROXu49vs+l4Nfi93yjQ4OLxRaD9LhR66uhYO8Cvzx4zKo?= =?us-ascii?Q?ttybbGXnUkdEnV4qoM8kubSTDJ+8qUyIXXSGvG5wB42UWM6r/Kee+vMnmyAL?= =?us-ascii?B?dz09?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:CYiJuboBwyWN0JboT/1iO+oosS/24VHj0TFJNStdlyk4oEHnI+TJpLS00qU6ZhKK5ADlsKqijm3FSTRE4ycsy51Q2E0eXINk7mdCGKT190uiSAAF7TKSzUVovG1uxgW/lpdv9riqXA/oQx8LPPlM2tLLVHGcfYIPKjC9ATnZACpDcsU2KbaiuJRG5axYqpDMwm2Rku6uy79cGxcuEe7xmkHM7szdnTwWzy/apKKkWN82yA1YcOKaVYf3UplU6oTTqaJ4+IgBJg5VqlS0CLnGDXLHvw64eIt4l7ePNWOg7bDYqw1WSaToOyUV/IcMlALqiVtCzVKpw9ueFz9mRnc4bmjZNY8MsutpVhvJCICBsMw=; 5:yjsjm5o96sW5caUMgd0Mt2rmMkDpWfVs1UbOB3n4OyxS4UEnbOWsChZWp+OrZ0GXekmqXL1tV2Ppykr8p+TWwG669fxMI/MMg4e0d2TdYAPdukKc9WgLlhK4DnEWuKN3PJu7NMYZIP+bu0G+F54zLvxCE+EWbp7NcDj491/tE+Y=; 24:Atj4ixQsqyWCysk2QqEsJbWE4uWKsz7FgZ1SYPTkj58/PDn5cNSsSiJAgBHxYlkR0awUJimviGgfenRj2+IrjAJQWDID0bE+j3zeRKd7TH4=; 7:b0zJKMBZ9/vyuFVcw16bf1hr243giYEtUcdQ5aJX1NsM+TbWULLMoS/NcNl+U7A0F6k3ONoBcLxSKHN5ap3Nn6VGdtFpiitnqnqFtFttruzCpPJJwwQmBwo6MODV/n5eg5R1To/dwfueBp39OlBeiDSBx/3vitonva5HeTbHnK/0YPVv90exyEMQi/hsMYpzsyIY5VaIssxHKl5VmJmRVMRkn1fu517Y7Cb5kJfpYKpk8NMRmIsZXPDC87MKspLK SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:GSZxhXpqf3RiP2+CfntM59kHePM2pAaMByLfUSeU20tFDeLhVqdhv4BQ4uvOM+mtYz9momOt4OIIMpt+s8nsSyDa3VPAZAGAc8ffV/Zw8UBfDMZ+lDXbBSGrI3uCXJdGaE/bSrKBZPC1GpBnsCBv8ebdSlHCmdbjUwH669fdy5bBXeipQRBi6hH0ELGdS5P0+/lydeuLzzhmvwlsrubJgvFjkgmJztXFt85tHP4rOJs0zxEsGL34iDILAOFGMXvn X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:41:46.1352 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1350bb8b-e28d-45f0-a61e-08d5673f922b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 2a01:111:f400:fe49::615 Subject: [Qemu-devel] [PATCH v6 01/23] memattrs: add debug attribute 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Alistair Francis , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Extend the MemTxAttrs to include 'debug' flag. The flag can be used as general indicator that operation was triggered by the debugger. Later in the patch series we set the debug=3D1 when issuing a memory access from the gdbstub or HMP commands. This patch is prerequisite to support debugging the encrypted guest. If we see request with debug=3D1 then we will need to use encryption APIs to access the guest memory. Cc: Alistair Francis Cc: Peter Maydell Cc: Edgar E. Iglesias" Cc: Richard Henderson Cc: Paolo Bonzini Signed-off-by: Brijesh Singh Reviewed-by: Edgar E. Iglesias --- include/exec/memattrs.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/exec/memattrs.h b/include/exec/memattrs.h index d4a16420984b..08099e4f7e72 100644 --- a/include/exec/memattrs.h +++ b/include/exec/memattrs.h @@ -37,6 +37,8 @@ typedef struct MemTxAttrs { unsigned int user:1; /* Requester ID (for MSI for example) */ unsigned int requester_id:16; + /* Memory access request from the debugger */ + unsigned int debug:1; } MemTxAttrs; =20 /* Bus masters which don't specify any attributes will get this, --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151724803935996.35037648555567; Mon, 29 Jan 2018 09:47:19 -0800 (PST) Received: from localhost ([::1]:53668 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDWR-00010D-BY for importer@patchew.org; Mon, 29 Jan 2018 12:47:11 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48960) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRM-0005Va-QR for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRI-0003GM-Qt for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:56 -0500 Received: from mail-dm3nam03on0056.outbound.protection.outlook.com ([104.47.41.56]:17472 helo=NAM03-DM3-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 1egDRI-0003Fq-Gf for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:52 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:41:47 +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=jB+y93PT/s1nye6+CSIMhZKnZUsVRejhx0+Di6WrNsQ=; b=HfoIrhjTJccuRrT97s436O70prlBtvRBoqg4HkSXFUrgnQZ7ixI1R0LkbtExFPDUUrGUWw1SZFSWXLSeHoUkxXzPiEMA66yqj1FCtz0OsBwwOuDupdnXfDKYtiEucgzjkmQEj2MxbJI0RWuGbLOI0tzTmDDH4D0Hyuyqi34iuzA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:11 -0600 Message-Id: <20180129174132.108925-3-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: eea74016-7046-46b9-7222-08d5673f933b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:Se6x29+cw0ZDpI4D9UNfdWIJcCW8xuMh6wCkPbM0VIHgYMvORKlsosM6DMLkI0G1R64IZ4GhOOMV0uhpRfXW5mrFAR3Db2gPDytOSLiPgoI+O873JJB0yDIimnhPcdgacWmkD6YpmT4ogv9mlpPQ9kydgAkZQvyBFCKaISGt95Sm7BtML5D0Zl7lQ8CVs/moP5BoygAQPJ0omVBjoLNf8ITU5lfvDxdCMifkd31tat6H5nnn/Y43aYMWbdgevaZp; 25:C0yxxZExxCtld35vzT9jwoGpB0UPN64p4nspS6pGDfIFZNdg+0x2/SsKdowXc2TryNim+Fmxl0gsgjoQv984XBWj9BgREC0ah3VoCa73lCSf/VKKsY/BRnl21clFhO+0zQHw5f2MtW1uA4d4L7umNx5S2ayFuu6tsr3XqqzhAJKNPZE863tdEUq+lwUuplnVArOI0NI97cNnXVmRvvyYWHEvpPl3VEtCD2kq4Yj8Kf5UlWflqyXQBumTqTvOMo4otkpIKDS8dGVkEgJYSp1Fr0LfZ+ISi9GomWtONa15talw9BjlAZ+6wwEUzZY2y8dh0UmCbS38Z4JTfAaa0zmtYw==; 31:1o5PBNjsORG1lFfk7hOtnqsK6rQ25geTdh3D/IdnkKlUhiOWcqVQKTanbjcqPJ8SJOvG1YpmdvFGS9NgI2VUDUcVQhJjc7zuUWg/8JZMAqwa4f4zQ3KzQ2ZrKA89+eeP9K6RS1wrwNVrj4h+efzFRPDYQzmb+R8QfAgFTUo2hO+QZP0wtRUWGRnNlNGMobqot+mh/A1UXeaC6gIbnaBSj2glZr/ptU9U3sh33WkIT5U= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:QVQ8KklkanJMi6Z4lwtMKuvm6gT8ZaRMPDZtDqRLgSJ5cMpgPdW76SIkuFl3GIOAKc4aFsJ/Akr81/qNhTaJ51b4RXeb3x9yhNAx+uskV60KGdNj9QKx1++bzPDeGtmJCy6WZFgEO5+ZETe0wHCk6GDEBbHFsl+PZVdqZC+kOnhShEGb2Pcev2ZBkR1jXLhSCDTGFmnaelx2e00z7GePsE5f6HLQ0K5x6l2gYV00+9rBNSy7OpPb5GcH6Sdyp2czWhXQx04nGfaSmifrjgwJLN+Rng7eUHKYsGUs8AgKJTLJQhhEPG26zhl3dpdw5gE8oSKDfTu86vB6vMR7fjO13W3lSadK6oBDyofdtr2DizDRw+Chil6OitKLabo/ikbJCA+C2PYGxoW82QPsOUEyOSM4JI2PQ48RnWwo6pBiN50Xv0d2HwkX3KdOWsqQfnNNa+//OwoKPW45KdocyU8V9A+0sjvR4+JYoxsktGpDrl3HF0bAVqu/FxA7aJ14sSxe; 4:3NdI+2oczwJfXuCVEKfR4t4aHwXGrEXUxtYWjrl6W9swoo6VA+cIRXYLXbtZSdtw2i1+StOEgmjOdk83mo+S+52AGHwAvRpT7HZYsIOsv1aPvQkYeaDavUu7DslPlkdDE468L7YqMzntRdMRy4TO9E5gDpbYqq8VqEFSmhAOZUbLoR3h4KqThUjwcb9HrPYd0/surXmL8Vx0vNGc/lU3hBLVd1gijDhLWmKvrDLSIwHuntYGPnuf0Gxv1WDPTIPzGTH6WPZPlSta+pkRXNhLa8TqTvfWj4BZ6y5KIWG3MrQWOpCMJjGGZIO83CBiQ6Jd2uSUUjjuDKxj0Syl2qMh8Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85827821059158)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:JiS8ZehJqOUxaA+s+hsywQpAPRNSWMZ+tDHK3cHao?= =?us-ascii?Q?reMS7Mx6obrRiy3mQ3fmTlq8ayv79CzUJh+3hIBd3/G7Nu9DTz6c27DyaNab?= =?us-ascii?Q?XeDnVQ65wjr8Aa/qLQNhC/joURIEXvR+91u5oBK8GWEey99KNCEN/l7OazzF?= =?us-ascii?Q?UcxlpbTW4goJ4UXZDI25+TpjCUE1jvwwphJzbrX/F/khI7Ay41HdYKawuM5C?= =?us-ascii?Q?05hmO9qTdQloQ2treRZcm/IUoFeteqUqxuCX2el9U72hASc0Y82lkRIqXjGj?= =?us-ascii?Q?63BDRKybtjbx2S1Krns5fI8ePbNwiESQpWOQ1dlZEdsTJdCcEFTIcMbzoqjQ?= =?us-ascii?Q?AF84GnZyARgXXz331LQAoZUobAHua5/sklb/EF6I2ZHxqIWfzHDau0WT2e0G?= =?us-ascii?Q?vWYHDJR7j+IQzlrulg8Xy5IlxDTj9VXfUYiJg+8O6OcsgoQttIxaIRHYKVVQ?= =?us-ascii?Q?aGSneiVx3smJxLFNe+uYmN1Sn8EafWROJaYce9hEUwrRXjGTQbH0iu+aRRPf?= =?us-ascii?Q?Hcmz8tfq1NPTqP8BNQKE8IjM4v3Ex6ByqW3ETWbHEw6F7GoU7ex0x9kOF8tb?= =?us-ascii?Q?2Hlt0ApDjcGmNYIaiDi+BhMBmkNpD0Z1QPQTnXsXPubmS8ZCmjL1wPnCj/tf?= =?us-ascii?Q?zHKvJxteb94V/+AzHfA1CVWtiBKn8SuFBZiTTtY5bSB2NnPmtdillZbbVhF5?= =?us-ascii?Q?m77GY2VdFZPFokh158Vo+K6Tc8xsUG9HnsqWA3N2jet+NzGPvfWfO0qlb76h?= =?us-ascii?Q?rk6GSpqPSw0Kx81t70SdipJqmLwf1+eVmJemN62skBJeaP0QtiBrzx7qqSL6?= =?us-ascii?Q?XkOkUGIex3gL7DeBdvlHXBEG4D39U2/qHGey1VdRZjldxnECfykES7DEGlH/?= =?us-ascii?Q?1B9/1BWX8KTGH/WNq+q21JSi0i0k9WAuNwbCojogWvh4jw+nNLkNHxwal3FD?= =?us-ascii?Q?wRRsv4/EYVs0exVO1y9kNV2hDu+Md5uZiTrF14wT9gG/XfMqKZQ9KvgjBxXj?= =?us-ascii?Q?vttYvILKUe1qnBGkXhTxCDMAiCGVWts2caB22vGg6hkXnIEbPuxu0665DiMW?= =?us-ascii?Q?phFjLC0jpFTY7B38KZ5yElULuzuBRQyfoup+Ssq4Zy5b8EreYMxX+tuXKR1s?= =?us-ascii?Q?+uFsjVptkyzTGRzClzOjRrnQK8bpecx2fidsqNbvjqGiSROOrvEmyvEwAhy6?= =?us-ascii?Q?1VwFst912BWb6FOv4Jnuvp9Z0nKcaq+iGCft+ggyh5GwtGyebQkvZdlX0HhO?= =?us-ascii?Q?6YReZ0uAqz01OpZ4ZkdxXTbD0j1+7p7jkWw2OkyobrdaX+f9odOh4op9VLhf?= =?us-ascii?B?UT09?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:Lxdpp1v4m77xkykgLxERA3moRQr0+tlziRRROsdja4VbW0AJNYrd/hDr0YtbShYw1YlNiI7fe++Oz06B+kH5pJVtciIqkYXRierBeGh5PKeRJQFkhxrmnvx+llXa02d4sAh5s1TkMHTReri6DEFysTRZhqAXwDlVZYzKCRPKe+ECVjuNFIzrZM9ZGBxkaPjyc684vUk5UZ9rP17i9IYSSFT6GTWhjSU4WK+Y0xCaEGSa4MRHmQGa669BOVP6pFMDf+wjixnkOpthZhz5cvgC7irJ0jcOG9bIGc8i/XX2wg36rKp/nucEk8GoUoK6Ir2s4vUuMrB/IsNDv1FbzpI6sm80/ZNYYwmAQimHm2CWa2Q=; 5:0JmZNNwZ4deMkMgnvQdz5xyqNohkAB1UGnAntARCxcexUsHc9ZzlCjwsC7O3UQbEqmzDWx5SxxI5xIMbZz/tOHLVPu4YNxEeVNWAJtAhqu7XSh/cVaWvbQfKcLQ0U3luSYoCT0nsLvuDBzg59ccvid3QRA2qEvf4JepgbtdqJ+0=; 24:EXB4MHTyodsl9UCJxZwI4nkeq0eXK4Z+8L4NbM86LVVDNDB8+8kju+N0fQsHLFbSnC5jAwkdj6RFXc0Z+eR7gQYAlttO80BVznSH/bBvxSw=; 7:0tF/0xSA9N7TPn/B4jfc0jz4WOOLjGPXED5MtXDxSl/u1kWHJMngb9Jr9cafRzHRX4/Sp6YOg+agUwKCNfIFk0GxiDvVguds5p+FVQmmfa95mcjEY/K2l2bNdDiyZ1mCqxXp1tgs8TplfyEP9VocrJza7VIUHJ9J6VkJPldz3D0MxEhj4H5BxwyFcPGVHPjYE2koSOKGrPuk2og9fL3cPSCLnY80by8GF8Xw8yw3/EnQxSjCkCMOCkChYE4eQy29 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:e9tVEqSImoBMjPcHoxGs1gm4T4iRrZi8/ipXp2DZZKBgEUIIWOVemc9atVzw3t8Oeio70+s5HNPiGxnZR5ClpKTBMAhYeOVHtohPPIDs9DYT9Atx93fq/H5b7knkD7wmzvyZuqaGD/BHYa6AKcLDr1UEv5jhF48vTSLPpybasFIKV+UPFa4Gzbarqmmn6ks2bNBVa/NzLs78wGYE0oBUXbEZ0786qPvjr2GPRZ3uxMLlHuwQPxRpqU6wneEQ8AYt X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:41:47.8540 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eea74016-7046-46b9-7222-08d5673f933b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.56 Subject: [Qemu-devel] [PATCH v6 02/23] exec: add ram_debug_ops support 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 , Peter Crosthwaite , Eduardo Habkost , kvm@vger.kernel.org, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently, the guest memory access for the debug purpose is performed using the memcpy(). Lets extend the 'struct MemoryRegion' to include ram_debug_ops callbacks. The ram_debug_ops can be used to override memcpy() with something else. The feature can be used by encrypted guest -- which can register callbacks to override memcpy() with memory encryption/decryption APIs. a typical usage: mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs); mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs); MemoryRegionRAMReadWriteOps ops; ops.read =3D mem_read; ops.write =3D mem_write; memory_region_init_ram(mem, NULL, "memory", size, NULL); memory_region_set_ram_debug_ops(mem, ops); Cc: Paolo Bonzini Cc: Peter Crosthwaite Cc: Richard Henderson Signed-off-by: Brijesh Singh --- exec.c | 66 ++++++++++++++++++++++++++++++++++++++---------= ---- include/exec/memory.h | 27 +++++++++++++++++++++ 2 files changed, 77 insertions(+), 16 deletions(-) diff --git a/exec.c b/exec.c index 629a5083851d..1919052b7385 100644 --- a/exec.c +++ b/exec.c @@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView = *fv, hwaddr addr, } else { /* RAM case */ ptr =3D qemu_ram_ptr_length(mr->ram_block, addr1, &l, false); - memcpy(ptr, buf, l); + if (attrs.debug && mr->ram_debug_ops) { + mr->ram_debug_ops->write(ptr, buf, l, attrs); + } else { + memcpy(ptr, buf, l); + } invalidate_and_set_dirty(mr, addr1, l); } =20 @@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwa= ddr addr, } else { /* RAM case */ ptr =3D qemu_ram_ptr_length(mr->ram_block, addr1, &l, false); - memcpy(buf, ptr, l); + if (attrs.debug && mr->ram_debug_ops) { + mr->ram_debug_ops->read(buf, ptr, l, attrs); + } else { + memcpy(buf, ptr, l); + } } =20 if (release_lock) { @@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *b= uf, =20 enum write_rom_type { WRITE_DATA, + READ_DATA, FLUSH_CACHE, }; =20 -static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as, - hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type) +static inline void cpu_physical_memory_rw_internal(AddressSpace *as, + hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs, + enum write_rom_type type) { hwaddr l; uint8_t *ptr; @@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_in= ternal(AddressSpace *as, if (!(memory_region_is_ram(mr) || memory_region_is_romd(mr))) { l =3D memory_access_size(mr, l, addr1); + /* Pass MMIO down to address address_space_rw */ + switch (type) { + case READ_DATA: + case WRITE_DATA: + address_space_rw(as, addr1, attrs, buf, l, + type =3D=3D WRITE_DATA); + break; + case FLUSH_CACHE: + break; + } } else { /* ROM/RAM case */ ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); switch (type) { + case READ_DATA: + if (mr->ram_debug_ops) { + mr->ram_debug_ops->read(buf, ptr, l, attrs); + } else { + memcpy(buf, ptr, l); + } + break; case WRITE_DATA: - memcpy(ptr, buf, l); + if (mr->ram_debug_ops) { + mr->ram_debug_ops->write(ptr, buf, l, attrs); + } else { + memcpy(ptr, buf, l); + } invalidate_and_set_dirty(mr, addr1, l); break; case FLUSH_CACHE: @@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_inte= rnal(AddressSpace *as, void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr, const uint8_t *buf, int len) { - cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA); + cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len, + MEMTXATTRS_UNSPECIFIED, WRITE_DATA); } =20 void cpu_flush_icache_range(hwaddr start, int len) @@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len) return; } =20 - cpu_physical_memory_write_rom_internal(&address_space_memory, - start, NULL, len, FLUSH_CACHE); + cpu_physical_memory_rw_internal(&address_space_memory, + start, NULL, len, + MEMTXATTRS_UNSPECIFIED, + FLUSH_CACHE); } =20 typedef struct { @@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong a= ddr, int l; hwaddr phys_addr; target_ulong page; + int type =3D is_write ? WRITE_DATA : READ_DATA; =20 cpu_synchronize_state(cpu); while (len > 0) { @@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong = addr, page =3D addr & TARGET_PAGE_MASK; phys_addr =3D cpu_get_phys_page_attrs_debug(cpu, page, &attrs); asidx =3D cpu_asidx_from_attrs(cpu, attrs); + + /* set debug attrs to indicate memory access is from the debugger = */ + attrs.debug =3D 1; + /* if no physical page mapped, return an error */ if (phys_addr =3D=3D -1) return -1; @@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong = addr, if (l > len) l =3D len; phys_addr +=3D (addr & ~TARGET_PAGE_MASK); - if (is_write) { - cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as, - phys_addr, buf, l); - } else { - address_space_rw(cpu->cpu_ases[asidx].as, phys_addr, - MEMTXATTRS_UNSPECIFIED, - buf, l, 0); - } + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as, + phys_addr, buf, l, attrs, + type); len -=3D l; buf +=3D l; addr +=3D l; diff --git a/include/exec/memory.h b/include/exec/memory.h index 07c5d6d59796..4d027fffeebf 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass { typedef struct CoalescedMemoryRange CoalescedMemoryRange; typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd; =20 +/* Memory Region RAM debug callback */ +typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps; + +struct MemoryRegionRAMReadWriteOps { + /* Write data into guest memory */ + int (*write) (uint8_t *dest, const uint8_t *src, + uint32_t len, MemTxAttrs attrs); + /* Read data from guest memory */ + int (*read) (uint8_t *dest, const uint8_t *src, + uint32_t len, MemTxAttrs attrs); +}; + struct MemoryRegion { Object parent_obj; =20 @@ -254,6 +266,7 @@ struct MemoryRegion { const char *name; unsigned ioeventfd_nb; MemoryRegionIoeventfd *ioeventfds; + const MemoryRegionRAMReadWriteOps *ram_debug_ops; }; =20 struct IOMMUMemoryRegion { @@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryReg= ion *mr, Error **errp); =20 /** + * memory_region_set_ram_debug_ops: Set debug access ops for a given memor= y region + * + * @mr: the #MemoryRegion to be initialized + * @ops: a function that will be used for when accessing @target region du= ring + * debug + */ +static inline void +memory_region_set_ram_debug_ops(MemoryRegion *mr, + const MemoryRegionRAMReadWriteOps *ops) +{ + mr->ram_debug_ops =3D ops; +} + +/** * memory_region_init_reservation: Initialize a memory region that reserves * I/O space. * --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517247846689742.9037854426725; Mon, 29 Jan 2018 09:44:06 -0800 (PST) Received: from localhost ([::1]:53641 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDTR-0006pn-Ct for importer@patchew.org; Mon, 29 Jan 2018 12:44:05 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48964) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRN-0005Vd-2V for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRJ-0003Go-38 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:57 -0500 Received: from mail-dm3nam03on0056.outbound.protection.outlook.com ([104.47.41.56]:17472 helo=NAM03-DM3-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 1egDRI-0003Fq-S4 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:53 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:41:49 +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=YLGgfx5HXpm6l8aX8YNAf/y7nk/OpGGWF4Pp0b0LS8s=; b=pjW4tWei0A9QfyGycOeCoLwQCc0zPg5a4r0+WGGzH6btNlariAVGv5APOXfto6rZAq06kXT2IWKZX6KRw/tZhPWumaHCjdihglLqRyNrWNlObuJdGR+qgtIsv42FBi7mJNeCt/B+nJ1ES0ShFN0suBwIap2eOZ5nau8+vAXR340= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:12 -0600 Message-Id: <20180129174132.108925-4-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d321eb75-45f0-4b20-b4c5-08d5673f9441 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:5tTzLY/TRfuK/TkY+m2quvrfiT7I5RVZGzMtrUhRm3xQkoxpmbZE1euKYOLqRA065Zfa1HDbNx6EugwL3Lyk0of9zhuni2mYvgMsSKbl53LW6zzahj5zKsdKa6ZnD/o3KDQQaralyGPCAZ3tY/yYOOMeBM6yZu4WPB0kdFBi4SCjbhTx7SNV9389m2x/vtEFIO9/nECYa+/O/31o/7+a3Rum5MldbjKavS9YCQKkWtEXFH35x/TT1uprCToSE8ZA; 25:3Ewd4iG1HNNvpgPT4tmWXAdJQE9mlBxaYbw2js+xBEr5XCvyf0GmoQhGusi+cXFAxK0fmWixxgO2847EFw3tNrNYv3tS6JH3uFvpAindh6ouscBPr1ViNryO2JNEBCfHxJOl4DeX7qiT7RDXqlvLxmfR0vdlJXKsHTaLu9gJY/LBfW/CbAcuH1XI9L6Ggh81KEX+41OGMTKn7JTz+5WzQecCf+06LLm3br1VovV9zVQC+AcspaCaAop+MoqwXo0MmBFiFAxcHzOupwdJqiAfx8TzfMVQ4ILB4P/JcQeRalKZq9sVj7u75Nf2WnF8Lt3j7cD19+07WfJUD8sbRjitRw==; 31:5eka2O+gb10VuTtVIxmFZfc8+A/v7Yere7dL6Nh31tkapoo8QBf7M4icSTCM98XW0I4kxkcnmHjFHsKeIt0AC8uQT3ol7lBcDOqZA/xrr6GQ8xn5ZoWnJAF16oJ9dKBlsC4ly3zCWM8JGtLd1M/IZ+9TiVPC2GfkX/860g4d1yPYAm8pvB6zGCkGT+theY3Ke/nPfNTpBenalTwkjP+xqSRcR0M3IJTQB9K8MfIfL14= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:xP8m1w260Tez2n+Yg8ygZ65ZS6hvs9u/GnElSjIj8sD7FVLOr6wxlEnlRflmBy2Cu+4pcEk0xeCHLjhdom8+PHVQDdoYcSey5PFe8aVu08oJRubf/y0K0gLl/CLPx0MtY9ryc9GM/spCmZ3swK0ypMvcMrbYvE35VG7LKiPeP2f+WWaQLQJLiu+ORpcn/bBFkW2Xce/4XvlP/bqrbabatlXtXzjQFGg/oskD781+TeKau0qbV2GTaZwfWCAV3vUTA0rubGi5WHFGvJt8X+YKs75cs4hRk2ty9fVdVGwTa3iun3kKjhuirL+eHBdyZLQsT+IvG3ASpbTJF3M6gMYr0CeebRxmXLKchZ63At0TwDiE5F2BtQF2Aq/dMUG6OuV4Lr3+8nYFMy2YFM0sPhGlUudQ3pmu8rfqUDc0tvjtkjeIYpqtGmbDffQFqG6CqW8YQQI4B+qMJWq3Kfp3PbsnIRzMwz4aBXv6J7QjWmBBRwu52F4ZwmzpvcNLK4MEFlcr; 4:aULJZqmgrbvVnbU+dIBAvyq+kD+DadLbPANv9niGU6e7FKDWwT90lRS5PHIt8t+x6yPkUXTwx9ghbu6l5zUiIM+BBdOEpuV3tHgWWWbwqbSfJAf790aHRxCYDmbbmc1eUmD6iQQpSBVsWzo015TP6uJvWNjGZ0U/UFPXp09zgU7Y8eWlQfjDYvATIy93yjsAB9LQkUsSLX6Ipuepbpf0Xpav3BiGExKVPcHnaTDIIXmGkceljXXWPhXdUUtQoanDVJ24N4B03hN7W4ZUWZ/Ex2c+qDkeEVIzzrTwZ/3XR2jMmJ2qs63HZmQns0zQhbek8i97oagrmpBVeoz29O+GHg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85827821059158)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:JEhgGUvGDf1MCttFwH51ZBxVhVtpCtePOrvNMJMwm?= =?us-ascii?Q?xZOdIDCkl0JVlkPOoGLitKVHtjbzLRlCMVbuB+WtR5raGekIy/wKZ7VV4bcJ?= =?us-ascii?Q?+jHpYYhxvMvDdsa28ljqObF4YL40C8DvBk/ZihI66ov/xT3VTd4AVW2uuVMM?= =?us-ascii?Q?4OK3T3HXXdugR94NsfatJdV2ZFoP3aYoxN4FYJLn9NT3nNmr8ASK8wQJRII4?= =?us-ascii?Q?d8QSPnN6xLLQZiL+aAKNCaOqypVZ9/ULpCTUJiy1TqEmLUkxUy1N3Iz8RGdb?= =?us-ascii?Q?cRrDYIcX+AQBf2RhP6d6nYS71AA82lNiBjMNgM9vGZXdksRccQ3f1uy+rKdq?= =?us-ascii?Q?T2wqtwheNmxpG0cn4jqW+8S00XVDnwWzbmbUKf67cwN8U7PFze5/WP9Ymezb?= =?us-ascii?Q?qCkqMEtpJ04Lvl7hE2acX532Rhmaf36IFmP2B8EQAYGFQ1/3R2gkN+jytUo7?= =?us-ascii?Q?3Jnmqn7cdYREz2Kt4dbufqfAudumtEykbdbi06ZVT+Uxa2lDBHZ4mPITjZEq?= =?us-ascii?Q?MvgLOt6wDzlu67w1oSHJm2psQsboBnKhw2xUlSC38jgHrcODfhodE5syvD3b?= =?us-ascii?Q?9z/AXCfPws6JwWuR8+ahLD1Gl2Y1eV062AuWYrepPQ7XMy4KT4vLpXUGCmdh?= =?us-ascii?Q?Jsj8+DCu/VkVBGFTWt6I+k0/x6vBME5JMCL3Sq/h77WvaxXpnXBzy+RuP6VA?= =?us-ascii?Q?hU5azYmePY3SaAcegPQGOcCb9AQRkoAWofxKG+hM6aqhw6CQJz3DR5YyZat5?= =?us-ascii?Q?ET5QOlQys2e7kXTA6ny8Sc4JkMCcmHBJ122rXy+pizV7Tny4iShjem3VcoAP?= =?us-ascii?Q?ilQdiEdFQSIKvBrfoHux792KQl2dQa85A5F1KkhyUV/OX1QFGK4C3/UH/Fh5?= =?us-ascii?Q?uOXS5pcHfpqqmdi3qxk8V1dJdbyj2ZJP6nouzk1HBVro0L5jCWBkk5s9OL4i?= =?us-ascii?Q?47YFnN3eY3WVewtTzn/snQzJS5S8OvRxbI7HNHEOd50D/FfR9/tMGi2+xABf?= =?us-ascii?Q?srHvrKyjTYP7vWr+bBhJgnilgevFqOO0x1l6vsWGynGGaZ72StCCIoDJkmPm?= =?us-ascii?Q?5YMBBqpyk3+V6x29JtVJeEmdwscziTSr/XHxlYmUgT5NMJy0U/mWbRhy4uGg?= =?us-ascii?Q?mXupuM+wOL26A2O23XnlAVS6Frj3RBg4X3In0/Pb32AfVdwHxs0OlKP+u6DQ?= =?us-ascii?Q?odN4jw0JpGQbhJoCcV5/4bmUuUYhc+uMIhIOSWGhT3aJtpZgwoj70fxqgwn1?= =?us-ascii?Q?ooeKeSYbfeCetEseKGA4x0q+IvMZq23uBvVpf1kWbnEvLMdkJZ09DcPaCsDL?= =?us-ascii?B?QT09?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:UTHHuiMTWKoRls6tKYJv7p2Bx7dFXsjaF/MknOPQOur70yq2CoXbuHn/l0zIoibqUzQvbDJ827qQS+I8afnlUAJPErC6GhAqJXB9FdSpbhK4Mf/USqQTY/m5JQXoFgWl3z0kuXL+mOnlwnCIiQr+bDS0UvRWs+vyYn5LBCRYJ4pRxyvxpRzEnSUKFzNJ+QvDx2ffX0gPm3VJHlJtbeaZOLJUxA52shIH+hE4lJkmzWjch+pUoiIBuWduEIkDRE5Q3oSlD3Fq13irUQbt0CLuf201eygTiaU7B4M82mfApfBerkMhTAdaL7tzqYOet5UXaBdC1CJ9TMM2G2/yfg39cysHSoe4Mmbdqie/kBKQtVU=; 5:4xXzgWXQQtfme1qmFWW6lO/qXJTs/KPxU8ZKE9uOYakBvehBPc0Y+HH7UA5xmjnkcZCzy5LaXyqpDU3eiHspil8Z2W55r1fQrqslpCGDY+lI6GCpJCYxwDqqKAP0EA7v2aWlr1BQYzMIO3N2jkK/qCdogdI5Dyjydvg1cQbFB7Q=; 24:8x2ALdM9BxJOkzON2jnwqpD3BZP8hgyXbWTdWoD8aHBFoxMhLH+w/o+E5G6FM+7LusZ2/AByunCfie6+c3c3/lYVAFVfYyeA56A+sxa67sA=; 7:U2tJG88JhCOrTWngrpYuuCEHTZUUdqR7hPvEbHj25kBjmPWW3LiQA8yv9dfDp6KT2+28YO1oreUPRjvP5i4+Xs1s7f4e9KzOc2s08Ops++k7AZ/lGCGw+qKW1QIt7RwGvfqqXI4+sK8+ZWzar/dDzRP0zIUEVtLx2MxLDbBqT15cfs3mHk70t4pmWpXdUXZl9nD6FWcFVF6ZrrCn7wtYfxlRFFSKVagZlc8f1YXlI3RngiHKfxWHsunn9OgyA5lp SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:sZDX/Jm4+yxHJPyhvmlxWAkuE0m+/y8F4wpiCXjHnzVuLnSKbw4uCUo3rMmfrjS/k9RRvZOtO5zT0bHsHe3i37hAXb1YDjzksXBTBrKNQj+4tSoPzX7bRsV7W6X1bmjQKwoRKeyhvHvFD6NgdKpzhpnptlpRDmXNlznmNnxGFmWabyuRuIGVBOR5OhkRaQOTF1K2/OI50l5mVDQghrX6v2jxdlKo55xxQHKCdMGDCb4oKbFeqfoCHf2z88Xa8Dn/ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:41:49.6509 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d321eb75-45f0-4b20-b4c5-08d5673f9441 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.56 Subject: [Qemu-devel] [PATCH v6 03/23] exec: add debug version of physical memory read and write API 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 , Peter Crosthwaite , Eduardo Habkost , kvm@vger.kernel.org, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Adds the following new APIs - cpu_physical_memory_read_debug - cpu_physical_memory_write_debug - cpu_physical_memory_rw_debug - ldl_phys_debug - ldq_phys_debug Cc: Paolo Bonzini Cc: Peter Crosthwaite Cc: Richard Henderson Signed-off-by: Brijesh Singh Reviewed-by: Paolo Bonzini --- exec.c | 41 +++++++++++++++++++++++++++++++++++++++++ include/exec/cpu-common.h | 15 +++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/exec.c b/exec.c index 1919052b7385..49dabdbeecbd 100644 --- a/exec.c +++ b/exec.c @@ -3610,6 +3610,47 @@ void address_space_cache_destroy(MemoryRegionCache *= cache) #define RCU_READ_UNLOCK() rcu_read_unlock() #include "memory_ldst.inc.c" =20 +uint32_t ldl_phys_debug(CPUState *cpu, hwaddr addr) +{ + MemTxAttrs attrs; + int asidx =3D cpu_asidx_from_attrs(cpu, attrs); + uint32_t val; + + /* set debug attrs to indicate memory access is from the debugger */ + attrs.debug =3D 1; + + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as, + addr, (void *) &val, + 4, attrs, READ_DATA); + return tswap32(val); +} + +uint64_t ldq_phys_debug(CPUState *cpu, hwaddr addr) +{ + MemTxAttrs attrs; + int asidx =3D cpu_asidx_from_attrs(cpu, attrs); + uint64_t val; + + /* set debug attrs to indicate memory access is from the debugger */ + attrs.debug =3D 1; + + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as, + addr, (void *) &val, + 8, attrs, READ_DATA); + return val; +} + +void cpu_physical_memory_rw_debug(hwaddr addr, uint8_t *buf, + int len, int is_write) +{ + MemTxAttrs attrs; + + /* set debug attrs to indicate memory access is from the debugger */ + attrs.debug =3D 1; + + address_space_rw(&address_space_memory, addr, attrs, buf, len, is_writ= e); +} + /* virtual memory access for debug (includes writing to ROM) */ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr, uint8_t *buf, int len, int is_write) diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h index 74341b19d26a..fa01385d4f1b 100644 --- a/include/exec/cpu-common.h +++ b/include/exec/cpu-common.h @@ -77,11 +77,26 @@ size_t qemu_ram_pagesize_largest(void); =20 void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf, int len, int is_write); +void cpu_physical_memory_rw_debug(hwaddr addr, uint8_t *buf, + int len, int is_write); static inline void cpu_physical_memory_read(hwaddr addr, void *buf, int len) { cpu_physical_memory_rw(addr, buf, len, 0); } +static inline void cpu_physical_memory_read_debug(hwaddr addr, + void *buf, int len) +{ + cpu_physical_memory_rw_debug(addr, buf, len, 0); +} +static inline void cpu_physical_memory_write_debug(hwaddr addr, + const void *buf, int le= n) +{ + cpu_physical_memory_rw_debug(addr, (void *)buf, len, 1); +} +uint32_t ldl_phys_debug(CPUState *cpu, hwaddr addr); +uint64_t ldq_phys_debug(CPUState *cpu, hwaddr addr); + static inline void cpu_physical_memory_write(hwaddr addr, const void *buf, int len) { --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517247861929978.1130164612006; Mon, 29 Jan 2018 09:44:21 -0800 (PST) Received: from localhost ([::1]:53643 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDTg-0006zi-VT for importer@patchew.org; Mon, 29 Jan 2018 12:44:21 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49022) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRT-0005b9-Qt for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRM-0003Kd-T7 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:03 -0500 Received: from mail-dm3nam03on0061.outbound.protection.outlook.com ([104.47.41.61]:15872 helo=NAM03-DM3-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 1egDRM-0003Je-Jv for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:56 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:41:51 +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=3Q02lceT1QnA3t9F4t91CbpcEsVq+AINaPlUZQp5+no=; b=K5aRPfwn0z8uYLhZbIRT3fkasUBuaebKppHryVYVYf5BYmtQvJsFrATKPECu6aKG3nt5+fi9G4A07uFH2AXMEUFaLfZWyER0v2rL5er5Xw02bXrlC+bkglD3mEZFZI5HpDBFAA12X3hgcZibZR+/tqb9ZccCFrHtLel4CRyF5Xw= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:13 -0600 Message-Id: <20180129174132.108925-5-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: a728f851-d9e2-4441-a7df-08d5673f9558 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:kK1qmFXbW3KG4UD+ZyWslTE1TTKdQByhxzGWzuj+2q8spe6TSr+PwEaN9SBiWifwRrpyuqIP1hajLz2ZwboOTXltfl/v5WbM77MGOM8rgOA3TEFiGnhcgKamIPIxeSqEM8dBMAKZDazScMoQSip2sDMjR+WArd6AoClG/MKVT5JtN0EPiJGw/fGkJ55yxErN51s641TjhpYpjSzrsOqCZ8GPgPBDSBOLwHVU0ctb+qX7zewWSCjKVPNyz9mqruY2; 25:88kr8AobWKYLNtHpbwEKd7Z4hYSHXbNpoleQhiLSktOpn96g+R5FERAVwE+eZXLFfFJzq3KV4X34v28eE49f6afpuGR4N+4rpUyjCT3Sk/tLnjCJzmWSsZHM6hZsfXkwF1JqegRF75Sr6qWQPM5Lp971tf0OjnFZa+TkzFjHjWcQus4nbTxBfKEDnEdqpYYReWip1PMQazTlqkCb0RKUV5kLNBfPJB/UzxhIaUDIY9tIyG+wq0rw1rVLPBdUekyPEc/LCmFxsKFBBhhf1gjsqHzHGhoG0UR/W0sqYnArihVJtcF/9tctw32oGsKmtSSn7iKofxystr/evlTCx2aiHw==; 31:2L72v46DlLl4BLyxerSpInindMmTCOswc27xKVD/e2P/hFUSpjh5Ffj3hjf5uzWwz/2hN+5wcxkjKd2br+/lp9oKIeVeC9nXx2GmVIEIuLq4ui+WvKjfHqXyG4bK9Wh43/iR52Gse2gClvF23k6VAk9yD+xYFjPqDJTNeihPzVfVt04+oqDtEoEQDYwGvZ+SiODxHi5SwZ8lt1l/wsycG9GLJu+HTrmIZZti2yKeLtI= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:9Vq3La4GcIRyNaH1HD/53AHNJey5vKEjzwLHBRDtaq/2ax47NPtTJOKIarlqINWy2RDycXIg2bQQoqNEDDa1G8knom0QqA/Vzddk+MM02vI3Zg1hoGApdOfLuKnkEyEFJfzSciOatyZnCcTZTrndzuMofSTuSDjNL5aJgBdYZUKtgDp7g4zirUR9n/PkQTz618E/RAeEavlem22D534ryz4Sb8roraiIzSRNwg75o+kElRXLkqiUnXyfHciJ6OGIFBys9nF43Y5KR4xuDjkMOLtt+HzAbxB0jCvX0G/1AyQ8fe6v9b10+XOz6kuPlg+CHxrtBbwHAtAamF2T3lQc3iorV3Q/6FE8ozxJSUlha4RIlihaOfsTtsQm40xdc3RdVj9BFAovZmYF3hRlIWpapCDj7OmDn0dmSX7mT08f9uIFGHQivDJmdNOxz3FRIppSDEhDxR/hdwrQY2jsttC5T73QDWIILb/pSGduQxF4vGMz7CRvG0h5fBY1hmPc2vVm; 4:VRvyzrbPTxuQCe8ez6FPLO9FlPkscV11KA09g5XbUUzwR8UotEi8ukWIIZhOGrSHY0nDRYdGD2nAcCcWqs2QWRMIK9CYYLlFUYz0/4gGPjJCgs4a2EB4elUDfIlDVZw49ayCVmH66ilzEzSqCmwXCGu1hFf6KemtSmpqkeYvjjNrliifC7QquYfiP5+H46mVjtuT7IShq+5oKD+7Zb/gohMbxB/6BUTN/2WpK05iuE0XtxW7PXJION4016IgBBO07PYI1Rf5L8C9B+S0eqPEPAU74cA8dkFaHPwqKOC6k08LVVLculhX4rLvKjsviOWWTiKYE0Ld0e3B+/PHw6b4ZQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85827821059158)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(575784001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:0EDDTU1h5YueRP7FsCmbMN66y14VTQl8oAX2ACKHY?= =?us-ascii?Q?ykyPyG29VCshq95pHicZPkqKH+WfefgDKR+S41RAnOYPWdsbuR528xgu/7mL?= =?us-ascii?Q?F24Y3y3baUKCrpPu8XBFtNIUc+3KGpfeR15EpwMfbI9N82m9tmKlk6zlAoSO?= =?us-ascii?Q?2JaKKhTqJKyDQxD+j9NMwL/fC+32G+EY0OzOLk0DKdqQm26M1bo76FdO26wo?= =?us-ascii?Q?EVFpMsiWG+GN9WKKbuPrwv5ifo37uxGCls1rA7WfZPAw+yNJ2NwY7zJPwQrk?= =?us-ascii?Q?Q+Mu7eFhRrTTCyZUGOi81LTNP22KJjEYyb8Kx2jrCq8P+flSZgHkkibYpKSR?= =?us-ascii?Q?bHLhLCgUEDZYpll4qK1arYebym6zXlcrIEu/niqDpTGvro9qOQCxO+QeZpk1?= =?us-ascii?Q?PUQ6TLBVOfljsZs5Hmz5l7UfWTHgB7EgDZNzoCmTuUAEd/dCqpOLzEEoqsWk?= =?us-ascii?Q?ocxYVy5QNta3j4l+FWblrRZl+EHVYRjmf5sUY1naHQ7IXJMbbmTLZx+zqTPX?= =?us-ascii?Q?A2j8PWkd6xQRLXhDvYUtxEBa/AMbDKIclQj/Y2haXxYdfVUf8ehYPKJ81tfB?= =?us-ascii?Q?7wUf23g/1YnOwsH/rNas4C6ptwulY3Oc8jRSr35Q8M6NILfF1a2ZUtWfpRZF?= =?us-ascii?Q?IKF6Sx0jLpvGneHBl/nY/8wKwlLD3GHg7YXXPSoTs2Lr6P7PW2DxMiEKySd1?= =?us-ascii?Q?Xur+Jr4dIpDgDTNWYsqSrL9nkj9yKkH599txufmX4rIWeJdH3sArCYhBCUL7?= =?us-ascii?Q?1sKbGz1H37cXv/9BM5al6cG5oLUdoCjXsGnaXHnbKxtB2THIoeOSHQrWvGb6?= =?us-ascii?Q?GwK6Bq2KfnoAzpYTygTcgB3jTxmhe0B28OIX5rbvPqrs+oIh0wVYd0nDkCOI?= =?us-ascii?Q?cxqZCc4lI7WnSXwv79/nTj66kpPErobePa2cmorMT9X7SYMLVm1uD7QnFIBb?= =?us-ascii?Q?vzUFOHgT632iL0caoCxJPJmb0Md5XELSAbwm9wFukEl37rOQLsAhjATka03O?= =?us-ascii?Q?G7AUu+gQwVUeVml1+VTp+wTrqNm8kfxm35JQbBPGo2ALASVdRVyohbx7pHD9?= =?us-ascii?Q?Hn4ncT+xGBtnx7fBQA19JYQN7zH55GBkQQPCjM0X4K7Rn858s7BjFo/u8FIm?= =?us-ascii?Q?nVb+krH65Xg/60L0IQa60+VhE+T53y/na3Y6bp/mG0FJQLFLcaSlKtuC3Gxy?= =?us-ascii?Q?TEXyiifglMXo2Q5vrU1k/9wlU6IjeO6L4+oHbejMfmZQg8Torz2jFJgOTwja?= =?us-ascii?Q?zeAvMLvjhUM3KhV6gd2Qtg+XzSQtyUI93fxpRKaiWkiTBsnWnv9W6V6NGdJq?= =?us-ascii?Q?cYJgDp02UcTIdZT6U00jN4=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:jWTAtsnl5+NK55eDQ+zqwmJQaBcIGiSpz0M61PRPNo6gCNdmnIX1Jt4GONTprv9UFZYrb6ilNJCn/3VwTbAOLMD3t1aWnd8SmHGHjr1laQUpzg8l95uo5MkkgQsx2IkAAYIvyc5u9Soj6q9uxNzBf8t6KBp85cKf8TKdMEqOS1HC9sA2D/VQLUrzavjitD4b3SoYB9yosZec5dJwzailTvRiPStpEqdI6epnx5Ij12GU0prgFWpSp3taQdQJ3UKwXQYQMj69rLkQSxIBi1hXdndM9w5a8GBkIzsw0+b891j6/pYIlq8wB8JApQdEnpz/KsXNsNPh9GkCX3xGInOv/le/0ySB09CIEAe1u/FA8P4=; 5:CGqLNrtDa0RDT8Qjm5OztIwsrRTvrRk1Ywm4WV5A81EGbv3VhO64VL586LthNuhYAiKNhN5pM71DPXLsC3yj057LnYUCLo77oXIaSwYSBlYTmeMJ1nwWH70XdAaxMG6c49DKNJK0m7hvp84pLLpdweJavbKGN11fV6N4rN58aMo=; 24:PXP0hekUoPipsjDLs7k1KqbEmgKKHbHi+PDgWPVkmaIBxRbxgY4WqAUY3XYui1sFUffh2It2PzLeaZPLSWweW/6EaCPRUbx/uM1+7R5i1zs=; 7:vmd6xuasBEteMs8XFrkipZBBKfnYIQpZMqfDdxUw0d2UnngcGP1vk8Jqu/S2JR2s+OTZxpy8zrqyWgchWGlYhRvQbhnNtEA59JuPwU2YYhTE20IqzunPW6TfxmAFeVm/vd+1Q3bTh4cZjZTHKSkLVj/neJTnChZQQ/fKU17+8NoWz+S6Bwc5osC6eC+nzarJqWBi5H8dPmg64Y+o4JR4KDP3nErmvsBKrbp1lI6jTHXx8hP4cCHAOmvolDxKmMRa SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:yRaFnzAgrKNIQVanpE0G8t0VY7eoWJ4aQsl1/jQ8NrQgjWYlm4KEO0GHFYjIO/IVvevuSEzFTH3i6zJN5Qc0aYEC1Ym8JpBKPkMe3mGppN+UqnynbF6NlMn6Witj7CYrkoMAqgH4MRhnJxuVTDT5bvUTYfInxXUUPIpkxuxO4y7T5IfNuapuwLMylbji8+P9aepB7wD8o+qVttab2gzhmGz4/7AjMEtgrTSYNzSovvFjix8q7jhsZdcShlJUkUYw X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:41:51.4009 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a728f851-d9e2-4441-a7df-08d5673f9558 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.61 Subject: [Qemu-devel] [PATCH v6 04/23] monitor/i386: use debug APIs when accessing guest memory 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 , Peter Crosthwaite , Eduardo Habkost , kvm@vger.kernel.org, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Markus Armbruster , Brijesh Singh , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Updates HMP commands to use the debug version of APIs when accessing the guest memory. Cc: Paolo Bonzini Cc: Peter Crosthwaite Cc: Richard Henderson Cc: "Dr. David Alan Gilbert" Cc: Markus Armbruster Cc: Eduardo Habkost Signed-off-by: Brijesh Singh --- cpus.c | 2 +- disas.c | 2 +- monitor.c | 8 ++++--- target/i386/helper.c | 14 ++++++------ target/i386/monitor.c | 59 +++++++++++++++++++++++++++--------------------= ---- 5 files changed, 45 insertions(+), 40 deletions(-) diff --git a/cpus.c b/cpus.c index 2cb0af9b2249..c50e5613bed8 100644 --- a/cpus.c +++ b/cpus.c @@ -2147,7 +2147,7 @@ void qmp_pmemsave(int64_t addr, int64_t size, const c= har *filename, l =3D sizeof(buf); if (l > size) l =3D size; - cpu_physical_memory_read(addr, buf, l); + cpu_physical_memory_read_debug(addr, buf, l); if (fwrite(buf, 1, l, f) !=3D l) { error_setg(errp, QERR_IO_ERROR); goto exit; diff --git a/disas.c b/disas.c index d4ad1089efb3..fcedbf263302 100644 --- a/disas.c +++ b/disas.c @@ -586,7 +586,7 @@ static int physical_read_memory(bfd_vma memaddr, bfd_byte *myaddr, int length, struct disassemble_info *info) { - cpu_physical_memory_read(memaddr, myaddr, length); + cpu_physical_memory_read_debug(memaddr, myaddr, length); return 0; } =20 diff --git a/monitor.c b/monitor.c index b9da5e20d1e7..2c082d31549d 100644 --- a/monitor.c +++ b/monitor.c @@ -1358,7 +1358,7 @@ static void memory_dump(Monitor *mon, int count, int = format, int wsize, if (l > line_size) l =3D line_size; if (is_physical) { - cpu_physical_memory_read(addr, buf, l); + cpu_physical_memory_read_debug(addr, buf, l); } else { if (cpu_memory_rw_debug(cs, addr, buf, l, 0) < 0) { monitor_printf(mon, " Cannot access memory\n"); @@ -1564,8 +1564,10 @@ static void hmp_sum(Monitor *mon, const QDict *qdict) =20 sum =3D 0; for(addr =3D start; addr < (start + size); addr++) { - uint8_t val =3D address_space_ldub(&address_space_memory, addr, - MEMTXATTRS_UNSPECIFIED, NULL); + uint8_t buf[0]; + uint8_t val; + cpu_physical_memory_read_debug(addr, buf, 1); + val =3D ldub_p(buf); /* BSD sum algorithm ('sum' Unix command) */ sum =3D (sum >> 1) | (sum << 15); sum +=3D val; diff --git a/target/i386/helper.c b/target/i386/helper.c index f63eb3d3f4fb..5dc9e8839bc8 100644 --- a/target/i386/helper.c +++ b/target/i386/helper.c @@ -757,7 +757,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr = addr) if (la57) { pml5e_addr =3D ((env->cr[3] & ~0xfff) + (((addr >> 48) & 0x1ff) << 3)) & a20_mask; - pml5e =3D x86_ldq_phys(cs, pml5e_addr); + pml5e =3D ldq_phys_debug(cs, pml5e_addr); if (!(pml5e & PG_PRESENT_MASK)) { return -1; } @@ -767,7 +767,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr = addr) =20 pml4e_addr =3D ((pml5e & PG_ADDRESS_MASK) + (((addr >> 39) & 0x1ff) << 3)) & a20_mask; - pml4e =3D x86_ldq_phys(cs, pml4e_addr); + pml4e =3D ldq_phys_debug(cs, pml4e_addr); if (!(pml4e & PG_PRESENT_MASK)) { return -1; } @@ -788,14 +788,14 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vadd= r addr) { pdpe_addr =3D ((env->cr[3] & ~0x1f) + ((addr >> 27) & 0x18)) & a20_mask; - pdpe =3D x86_ldq_phys(cs, pdpe_addr); + pdpe =3D ldq_phys_debug(cs, pdpe_addr); if (!(pdpe & PG_PRESENT_MASK)) return -1; } =20 pde_addr =3D ((pdpe & PG_ADDRESS_MASK) + (((addr >> 21) & 0x1ff) << 3)) & a20_mask; - pde =3D x86_ldq_phys(cs, pde_addr); + pde =3D ldq_phys_debug(cs, pde_addr); if (!(pde & PG_PRESENT_MASK)) { return -1; } @@ -808,7 +808,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr = addr) pte_addr =3D ((pde & PG_ADDRESS_MASK) + (((addr >> 12) & 0x1ff) << 3)) & a20_mask; page_size =3D 4096; - pte =3D x86_ldq_phys(cs, pte_addr); + pte =3D ldq_phys_debug(cs, pte_addr); } if (!(pte & PG_PRESENT_MASK)) { return -1; @@ -818,7 +818,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr = addr) =20 /* page directory entry */ pde_addr =3D ((env->cr[3] & ~0xfff) + ((addr >> 20) & 0xffc)) & a2= 0_mask; - pde =3D x86_ldl_phys(cs, pde_addr); + pde =3D ldl_phys_debug(cs, pde_addr); if (!(pde & PG_PRESENT_MASK)) return -1; if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) { @@ -827,7 +827,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr = addr) } else { /* page directory entry */ pte_addr =3D ((pde & ~0xfff) + ((addr >> 10) & 0xffc)) & a20_m= ask; - pte =3D x86_ldl_phys(cs, pte_addr); + pte =3D ldl_phys_debug(cs, pte_addr); if (!(pte & PG_PRESENT_MASK)) { return -1; } diff --git a/target/i386/monitor.c b/target/i386/monitor.c index 75e155ffb1c4..96890547f6b4 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -66,7 +66,7 @@ static void tlb_info_32(Monitor *mon, CPUArchState *env) =20 pgd =3D env->cr[3] & ~0xfff; for(l1 =3D 0; l1 < 1024; l1++) { - cpu_physical_memory_read(pgd + l1 * 4, &pde, 4); + cpu_physical_memory_read_debug(pgd + l1 * 4, &pde, 4); pde =3D le32_to_cpu(pde); if (pde & PG_PRESENT_MASK) { if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) { @@ -74,7 +74,8 @@ static void tlb_info_32(Monitor *mon, CPUArchState *env) print_pte(mon, env, (l1 << 22), pde, ~((1 << 21) - 1)); } else { for(l2 =3D 0; l2 < 1024; l2++) { - cpu_physical_memory_read((pde & ~0xfff) + l2 * 4, &pte= , 4); + cpu_physical_memory_read_debug((pde & ~0xfff) + l2 * 4, + &pte, 4); pte =3D le32_to_cpu(pte); if (pte & PG_PRESENT_MASK) { print_pte(mon, env, (l1 << 22) + (l2 << 12), @@ -95,12 +96,12 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *= env) =20 pdp_addr =3D env->cr[3] & ~0x1f; for (l1 =3D 0; l1 < 4; l1++) { - cpu_physical_memory_read(pdp_addr + l1 * 8, &pdpe, 8); + cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8); pdpe =3D le64_to_cpu(pdpe); if (pdpe & PG_PRESENT_MASK) { pd_addr =3D pdpe & 0x3fffffffff000ULL; for (l2 =3D 0; l2 < 512; l2++) { - cpu_physical_memory_read(pd_addr + l2 * 8, &pde, 8); + cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8); pde =3D le64_to_cpu(pde); if (pde & PG_PRESENT_MASK) { if (pde & PG_PSE_MASK) { @@ -110,7 +111,8 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *= env) } else { pt_addr =3D pde & 0x3fffffffff000ULL; for (l3 =3D 0; l3 < 512; l3++) { - cpu_physical_memory_read(pt_addr + l3 * 8, &pt= e, 8); + cpu_physical_memory_read_debug(pt_addr + l3 * = 8, + &pte, 8); pte =3D le64_to_cpu(pte); if (pte & PG_PRESENT_MASK) { print_pte(mon, env, (l1 << 30) + (l2 << 21) @@ -135,7 +137,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *e= nv, uint64_t pdp_addr, pd_addr, pt_addr; =20 for (l1 =3D 0; l1 < 512; l1++) { - cpu_physical_memory_read(pml4_addr + l1 * 8, &pml4e, 8); + cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8); pml4e =3D le64_to_cpu(pml4e); if (!(pml4e & PG_PRESENT_MASK)) { continue; @@ -143,7 +145,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *e= nv, =20 pdp_addr =3D pml4e & 0x3fffffffff000ULL; for (l2 =3D 0; l2 < 512; l2++) { - cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8); + cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8); pdpe =3D le64_to_cpu(pdpe); if (!(pdpe & PG_PRESENT_MASK)) { continue; @@ -158,7 +160,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *e= nv, =20 pd_addr =3D pdpe & 0x3fffffffff000ULL; for (l3 =3D 0; l3 < 512; l3++) { - cpu_physical_memory_read(pd_addr + l3 * 8, &pde, 8); + cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde, 8); pde =3D le64_to_cpu(pde); if (!(pde & PG_PRESENT_MASK)) { continue; @@ -173,9 +175,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *e= nv, =20 pt_addr =3D pde & 0x3fffffffff000ULL; for (l4 =3D 0; l4 < 512; l4++) { - cpu_physical_memory_read(pt_addr - + l4 * 8, - &pte, 8); + cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte,= 8); pte =3D le64_to_cpu(pte); if (pte & PG_PRESENT_MASK) { print_pte(mon, env, (l0 << 48) + (l1 << 39) + @@ -196,7 +196,7 @@ static void tlb_info_la57(Monitor *mon, CPUArchState *e= nv) =20 pml5_addr =3D env->cr[3] & 0x3fffffffff000ULL; for (l0 =3D 0; l0 < 512; l0++) { - cpu_physical_memory_read(pml5_addr + l0 * 8, &pml5e, 8); + cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8); pml5e =3D le64_to_cpu(pml5e); if (pml5e & PG_PRESENT_MASK) { tlb_info_la48(mon, env, l0, pml5e & 0x3fffffffff000ULL); @@ -271,7 +271,7 @@ static void mem_info_32(Monitor *mon, CPUArchState *env) last_prot =3D 0; start =3D -1; for(l1 =3D 0; l1 < 1024; l1++) { - cpu_physical_memory_read(pgd + l1 * 4, &pde, 4); + cpu_physical_memory_read_debug(pgd + l1 * 4, &pde, 4); pde =3D le32_to_cpu(pde); end =3D l1 << 22; if (pde & PG_PRESENT_MASK) { @@ -280,7 +280,8 @@ static void mem_info_32(Monitor *mon, CPUArchState *env) mem_print(mon, &start, &last_prot, end, prot); } else { for(l2 =3D 0; l2 < 1024; l2++) { - cpu_physical_memory_read((pde & ~0xfff) + l2 * 4, &pte= , 4); + cpu_physical_memory_read_debug((pde & ~0xfff) + l2 * 4, + &pte, 4); pte =3D le32_to_cpu(pte); end =3D (l1 << 22) + (l2 << 12); if (pte & PG_PRESENT_MASK) { @@ -313,13 +314,13 @@ static void mem_info_pae32(Monitor *mon, CPUArchState= *env) last_prot =3D 0; start =3D -1; for (l1 =3D 0; l1 < 4; l1++) { - cpu_physical_memory_read(pdp_addr + l1 * 8, &pdpe, 8); + cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8); pdpe =3D le64_to_cpu(pdpe); end =3D l1 << 30; if (pdpe & PG_PRESENT_MASK) { pd_addr =3D pdpe & 0x3fffffffff000ULL; for (l2 =3D 0; l2 < 512; l2++) { - cpu_physical_memory_read(pd_addr + l2 * 8, &pde, 8); + cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8); pde =3D le64_to_cpu(pde); end =3D (l1 << 30) + (l2 << 21); if (pde & PG_PRESENT_MASK) { @@ -330,7 +331,8 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *= env) } else { pt_addr =3D pde & 0x3fffffffff000ULL; for (l3 =3D 0; l3 < 512; l3++) { - cpu_physical_memory_read(pt_addr + l3 * 8, &pt= e, 8); + cpu_physical_memory_read_debug(pt_addr + l3 * = 8, + &pte, 8); pte =3D le64_to_cpu(pte); end =3D (l1 << 30) + (l2 << 21) + (l3 << 12); if (pte & PG_PRESENT_MASK) { @@ -369,13 +371,13 @@ static void mem_info_la48(Monitor *mon, CPUArchState = *env) last_prot =3D 0; start =3D -1; for (l1 =3D 0; l1 < 512; l1++) { - cpu_physical_memory_read(pml4_addr + l1 * 8, &pml4e, 8); + cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8); pml4e =3D le64_to_cpu(pml4e); end =3D l1 << 39; if (pml4e & PG_PRESENT_MASK) { pdp_addr =3D pml4e & 0x3fffffffff000ULL; for (l2 =3D 0; l2 < 512; l2++) { - cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8); + cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8= ); pdpe =3D le64_to_cpu(pdpe); end =3D (l1 << 39) + (l2 << 30); if (pdpe & PG_PRESENT_MASK) { @@ -387,7 +389,8 @@ static void mem_info_la48(Monitor *mon, CPUArchState *e= nv) } else { pd_addr =3D pdpe & 0x3fffffffff000ULL; for (l3 =3D 0; l3 < 512; l3++) { - cpu_physical_memory_read(pd_addr + l3 * 8, &pd= e, 8); + cpu_physical_memory_read_debug(pd_addr + l3 * = 8, + &pde, 8); pde =3D le64_to_cpu(pde); end =3D (l1 << 39) + (l2 << 30) + (l3 << 21); if (pde & PG_PRESENT_MASK) { @@ -399,9 +402,9 @@ static void mem_info_la48(Monitor *mon, CPUArchState *e= nv) } else { pt_addr =3D pde & 0x3fffffffff000ULL; for (l4 =3D 0; l4 < 512; l4++) { - cpu_physical_memory_read(pt_addr - + l4 * 8, - &pte, 8); + cpu_physical_memory_read_debug(pt_= addr + + l4 * 8, + &pte, 8); pte =3D le64_to_cpu(pte); end =3D (l1 << 39) + (l2 << 30) + (l3 << 21) + (l4 << 12); @@ -446,7 +449,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) last_prot =3D 0; start =3D -1; for (l0 =3D 0; l0 < 512; l0++) { - cpu_physical_memory_read(pml5_addr + l0 * 8, &pml5e, 8); + cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8); pml5e =3D le64_to_cpu(pml5e); end =3D l0 << 48; if (!(pml5e & PG_PRESENT_MASK)) { @@ -457,7 +460,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) =20 pml4_addr =3D pml5e & 0x3fffffffff000ULL; for (l1 =3D 0; l1 < 512; l1++) { - cpu_physical_memory_read(pml4_addr + l1 * 8, &pml4e, 8); + cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8); pml4e =3D le64_to_cpu(pml4e); end =3D (l0 << 48) + (l1 << 39); if (!(pml4e & PG_PRESENT_MASK)) { @@ -468,7 +471,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) =20 pdp_addr =3D pml4e & 0x3fffffffff000ULL; for (l2 =3D 0; l2 < 512; l2++) { - cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8); + cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8= ); pdpe =3D le64_to_cpu(pdpe); end =3D (l0 << 48) + (l1 << 39) + (l2 << 30); if (pdpe & PG_PRESENT_MASK) { @@ -487,7 +490,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) =20 pd_addr =3D pdpe & 0x3fffffffff000ULL; for (l3 =3D 0; l3 < 512; l3++) { - cpu_physical_memory_read(pd_addr + l3 * 8, &pde, 8); + cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde,= 8); pde =3D le64_to_cpu(pde); end =3D (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << = 21); if (pde & PG_PRESENT_MASK) { @@ -506,7 +509,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) =20 pt_addr =3D pde & 0x3fffffffff000ULL; for (l4 =3D 0; l4 < 512; l4++) { - cpu_physical_memory_read(pt_addr + l4 * 8, &pte, 8= ); + cpu_physical_memory_read_debug(pt_addr + l4 * 8, &= pte, 8); pte =3D le64_to_cpu(pte); end =3D (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21) + (l4 << 12); --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248039113694.6223366689463; Mon, 29 Jan 2018 09:47:19 -0800 (PST) Received: from localhost ([::1]:53666 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDWP-0000xe-5Q for importer@patchew.org; Mon, 29 Jan 2018 12:47:09 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48996) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRR-0005YL-5E for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRN-0003L3-4L for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:01 -0500 Received: from mail-dm3nam03on0061.outbound.protection.outlook.com ([104.47.41.61]:15872 helo=NAM03-DM3-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 1egDRM-0003Je-Ub for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:57 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:41:53 +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=/nNCoPUZrKZzcL91NskhvyIWoMhnaclKHaJahtQm5rU=; b=ZiDlqbgXoZibyQUG8U9O8fDKVocJbFFh4Ka/+/VTQ/w+DmyjQ+Snd20RIOlaoRh+FNoWdGt+O8xkEMOYUM6MWaiQ02R7y5QBSfu+a84wN2s7Z7iCFHXCu+vTWqpDKdkI6tQmFdilSEK5eCMVcX/ZdwcX9xfuv75/3elY+9AUZOU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:14 -0600 Message-Id: <20180129174132.108925-6-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 07863f07-9f83-4145-8824-08d5673f965c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:TkXbV9XW3Zu8qraDpa+En5Neo5j46J0XcZd+IJQveaoVIqypOjJ+Tf/Uaect3lUpiZ0n56THuw4exa9zcz1N8nKuh7vkjrX/skWG4Xd1HszXhyiIdpVBpz5W/AvupmdbLNGGHhe1NGmJ2TuOu4T1U1Ks525qlNbLg7vFUKNw+8zJaYBF3Wn6TiLEUJ79qj48i7MzyK6++L6ty0BGbHbKZuGYOw3cgas4PlLI/XedmcbkPmgEy3+gCSzJ7sp1W62y; 25:aEs+eX2gmQA+LjlbgWFxxU5XiE02g7s6s21inIjEdOzSv8nVNIXDfjOyYp6qmIC75NJOsDHVn3trD5cYm6NwVvQ0GzNzMktWFwePX5kn+HX86luEwcXaCGIrYbUI0I8niVWA8qnPvrC3Md1oUHEH1py0r3DWQht829dzESq8Q4q29SSaY1yBQtRUFT3Zqk5Q1lgfBxEcmpFvqKPPMUK6FHZlykT3U3E4AvtdNnS0EPfeGYDFCWjnPiuI44+nTXxkkJob5e05+1ml12I5TXLdfKVtiELcPKT5M76Un7+EtOScDSNnL4gy1D94e2XJDPzHfLyqPDgBhavuvQmc/0jrGA==; 31:jk86cRHnXhBSpUr0f0QKozRB5lf3nkO8Iy43cS3wPDH4h8zhcMw7uMiXqbA9rb6n9VHw74By1nrzD9w+xmD0OJ/JzEgjvlyR1qVPTo8QeU5kF1cmy0vHqgdZUvbGssVl14jssDZT6pPZNmGXiT2E70eyKv2jf6Q+2Mt1EgnnHJIoWMpIRD/iDsMCuEaNyI0VTNnl7AyCFDqdBDXox/PIlZBEtdBQQZWPmLx7xvm6jpM= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:ux7L7dq91gVDCP6h7mdlbEWwRZpTJJCMWFKQkO8sRXeGIo7/Z3ZhB/iNzfrr/18bO0Zh/oSTinEL4OuAL5DC+DxYJvjM9G+nCjThczyuVU0j16vfz2+PNDwCCXH2NrmRRXNfXR9pNKq5wDhVc/EflkcgJWPk2qThLnGSEs3a7PTJWZR0a95SQ6yx3O2yfZRqgmiUJM6NhT63iz40GD2YSNF0WVu2a5mJQBTRpvlm3au3bWuzFtIKZDQpz6I72C6O5D3z4Cw6QouxCIJSTz6Spp9osRHEdm5P9cW9H2qP3ZWvH2Aya+XxC5YP4tmPRa4sbdpnPG0PRaPDMBPN8d2MYk053pQtkAv/HVHinhwF7TNKoiWlPPya1R6opMigPSahuM21ptfSfI1BmKV6lCmuO2veLuISi3I8GIOmE+4yXT4rkmLqhzYlDmwCUD/0TN8Msb3AhovK8QjfL8pBcORgT8WoYOr5XpFAEJ+Bcq/whJHVOLY+lpH1ODQlxyhNZlJu; 4:Vq1/g85hBbGq1Voris82FAv+rkgOdTjUOhEcubvkCvqAfokQr3n1dGAYo3nP+He/cShGrvqDO1BreoDLmDWFaI2tayH6RIwSI2kQIGi01bP9CL4/Wb3GXzmCRKZIq6OLky4W9bMvJJdGKbCzMWGFmJYqDVMfTQhldSDxv3VYWbo9Z9Xg6fuNafEFNVgdLdn4Jlov98qrTYSDXolr04kPgqru3LDci9/pOzNRyKQjGjGzxVtWrFXQUhq5cLmQ6gJA4d+F8arNo97o6M5HvmeYQY896u3DCRwclcF5SEDQPiEjlk7ctMal/u+cEWmc4/45 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(6306002)(53936002)(386003)(50466002)(86362001)(575784001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:5HnwjBF5hxs7ux2VAUaM96fr9jbGjB3sD7+jO6HiU?= =?us-ascii?Q?abI9aGkBHK0had7jBX5CxzwwKgndNBatOYsRSaOEFMEhDlSVR2OsBAphNbUy?= =?us-ascii?Q?IXA+Ax3D+uNKEPEvQpgVQH+3UbQ5GGM+w7/P+Q4ozxj+wDowvXhb8bvs02Xb?= =?us-ascii?Q?E6mXLPQfhgHKtuXFoOrwKcB8EaoS8E1HLlZPiotFSbaqkor87G80u52ng9SA?= =?us-ascii?Q?Xeu2CdEcj4PyXv/DVEngpHBkpw/1X/FuG1mjy6f9i8pybFMgPCfAQEYWQ8Mi?= =?us-ascii?Q?ctJZsnQZV5Z4joFxJd0zbXzLo5oIYVIxpkhQ6XfEK4Hu1QYMfuhi5lVjm9iG?= =?us-ascii?Q?xdR0LgjDfxNzGXal+/pAVLoB0no6QkvqEvjlaG5jgO/2sy1B4xdnGMKARZxc?= =?us-ascii?Q?DDoWEGeOWpnd6HYpiJlU9udNotFutZsFLmlFfm/2/YMP9s2S0vlFM7Wh6+iN?= =?us-ascii?Q?ca5mDF7UBO8DVEE41CgwR3rbPeIe7KHmHADfiSoeMJWIe7rq96rvPWhG8VQk?= =?us-ascii?Q?AdaZPi0tZUqvIToKlLJxdpp9foF1pdLYI/JESKeq8gmI583ve8off0+jF8dL?= =?us-ascii?Q?M7TS9svGwQsx+XzV9kmbozdF9qL4SAIF0I3JEvc7ML6EVgxrGlCBfw/VhXUm?= =?us-ascii?Q?40rmrnKTi2JFhHT+N0YF6DquR5ufVW6pYrqrLIwksMxcvCkPwZf4uSmkYVdc?= =?us-ascii?Q?xrLdVeafya/gI0q5YGjfXbucYLmQLO+Of5muZX7LE7NlmI8rh6wEMR/albE7?= =?us-ascii?Q?vTNWLKNP5e6YgOWspo4envApJz7pyJdBEbFZb2TaVCegNjUJTSG9w7HnaUh0?= =?us-ascii?Q?ftZ2zhBQULSCejLgaehiByLaHMk1W/6dqi1FQ0Si8q+ajHOMPeZbJrLIoKO0?= =?us-ascii?Q?WHhgACr1eolXc2byPdbOF7nfZ+GffCKsCRmWhV4AP/aTJXnb6rpR7icGjGTv?= =?us-ascii?Q?5BHCAQI7w7f0qhAk658Ms2v8OCsL9SnCOpVCqrzNiN1AF+uDMRLCRzKA2qPB?= =?us-ascii?Q?GHLZJQzgNv6JCO/XuVfmiyn5ftE0TdehdEq0hjGETakVHRVwnUQ3RweUtAEp?= =?us-ascii?Q?c6X8RnieBm7RvHmeKqVO7gBNd300vy2w9fVDzYwFL4tI5Nvv1fUWtmVCt8MD?= =?us-ascii?Q?kQpv48xRQp79nhkldz8RoP25s2/p8xJ+14wLUaw1hRik+nBFZKy/CLDlxTyW?= =?us-ascii?Q?Af3hkIcaZMzgJBGmyU2MKNSLUNHwjCEMnv+LHjX0jZGLbm9rV4nzpSQmHt44?= =?us-ascii?Q?Gnsc40WvVNvRfRROUG6IRAxhjILrEQse6JMSODn6l4Sr+ogI7MR8Z/0fZwkQ?= =?us-ascii?Q?t2Fko0eYUNUGkBz6yvH/rbluXdxYd07TCt9xUm0xutk?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:knvg27L8tdIA/fXKmFYbiVkVxkSROP1C5sLIqwh7fwduQmLg4QRmmiR7QPpy9EK8ZEfpMUR7oAXxFR5Guv4ziNpeFvxvtm2ostLPi/LXNthbv9+wz8dF5DBtjnZsPxDZM9mIaC1NV9fONeNYlzLahsQyPbfwqrpmOcugmWPZenzPLi9l76PJpC7cQXSBUuA8Fz4N3Pxxkqkl6O+fpJ8G+XYdsO/MK+I2cf7ez4N/aCDqLUZMPaW6McM6VMpDg50AJYG+bd7S0aAh1OMkU8N3ihW0at+7mZsoF8pHAB095zT7RmGqwxSwacW6OiyF7OLJrgYwee+NHcHl8ER4ZtzxRxWvchOmjILrFEDazq+hCdc=; 5:paIVQW+4Dd6pMngFbevIM5nLTSf7MNaveyWBcMWQ01fccCP+mzOT96FJ2ICmQCqol36lJ6Yrol7IJcxY4LlTUPxaensVAtb2Gq6sw81YGVKgDfYMbdB4Pfak9sSrHep/F1WbPptl26z/G7XiIsBVLpj08XoLmeHkY28BmO1QQbI=; 24:Ff28UCSAk5x7OCyaKh3zmV9Cvh33xlQwd4+MZD1GUI+J39HJCBdTlAq/B9pg8Yj2J4tU6m+XD3KWrSDR5x3Njy739BJGK6qmjG81K2r70mc=; 7:tcD/yM313ASl0+eIWUV/36PfHHJJ3UTy5srTS2/1YPXdL4SNqpSwcqwsUOyeFfI5ra8K6mYRS23lSCk1SntlDIdFIOkuPW+PQX/q6WSkzXi62YUojTRPBa+TaC/eZjxp3LvFKV2RUU0+1OgspXqc6IBkQJQLwRIYOvBp4ICTK6vzBZHcNsPDJwf9s3iOE9gKRJLfrzm/CdAGWl1ObECCRdyL8+C0M5AXPDEuYNd1NDUnTct4R/QcA+yaBnbmR1Sj SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:dQox3IxF78ojUcyv/F7QjvqX94gzkslgKxTjL28CwbmhbXau4X27Kv4cOH7xnVOcGaXIlvOx4W4RBFkTd0qg3GqWhuWA9UiswSFWkFWowqu2s2tM9YUC0yJr2oYi1YBjCIAwJCaOuHCsZXfquvldg2uh9vg4sEpjwWkyvGmUZbM8MPbVp0D5PuOQyFmctUmGWjN89RVVSN7pw/jjsezdGSje9Q4YdFyq1TRKZgJ4d+UhmpXNjFmIExN4vbgYI78c X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:41:53.2602 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 07863f07-9f83-4145-8824-08d5673f965c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.61 Subject: [Qemu-devel] [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" AMD EPYC processors support memory encryption feature. The feature is reported through CPUID 8000_001F[EAX]. Fn8000_001F [EAX]: Bit 0 Secure Memory Encryption (SME) supported Bit 1 Secure Encrypted Virtualization (SEV) supported Bit 2 Page flush MSR supported Bit 3 Ecrypted State (SEV-ES) support when memory encryption feature is reported, CPUID 8000_001F[EBX] should provide additional information regarding the feature (such as which page table bit is used to mark pages as encrypted etc). The information in EBX and ECX may vary from one family to another hence we use the host cpuid to populate the EBX information. The details for memory encryption CPUID is available in AMD APM (http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1 Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Brijesh Singh --- target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++ target/i386/cpu.h | 6 ++++++ 2 files changed, 42 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index a49d2221adc9..4147eb6e18a9 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_= t vendor1, #define TCG_EXT4_FEATURES 0 #define TCG_SVM_FEATURES 0 #define TCG_KVM_FEATURES 0 +#define TCG_MEM_ENCRYPT_FEATURES 0 #define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \ CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \ CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \ @@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS= ] =3D { .cpuid_reg =3D R_EDX, .tcg_features =3D ~0U, }, + [FEAT_MEM_ENCRYPT] =3D { + .feat_names =3D { + "sme", "sev", "page-flush-msr", "sev-es", + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + }, + .cpuid_eax =3D 0x8000001F, .cpuid_reg =3D R_EAX, + .tcg_features =3D TCG_MEM_ENCRYPT_FEATURES, + } }; =20 typedef struct X86RegisterInfo32 { @@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] =3D { CPUID_XSAVE_XGETBV1, .features[FEAT_6_EAX] =3D CPUID_6_EAX_ARAT, + /* Missing: SEV_ES */ + .features[FEAT_MEM_ENCRYPT] =3D + CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV, .xlevel =3D 0x8000000A, .model_id =3D "AMD EPYC Processor", }, @@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, *edx =3D 0; } break; + case 0x8000001F: + if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) { + *eax =3D env->features[FEAT_MEM_ENCRYPT]; + host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL); + *ecx =3D 0; + *edx =3D 0; + } else { + *eax =3D 0; + *ebx =3D 0; + *ecx =3D 0; + *edx =3D 0; + } + break; case 0xC0000000: *eax =3D env->cpuid_xlevel2; *ebx =3D 0; @@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Er= ror **errp) x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX); x86_cpu_adjust_feat_level(cpu, FEAT_SVM); x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE); + x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT); /* SVM requires CPUID[0x8000000A] */ if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) { x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A); } + /* SEV requires CPUID[0x8000001F] */ + if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) { + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F); + } } =20 /* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set = */ diff --git a/target/i386/cpu.h b/target/i386/cpu.h index f91e37d25dea..f7a0ab20fdd1 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -483,6 +483,7 @@ typedef enum FeatureWord { FEAT_6_EAX, /* CPUID[6].EAX */ FEAT_XSAVE_COMP_LO, /* CPUID[EAX=3D0xd,ECX=3D0].EAX */ FEAT_XSAVE_COMP_HI, /* CPUID[EAX=3D0xd,ECX=3D0].EDX */ + FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */ FEATURE_WORDS, } FeatureWord; =20 @@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS]; =20 #define CPUID_6_EAX_ARAT (1U << 2) =20 +#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */ +#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */ +#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */ +#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */ + /* CPUID[0x80000007].EDX flags: */ #define CPUID_APM_INVTSC (1U << 8) =20 --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248038664339.5329981311487; Mon, 29 Jan 2018 09:47:18 -0800 (PST) Received: from localhost ([::1]:53667 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDWQ-000105-4o for importer@patchew.org; Mon, 29 Jan 2018 12:47:10 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49008) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRS-0005Zl-C7 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRO-0003MB-6W for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:02 -0500 Received: from mail-dm3nam03on0055.outbound.protection.outlook.com ([104.47.41.55]:53115 helo=NAM03-DM3-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 1egDRN-0003LQ-W4 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:41:58 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:41:54 +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=gfCqisrsrsTY0pt8aBwDEHypK5iwrDb61Xp3GAfOYkI=; b=SnudTwSgiC6ohEYUdUEs8aiyH1oZhPhZGuQ0gTDu6uVFDmWXsgx7XhAj4pxcfT8f8wg8aAw5F2dgEbsddVgua/tnqTMMww7mtFAXl12hGV4G0DNHcg9aJML7oVd/bL8ReH3CyelnpAe2ofBOkoMrZXVr4/KmGAARRyTdJDKtQUg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:15 -0600 Message-Id: <20180129174132.108925-7-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 763bc64e-b0de-47f5-4165-08d5673f9759 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:vniT9g2RZ2hDoITetYE9hO4yqLq2M8OqUE/uwnoCtFOZtoZHFRhTJl1Px/DLkgtLklyGWsLgwzcD0XqkbJcqvLcOg63YWBJZRPvgstVLttIZ50ww07vHJfbaTH1249TL3xRIJXd4wYJ1we3hj/67bti3RkDdDvOiA76dSQ+z6LGqxUhuVcQq+VugZJ3PcP63krLCDlUZvB93gpN0b3Z5vwugB8qfSc4vMhJPPdRMN+ggYb+2qpuLgK3nYSnhiYCQ; 25:ETfvvkEiY1i14TkWVYLSwTMVBV90uLehmYUSGF94fdbVD7E5UWG6WzSD3dzqtsqT5LYpNGzS5QJfJTwn9XH/tc6hE/zQAzw9tEndkTO1LC4ylmLv/f1Ondj/kq46i+or23GFRb2A5YIpIJ0zuuGunqzcZuQOtjVFDJjv090ToChGJtQHHawUvrvKsS8q4wWxlNEq9LeqDh7gtoQPuYOZIqzkCD6iiZZMwK9M7ATPxY8m2AGubjB4l60AODqIfStK38fWUxgT0iP64T8/tuuE1ePh27sopkuSEUc9uo65O8tD7zHd2vKGPmYnevaf66+YSmphiXeSsBWEpU9xgJOWmA==; 31:wQFljx4sWiJG3CWagQJqxXKMl7zRbfRs15tyjHf56vA+uCZW6Q3VKPF4SbgmsknXfepP9r/FLT0dZR6lUCDGwG6cmXiCYRiokhXpZErTi8Z/yBD2fd0pEEWLkOXcttZOL0oWQ1N/s57F3NgZoS7OHyHw+vJskDl7TqQlHz/YD0biJor2M7Acqb+r1CjdNGgBc3EFOPk25W69NxK6NLtpfvOLvircJNygMEg3zBl6hXU= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:o1FdfDO7GT0oHHgLAyNRXjiwz5eh+JlG0VkWAVUExh8syqbpdVVXrVaxBtBUUHU6dj046zXvULVXiBWeIpVHuAz2hPzQt0KCN7kfWSrIyFhXoZyJwE4SAhvEY/xLvDsG4rxZg1Rn1vaMetC/B5f9QEAjjTW8oZV/rk+ou2cSAhnXwzrRKXfgD6SyrbrlZojfhVAk0ffk7E64N5g7HRZ5txWtzrzNeQuumT3j2cMCAkY2fzFQYdkGWG1ofUfYW8vqXEC4SSq9C/1kGBTyPMNZvbS6rgZUMyMYlsd7T3ZR6SnZF1r/OyFIr5Xw+3WSFTpHvfmZKWb6kjdEozKmYXYrRmZHkxoe8Twi/zdPY/dByFKq95gMS8X+LR0cRiX7Xk/tqt1O2CVqLbkvqTWQRPfmN9xlUMgwvrjP4Qm2c/brZJ9aqgAFZ4vOsNfLIh0k9tqZbFDfV2GQroT7UYKTk+gdaFl6mZF0bRA07K71u2Ifv6VZJYsJP8DtpSeNQpfyXjJk; 4:TqPmp8aZHjYy7Qr+dG6hfnNRYTztHONowX6XuWZRxlcIOuxX0xJKOTEtDL9nPtMhpLW5o+uTb+fV6hcheeMTrgG6ywu7S0gOT8ZWzPClPLkQzMA1ywdROFXezyRH/K50uqibuqtpHfkQZFZBPRLRPFwyLD8PSHJdciU8HNWpht66Y8caJbCcFmz1hp7bwl26Hzfuz6TnaRLvlIYCNve2nlErXMUy4oIDjsMDpV7qoCKLYCqOuwprJHLCkZ1rhH9N/Qd0yr9P09qjCeyyhy/9xme2Dqgf0mL3UygfFwpOOg6vQbX9CggtB3p7RQ37GbGBm6D0xI+UyTgH32fkfP9/BA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85827821059158)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(575784001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:fx4BKCe9ylVOBE5hcWu8xhcuec3/l1rFnKtFdSwaT?= =?us-ascii?Q?sMdTg1wW9b+smut03DmzLEz5Iwer0fpP7NB/WB7cfiZsu2hPsC0XSFOl7Xgj?= =?us-ascii?Q?+PF0TWhlHkX4a59dRDOAzWZhxJYbZA2ZdENXfoHNaQ+K4aBB6iRDd7anoiGx?= =?us-ascii?Q?urV3an5X6uljyfPbkZeE6o9T+Dh9GcQjCvTwt7T4fsmCt+A7nTA3F89eoWtn?= =?us-ascii?Q?oa1gmiV4rFIEyJUuVMuv//XD6ng+cPdDsFt+0VLyTiOnZR5HwvmtqoQ6cLNs?= =?us-ascii?Q?AyjjgybOzyVFl2AKtLupJGhLYooDOnPt18vtmjjULHB6O15SuD95ET3EGwaA?= =?us-ascii?Q?5i8rPkEvj5uk958i+TaliJgiipTcK1nvUciOBq4M+jHF+N90LI5xb2mCiOwx?= =?us-ascii?Q?by93pR97C3jqA7ni/nSADAN+9jZ+/FAeW9X7xvfH6iSqL1d/SDazumf2Nqtu?= =?us-ascii?Q?jQlgBH26O3y/QvctZrnD+vehK22sOSE1tsbYXPGeF5k+DfyQTua6l/SFDtYS?= =?us-ascii?Q?gyKwtJaBkSfn1QgNtbSlNbfZDDk/LKneJtjRRm4K+UIJsNICKGmqfQ0Gikw8?= =?us-ascii?Q?Fj/5NDLP95SkCpPFJo6poC7HF9RFQmrylS/0d6eVaiNiWnPbZX6znweXwZ78?= =?us-ascii?Q?Y3e3+iSedcVzrDQtCJQJvHCeKVPxDzTow1Z1o+kIWo6+AdzVlX1Ms6BjKq/l?= =?us-ascii?Q?EtuxLs0EYtrKpsVDOIUQsmCopruQCBxcJLIkqIpvwvGbS5+TkDs+O5L41eQM?= =?us-ascii?Q?Lu0+DnhC+Q2+RuyDHMGqBoJ4Rfu/dO8Qbx4sv2KEz5mGEBqqFqXAlTsNQT8+?= =?us-ascii?Q?x1pggf8uFPqHPGjsJd8LP7QMsE43zljbz05HQzW9H90gxXWhRmeAKGPKDBBT?= =?us-ascii?Q?gyuRip0n/wQTa0OzgpWrNtXbFc0L23fZTwNkHR8vH0mflO3pTMjbEbBWIi9e?= =?us-ascii?Q?JPM0ExI9kKa9PA+RZh4lqp2+HamEj7szx8XkCny6fviXSNHFUak4Bx0X5ghw?= =?us-ascii?Q?kYaAmF7lKUYfvdvcx7dZpGgKCocWVDUYyPnYGp0IbfNJLAnpDa+u6zgPuFYb?= =?us-ascii?Q?Du9ykjxmtfW9epXYz8ItmT+cP7W1EqUCJpKFVcLvX+gR/7CIcjLjYMXYXF7N?= =?us-ascii?Q?sVgupwVAa5hpZ29olLVMGsBWJ9NCf5p1MjVVUcI9y76JQwlLqpMuol8c6Jg/?= =?us-ascii?Q?BHUPTMgPhNXi0xeCihUhlIqmSTJQQnRgFGJcqztPTzFh4XPxsgD553ERshVi?= =?us-ascii?Q?Ku7+uGKRG0aXOLk37uw1fcC/YOxk/YFCTxykfvAjeRMQ1dAdz9rcRd29TZ8z?= =?us-ascii?B?dz09?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:Xz50/K9Fy1zTZp1q4U/fDHArccy4pKTJpGDdI8H9Dw7Zb3O5edlnqCzV2e2lkJ3s4nDzfCbYS84mF9jAZ7ywxmluR2eDmgD3jPnkkp582Q980V9o/Uhi7S8ivGGLLniiHfIWj/5hC8bYCbflU2D/TlG7BdXuwU0ReyHPlS0rQZQHn1KFMrJXKxfJcI5pqEyEaUYQc11NG/a48gsOcX6Nen6Oatf21sQomoa9BbfeoonGXEayi4sLdBr6Y7vikqTB3opvoQNAyx6Gx1DjMSOlZ6v5BoUwURe0EPcjEuKvOD1Hsh6z5rHnaSQyW5bnrwTDW6bU+dTm5ALVk+DHZwurDfi6L75Q48LZbUphwjQvwnw=; 5:LXzQaVbTqJaCTKo4vfi6bIpUoqBBa9zEmZwwiTU7RaKzzseJ/25rU3V3A7f+jsfJnCaKzlq9Ce1jpK9nbw0+nn69pM7cY/VLuAhLHjSxp2FvJRfXUXsp7z56K9JSRtUQNS4W2OEgc7c8HOCnujfTMl6z1ZhoR5EMLi6Mnz30+OY=; 24:8GCYQQa7Qe7ReaAxDPCu+/yRZMWKNkkKFVxpwLa4/x+q0t5Vklzc9crv1+cARfTcQUCAuX33LmXI+FIbi0EjyWijRE5Ahiqp9EPs0ZCjZU0=; 7:PW3z4D/0hIQL9H0FRISgOCqEQrWw9oRbMVhAmTs9q+1jubSOukCTxyi7zvVTtTB3PGTv0ngVzpQ2HLGLTsd4Z0Bz2OX2zDe1lGrHHN/4QBOPVsfRXDYHjqX2LTXg6i7/KmCaR9yzgLNcfS+dVP35VKZhEqoyz1lxQy26k3Mzi4KOJIH8b5VrAhihBy2XlAmbiPFOmYcp+EEEI0FjeqAoD6MmTj1h3S6QGz4Vet/3vCi0TKAYsZf4FEddZx+NJOro SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:Jn3TdA6VdipsXtTru5IBoTuanlKaUK4nW5yVHg4e8R2WWtk/RC+vWO5WmLuYqV5e8ny46FcSukWX9VN6YYeDFAuyu7FiJqhxnvaOuXgD5H0l5B1PVzRYZBag4xE3YmB4wRrR5n/+IWkXMbz7uEru6lC//ibTjoa5grcrAhkfdkIAShtZvkenYmxjDUYBGPSKoRn+bHDFFFnuKsRwWD9dQPQJi3MNB5bGfLC3tkcPA9SH4ZUOCO9LIkd0xUbTvC8i X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:41:54.9009 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 763bc64e-b0de-47f5-4165-08d5673f9759 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.55 Subject: [Qemu-devel] [PATCH v6 06/23] machine: add -memory-encryption property 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Marcel Apfelbaum , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When CPU supports memory encryption feature, the property can be used to specify the encryption object to use when launching an encrypted guest. Cc: Paolo Bonzini Cc: Eduardo Habkost Cc: Marcel Apfelbaum Cc: Stefan Hajnoczi Signed-off-by: Brijesh Singh --- hw/core/machine.c | 22 ++++++++++++++++++++++ include/hw/boards.h | 1 + qemu-options.hx | 2 ++ 3 files changed, 25 insertions(+) diff --git a/hw/core/machine.c b/hw/core/machine.c index cdc1163dc6fb..e9940e58ad65 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -334,6 +334,22 @@ static bool machine_get_enforce_config_section(Object = *obj, Error **errp) return ms->enforce_config_section; } =20 +static char *machine_get_memory_encryption(Object *obj, Error **errp) +{ + MachineState *ms =3D MACHINE(obj); + + return g_strdup(ms->memory_encryption); +} + +static void machine_set_memory_encryption(Object *obj, const char *value, + Error **errp) +{ + MachineState *ms =3D MACHINE(obj); + + g_free(ms->memory_encryption); + ms->memory_encryption =3D g_strdup(value); +} + void machine_class_allow_dynamic_sysbus_dev(MachineClass *mc, const char *= type) { strList *item =3D g_new0(strList, 1); @@ -612,6 +628,12 @@ static void machine_class_init(ObjectClass *oc, void *= data) &error_abort); object_class_property_set_description(oc, "enforce-config-section", "Set on to enforce configuration section migration", &error_abort); + + object_class_property_add_str(oc, "memory-encryption", + machine_get_memory_encryption, machine_set_memory_encryption, + &error_abort); + object_class_property_set_description(oc, "memory-encryption", + "Set memory encyption object to use", &error_abort); } =20 static void machine_class_base_init(ObjectClass *oc, void *data) diff --git a/include/hw/boards.h b/include/hw/boards.h index efb0a9edfdf1..8ce9a7a21d3d 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -243,6 +243,7 @@ struct MachineState { bool suppress_vmdesc; bool enforce_config_section; bool enable_graphics; + char *memory_encryption; =20 ram_addr_t ram_size; ram_addr_t maxram_size; diff --git a/qemu-options.hx b/qemu-options.hx index 1d73fb151d87..bec3490d7b8d 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -110,6 +110,8 @@ code to send configuration section even if the machine-= type sets the @option{migration.send-configuration} property to @var{off}. NOTE: this parameter is deprecated. Please use @option{-global} @option{migration.send-configuration}=3D@var{on|off} instead. +@item memory-encryption=3D@var{} +Memory encryption object to use. The default is none. @end table ETEXI =20 --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151724823336025.20551000614182; Mon, 29 Jan 2018 09:50:33 -0800 (PST) Received: from localhost ([::1]:53690 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDZg-0003qy-In for importer@patchew.org; Mon, 29 Jan 2018 12:50:32 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49040) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRV-0005ck-R8 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRQ-0003OV-Sy for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:05 -0500 Received: from mail-dm3nam03on0043.outbound.protection.outlook.com ([104.47.41.43]:6400 helo=NAM03-DM3-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 1egDRQ-0003Nz-LW for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:00 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:41:56 +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=bv9dD38Hi2ZJVpK1Ti26yayRzMsB9n4y8krJha8CSr4=; b=mJEWvavxqiFOamgATNtoQku48Elg7ElXyolgI5AmwQKTo+1nkUyJnTWCMIfIDdL2J0PfEJc/c7Os7x0e3rqT4bBOa4VLujFQr1Jr3NYxKZiMAp5PU781/7Pe/n+h0T2Z2O9oN0xZRh4bKGTj9j/teDJ7214ap8b18bxZbEpMIVk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:16 -0600 Message-Id: <20180129174132.108925-8-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9398ab5b-e4f3-4b4b-330d-08d5673f988f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:4wHEBx/UNy0156eeFcwTBT/d5glOYIShLpWB56Aco5RNnEAWtOVH/YgpXAW+XKZNs2KVy66Y8Sb0pk86Zrvczl98ACVtM5I9YnATfUD6vmNS7ppPnHRy1S2+JEeBheAEsWI6ILPHv4q9y+jiwOfmL2KG9CymVHrlQu4xVtb6CGL1Z3XKwNl5q0W1n/u6m0zcWt9JW+MsfVrIdKbOm4ze1gg8UFFagApbmKQn/AIpmJ/OKJlwfZPawpgcPkM3dusr; 25:FOV6RbHX98uJkkJH0VExx2KlWd6d4AyHe97J6VGIbal3Udd1bpfYXPzvaZS6SOf8HMe9dENIr+/UTYMyB/Q8bvxJ8QwMlkStJ1L6YmpCxPh/7Gk4nWF3QxwuzlBmMEJqgXeiY9wpoGPUqa008b21qxoYp+MHmxlUa2VGBRrvzjQR8fUFEvn9ZM3IEeoNxfmJ0cleixgvfSTjY90kOoGl0Wy1Prb9TeyozGcOiO0pPAZ4daJrnJUBGuF//VjEZdDI8X7lueZ7zmMl4Rns3wGbBAak+ivpuVQnU6VZW3gZQFaa180azg1on87O4mPzHA5p+hmoF8SRb+vMgt3DX8pgRg==; 31:BYSZQjAdnCMLdXUwmXrG8aaXVWUtTg/wnBOI4zB33hurZuxbGJwmYdW/3yX+eyufgAx+WXJVvdv9sQhs31kHYGgFo1MyEPz73k/YjuyDhNvt0oC/ndnHgFahiV+PGFsGLO0CENAY+VVkZcE5vNQfne9sJeisYqRlPj1nfwnXs29BO9XiTzfISsu3pxRTchLoboYf+5PXL37QoIQZlagTNvmgB/HhEm0XWWE1fPc6DFc= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:219krUL7vi+dDxL3dLfEo9sh83cX746mgeBZtP6rs6qV9OUrXBBUzIM5NPPjAB0OwW7ccqBK7/SBqCKLu6Di/agu+Jr19MekdIGOT/UrDcUrF3R4nhDfybYQ3Hw5Z/upvspu5qwYW9ZW4z5SuPDk9A0SxX0ND5iAnKmy0ELRuBkQWioyfVF7jykpsntve8D0Iz6LJnz+oQxKKiO9xKEreTSU3T5MPAPYSxpKtAGxGVlOSsBTf+BDZe3e1WG67QX+ltSc7/ZRWNgOSkl004SXPGeHQ9CSbYSkPkfiGaWC+OPVFQfVf4TSYi17xbqEPcu26y9nYzHnTjx8HYbBZe4ACK5VGjtZ/zVQ7hdjKvDU5DongKEXwUO/nvAD2dimX3qV63+OEY49ottwYs3noELX02I4nSveKb+sxxP55xi+o2hflikSp7eH4jpyY011RMkjQscEc+JABKgTK1yEZNnhr+T7xM7Yk+niSxHRxm03H/lNN5i8kZvKX9RlF7RmJPqm; 4:1enEtL7taj0efcme1FRXcOkDsvULeObHxyfQTc5kei13fD2wk//4yVCXSmEdsnB2vZG+ZLYFoo2xs9YTGfGtfbaFVhbo12doLnUZWwpwxLWA9sGHoM+hKBaGopNUp5aTYRK00yWUAtvmiHe7kTQhGlY/InWNkps8Voh/ShwhKrcJZw98yplZEOk/+mfVsoOM5gtUntsgiKITbz185wlPh+lNKA07j2ZeU5C8xn26Skci/RaJ5YHpv4T4kCCc+IJO4fICMKyYzjGPuGESyOxZDqwgR2B9sxHaKz9m6L4X8JPrmbsAj+4RwFNPTsL7txPZPBUEnESKe/kO9ysoipN9zS4h/z7W6qG7vn3DqpdXye7hQzNBqKWwK+/WMSXvlCLN X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(190383065149520)(104084551191319); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(15650500001)(53936002)(386003)(50466002)(86362001)(575784001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:mqDH4Hxm+eFlcBCc7zcZdinlJSxYoGZwDXhueQkbL?= =?us-ascii?Q?CkNzgp8qcKtEx5ukL+ShsckKeotlVUNitwbUvdv3v2BUtVQ21ir34ZXPshHl?= =?us-ascii?Q?kfBZLw0c1S/jXl6PIXse2KiVXjvlYN3jqQ1PccbG8Zg9iGKftebGFuycEWNw?= =?us-ascii?Q?lyTZo5W6h6zj0isAW+I96oez2C3oQOCXRnGHDHEw/Q8JW9NoI+QSlJ33hKIZ?= =?us-ascii?Q?/FrAFSGjjBPYGa5ZPaZdg1It5NzRUi+K7Np5NGZOCmpMOpZVI2kKHVD+1Vo0?= =?us-ascii?Q?FdZCyYAMDWc0IgpFHVvI03LwGGTOguFgEdvmwwh9xVBDj5XSvsdpTXipVjUX?= =?us-ascii?Q?B/1YImajjznTRTAlmW6PbTiDBUOOxFebYz7+tt9XguQIRLooowQY2hSYnYHh?= =?us-ascii?Q?QMk7+64uG4XFe2HCD8w0N3yxdZdGQG26ErfR0QsnWmS+FARfKWYji5WfWToY?= =?us-ascii?Q?s+cNQ57t0sdmH2I0SnjeyqUxodBTaokFGRQfoixeBdQaVrQl2WeOC10+04hj?= =?us-ascii?Q?26CYnLxbnVAwB4HgHK+onIe6sT+tW+8aAqZUc7m045JbRc5pNmd06ofiWkjb?= =?us-ascii?Q?4cJNbKlm6qCFCspaA5yZFjd3OnkBqvEowk3pbG7iYc9HHtSm3cv0+6oXdOFT?= =?us-ascii?Q?SOajBQKCort9yR1LvmpZWZAUKqhvPwWkCKaufs8H3ZZvVze8EDZVGt3KAXQ7?= =?us-ascii?Q?kP7iqzk9SBcDBGhlqDYT5o/Vr2i1dQMAP5nKLyGkhrPXDs1gtkQePrJVjtAN?= =?us-ascii?Q?h6N4jJq9maqImeqeP7nC+YeeWb3UYNZwlb5hwI9yrCocZfyt5o/IIYNDXjdX?= =?us-ascii?Q?R5ANFS8mCxl9xKTD7T7A+EVt1P1IufjY6lxNzMS7OUETwNITSdRBQpB7RAOs?= =?us-ascii?Q?UO/X7+u1tbV9HYwTf++HUxpdmSE8xyd/5LstgWXb7EF3VLmx2pl7xrEXnIMg?= =?us-ascii?Q?o3/MJAiJxLRWCyYnAZyhs7altyYNtwEi6g+ejJZ/WDFXToCv3pyMWuXCq63o?= =?us-ascii?Q?UGDHuPfV5NUqUcBW8SNTY/5rpEecGzAh4koTtcMidanD9I7YQgXR+L1Dp8gh?= =?us-ascii?Q?zIx1pwvb1F85cpHgE0R4BDvezTRCwOG6IiFPKYuFs8ttl2Lj9yqb1SjjrlDz?= =?us-ascii?Q?020QGHJIpBiYsTBCU+NYIPmP+0cyhcm4MsStqJHgOG9nkDTyZ1lTLuHMkvtJ?= =?us-ascii?Q?4d3Jjf7bRR/gdcxMhp71IUUjQFQj0EvM62MxCQnkFNh+qujLAhbOHXirE43Z?= =?us-ascii?Q?SyhNGx9fhPbBF3AUDwM9kEYwtgmpi94yW+Xr8uoNElu4TZoCjxKRKBKjtaMT?= =?us-ascii?Q?tVHymHU96Br+RcZffYkl20cb04OrIa+pl/LfF/Z1QJ9?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:2bPv0pMjDBak4q9JJ3uz2Ri176YTSmtEZYt/7P79h/Bn6iU9GM0LgLvD49Ga6Eipfu+jAjGBMY9ApzF3NaeW2iRR6hQwFXo5oLnB4+rSBJZLMZ0h07YiOdG4rbcNjqv8+ujHLnabWG5siwhNM9duE8UZLJuX1aWC++aKoHwpHsfnHAF8zlkiOV9PehIJUm7Ht9c8d4+PhDKY5RUFkoUSubMUPDMYbDDtu6N/bebBWRARvepikFZMy24djDpvVHmsbhYaqROCxl9cLCuVZDSapBG/3aXHOf7Pcf/tHOtGB03z1XaZfbCKUpN02SnP8mJ3rwxif9cZLw1vLWQ5s3CDNiZXnfk150/INZKN9dccI3k=; 5:4kqSbXyUpOYlHB+ckp5HbYPeen0EYcRJx/Rx/+TcF5ybFa6c0VmGxAdqvIOrMmLiGxCYVYJMvf8wOhH2tH7c9QW74n5VpLBvyrLbYZSQO+JTVEyJfvzKuPGsr8FY2X0C8ZUTT3wJKYyLkZQqN8qRCrhzkRtXWszeIWuvEcBmoHI=; 24:0hgRE4pXtL9DJmjrya/Dj5U9g1GifoxGLhZXW3IKLR1k9U3LiqzoO9zJAcaHT6pHBX6bBFiSuPxbDU+zlpP0GDYET3quu7EiwUl7tgyunfo=; 7:y9btqZpkEJxOS85SeCz9gzxZ60pdqB0DrpvqxEsLbpTfWsQo2XT5LMT72Iur9r136YKznjotxXmA7XLwIjjwhTxui/931QFqw8XeRf3Ef2XuAYne+FsLUDSrWbE0+YrWPu8u1EnGccOWikt7+J3dBYUcZ+7g0NEjDDp1CyFTkX/U0bdVDCHP1W1+2ExxsfISP0SnQTY/RuD5ohWQkCYaAha+0qRRohQMgIPsWePI4zsvGqiKLDbe6VS1JMK1XETZ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:bPHGa4bngMVK9Np/iJNdnHjVGuInhwsxTJAeeKI0jJBMd+fqy1HgnrqP00CaKqSh2BKdduimLWbOBp002gDNJnBtLCMM+/DF8/k+bgG6MsY20gwnLLf5qtrE9twzRsBPDZqwUfoY7+FyiLIfD9WMhVzl57jjHtol2gFwkWQv5p6U5bt7iw35VQY6/aEtK5CG2hwl0SI1tRUt7LFJite8x+Fgw/u4bv2mexpJ2q0BzCmXYbhfm3tc4Di1F4Bj2GxB X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:41:56.5259 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9398ab5b-e4f3-4b4b-330d-08d5673f988f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.43 Subject: [Qemu-devel] [PATCH v6 07/23] kvm: update kvm.h to include memory encryption ioctls 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Christian Borntraeger , Brijesh Singh , Cornelia Huck , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Updates kmv.h to include memory encryption ioctls and SEV commands. Cc: Christian Borntraeger Cc: Cornelia Huck Cc: Paolo Bonzini Signed-off-by: Brijesh Singh --- linux-headers/linux/kvm.h | 90 +++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 90 insertions(+) diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h index d92c9b2f0ed2..aed22309950d 100644 --- a/linux-headers/linux/kvm.h +++ b/linux-headers/linux/kvm.h @@ -1362,6 +1362,96 @@ struct kvm_s390_ucas_mapping { /* Available with KVM_CAP_S390_CMMA_MIGRATION */ #define KVM_S390_GET_CMMA_BITS _IOWR(KVMIO, 0xb8, struct kvm_s390_cmm= a_log) #define KVM_S390_SET_CMMA_BITS _IOW(KVMIO, 0xb9, struct kvm_s390_cmma= _log) +/* Memory Encryption Commands */ +#define KVM_MEMORY_ENCRYPT_OP _IOWR(KVMIO, 0xba, unsigned long) + +struct kvm_enc_region { + __u64 addr; + __u64 size; +}; + +#define KVM_MEMORY_ENCRYPT_REG_REGION _IOR(KVMIO, 0xbb, struct kvm_enc_= region) +#define KVM_MEMORY_ENCRYPT_UNREG_REGION _IOR(KVMIO, 0xbc, struct kvm_enc_= region) + +/* Secure Encrypted Virtualization command */ +enum sev_cmd_id { + /* Guest initialization commands */ + KVM_SEV_INIT =3D 0, + KVM_SEV_ES_INIT, + /* Guest launch commands */ + KVM_SEV_LAUNCH_START, + KVM_SEV_LAUNCH_UPDATE_DATA, + KVM_SEV_LAUNCH_UPDATE_VMSA, + KVM_SEV_LAUNCH_SECRET, + KVM_SEV_LAUNCH_MEASURE, + KVM_SEV_LAUNCH_FINISH, + /* Guest migration commands (outgoing) */ + KVM_SEV_SEND_START, + KVM_SEV_SEND_UPDATE_DATA, + KVM_SEV_SEND_UPDATE_VMSA, + KVM_SEV_SEND_FINISH, + /* Guest migration commands (incoming) */ + KVM_SEV_RECEIVE_START, + KVM_SEV_RECEIVE_UPDATE_DATA, + KVM_SEV_RECEIVE_UPDATE_VMSA, + KVM_SEV_RECEIVE_FINISH, + /* Guest status and debug commands */ + KVM_SEV_GUEST_STATUS, + KVM_SEV_DBG_DECRYPT, + KVM_SEV_DBG_ENCRYPT, + /* Guest certificates commands */ + KVM_SEV_CERT_EXPORT, + + KVM_SEV_NR_MAX, +}; + +struct kvm_sev_cmd { + __u32 id; + __u64 data; + __u32 error; + __u32 sev_fd; +}; + +struct kvm_sev_launch_start { + __u32 handle; + __u32 policy; + __u64 dh_uaddr; + __u32 dh_len; + __u64 session_uaddr; + __u32 session_len; +}; + +struct kvm_sev_launch_update_data { + __u64 uaddr; + __u32 len; +}; + + +struct kvm_sev_launch_secret { + __u64 hdr_uaddr; + __u32 hdr_len; + __u64 guest_uaddr; + __u32 guest_len; + __u64 trans_uaddr; + __u32 trans_len; +}; + +struct kvm_sev_launch_measure { + __u64 uaddr; + __u32 len; +}; + +struct kvm_sev_guest_status { + __u32 handle; + __u32 policy; + __u32 state; +}; + +struct kvm_sev_dbg { + __u64 src_uaddr; + __u64 dst_uaddr; + __u32 len; +}; =20 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248434819366.7400750241861; Mon, 29 Jan 2018 09:53:54 -0800 (PST) Received: from localhost ([::1]:53714 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDcq-0006Zl-Ra for importer@patchew.org; Mon, 29 Jan 2018 12:53:48 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49065) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRX-0005eL-Ov for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRR-0003Py-O3 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:07 -0500 Received: from mail-dm3nam03on0065.outbound.protection.outlook.com ([104.47.41.65]:35224 helo=NAM03-DM3-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 1egDRR-0003Ol-Ex for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:01 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:41:58 +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=bWUpQjAaYex+LtQrHLs4hdux9ZBdL8MLW6amvzN34BA=; b=QoyIjwaILEXSB+9lhmXmwAxEHKqPjrScLJkaUYeYksJ+6/b04APXUda6ZoOF9jPrenHezT1+T0jHYxaXkXxqYyWKlHBa4dC8JNOq+1C853NqK0OmRcIGn0ir4DkTz70Pb+w7WodyMBVLog181Wco3ClwYlRsHePE3pGiyB8gKH8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:17 -0600 Message-Id: <20180129174132.108925-9-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ce7d48b6-4417-45db-3bcf-08d5673f997b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:0utUNmnsMCMAlF087zjN3P/Gn6/be9C5znchmxqferrjNN+oMXl6PqlY/HWAck3dFq+YYKorG87dUdRPd2jbLWfXIeWNG8cKOd3cQune98C7PRr8Chr2I+QSGnlTcFAqa61CG9b22Ln3CDwzFz/Bs8VKavTa8NCzFn1EDJZqNBtptIQfjHBbpcg3QgSHyE9peIh8Bcpv2xghxw4iajj6grOzGsoP2y4JwgDyJY+2v0uQ+0afzlVN5Q+z6wxOe4sJ; 25:wAnt4ZM9ycpwkt59qwQyCdrsrp2F0Knp776VkhM2kRvjqqMwgXtA3cHNuzc/gVkJl//lNn3LbQVR1h+Y9v9Hq6Dt+W2ZGWlVnPSP5VXw4nI0GAhLYeknx9yvNRKhChHLWTnTFPHZd7EuqabOT2/nyGZZ7Qr0TnbHpwn1KHpxiX/RKWXIY3Rtk+wdeux7lTcO51oqzaiHhn3XOEf/4orT90/4+vrnA900VaROc+WTaW90G+tbCkv83PcDHbexgqv7SVCSPU3eQ7ElS8Gh0YluqMbH6Z3WMNWyyHuB8RnbG5keFl9kZjbAWgdN3ccUxLN7LBLSLIZ1WvSmQpJY56RNog==; 31:X1wDdOqkVPmdGbnFkBCarxOZrgkhq+uaJrIaUk1qwC4WO64GXnR9hEbh4N4P8J9kbz60HK3k5cj+CHRfVU8XPZA2mqOe7sDuOaU3Z1+eUTxijNxGkNyV51672YIPDlDnZRXzgAMqD5B4g5zWqLLd2D9bBjcBavBRDb386u9+HVcu3S8foPBH8AZ1VNQn81nr7q2O4V5uWj8rSJzLfG8Vz8GBCYJje8zfBZ5jOVrOxmw= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:x8bL3/cisDy33zkoauTwupr+IzXkmH9lE0+aks5muhmAuHiDJEuMTAQnV/pBLQi1/FDAKOPVUG/B/nJzWqBgkiSQlpSSFlpFNWfRJj80XoOehal7RfHbAZIl9QghOcuUPas/HLXaw6h3N25+KTUAf8V5a4vkpmLirpv62ZZdvzqFgcHiQOKAjtxjPYWX7Rlaq5gTT+36pd61QReaCSDrnVovt+WoZxbp/t1ww2LZQbh3k0qKoMH7aIoMCdu5uWEEFTrp8DRPRKq+4HyD32wyGpVZDWTH5mfxW9p0VKBsJza8goqTAbOZrM+1QBEabx/WWQaXB9/WlfEsfebCApaUx5ObNeLmo3BGXa/bPp11V60S1QgjASo4SSp12tJwfvoOaIuPzzYnjp+MwXv8kt6/TTeSEawKpSSa9GgnwWT6dr3UXD9H22O5Fs6pSVBfP930j2/5OIxFIJovExCg7dZ9gpaADhzrZNPEK8HMfaNl+zYrwD/w4Q4ycsfSfaYAkbyT; 4:AgfAvNF3DapF4M18EJQJ3SkO+lChZ43NY/re5hiJqyY309EiONHaBJ54st8p6zRqvZZPFg876yMwnYo132U8rSpOXoTtbmy887sGTTwCv3rHc9LHmH2oVAeqvJQojz5FN2l7MJqHb1vDXhpRddiZtAHESQdJrJKUOjtrCEwbiGdEYgsDeOHNk0HkpxEHWfvfYAGB/G8iRPnVw/uphnmilrBYkQz9RQdEPcrBaemaDkd0vYBomdOOKQY/ftfGvACJIy0F2jUnPtiNHHE6hNd19IB/6n5MA4oalTQ+gmy+zPUPHJbD/aTrxlpjLrKoh+jj 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(6306002)(1720100001)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(966005)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:ZsyYmKqsUUTwekI1BKQkoZ8HiRcpUcHQeCPVj57tu?= =?us-ascii?Q?YQG6+uEfyeZoWos/JhbB4zdY93zcHql6Z/CNljmsU3+KiNx/tPlnAuhIrcSm?= =?us-ascii?Q?PJSM8wn3vtu+ywm/IkmQeSeNqdyHpGXKbTJDeDuC2POPbsyPMUek0HRD8Nou?= =?us-ascii?Q?KtcWIc+XkOSzZq9y9lrimed6o53TMQ4e2RNu46QCRlWzYqkcSSBU0zsOkcHk?= =?us-ascii?Q?zVUb7/fyRBThFkePKXnCTSk/wzBpACyTjsuPGnwA9WMm/tSbwG1QUEqIm2oP?= =?us-ascii?Q?v4OlEwa3Sv7TayOgtOMJOkwcs2xeZCbX5auLtg93giy8mGNLqySgvXRVJFJB?= =?us-ascii?Q?0udd5aX+7GeiEYyqZGiKXkTeSuI+Fg/FKE08g206bc0/EccZgkCI9FsG9vV1?= =?us-ascii?Q?JK+t2w+YfwxJcO4+GBR4m9y5ST45cAdJlKEyf1dBmDl5B8+7dmLLEFnj9rbY?= =?us-ascii?Q?kYJEAAmpvkbtIrTEpPfqOwOW9tIj6TNrpP5WJi1Cv4zXJ5+RtJ/wboAJUHTV?= =?us-ascii?Q?ExoDKtacEh2IWZYGkwyogQCHY9ZcN6MOS1fUamhDajhHmgbrcNUHucDwicdh?= =?us-ascii?Q?+slXBlm0hSxAxKskc+GygLn5hZ/sH6bYiKdJLmrmH/uql8pZDf+IJQWfpmGi?= =?us-ascii?Q?Tge2VjDpB54X+Q7pskAZV+wSnN1BBSdEVkdp6U0+1aqQurU4CfI4t2bY/uIt?= =?us-ascii?Q?E5D4q4a68F//kabrluzDIqBhnXZxfx12Lpy+bg1ACHQvpTNvRT8z0r4pYXfY?= =?us-ascii?Q?iWQxTCCUK+9hE3N7SAmDz7c/+0SukMBInSN36C4YT5ehGqC5ttjaVuGYXW81?= =?us-ascii?Q?kVkh7g1dlgEGx9NFs488QXQmp0TGcr8ylkxUc6erbCgWLiZmE5scMvOS23Fq?= =?us-ascii?Q?WaB9ITktmdIgxsyXdYHXVCMzzReT2EUBN0YstLE8PLbtnHNGTElobluCafxv?= =?us-ascii?Q?EB0DVc6GLwqAdCXw2NqD/EDyo90la90eqzp4ACfHv6Wm5Lsdwyq0K68jxNan?= =?us-ascii?Q?W5CNwXXeyeSolkkH2e7rxLMt2QJZyOyNKOiu4sbaN3yNuTFw8hv3ufkhG+x/?= =?us-ascii?Q?BWZzq41bI66Je5+5qD5r3wLF04RyfJQL1MeDQK8QFD/VIzgTakUgyrrwVbZk?= =?us-ascii?Q?wKBwveB/YKaq2xyXHizAbnaob3FWsHMTHdamc8MLfyfl+yDDYZkeA6uJyhUV?= =?us-ascii?Q?KhInlNhvaTxv8elSdDD4SiMiOmAmDv57go3kyOUBDJBt3ewKX3VXrroTl/pT?= =?us-ascii?Q?eUNDq5waEOGwVKHFXiyhqvRHzuekl9DPgKI08zWUIpdTMkMDl5da0R3sOj2s?= =?us-ascii?Q?YK5kpVRJwILztmEUd6bpjoBgj2hHt3//8FjtCCbKgqfFKRLyRqhbDqpzch6y?= =?us-ascii?Q?EHmig=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:4eWRuCiushvFwBbqlox3B/KiiTdkN2pBkWpAhpbj1LfZZtL2oXeZef//LLYEsT/1Dvc69mXNKkN3egshE2uq4QcSjYv3PezNTPGhCK36kNIAgNbBJ98gopWD0BZ7chiAEXqm40whDyLOSyHj2x5kZzNT/PJ9ScX/kMWmqDP+uxTGzbtVdHTfsTWuGBIoK8lntFR82pifGhP3XgQVxlYvHeoKPO3ZFxa7Vr8e6XD1KKU5nhmMDljLwguJtE4yTIiylhXbYhZKFEtE4he23524vIuzQv3TTKnGJY1U25srZwELKYhnbpnu1xT1yhNsVJKKSegnvEcEx0w5RmiFKxVq1ZZaydf5iUUKjQ8tJzu0ikI=; 5:lxqbR2rto6Up9SfgggTLrt7OcrWQK5lJtrTG7AqMriLtArQK5yI5CZWUJjNXOABlW9XpKJo2WFGPSBYjUWU+GaLC0KmVf98k27Rwc/XxuKq9+KBGSVP9tWxslzoCqbxGhdNUhuR/3TumKgUz8tT1VuVkktmndwi9JqbuCLBHuZ4=; 24:n5fz5z6/xBquqk/hhxpVm11JoATlXoEkpOFldbSiGggZ5llMvvR+Lb7mjlbcEgvMbES47sEjIAjuN/vrsFRem2oErNQXzMuO6l0Yg6ABwNY=; 7:r2WOqU+WFV2UihkuWp2gXaBC+y4QiqRFO5qHmSDTuFozuK+FzBy43yLaAn83/wd817x5v+5XMBuM99NE25Zit1XIDUdar1NU5cHkM69TP/P5GT7SxBjszsFlW5h2CZXC5WkXTtvRRK4gsphRXid2eZidPrl6Xk73D9fbBP3Qq1hG4zA8tWrBGiZ5W4w1Zcf/JwWT5dNd2bks23oeqOFvocuN5FwUbTb02CQGo6JFfFtWpovIY7UYYhjTNuuCke6C SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:+vNvHckta2E71ZbxaIzWmogRbjmERzueD8prtD09W2seAmMiKWyMvEqPiogkO9utAbK0V3y2XHTdDuOcUzGfK/+HvS8oDEjEGzaw+yVGvARGk8v+KPJ8pgubZweRT17nYAvR091TezwW4RDRzrgUHCSJoyw0MLM7ISzrZYoYRdN+pmEnJRS8gcKVC6V5MDIpvalsT26Oxl6Ez4kd/sGOUER7pqEcso/MHGbMFRnSy2n2h6v2k3SkZyDFAjShdMrz X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:41:58.5571 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ce7d48b6-4417-45db-3bcf-08d5673f997b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.65 Subject: [Qemu-devel] [PATCH v6 08/23] docs: add AMD Secure Encrypted Virtualization (SEV) 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Create a documentation entry to describe the AMD Secure Encrypted Virtualization (SEV) feature. Cc: Paolo Bonzini Signed-off-by: Brijesh Singh --- docs/amd-memory-encryption.txt | 92 ++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 92 insertions(+) create mode 100644 docs/amd-memory-encryption.txt diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt new file mode 100644 index 000000000000..72a92b6c6353 --- /dev/null +++ b/docs/amd-memory-encryption.txt @@ -0,0 +1,92 @@ +Secure Encrypted Virtualization (SEV) is a feature found on AMD processors. + +SEV is an extension to the AMD-V architecture which supports running encry= pted +virtual machine (VMs) under the control of KVM. Encrypted VMs have their p= ages +(code and data) secured such that only the guest itself has access to the +unencrypted version. Each encrypted VM is associated with a unique encrypt= ion +key; if its data is accessed to a different entity using a different key t= he +encrypted guests data will be incorrectly decrypted, leading to unintellig= ible +data. + +The key management of this feature is handled by separate processor known = as +AMD secure processor (AMD-SP) which is present in AMD SOCs. Firmware runni= ng +inside the AMD-SP provide commands to support common VM lifecycle. This +includes commands for launching, snapshotting, migrating and debugging the +encrypted guest. Those SEV command can be issued via KVM_MEMORY_ENCRYPT_OP +ioctls. + +Launching +--------- +Boot images (such as bios) must be encrypted before guest can be booted. +MEMORY_ENCRYPT_OP ioctl provides commands to encrypt the images :LAUNCH_ST= ART, +LAUNCH_UPDATE_DATA, LAUNCH_MEASURE and LAUNCH_FINISH. These four commands +together generate a fresh memory encryption key for the VM, encrypt the bo= ot +images and provide a measurement than can be used as an attestation of the +successful launch. + +LAUNCH_START is called first to create a cryptographic launch context with= in +the firmware. To create this context, guest owner must provides guest poli= cy, +its public Diffie-Hellman key (PDH) and session parameters. These inputs +should be treated as binary blob and must be passed as-is to the SEV firmw= are. + +The guest policy is passed as plaintext and hypervisor may able to read it +but should not modify it (any modification of the policy bits will result +in bad measurement). The guest policy is a 4-byte data structure containing +several flags that restricts what can be done on running SEV guest. +See KM Spec section 3 and 6.2 for more details. + +Guest owners provided DH certificate and session parameters will be used to +establish a cryptographic session with the guest owner to negotiate keys u= sed +for the attestation. + +LAUNCH_UPDATE_DATA encrypts the memory region using the cryptographic cont= ext +created via LAUNCH_START command. If required, this command can be called +multiple times to encrypt different memory regions. The command also calcu= lates +the measurement of the memory contents as it encrypts. + +LAUNCH_MEASURE command can be used to retrieve the measurement of encrypted +memory. This measurement is a signature of the memory contents that can be +sent to the guest owner as an attestation that the memory was encrypted +correctly by the firmware. The guest owner may wait to provide the guest +confidential information until it can verify the attestation measurement. +Since the guest owner knows the initial contents of the guest at boot, the +attestation measurement can be verified by comparing it to what the guest = owner +expects. + +LAUNCH_FINISH command finalizes the guest launch and destroy's the cryptog= raphic +context. + +See SEV KM API Spec [1] 'Launching a guest' usage flow (Appendix A) for the +complete flow chart. + +Debugging +----------- +Since memory contents of SEV guest is encrypted hence hypervisor access to= the +guest memory will get a cipher text. If guest policy allows debugging, then +hypervisor can use DEBUG_DECRYPT and DEBUG_ENCRYPT commands access the gue= st +memory region for debug purposes. + +Snapshot/Restore +----------------- +TODO + +Live Migration +---------------- +TODO + +References +----------------- + +AMD Memory Encryption whitepaper: +http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_= Encryption_Whitepaper_v7-Public.pdf + +Secure Encrypted Virutualization Key Management: +[1] http://support.amd.com/TechDocs/55766_SEV-KM API_Specification.pdf + +KVM Forum slides: +http://www.linux-kvm.org/images/7/74/02x08A-Thomas_Lendacky-AMDs_Virtualiz= atoin_Memory_Encryption_Technology.pdf + +AMD64 Architecture Programmer's Manual: + http://support.amd.com/TechDocs/24593.pdf + SME is section 7.10 + SEV is section 15.34 --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248621077134.489435592399; Mon, 29 Jan 2018 09:57:01 -0800 (PST) Received: from localhost ([::1]:53739 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDfw-0000mx-5D for importer@patchew.org; Mon, 29 Jan 2018 12:57:00 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49069) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRY-0005eU-9F for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRU-0003ST-0K for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:08 -0500 Received: from mail-dm3nam03on0056.outbound.protection.outlook.com ([104.47.41.56]:20288 helo=NAM03-DM3-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 1egDRT-0003RV-O0 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:03 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:00 +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=UivqVqgY0VugHuLbqbuKA7l7E2uxOSVfbRRtvWQPa20=; b=DNb7HeTmAdRPW/GRJz3t8GYIvtHCBT8ChhanNK4MJekAvB2T1sE+B8sKdzaJvINf1TyjpuAPs2+2CIimvgJrzfWRxwhCmZDiEcezf6EYglhjUxxFGsy4HUVVJkrx9hF6dDVw2tTCnty136fCx8SOuSUyn5/ZF2eRuw1NT8Logm0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:18 -0600 Message-Id: <20180129174132.108925-10-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 27ec3a4f-8cb4-4740-a6ef-08d5673f9a69 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:h0QcxNmp2vJ3RkDV63B7nBKGQLw4WtFsZj5o3ZJ8BMGbVvbDt2TvfmPJASeWphhBb8pq8e3nasclAx5/3CtdkJ7MRnTWqLucRNxB0O7J6J1xWLuSMQcAj5RaxUZjgGbEHL448e8W3iCeQ4QRsTp0cl8LXREefxWiF2Eshqb6vbkR7rBPtc1u2eaq9d+mr1T6mwMjB5zxo1T/E7Ti75yYcUjF2ZbkKi62ckmkCC+9nS6thx8vh//hX99fzhHSVYUE; 25:fbd3uVQ92hlVyz9c9AZz/5hH0loGxOa/wVFHxr9Gw8Zf2ENno/qt2AiOYoRx9MaygO92/BUy8zxK/YnRwyV8FhERMHncR0FquHGmiGZOOs/vOiPsOm64kF9jpTDcGc56Lsj5cHkklqSAW35po8b50gajZgNp6q93xdoMYMZfq+h0+LPiw0yxg9yOa6HSUr6sisntqMWVMUo0YbIS9FSP+1tUpxuyIi6t+Kv4lMc5lJ6xpAxRVVD4DDQRJPlBIJvgqxjPOlWtA5BhabIpmjjmxOx/93zGoTTRWzgSxBoP1RrJbfvZIkKMmCOhuAoroTPl7IfDm1s5AYQchCyy+11u5g==; 31:E5sCV4AFV1zkuj0DZa5kuXtf2LfTHwMqKwxWK3fz2YhBeAigZ1ZMXomRFjo5pdaZc69Bf493K8NEqGdsT2suqZovbarKN9BwyslldCAJMFl5rwP+Exg/pq0Yy3M01G/zlDkrhERv+Z8AqU/cxjCcbBPngTGre1GuUX3JGkum7kTELABVLl5mT7+MdEbQoHzl+c0VEqrWWo5lLLpa7i/NXj0NJPzceoa3GlTtx0trtFw= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:PxoShnkIaUakN5/45mc00CFdM+Orz6m/TJzJeenQMyPgcHvyFaerBrWe0tlDaKzroJzY4LEebtTX6A58UJgSF3HdG24Bnd3YyHc/LNtjxfOLclD5aBiEJ2zmzlcnMpVBpnbKkJGMGMZaTLuBufalzB/k3aV8NCT82h4b493Sxnb76rJbIO2xPMksW71mmgzeffDd3TQ+nMMmiTdkI8yF0XJMPhLmte5llq2lH7itIMYllrXUjkVjXGEFN7mmV+CEHU1Eiji40hfghVL1Ln2zYls6fxjuGtl5jgQ4N1hoJOf2XQ9sd0pmPmfSDbTilIME90qUjTByiyZHi04NksX9FtP9RkgIhbo9SArzk56/YgVwsqZL06mLuqVX74kW8uLIBPhPlPiw+tIISyEVgf2HrT97+jwQmmTHM2SpdIhs44nmI6ncRiWzUKHz95mFP9qh3O5Qn100IQ8BXKI533jUgD6Vzt/uFFBSxZ/20d0qTvpfxGBy4l4BxE03HXMyqACt; 4:jPK3ULhUcmjx28wXDtmhz6W1qveUH8ixTdTHNbI+LHmnD4tf9hQSvI/XWYlVLQrC5HJDrAso93VZvQ8WwbWA+a/PslpWFIooMiY8zHHAy0IiF5unL2x0LfpLoo/B0+l39U7uB1cK2KJQn2tDq2TV0SNg9JwSqWFB9/GFiUL35FBoLDgYW7IxohyQXRvOBM5/WjqaJsKlnEjiAyfrcpGfJwoEsD62th9ploSLiVEJMraQli27Ux3gyhPZXSdMDNXf6myYswiAgmpJe4JspmXLUfVblQSdFTyr9zTU9ORBUaFl7G3DnS7dW8fbKePW8/ylPks5F86V7+0oRi8EZ3hIAg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(575784001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:e43iDyCSbZJy1o5b2EqamY97r+7KTkegukAPBIoqO?= =?us-ascii?Q?9UP/Wl6ugKFv9Z1181neb6QGBHeNBOZ8jwJe5VtbuIKXMX9cOyHBSJL/R7fm?= =?us-ascii?Q?Wcsy4NEsUFI/ZFsFXrRlcuQ5kt4nI10ho8hrcIoqq8Ef6DZRgQ5aO6A2WtEb?= =?us-ascii?Q?vjdqFnk8Op3I3RgAek/beeLZ//DBBV+XTdNDVl/acUHoJ7nhbPYZblcen1Vf?= =?us-ascii?Q?cTpKI1jftlUAwMvdVc1o+hMmrPejM7z3XXnJwmih9StGGZO9iBFvtwQQXJLG?= =?us-ascii?Q?LB2hQr5dYAprlmjoprIxXtpqx9goFLxdgUy47NBX8jsRiTeWoaQOnAIw7UOY?= =?us-ascii?Q?X5sKnWRSgIP82FqTqoN7jVSaQKhAE+vrYX80UP0j6Fr+2HkaQiXkONv6FkhN?= =?us-ascii?Q?RJO6vpSanQgN2xj0LN0rAqUmnOXexLtcixMGUqidpjpnKlnta42PMzHjt1hO?= =?us-ascii?Q?2iN+rtkEmT2f4WlWyyceVRhI87Hsnw8kZnlDeNRd19HhfoKsndrmjy5Gg2lu?= =?us-ascii?Q?gLCMfKj9BjWCR13kA05UgK9QcrTyDwF2UyRzEl75VReV1zhd9jmFaVK/MKbm?= =?us-ascii?Q?kPUz24D5ZGvzDn0+ae0pMGbvzjnTi0CVcW/AbxDZ+dCkSk8S5AkJIhsYeVqJ?= =?us-ascii?Q?nlTXUhaz2xBiWS3FC1n+6VhF7Hv68NeEjbdwW/l0Rh4hqHeNOKNpta3QggVU?= =?us-ascii?Q?keBOQ5Wr1Blx0liDwvqy3SbHd3L3fq47WmwgWGWT2lyEQG50RHPng+TijskD?= =?us-ascii?Q?NuDxSshBGN+lSSGM/xqAIcZThpOMqBoEo4pGty80om6hTdaVO0d/t7bfcXYs?= =?us-ascii?Q?OPf0wi/CKzzi4mdF8Ucr9HKE/k5O7jEosuSCBQpdY7rv7vlaqlsvifBTEN60?= =?us-ascii?Q?qEJ2Dste8v7Up/90cJnw2UEYl8z69znuU+xS2zeP6ouoQpAoj0663HwHVJKV?= =?us-ascii?Q?lPUYYjsoPwe9iNCXsTW/ujXX1j2YneN5r+GLR4iN6R2mEsvJYaXGBTU+n0fr?= =?us-ascii?Q?zue+yQ43z/5yx5A7222wkbc//hFYShDHWcHxHmgt9ETMZzeD0sizVXg1qlDl?= =?us-ascii?Q?aWvtYP99jG0pgjB6hh5OSPsXlqcsLRm/ergpPy+T0rSs0631YGCnlqLsvkNv?= =?us-ascii?Q?DaQroU7JVD8EdWMZ+fW3xvtn9wA3RRhOunjurNVZXIdC+Tbe0g5q4LqAUePW?= =?us-ascii?Q?oVS1Hfd6zpoi78yrFU8mwglFrKEsas38EEF62xiusTdqbs9aIldjhs4nRDaQ?= =?us-ascii?Q?5nsN+iX0lrWv2fGL2cmtfu2EfO6k3AhQrJT1xxKdp/NmvsCvcDve1yUokiQA?= =?us-ascii?Q?b810eqVNnegNK3mwzCHnBQ=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:2ZG3dOZDxYqiOfcey6oPc5KPZpzzzlcg5OIkLRY33rSCPOVoePoQwu/RWpOIsdhlGJEMPLXoDPqe2YWmpFHXv5+k9bq2vgcmv9owj5dHqvRrxnOomCHb9ekhrxeNHaOfFUp3ko5GjpyVQ4nVhI85dPT4pQ/OainzNeKqx04sWXwoBjo4dxFudWicf8z//wuBcoM6B5g6r/tYN7oMCllyDlpti71T9Vv8bxEMZt0IT99mOHqXLk66nmpISo8KFuSPbWdd3WF070KLhJhB3RQLCsz4jK1r3RSB8mYIA4DkVj5sGkEP+XHGw1mpLgHHKt3/hRUlBo5OOaxvJUFecqZi0VAWD2RHETcN/nRBvq5lOxU=; 5:H1IBvKoDixF98+AqTtDjK4GCutAoB/p2/E6TelHikVX5xbSJCbaY4cAiCdTrH/fLWKC/ZK8wXPaZKLIJe0zEnEbaF5txuKpImQX5usVlacWR4hl6s/6quA2rZLwG8uB0dNgQoFhYZyXxmuSU7tHL0uvksi3pbDirZIUTR4+FEjw=; 24:adCruUbLht59vOd7khhVpF9IGaoiabOYMITxwKzT7e+6L2Ez5QBuSytRv85KLnpJHNXGG85MISSo1uvuQuB6vXxKey0Z0Phk0jXrR6BpVjY=; 7:HXRDV451yM0I8SP1CZDIX2e7V3sxrFB8IqHR5zdkxFreYwn/0s6G1a2+pSTFArc/Vu12aShnjRER/zNJzvDiCXdfL5U9SueKRPEzv+6Tobfx6+V81JsB5AnRmf5+I4dZbPUx+pVm0NtISO40UDftEdTqyFaqgXXs25+QF/F0MvOqxpIoQPR/4XiDD6yBjb2drVYU0RiUfx4KyfRh7GHIrXBPMv/FG/OfXV+N4/vsankvZegGwJ7yetx3DY7avxxR SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:07llQDmAvztJ8ilp99Q2hGw4Ylu4hH4UHZPx7Io9a6bQTisuorPMzhGVVeOLGBXksZxJz9KXJ30uRg/1Ok+6M/HkEDwP3wGEgbUfuJuj6BIGf6vNywCeRefJKwz4snnfRa9/PrBzPI1oy7lhnc/GO+/jHyd/IUpf+cOcnXKIYYeQEeySDNwnXBd/hR9gMLQnlN9hd+iT7rRaJVZqTdcoTKHjpfvlJC5aGnzSnykEhF/XX5rNx7YS9sPFkZiniTh2 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:00.1196 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 27ec3a4f-8cb4-4740-a6ef-08d5673f9a69 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.56 Subject: [Qemu-devel] [PATCH v6 09/23] accel: add Secure Encrypted Virtulization (SEV) object 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add a new memory encryption object 'sev-guest'. The object will be used to create enrypted VMs on AMD EPYC CPU. The object provides the properties to pass guest owner's public Diffie-hellman key, guest policy and session information required to create the memory encryption context within the SEV firmware. e.g to launch SEV guest # $QEMU \ -object sev-guest,id=3Dsev0 \ -machine ....,memory-encryption=3Dsev0 Cc: Paolo Bonzini Signed-off-by: Brijesh Singh --- accel/kvm/Makefile.objs | 2 +- accel/kvm/sev.c | 179 +++++++++++++++++++++++++++++++++++++= ++++ docs/amd-memory-encryption.txt | 17 ++++ include/sysemu/sev.h | 53 ++++++++++++ qemu-options.hx | 34 ++++++++ 5 files changed, 284 insertions(+), 1 deletion(-) create mode 100644 accel/kvm/sev.c create mode 100644 include/sysemu/sev.h diff --git a/accel/kvm/Makefile.objs b/accel/kvm/Makefile.objs index 85351e7de7e8..666ceef3dae3 100644 --- a/accel/kvm/Makefile.objs +++ b/accel/kvm/Makefile.objs @@ -1 +1 @@ -obj-$(CONFIG_KVM) +=3D kvm-all.o +obj-$(CONFIG_KVM) +=3D kvm-all.o sev.o diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c new file mode 100644 index 000000000000..e93fdfeb0c8f --- /dev/null +++ b/accel/kvm/sev.c @@ -0,0 +1,179 @@ +/* + * QEMU SEV support + * + * Copyright Advanced Micro Devices 2016-2018 + * + * Author: + * Brijesh Singh + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "qom/object_interfaces.h" +#include "qemu/base64.h" +#include "sysemu/kvm.h" +#include "sysemu/sev.h" +#include "sysemu/sysemu.h" + +#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */ +#define DEFAULT_SEV_DEVICE "/dev/sev" + +static void +qsev_guest_finalize(Object *obj) +{ +} + +static char * +qsev_guest_get_session_file(Object *obj, Error **errp) +{ + QSevGuestInfo *s =3D QSEV_GUEST_INFO(obj); + + return s->session_file ? g_strdup(s->session_file) : NULL; +} + +static void +qsev_guest_set_session_file(Object *obj, const char *value, Error **errp) +{ + QSevGuestInfo *s =3D QSEV_GUEST_INFO(obj); + + s->session_file =3D g_strdup(value); +} + +static char * +qsev_guest_get_dh_cert_file(Object *obj, Error **errp) +{ + QSevGuestInfo *s =3D QSEV_GUEST_INFO(obj); + + return g_strdup(s->dh_cert_file); +} + +static void +qsev_guest_set_dh_cert_file(Object *obj, const char *value, Error **errp) +{ + QSevGuestInfo *s =3D QSEV_GUEST_INFO(obj); + + s->dh_cert_file =3D g_strdup(value); +} + +static char * +qsev_guest_get_sev_device(Object *obj, Error **errp) +{ + QSevGuestInfo *sev =3D QSEV_GUEST_INFO(obj); + + return g_strdup(sev->sev_device); +} + +static void +qsev_guest_set_sev_device(Object *obj, const char *value, Error **errp) +{ + QSevGuestInfo *sev =3D QSEV_GUEST_INFO(obj); + + sev->sev_device =3D g_strdup(value); +} + +static void +qsev_guest_class_init(ObjectClass *oc, void *data) +{ + object_class_property_add_str(oc, "sev-device", + qsev_guest_get_sev_device, + qsev_guest_set_sev_device, + NULL); + object_class_property_set_description(oc, "sev-device", + "SEV device to use", NULL); + object_class_property_add_str(oc, "dh-cert-file", + qsev_guest_get_dh_cert_file, + qsev_guest_set_dh_cert_file, + NULL); + object_class_property_set_description(oc, "dh-cert-file", + "guest owners DH certificate (encoded with base64)", NULL); + object_class_property_add_str(oc, "session-file", + qsev_guest_get_session_file, + qsev_guest_set_session_file, + NULL); + object_class_property_set_description(oc, "session-file", + "guest owners session parameters (encoded with base64)", NULL); +} + +static void +qsev_guest_set_handle(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + QSevGuestInfo *sev =3D QSEV_GUEST_INFO(obj); + uint32_t value; + + visit_type_uint32(v, name, &value, errp); + sev->handle =3D value; +} + +static void +qsev_guest_set_policy(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + QSevGuestInfo *sev =3D QSEV_GUEST_INFO(obj); + uint32_t value; + + visit_type_uint32(v, name, &value, errp); + sev->policy =3D value; +} + +static void +qsev_guest_get_policy(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + uint32_t value; + QSevGuestInfo *sev =3D QSEV_GUEST_INFO(obj); + + value =3D sev->policy; + visit_type_uint32(v, name, &value, errp); +} + +static void +qsev_guest_get_handle(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + uint32_t value; + QSevGuestInfo *sev =3D QSEV_GUEST_INFO(obj); + + value =3D sev->handle; + visit_type_uint32(v, name, &value, errp); +} + +static void +qsev_guest_init(Object *obj) +{ + QSevGuestInfo *sev =3D QSEV_GUEST_INFO(obj); + + sev->sev_device =3D g_strdup(DEFAULT_SEV_DEVICE); + sev->policy =3D DEFAULT_GUEST_POLICY; + object_property_add(obj, "policy", "uint32", qsev_guest_get_policy, + qsev_guest_set_policy, NULL, NULL, NULL); + object_property_add(obj, "handle", "uint32", qsev_guest_get_handle, + qsev_guest_set_handle, NULL, NULL, NULL); +} + +/* sev guest info */ +static const TypeInfo qsev_guest_info =3D { + .parent =3D TYPE_OBJECT, + .name =3D TYPE_QSEV_GUEST_INFO, + .instance_size =3D sizeof(QSevGuestInfo), + .instance_finalize =3D qsev_guest_finalize, + .class_size =3D sizeof(QSevGuestInfoClass), + .class_init =3D qsev_guest_class_init, + .instance_init =3D qsev_guest_init, + .interfaces =3D (InterfaceInfo[]) { + { TYPE_USER_CREATABLE }, + { } + } +}; + +static void +sev_register_types(void) +{ + type_register_static(&qsev_guest_info); +} + +type_init(sev_register_types); diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt index 72a92b6c6353..1527f603ea2a 100644 --- a/docs/amd-memory-encryption.txt +++ b/docs/amd-memory-encryption.txt @@ -35,10 +35,21 @@ in bad measurement). The guest policy is a 4-byte data = structure containing several flags that restricts what can be done on running SEV guest. See KM Spec section 3 and 6.2 for more details. =20 +The guest policy can be provided via the 'policy' property (see below) + +# ${QEMU} \ + sev-guest,id=3Dsev0,policy=3D0x1...\ + Guest owners provided DH certificate and session parameters will be used to establish a cryptographic session with the guest owner to negotiate keys u= sed for the attestation. =20 +The DH certificate and session blob can be provided via 'dh-cert-file' and +'session-file' property (see below + +# ${QEMU} \ + sev-guest,id=3Dsev0,dh-cert-file=3D,session-file=3D + LAUNCH_UPDATE_DATA encrypts the memory region using the cryptographic cont= ext created via LAUNCH_START command. If required, this command can be called multiple times to encrypt different memory regions. The command also calcu= lates @@ -59,6 +70,12 @@ context. See SEV KM API Spec [1] 'Launching a guest' usage flow (Appendix A) for the complete flow chart. =20 +To launch a SEV guest + +# ${QEMU} \ + -machine ...,memory-encryption=3Dsev0 \ + -object sev-guest,id=3Dsev0 + Debugging ----------- Since memory contents of SEV guest is encrypted hence hypervisor access to= the diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h new file mode 100644 index 000000000000..d2621a9d1100 --- /dev/null +++ b/include/sysemu/sev.h @@ -0,0 +1,53 @@ +/* + * QEMU Secure Encrypted Virutualization (SEV) support + * + * Copyright: Advanced Micro Devices, 2016-2018 + * + * Authors: + * Brijesh Singh + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + * + */ + +#ifndef QEMU_SEV_H +#define QEMU_SEV_H + +#include "qom/object.h" +#include "qapi/error.h" +#include "sysemu/kvm.h" +#include "qemu/error-report.h" + +#define TYPE_QSEV_GUEST_INFO "sev-guest" +#define QSEV_GUEST_INFO(obj) \ + OBJECT_CHECK(QSevGuestInfo, (obj), TYPE_QSEV_GUEST_INFO) + +typedef struct QSevGuestInfo QSevGuestInfo; +typedef struct QSevGuestInfoClass QSevGuestInfoClass; + +/** + * QSevGuestInfo: + * + * The QSevGuestInfo object is used for creating a SEV guest. + * + * # $QEMU \ + * -object sev-guest,id=3Dsev0 \ + * -machine ...,memory-encryption=3Dsev0 + */ +struct QSevGuestInfo { + Object parent_obj; + + char *sev_device; + uint32_t policy; + uint32_t handle; + char *dh_cert_file; + char *session_file; +}; + +struct QSevGuestInfoClass { + ObjectClass parent_class; +}; + +#endif + diff --git a/qemu-options.hx b/qemu-options.hx index bec3490d7b8d..031886c1da77 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -4280,6 +4280,40 @@ contents of @code{iv.b64} to the second secret data=3D$SECRET,iv=3D$( Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248806993183.41447192942007; Mon, 29 Jan 2018 10:00:06 -0800 (PST) Received: from localhost ([::1]:53783 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDiw-0003MT-59 for importer@patchew.org; Mon, 29 Jan 2018 13:00:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49089) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRZ-0005eb-Ks for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRV-0003Tw-C5 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:09 -0500 Received: from mail-dm3nam03on0050.outbound.protection.outlook.com ([104.47.41.50]:48256 helo=NAM03-DM3-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 1egDRV-0003TB-4q for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:05 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:01 +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=QXOqNbqENmNPaGH6RO85h6Whe5+SM4kNclCGQ2XRi08=; b=O0PaZWJtVGknMuGLLh+qV42oo4Imud6r1zFSSbI9tUdvjNXM3agtp/7lOqiFK6WBR3juLKq6vMDbJHyojFC7xySiUK1qAO4y1/XCoWaNUtc5yS6MUQhAb9p4Ir9riV0pmsdjZCf9rylMftGR9Y67f3XKoK3cMMuuEx3kdMdbZAc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:19 -0600 Message-Id: <20180129174132.108925-11-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8e6ad1f6-e0fc-4adc-afb1-08d5673f9b55 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:at9naOXjAv3dgTAe++EPUpUO6hEjVhXExFxlkk3DmZzfMGrcPhzehaeOApWJYHjtUl4h3aBs7MAJQBNP2LRVMQiMatG/6/Cg9vucmdfuWQGxkJYJ1VIOCYfDrMvlI9SOWgtvJvNPUJRlmYC0k0YgTnwpEqkvnkGKXDDuNrLAxsE+ria1pOhZZjpzBbksiOpmryPDCyxvQe/zfK5kI2360chxA7MJE6uCdZBkLO2cLHHeCUWkwx2tILW2s6Fe3CIL; 25:OcGWYoRXCRgXgGWoVA906v+oyy1y2u6tcdQUhoFacPTISkNGbN3fS5SJ8w7mXJDBiJO1N/BhiRBLnasquvHzz7Pm0AbOZX6CPM58Z1qpZf5iSIUrNgHmEqaHS6ayWzK8XzyEdvpSQrQO8BoSZ+dt4dJx1WJQVxtmJ6PIYKXVcKR6kVmHzzNKiP7YKWQldcJhOSz1Q6FBI4gGL1XEhl+/Jqow0q0IiemJ2zL66fvDp12yrlzsddOrBYKJxuDyNgNC17bLqTw7oV0T1pSt73+63ObWtymLWewYXAJjyeXB4ueEAyFSEnnWPqhwRD8zbyV3gKl091eAggEcDV54Cs3aFQ==; 31:TQymoou5XgKxQi/PuWr/ZILgSsLU/ATdPfu+esqfGF9g9LGmjOawk2pH0NsjFbSggles9a5DKD0i8rCG/4NimYxN1hDk3WaiSqTdqTP633FcdIPTZO1EkS11Fri6a52dgklTUrsz5FVwwm9cey+X0pt2Jr1XtBaasSvzHggwvYvSEFevgfrpz96hffD4hs62G1uCwYMJ7IB0opPmmwOAXB91HpdoIY1kqAL63ijn2lw= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:a1sTJIRRcLQnn/kXYQrXBVQtjbotGgitoPkoM4adQ21kmgnZ7GBh1Ta2aF7Iu3TEJh9+xMZY4oC16v61u6doDvbtKLm3UB6VJPL+7zpWKPKTWhSpKICbYsZ8UcUQkToRvKu7xcriMswwDXafGilET2JnOJtqCfyqPTjlaBZzr5uarEmHv7UZ7CVwu10EdQcXn5cnlcxOg0XsXStyadiw1Yc86wUpngV68ZWK9ZXx+3vdF9B20RYDekxQzHv1A1F+6yNPNjONZAn4vZVIaLpuCo1K7KJTnU55+LNmbppmtEcWePeh3HFmliGkE8mgXKx7LnpjKSrP6BzgHK0OkQsMH4Mg9ZpRMh0V9OyZF6fFPeAd3D3XE7KPnq+EazFfy/qeOmyZKU7xQU6lVGMzHIdKa0F8uIlYUFGL6pdAVUjOZc4txqPYNFxFHzwXK5xPKdh4Ra9sOSILUjc0hT96qD6kyqfrAVyy3QI7BRiiue8t1XSNvYGHDBDeXRgwAvhJnR1o; 4:tA+5LIn736Cd8p/t6BlJC5golUhFjG4oYZK1QxvDIs+y1GaUTWRUZVxPaF8jf6pdLiD60Qut9z7rTRcRK+rAL7oIo5h/uvpHhqpv1rSjmvmbjsC4cp4SdTr8o5bqzMmZgVW6wil01zbBxNA4kSBowDqxMHRJ6LxMHMAe1QCsxLgnAH053PtB4hOrDD6mND34KuBl6++D3Sq3HvnaU7eooVoblF5dUxhiEYJFPYiEJboArJeffLQu4iuOVWw2HbSzEMsaT3odHqKboLUbf/TQA3R3dYY/4SsZMMGxKABWnmmdnv42B1HWyfw4AczIGPa/ 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(575784001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:CUlvwpF6WCsM5+YdGn92PwhTrGccE++fYOfb4HLiu?= =?us-ascii?Q?NM53d+fpMDVe1ihliNk6jP/P4EYQ5Wf3kPEX/2yX4FSMWeFZareBYVW4caoA?= =?us-ascii?Q?WTkQMLzuyzI3VR29y5ZPvTjIzintgCbeXhvZJYSNZFa+3Oo3y69AZbGwH5XO?= =?us-ascii?Q?nIjFYPcfpujUGHnWnRMOXomeh18VnTqvwgzVNnpRpZx5haZOvYIx/3MWAyS4?= =?us-ascii?Q?1wnrr+i3WtWG3CGsm/v+f4Nuw5qmn3l0AqmPp2dgqTS+TYKFroYonfaKRiWx?= =?us-ascii?Q?qArCqTgFnju1Xz+1sQSNJNeavcg7wWCwyEVW3LOwe8ism4RgoMzmtghFUSAS?= =?us-ascii?Q?4ddFLKdHxNeCOoGL4TZe26ByJ7f/7kSxsmwl4Sm8TZ05vDooX5FeSfrbkUvC?= =?us-ascii?Q?lvVfbuN5KNHy6oqBzQNnZHmPCOwNe/gpTxeYkI/ugIkGL75ZLi+EBvYMcBhm?= =?us-ascii?Q?Hovo/Kt1YLaqydYTEj57YuiQ18+raCiFJy+ymab4m8LOHEjJMyn5ucstcNY8?= =?us-ascii?Q?uTB66+hDt9zcPlfZTxz/I0cJVDZPBtu6P4DVvz3TRY+G8aTRm0b2//rEgWAb?= =?us-ascii?Q?MlXEGPMg8jFV3k21M+j+QLt6Ondq5/zUWM32rFB4MN4CRiZo+h7EhORN16sO?= =?us-ascii?Q?fvD+ldTsWl3rjgahuaYBC+/ry+wifTWMvNY504GqpAX1nG1WHOHbcZYBDT4V?= =?us-ascii?Q?ptSdIznMCFJSlbVN39YniLBKoiRQTOiS9SXUi9dCWTkonMWK+FHxnMmDmOHU?= =?us-ascii?Q?VQC9cNWUPAYeQtyq9jclHAYaqSTW2eO/qcc+K12/3UhDjn0gnGGMJ22DOPp8?= =?us-ascii?Q?TA0h426khxOfffQYdPwXyV13HPXUz4HGgC2wi9U3z+A/Xx3T5/9Okf1Up9Cy?= =?us-ascii?Q?KLnDeW5VyLdu2tkmXEdNoRhz+AN+UZh8fR83Yf6TVUr9GCmzYhrlM5IKCh4I?= =?us-ascii?Q?RvAK4X9xxFz1rk+9qRQnUgGKztdw+Mvz9oxNvcHC2MsgdgFYXbdZlzN4nHpT?= =?us-ascii?Q?kMi2TFUnQL6hqtL5RJUyBdY+3dHvldRj4RZokN5YYALGszuEq0WmdWcqb7dF?= =?us-ascii?Q?EI6zP244SlRHHFJaOXNVlUT0S6Fqo4MlDOF81kcX3lpVjXjDgCv8rKeZDYpB?= =?us-ascii?Q?SNra6sTqje1ioX7939uxB7VPevtdfg5sFZYia3ZA/Jw9SQjmbe9bqcBF68q0?= =?us-ascii?Q?8p0fM7eGxoMYD42qobfmMSUsQcXMkA67Ur6P4IppTTLWawrL0yPnaO01OnqB?= =?us-ascii?Q?pErS1Mm1lU/ctzvnW0+uSOwr52I1PU1BmEehDsbcOxKlJ6XKsk+RFZmeT2mM?= =?us-ascii?Q?0GhuRiaiU8t0NMAeEa7JgY=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:Q262aT6iTVOVqSv682zaH3AwKApX9Heh5QHD1cLj7TIHcme7uF8OT/1URNwf2Y5yD9ZcjvXcLc8SMgMM/juo2SqnhRhO/lzq5oyoN3Uhca5N5hF41hXyUqCnPKvQ+DAUCbJhoOaxIH1nf2n8jBkqbiErs5JZYjjMg43FAiB+IhNoEThhtFoLbHsDfE+TmFa84bRr3mytM5mniGbsvy796qZZnxeo+nMfRv/7dZWPDy2e2e2XKclYluES6dVsQsvw+EyXtfZS6K1a0X36W/SGRdR2K29BA7a2TBIT6CzfRCoIf9F3LAUCeh2xvkRRppVXx3QJ21kiQ22w/6OEuZ/cYlk7/eYQsQL0GtQCm88pKzc=; 5:L+21j3rDAZdhKiC0kXOxFO9XAmyMdvW34MFFwI7j8GQF5hCPwmgI1r7thlby1naTw7NgrpOHt9VkxL1QsvohWvO4K0oIXNkO/+8mzGFd0IvR5zM6PcCihlI1/vHVBD1awFmpvyBPOq4jdI64tNu7oJzj7/cPROwOzdQALML+xv8=; 24:HcXVkc6k5VAJApPoT7EO/eFA0oFgq94VVjJy+HKXSX9+FkgDOrHaBk6ZGzW+f7GddeFK7ymSD0LUcEwIxsEb13zrfV53t+8xSFia7LXPn+E=; 7:IvOFj6DrNxXuHwo/ySJ7StTCPA8/OJ11LiJkX+uFZJFjwQnEYPhAPik1d9AgDrQGuIVAfiwAHTBKAg5plJPmtcP7wPT8e3zmBTMMKkhGQoB0wzoatggo1sZTwLP+XmclbL5SFAS/ODpoZ3vqSCSnAV5pO9YDhKD7upXrXzYf0YsdHyh2FPcRpmgKIfGiSrLTWcKBny9hYsV8l/ZTEbH3V+18sDfFB1k9dNJIGSuJtDm5FGkHDULO6XmYPBXkimqI SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:pHhkhD3ZUL1yO+qJMgzYupcXjjKBVo2kNee15aO/LI+9BFxRlztQ8ivpQV7FjhRZ3a8L/bThiTJGicJ2+Imykkw5QCT6fuEwp00ts9SdgnOBIgh537RccdhdBdQOC2pbe5KjA5weL7XgujKwOz2m71aot05Wsf+ky5wkSWbvk3Q6J03uUtKJY/RbJQiORCTO8CVOPHZmeh7cs6j9zl7XXHluZf2Ja5bVu3hK0/eZfVcTPIaKEHqE2xmMVQTbZsCf X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:01.6665 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8e6ad1f6-e0fc-4adc-afb1-08d5673f9b55 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.50 Subject: [Qemu-devel] [PATCH v6 10/23] sev: add command to initialize the memory encryption context 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When memory encryption is enabled, KVM_SEV_INIT command is used to initialize the platform. The command loads the SEV related persistent data from non-volatile storage and initializes the platform context. This command should be first issued before invoking any other guest commands provided by the SEV firmware. Cc: Paolo Bonzini Signed-off-by: Brijesh Singh --- accel/kvm/kvm-all.c | 15 ++++++ accel/kvm/sev.c | 124 +++++++++++++++++++++++++++++++++++++++++++++= ++++ accel/kvm/trace-events | 2 + include/sysemu/sev.h | 10 ++++ 4 files changed, 151 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index f290f487a573..a9b16846675e 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -38,6 +38,7 @@ #include "qemu/event_notifier.h" #include "trace.h" #include "hw/irq.h" +#include "sysemu/sev.h" =20 #include "hw/boards.h" =20 @@ -103,6 +104,9 @@ struct KVMState #endif KVMMemoryListener memory_listener; QLIST_HEAD(, KVMParkedVcpu) kvm_parked_vcpus; + + /* memory encryption */ + void *memcrypt_handle; }; =20 KVMState *kvm_state; @@ -1632,6 +1636,17 @@ static int kvm_init(MachineState *ms) =20 kvm_state =3D s; =20 + /* + * if memory encryption object is specified then initialize the memory + * encryption context. + * */ + if (ms->memory_encryption) { + kvm_state->memcrypt_handle =3D sev_guest_init(ms->memory_encryptio= n); + if (!kvm_state->memcrypt_handle) { + goto err; + } + } + ret =3D kvm_arch_init(ms, s); if (ret < 0) { goto err; diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c index e93fdfeb0c8f..be1791e510b3 100644 --- a/accel/kvm/sev.c +++ b/accel/kvm/sev.c @@ -18,10 +18,72 @@ #include "sysemu/kvm.h" #include "sysemu/sev.h" #include "sysemu/sysemu.h" +#include "trace.h" =20 #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */ #define DEFAULT_SEV_DEVICE "/dev/sev" =20 +static int sev_fd; + +#define SEV_FW_MAX_ERROR 0x17 + +static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] =3D { + "", + "Platform state is invalid", + "Guest state is invalid", + "Platform configuration is invalid", + "Buffer too small", + "Platform is already owned", + "Certificate is invalid", + "Policy is not allowed", + "Guest is not active", + "Invalid address", + "Bad signature", + "Bad measurement", + "Asid is already owned", + "Invalid ASID", + "WBINVD is required", + "DF_FLUSH is required", + "Guest handle is invalid", + "Invalid command", + "Guest is active", + "Hardware error", + "Hardware unsafe", + "Feature not supported", + "Invalid parameter" +}; + +static int +sev_ioctl(int cmd, void *data, int *error) +{ + int r; + struct kvm_sev_cmd input; + + memset(&input, 0x0, sizeof(input)); + + input.id =3D cmd; + input.sev_fd =3D sev_fd; + input.data =3D (__u64)data; + + r =3D kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_OP, &input); + + if (error) { + *error =3D input.error; + } + + return r; +} + +static char * +fw_error_to_str(int code) +{ + if (code > SEV_FW_MAX_ERROR) { + return NULL; + } + + return sev_fw_errlist[code]; +} + static void qsev_guest_finalize(Object *obj) { @@ -170,6 +232,68 @@ static const TypeInfo qsev_guest_info =3D { } }; =20 +static QSevGuestInfo * +lookup_sev_guest_info(const char *id) +{ + Object *obj; + QSevGuestInfo *info; + + obj =3D object_resolve_path_component(object_get_objects_root(), id); + if (!obj) { + return NULL; + } + + info =3D (QSevGuestInfo *) + object_dynamic_cast(obj, TYPE_QSEV_GUEST_INFO); + if (!info) { + return NULL; + } + + return info; +} + +void * +sev_guest_init(const char *id) +{ + SEVState *s; + char *devname; + int ret, fw_error; + + s =3D g_malloc0(sizeof(SEVState)); + if (!s) { + return NULL; + } + + s->sev_info =3D lookup_sev_guest_info(id); + if (!s->sev_info) { + error_report("%s: '%s' is not a valid '%s' object", + __func__, id, TYPE_QSEV_GUEST_INFO); + goto err; + } + + devname =3D object_property_get_str(OBJECT(s->sev_info), "sev-device",= NULL); + sev_fd =3D open(devname, O_RDWR); + if (sev_fd < 0) { + error_report("%s: Failed to open %s '%s'", __func__, + devname, strerror(errno)); + goto err; + } + g_free(devname); + + trace_kvm_sev_init(); + ret =3D sev_ioctl(KVM_SEV_INIT, NULL, &fw_error); + if (ret) { + error_report("%s: failed to initialize ret=3D%d fw_error=3D%d '%s'= ", + __func__, ret, fw_error, fw_error_to_str(fw_error)); + goto err; + } + + return s; +err: + g_free(s); + return NULL; +} + static void sev_register_types(void) { diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events index f89ba5578dc1..ea487e5a5913 100644 --- a/accel/kvm/trace-events +++ b/accel/kvm/trace-events @@ -13,3 +13,5 @@ kvm_irqchip_add_msi_route(char *name, int vector, int vir= q) "dev %s vector %d vi kvm_irqchip_update_msi_route(int virq) "Updating MSI route virq=3D%d" kvm_irqchip_release_virq(int virq) "virq %d" =20 +# sev.c +kvm_sev_init(void) "" diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h index d2621a9d1100..6aec25bc05e5 100644 --- a/include/sysemu/sev.h +++ b/include/sysemu/sev.h @@ -14,6 +14,8 @@ #ifndef QEMU_SEV_H #define QEMU_SEV_H =20 +#include + #include "qom/object.h" #include "qapi/error.h" #include "sysemu/kvm.h" @@ -49,5 +51,13 @@ struct QSevGuestInfoClass { ObjectClass parent_class; }; =20 +struct SEVState { + QSevGuestInfo *sev_info; +}; + +typedef struct SEVState SEVState; + +void *sev_guest_init(const char *id); + #endif =20 --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517249020733529.2881291953271; Mon, 29 Jan 2018 10:03:40 -0800 (PST) Received: from localhost ([::1]:54103 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDmN-0006GI-I3 for importer@patchew.org; Mon, 29 Jan 2018 13:03:39 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49102) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRa-0005ee-Gj for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRW-0003Ut-9j for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:10 -0500 Received: from mail-dm3nam03on0053.outbound.protection.outlook.com ([104.47.41.53]:39184 helo=NAM03-DM3-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 1egDRW-0003UE-34 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:06 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:03 +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=l6cy9TGkG1Er7+CMCYwpnLJCmsqrKJjy9qFtfhvae7w=; b=exs9/qeupPdYMsmugxEpE/tTLu/jYS2f09YuZBm02E2igbLinrR3MLYiYlOYgu0DC625D74rVBNdN5axofh2RUwgF5EhC1uuFpK9TmIKfatlLYb+hZH9CYNFRP+fz5S76ghbw1IXnEPXI0uqS9MO40Mq3Pqjc8UvS0QWvaSDoYc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:20 -0600 Message-Id: <20180129174132.108925-12-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 7431f896-51f3-4925-b879-08d5673f9c41 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:ptXuWSnqZD3dY1b69TVY2qWfKm90DxeMAHMPy+TglPiQKBSjL7yaMtP+DoSrIp/Vjd1PNLdcyjqYyPtDGtqZEPAKrVjoRjYRB852xofamR7z2kLvXPrkbbdGBe9FnCTNI8xreBdVsJYvDgVLx88C7oQRDP4y9qE49J/hdjYrt1q7RWnmVunUmAG7nD0HlTMBITzXC3TXuSKwYPMu5abnK2X6cR45RyTPod4LG+mfu8jSDfWLGySLd7oFVbi3Sx2+; 25:x7AnPEefsmoh8SSpxfTgL6cG+wLzZuBdnDVBqD2VdrtsKdzCkQ+Bd+8XQ7GbYqlg0tPFihD+XJbEFNaw2dePcGfklDYia/mtx4XTiOD+AiTHxaaWB+aUJSi3lmcAHHxkUOqZ2sqDkQ0p8dtdPUmoBw4hdZ6Plhtmda/TjF5zleJGCoddRlV9wglnnPrGdnodGZLqOG/CM+IFg0sKk0XUPDzhOa0rZ7dHaWGXAplurEpcEX+6xFWRwFOBxdxbQoIcULvsJ/NMx+Q8KOjyjUwzdMcRsRtL9ze1k1yU5Jhya62YjgZI4XlkYy19lBQLHlRiQy2h2di7IXioPCv7K9gYuA==; 31:R2oNvqHrFs0v8BbTcVIychsV8uuOpGVNSGs9BTu8VpuvoWPEG+dpcvCv3yPXcWpaXneOyVYAvdOE4jObLt8zUWYOhdsDPQtWmtgKNEM2fA36itnGDlHSWIIU/OtPVDtwOyimBekEVwqnUEZl7a2sFBBINuat0OHpI49fvkFJXdJ1b4kDPNH0Td0TOZSMOott6BrVvc/lwAdzT0y3P6gJGRPaWpueZ1JJ3UsiEUCxj3U= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:reyzawrVhobrnMEZsLIwrI0bD1jfbYEbDeUogUInXL5hTL3Iuf2KSw48mkkDCvFTNFvXW+wto9ajMH/zc2pxs3ePT8eS2BBzxhT7mDnOFz1KQpKBczV7lIDTR4PIxocuyo2n0HXVLt8LzBNypzDAg4o3vdehmY1MxsHJtDU3hvDO66vJ7gKNEgHXOyZTgjDOWckp349VxBiJDIOXS0XcFh6U5aQNZAqXQ4rOJTm2PdqM/I9P9hhebnw8FoQUz1z8sLW9/9rQV7tRJ85NlQiLrQx19/shgtfJDRTspv5SdKyJCpzC7An5n8ljQENcqTzYZbZIWLtB05qquS4buC1eO7Xu8mOwv88SjFjPaFkm0kNzRNYtuP7FPU9liG1YmaHZ6UWMfgjEbsYCCxqHG1XAVFKqUKlJ2vPfLG9mKGkA6AuNCmnyIDIvYjMAqubN4zciFHMa5wvG2bK5om3TqsN6tcdlJvXwjccymCpLkLaOzl7QVZQb9yIVlLL7UjZOjoN/; 4:cyCOvGM1TCj7bSQ+GlC9rzDhkKgYCAMOeasJGQwcc8h0kkoNKOH0uS69IUjvE3Bde8k7/TjOZLXV+QJnVnBgBY9PdsqrEidtKgqahkLf4HTOndSFkyq0Ve9bLSKdTaNegjLxkOAQ1JsF4po9/dDlcw1sQ/V+Ov21NbT7+wwM99L0XALAUl5y6Z290pdsJL6ZiMu53qbp8Sm0x/C8Ksjox9ihovhJmgqo29Pt9J2HLZLtp11dr+Y+ZQSHRVdQ+V9jPKK/5K/UKU242ZkWX/ifv62ozwmOcqxf0sGPB4R4BjVpWsmI+6y1j/n64MlHF9yq 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:cXAQ/38Uv5TfILtDs6c3TS7IYnLg2OADC3osPDLv0?= =?us-ascii?Q?3kuzteei9o644h0ZdZes89yeWxaLOm7opVL+Jo8CoW+kW9ME9RVlmtJ7YOO4?= =?us-ascii?Q?0zIK4QyMycQ855EMK8slk7m0BpLLYKA6OPMSlqbWurC+5EGydXiaxL9OuBfN?= =?us-ascii?Q?IUJ6aFzf+2wErraOOH2IlzEjC6jiRaD/iW+xK1jg00XSE8RtoJUUNf77LwcD?= =?us-ascii?Q?rCxw7RJ0cJNoKgqXlapfLFwOD3joqoFta4jc7vuiWNc1OJAuDyRF3Ks8LT90?= =?us-ascii?Q?OzTEVZkLdhwL38uAQb0vn1JbI/+83d38+Te++S2KVJGVw3rAx7ToEHvE0CLF?= =?us-ascii?Q?XvOe6iMADz9I6YeW8VY1gYCovwFU3tbN9eYuJpUEz/oZzHxuR6Y+2pfxqaGr?= =?us-ascii?Q?zTZWs+dwh0BQ9xnsu/KAm4TAb8FnpSeZGNdkLZ0iAo1zVGGzJH6Cfx4h25rq?= =?us-ascii?Q?hv3+TT3AyoQ9YvjzPY9V51lKX+va/myUhRCnps/PUVnTvtaRkv2HbRffchfB?= =?us-ascii?Q?4+2TicuRpoE9zXEFL18lmfzZ4nzon79VfK/QQl/kpnm2/XG8/vCfyxOP5Pfc?= =?us-ascii?Q?yB5sBQx5Y5QFlvpLwZRtiasKKqt6YUZh5nbgkDSnBmsrpLpteSaqIr5/cPAt?= =?us-ascii?Q?NlzUEU2e5CgCnbbVHVLQLFCknHDUhnAG0sL/ZVmHm6mlXFQCjcu4vnxd8Sqy?= =?us-ascii?Q?sDL3TZtlpAXs2TN9wjnyXQm+Ery5w0KrlxtfeuPwZVKB+WUtTT18La70wohM?= =?us-ascii?Q?Xs8MXPRZ+hKSvExyFA1y1vqJ7Y/DTmE0urQhvy7j5S5mctOUP2d218nG6b6P?= =?us-ascii?Q?yMcp7XpKP2bsxPlMgMagIB0e78wO3hg1M568s74wzi0x7kQ5jGvryjY0Lpuo?= =?us-ascii?Q?8Wt1J5tTtCjic4DqwPKKswQVZxa8Kb8/ksV5xMsiP4sTmE3YbNovgItvr2Z8?= =?us-ascii?Q?qB2mmRxm9QHBvUGJom//88SdBXtdujgZC7On+DP59GZj3ycUGZUcIQMskq0F?= =?us-ascii?Q?Lv5tguXd5a16cMg5b8qpgXr1OuwhD6DeQGPPIdTAmPssUnfk5FUPTJbp9EV3?= =?us-ascii?Q?Qi6sLCyqjH2tgutwOXMZh2KKKqODBJ3rQuKIOcICWuYBFwpo1PgI1f+gSD48?= =?us-ascii?Q?1wolmmKw8q8FyJKLxY3FpW6VrYkK9FJcO3NsONhlfJIHt9BDA6Tro4n2wWqJ?= =?us-ascii?Q?jfgjMIfLnHCqmTCg0EJ2PGnqgpEC7pAQ/3aVFcFGmiPfe7p/f6nSaKTHBS4/?= =?us-ascii?Q?+A0Shk/WUaiejU85NyyPCUqmzrwA9hU1XkoDris?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:lOr+RnMzNmWcSud05OrCrvizx0j8rpPQswnOlbY+5/qyrC2ZbqPpsNxLCo5rhAcmq6olFwC4+xHubq+gIUbYdfUs6oILq/QBzeHo/oHDk7v/MHJmVaW429VCTLBb4JpCz8VEgjoDDeGviXUe3RdUFaABOWdhi4vsPU7MpwECN361bzcXxa6JH9WkFRzBRteFaZ///DJf6oBkqUFfzla/MSEundzZag5bbPlRvS+PuFNAq2iHHr5W9kbvw3ahoeF7ktx8XLdMCPBLTXL/xXKo3yTTE302l0q+Emk2I7gnFGWiUXmO05M7op044Bk71QmVWB7oVv5BOtHwt+wAA2kRyTr8ZOeg+K7HlKu/jEmfYrs=; 5:/A2WpeH7YWVH+aCJyfX61XrOPI1PEro+g4IUzZhfeZJDdmhrFVZy9hAvMIyIs6vOPIbscAnWB45GXaVhRWWIuC+llE31w5nrFPuVc1PQ/EAHCe6ocQoRe8k9CiOXIm6qhwwsUqPtFPAYE18v9SiWp7xoVe2Oyxf2HWR90I2QMB4=; 24:y2OFtlAMldhFJO9um+h+mtDwVEHLZRvWNrJRWCPwEgjvAJ4UOV0vS0mRz+68zQYLwEwO6T2zv8eMfUaiHzCmsKLSQbqh5mCxPAY0u1oP6MA=; 7:qjovgTOH4Pe6qF0fZay44Txbo/yJAPyYSC9TBDvvkn3ApvyOZjH4Tx6pXtMTidW9+L1O18iFTSF9JFj4fIlqKjVXSuoUaffyEmbrA+Y47Sobjt0AkSNdMNDkbr4srUqn6YsuXBGVn6KUbOw9Wi0H71xNrI1utbKxiLeP9wAf+DKKOG5TzZO56FMB3JzOXBTYduMX4pRoFUiJSryxa6L7Th0hJnVgj4hHPWi5mj0XD90XQVsQpaWwdIZ5YBbe3d/M SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:9npf1f1SXmrxhJidmIxtRgQy4LPITzrOg7dMqku7keQwbUR5mDe+FLi5y2WKxKQ8NFg5HOsJJ5/mbjrXmA1FBtakDEJdDHmLttqemSc1iIcK25AXjGoehrwuqNllvgUPyK1l2vT+CWR3KgohakkpWzRG4vaxdBY8Uls5LbMsqW/tvZtbUxdyDothlsL1yYe5PlfkMfx21Gga+FbHfWbAYiyb1D2lOw8WQZ0lwxorn1lRMLwiYVqp/LQHy86w8SRw X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:03.2290 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7431f896-51f3-4925-b879-08d5673f9c41 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.53 Subject: [Qemu-devel] [PATCH v6 11/23] sev: register the guest memory range which may contain encrypted data 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When SEV is enabled, the hardware encryption engine uses a tweak such that the two identical plaintext at different location will have a different ciphertexts. So swapping or moving a ciphertexts of two guest pages will not result in plaintexts being swapped. Hence relocating a physical backing pages of the SEV guest will require some additional steps in KVM driver. The KVM_MEMORY_ENCRYPT_{UN,}REG_REGION ioctl can be used to register/unregister the guest memory region which may contain the encrypted data. KVM driver will internally handle the relocating physical backing pages of registered memory regions. Cc: Paolo Bonzini Signed-off-by: Brijesh Singh --- accel/kvm/sev.c | 41 +++++++++++++++++++++++++++++++++++++++++ accel/kvm/trace-events | 2 ++ 2 files changed, 43 insertions(+) diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c index be1791e510b3..5ae37caeb361 100644 --- a/accel/kvm/sev.c +++ b/accel/kvm/sev.c @@ -85,6 +85,45 @@ fw_error_to_str(int code) } =20 static void +sev_ram_block_added(RAMBlockNotifier *n, void *host, size_t size) +{ + int r; + struct kvm_enc_region range; + + range.addr =3D (__u64)host; + range.size =3D size; + + trace_kvm_memcrypt_register_region(host, size); + r =3D kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_REG_REGION, &range); + if (r) { + error_report("%s: failed to register region (%p+%#lx)", + __func__, host, size); + } +} + +static void +sev_ram_block_removed(RAMBlockNotifier *n, void *host, size_t size) +{ + int r; + struct kvm_enc_region range; + + range.addr =3D (__u64)host; + range.size =3D size; + + trace_kvm_memcrypt_unregister_region(host, size); + r =3D kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_UNREG_REGION, &range); + if (r) { + error_report("%s: failed to unregister region (%p+%#lx)", + __func__, host, size); + } +} + +static struct RAMBlockNotifier sev_ram_notifier =3D { + .ram_block_added =3D sev_ram_block_added, + .ram_block_removed =3D sev_ram_block_removed, +}; + +static void qsev_guest_finalize(Object *obj) { } @@ -288,6 +327,8 @@ sev_guest_init(const char *id) goto err; } =20 + ram_block_notifier_add(&sev_ram_notifier); + return s; err: g_free(s); diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events index ea487e5a5913..364c84bd7a73 100644 --- a/accel/kvm/trace-events +++ b/accel/kvm/trace-events @@ -15,3 +15,5 @@ kvm_irqchip_release_virq(int virq) "virq %d" =20 # sev.c kvm_sev_init(void) "" +kvm_memcrypt_register_region(void *addr, size_t len) "addr %p len 0x%lu" +kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu" --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248232187794.5630591313659; Mon, 29 Jan 2018 09:50:32 -0800 (PST) Received: from localhost ([::1]:53689 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDZf-0003n5-0N for importer@patchew.org; Mon, 29 Jan 2018 12:50:31 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49117) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRc-0005fa-90 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRY-0003Ws-3y for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:12 -0500 Received: from mail-dm3nam03on0066.outbound.protection.outlook.com ([104.47.41.66]:5376 helo=NAM03-DM3-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 1egDRX-0003W9-TP for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:08 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42: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=84VVRamiwEmyyOf+EPwrpYiHNZvj7LrvW+lOYoxniGU=; b=DSCq2OlzVsoMUs8Uj6/ZzPi1g+rCBXgC9/ssKO6zrw0sma1rDQOjsMNt4N+6NKqtlQWbPrTGIn5JWXix6YzeoIefVOg+7403C+tA6VepTl33hUGcID5gkXftXOBmx/H3ssbgO5POV8nbYUbTDCQ/zeYT8KlsXwopkwmJm2rqi/c= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:21 -0600 Message-Id: <20180129174132.108925-13-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 2bdf8248-aa94-4ff2-85ef-08d5673f9d32 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:f8cUJHbmGUiln57uMdc3iC0KndsbccYSoXUifHAM3uHqo4FhgVVl4Urywtw5+UoyloqXxjKvHErP/Z6OPKemManfP3LDmhaXJMcClSN2nh7vpfFCKtNWP2sdyXut1rPOaGafIP+ix+iOEAuQVMubF0XkUY1OWI3anmWYU2JB1BiThjMzhwt6OjAez75ZDHq0EQzqWqrAuJC052xTuNBJxShZOTu9ZxCOXD8zTENllIf2NvmAb9WoPol34/6x3Y/g; 25:DvQiBhDu1r19vpGpSb5PJD+jX0IcTKjitSr1LQCO8nUIaMu9yhk6HKazHDdJpDS/AsF56dShSRK1TcGxIvbOHqWvTm4KHWmA/N9tLt54BB4uXxiZdVCXEuKx1bF0DhbjuNkknt2oD7doQyqkmD+42cO/upHMANphQ4Wey6m3dN9zr/E6GdowJm4POKM29Oy7bsLqkI8IKZuCxOsdMa5/xnfNsMKAmHXjamCJ0y2/G1VV7RnbBrLsBPGMuiGQRb9BNiOQUmvWQu6ogKMizuu3wkFRS4oe9aDGKXysZsl27y9ONvR/3KYypKYt/rz6m9vD1fNr8Qvd3dfR1jOqBnPpkA==; 31:o0TGNF7Kv3jlNFxiX7ZKwHIvZ+c1OosLXIltBkeEdSWAylUYS4m6r83KifA7RRPg3VnAiKxQ0AOmx9dgMfRFGC9TlFPiA8XsvOQ015OkWoR16Ojl0SrpBn3NrMQhiR1QhkW4AsX1iHcGN5J5vFrS44/geACYqnuFquWahVl+W3+GBKNElRuUrK367r3iafYMPIIbTXAeJoWfU0oAvQfoD4xOxVbcZKZKlQ9KVcVARaI= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:7YIC7MHNwYxRP3OWhSfFFoIJo63m52Y/227XampfTu1WbLj5QR9wSQBUAqNzoQo8gBc5ucToXdJscQprCzxES2YEyAsYAB4UbumtrblhvrcL57PkpNb7cPckHJMDgqZJwbohJQ5Haf8JBDkOBNwL6u9zEDTJJPMpW4tKl6AH0s5QT8ABfo5uwgZUrj/E8ERbmhomSaOZiXZ4EEyM5yxI100grlHbeU5HDFTWBx31ghK2adM0Wn+qfjb6+fufQIqOvbXoAJGhTJCi2CnrRKqqN54Aao8oqxNpMM/1bXZEJ6feAY7JUf9A1Ikwt1G0GKJF9uq3m3OfkJ2eyP3rGi6m5mm9EFe7G7HS4gfVsPowfQ5CG7yCoMDvqc1uicH1d2BPMIZCQlCOy06+TQvSQkBLIfWP42e6Md1Kho64H5s8p9fRQcl6I4x4ISoZPGc2AywdTsIGO8oW0QbCSTrdU4SfGWAT3YZkRxZbHRM5x2r62QaE+ki8ODjswbuJZHcxnyY6; 4:7pObmCrJMNhoLaqSVYg7DYi3HVdJ2G9J06pMkpOa2PX3qHBMlnU48B8jOTTYXAFBrItU6zxMnU7PeRcHGB4B1R4wFAlGAFIySqcxOj7cqmHpcWiuJn62NVJGW3t6aUhSKdwZF5gpQVobJn6s03Cw8GeAv1PJ2L+2uYo9Ud0MsGINsZgfQ9jfc/iONHE7gItjekVI3MwyiLZQmDaAzWgpo4BLPJbSdRlHDMIr9rFIfqjzXuBOkmV9b6wRx0bjzmWrlAz1krHQtz0sDSdWk9QiImT7y9skrXO171DYCP/QDfQ0g0OD/iZje3YQq466AEW3uBWb74B6J+mVZxPgZDHbHw== 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)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(575784001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:W91JjMrgC2GfLpgs/z0hitKaw/X+Pv8/9i9ARtDTL?= =?us-ascii?Q?HmMji1re1BTcpdG0CnVjEp3nWHJyEdTFdFhEWbN4y1+NvvSVsuamy2yDty++?= =?us-ascii?Q?Znt/32pNEVlLYt4s7qxAVwnscs8Q2KM1rzo5Umot6wccOHv9t2xHsvDConQc?= =?us-ascii?Q?U9hdoQsgJ8rWHMkK7/OJ2alferTTj5X3Urqp+jUy3vbx6ulhSY/FSHC+Y8Ju?= =?us-ascii?Q?cy2S1vNGwsgq/GKaYxwiXenYpOZ8Va1A0hgsLm3BU1TdR6lxYGD4fc3bNMf0?= =?us-ascii?Q?zpcU+JnJl8ED6CdXklvlnPD9Yl8MKzOBndNaI5zZ/YD02xzXpHarZwbnYOmy?= =?us-ascii?Q?T03e1tyH4SfJdku9caSbKVQBNslbncmxU/EFMfM11zKy3ZwLI/bro5TFR0Tg?= =?us-ascii?Q?jmEGwV+4/bc//Y61tqWxgS9FoRqtty52UWcnTbQ8F1EIWU+2GJkmQUZ/8DgO?= =?us-ascii?Q?amrPPnOZTmrTfSD/NnUIYBTV29/KeDi/ic/IZSX/o2ysu+B4EYgSTHuPK8BC?= =?us-ascii?Q?86GGXd/K7DTWvR0I9YrbsoJYccC7095MB1yS62bjvW4Exsn7p9o03NEJbitE?= =?us-ascii?Q?gl97CTvPLtnWs0AoEWBefGD9EonEufosyL4fwRnlMYW2W/BVy4nU9bFYdT44?= =?us-ascii?Q?e6BCe90l9XC0PSTxesAmC7zkFXOHRYCmeWYpkFtOKELvgMSFRwt5VAGrw+wp?= =?us-ascii?Q?7fPoJB9VxxdQYo8ylHJNyI4IbhHleUEL8KXoMNAibG7wy/bitQ0YzmrwH8Tn?= =?us-ascii?Q?TdJEx1O+X0SMNgrrEALSKyCNkK4MAnP3F3PLTIwkM2yjsr4WGJQ/pirEhrAk?= =?us-ascii?Q?TnBgM8rr7PurCFFGcLW6efruWoBpjDu7ZLjo0czSKYk2Y4gNe6mrkb8MB2Y/?= =?us-ascii?Q?vwiMRQDxoTo1CdKb3JDv/Oc2qEJ+xkCMAXs9KUiMKfGlrqt8C52NqfWyPyYz?= =?us-ascii?Q?1R2jVNKpxM+K3MMTqSwM6NOmYVe0ZPU/KevQIwXx09PFZlw9YMZVBxmzKfA5?= =?us-ascii?Q?MIhrHK9qVMJsYJAdTYeNrLTdIDJghwzRqKAvtQZVSTAxjczxuw3sDSzhIyc+?= =?us-ascii?Q?1Pkw7EufHfCEnUMTdamntM8LGP39vWuyyJlXH3U/4verhMS0tQ0xMZi3Q1tc?= =?us-ascii?Q?KyBuf+N7oHr5AY/LFunS/cjmFgCkbjddGH7EcfDxIIxAZQ8022jopehDWXjx?= =?us-ascii?Q?0kRomJnLlOHJeqZmdAnk0vZMfEbnRFpwAgoOkfYlklX6ghQMPWOCFm5573al?= =?us-ascii?Q?OyZyLGtYkdhI6khVOO675ez+LZYaHHJVmSyWCNxbcmfESthsu2sKuFDHjH+U?= =?us-ascii?Q?7HRPlb7P/ZXCraCeS2Ld9A=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:cmfGRua/6gD4SmvYxq777R2dx16zFXrjZUj8lGyKcJDC6cinck33obIJLXfK7kXouUXee5kk5bk/GdUYqojwiqoHMk0CrEhKbfrfssf4xpH+1jDzVhYD5c3n/wj8bTCnro5gvFsigNrNxGodzbJBeuOcw+WgN8wnNCpJS0Q3MnfwZfgR4Zh94Do+x2aqQEyAWcpJTWxBWTD3Gq1HbGpNVKN8EYR7FuW4jSEiGgmn2HR4S8F4TDI8WKELc2JnV7fX7gewmWYMhojg5/6ef8qePGhIoQMn1wKK3+NHAVyTn3tDZ9AolWaF+49mL9d2aaFWTVMZnV92rhqeyLQYSTeOVCUvlMOr4t1cutjdV5VUoNY=; 5:AE3lSjzXzMs7BCkUpAek4F+LI6pJj+6mZpPUcOBPLhsh22gheADX6M7FIRWlGcPHfRNEmnjFWqKLv0b2BlyP/JJZBrHLIfwNTNmIRoOIPhtA1OZDZmJ1ZpuyjQPQuVwqcJfQU/UwsJ1qaEL4Wg476mDsXLaLREs/pfLmw8hmuLo=; 24:4Au5+5KEnDWgoK9oDBxleoq+TXA6v8rr2YrTmKljWDcF5mtGFMR/2xNLzZp3RUWQmWrApCrBCkBr6tpkyUzwE4C91K2rvgm0OkNwp1eXzkY=; 7:5QIgM+fDtKSnooE3kXQpO6zdYLbklekrQC+stX6eueBsOC4JgZZmXxF/ms/v/QZRca0DtxAWAJ6oTaj+zdgNMjDv6nXmz5ijSM8c3bKKo7MSLlfFpb2a8r1NOcBCvCfVNr9vjMVS7+VhuEpLO1YD31V9qDEzdV9QeHRBjhPKHmGC9jE/erqS9E4t4xhEu92kzAGuh5KzfQrpKHB9O3xUjFu91m6UKSejLpdH2DfEIGkS94G67pd1Cvnrda5rs0dU SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:dChLOmXMNzFMLER+6QPAt2JB2MTEZ1Ds7JWj+sCLKQPDoWhpQ6vhKdDp5RoMzqLyCkI4uDwKdT7AzGFg1c6ZZo8imbfOLerkKlEpBiDjX+7yH+TDeycKA925U4zURXrGFkQvPekt3+UldBD7lHqf6hCcNKFG/1Is6IUwJX97PqsjDIgrPr3zUDKJcxFCO5FuufPg8xCjRZpYCCNl7DUoTYzrzyr7sYaCT54SlmZKoHfm6ZtaOpr+tae0xcTx65ej X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:04.8071 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2bdf8248-aa94-4ff2-85ef-08d5673f9d32 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.66 Subject: [Qemu-devel] [PATCH v6 12/23] kvm: introduce memory encryption APIs 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Inorder to integerate the Secure Encryption Virtualization (SEV) support add few high-level memory encryption APIs which can be used for encrypting the guest memory region. Cc: Paolo Bonzini Cc: kvm@vger.kernel.org Signed-off-by: Brijesh Singh --- accel/kvm/kvm-all.c | 30 ++++++++++++++++++++++++++++++ accel/stubs/kvm-stub.c | 14 ++++++++++++++ include/sysemu/kvm.h | 25 +++++++++++++++++++++++++ 3 files changed, 69 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index a9b16846675e..54a0fd6097fb 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -107,6 +107,8 @@ struct KVMState =20 /* memory encryption */ void *memcrypt_handle; + int (*memcrypt_encrypt_data)(void *handle, uint8_t *ptr, uint64_t len); + void (*memcrypt_debug_ops)(void *handle, MemoryRegion *mr); }; =20 KVMState *kvm_state; @@ -142,6 +144,34 @@ int kvm_get_max_memslots(void) return s->nr_slots; } =20 +bool kvm_memcrypt_enabled(void) +{ + if (kvm_state && kvm_state->memcrypt_handle) { + return true; + } + + return false; +} + +int kvm_memcrypt_encrypt_data(uint8_t *ptr, uint64_t len) +{ + if (kvm_state->memcrypt_handle && + kvm_state->memcrypt_encrypt_data) { + return kvm_state->memcrypt_encrypt_data(kvm_state->memcrypt_handle, + ptr, len); + } + + return 1; +} + +void kvm_memcrypt_set_debug_ops(MemoryRegion *mr) +{ + if (kvm_state->memcrypt_handle && + kvm_state->memcrypt_debug_ops) { + kvm_state->memcrypt_debug_ops(kvm_state->memcrypt_handle, mr); + } +} + static KVMSlot *kvm_get_free_slot(KVMMemoryListener *kml) { KVMState *s =3D kvm_state; diff --git a/accel/stubs/kvm-stub.c b/accel/stubs/kvm-stub.c index c964af3e1c97..5739712a67e3 100644 --- a/accel/stubs/kvm-stub.c +++ b/accel/stubs/kvm-stub.c @@ -105,6 +105,20 @@ int kvm_on_sigbus(int code, void *addr) return 1; } =20 +bool kvm_memcrypt_enabled(void) +{ + return false; +} + +int kvm_memcrypt_encrypt_data(uint8_t *ptr, uint64_t len) +{ + return 1; +} + +void kvm_memcrypt_set_debug_ops(MemoryRegion *mr) +{ +} + #ifndef CONFIG_USER_ONLY int kvm_irqchip_add_msi_route(KVMState *s, int vector, PCIDevice *dev) { diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h index bbf12a172339..4a5db5dde390 100644 --- a/include/sysemu/kvm.h +++ b/include/sysemu/kvm.h @@ -231,6 +231,31 @@ int kvm_destroy_vcpu(CPUState *cpu); */ bool kvm_arm_supports_user_irq(void); =20 +/** + * kvm_memcrypt_enabled - return boolean indicating whether memory encrypt= ion + * is enabled + * Returns: 1 memory encryption is enabled + * 0 memory encryption is disabled + */ +bool kvm_memcrypt_enabled(void); + +/** + * kvm_memcrypt_encrypt_data: encrypt the memory range + * + * Return: 1 failed to encrypt the range + * 0 succesfully encrypted memory region + */ +int kvm_memcrypt_encrypt_data(uint8_t *ptr, uint64_t len); + +/** + * kvm_memcrypt_set_debug_ram_ops: set debug_ram_ops callback + * + * When debug_ram_ops is set, debug access to this memory region will use + * memory encryption APIs. + */ +void kvm_memcrypt_set_debug_ops(MemoryRegion *mr); + + #ifdef NEED_CPU_H #include "cpu.h" =20 --=20 2.9.5 From nobody Fri May 3 09:48:25 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517249220978777.9920696798309; Mon, 29 Jan 2018 10:07:00 -0800 (PST) Received: from localhost ([::1]:54601 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDpb-0000eD-Rv for importer@patchew.org; Mon, 29 Jan 2018 13:06:59 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49129) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRd-0005h7-LH for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRZ-0003YM-HY for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:13 -0500 Received: from mail-dm3nam03on0086.outbound.protection.outlook.com ([104.47.41.86]:44376 helo=NAM03-DM3-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 1egDRZ-0003Xh-AP for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:09 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:06 +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=5K+KzSnXb+KaLLdAZRk3tq7k9N7AmaRhFyMpV0HhTMU=; b=jOmCApdPDNHsV7SkLr/D069P0EbhZ2s2TsRY6xwS9sW/9mPYzkb/x1HOeJqQ/6NiH6Z/7RT/MCYXnPE5bh/cC0D/4g6W4uCC8G5KKjAyyLcr/d069XK2/IGExVa4Sf6BmazNK5NahdHNFcybT5CrS9ol0swGmwszkq57fntFaDg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:22 -0600 Message-Id: <20180129174132.108925-14-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c99f1696-2c8e-422e-03dd-08d5673f9e34 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:TD1MwAArCHCmwkgOHHVHdRudRo6Yq9JgxEYUGdcApGd1L2B2lNuAr7wp2aYmk2Cci5TNEgECE6hG20gDT82HC4VOIUG/rw+5OJMkfmJU/dYouzNimH/SgGY6i8RM8sPtN+e2W7Fa82F9opjVlMYjHNAAE5E5WJqseaSMf97mpyG6wIDfAlVP8qyN98QMhulzCLTP213kTwuZIdbFPwpcKkGEl5urRWHhsyNEREwGLWWzcfljSUsS1e1ogbRPyZJ5; 25:PRA+yzC1MhhuPo6PaZxpf3rVUSsFnnVzaitShezBphXjgjaxXdb8AUap/W9GV7Kqjeik2YifVlFskDEjmqleXEM2De/DZsJ2XwI+2zDCWN9yNvHB61jDRuKODogUDOvSgvmcPCI70buScDLqLEd5zmFnaydX9iQxBlg0GqHRFMvA90ZvF3TgGh+zn6TIInw4macOdO4hebTVahGOLh8EX2vHSm8JAOkK9+T78g618CPsfYA7jyVcl7MIFIoZqYaXkIiDQbCWc9i7M476vs4HAjbGvg8BAMrpq+iGjaGBGsYQXYqEbrJdjM43c+9BuLSo1SBsDb42v/SSn0vGknurWQ==; 31:TN68XzNt48S2ycVBf/c3lWkGG6f3/nKwJBditWc6UtP67g4XASG4lOa6OBX43nmK99gNxQGOphQjmUPhoHJ1wVUJu6ymBwSzicjcSKbz2t0y0vgGVcfu/9I3GJDfb+Xos3SN2CmkbA6lXvhgY5fsKKZtuU4LxB1irEUDDZPtJfj0tzZP0371B/hX8nq99ehtaG4zjp8XbgfCMLij9z8tgIV57qn/t00dE5hWQ/G+ySs= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:cxyyCEGmsmMUg8JoxqzdSLMU2r3/P1rk/jUNk5tv9R6FrquYqRoeLaxeSeUb5aXDp6UZDn4CgA4RM+PyJxO4y/wjAzETcooe0ND3cqNKM3s6E77fi7YL0JHLG/RT/fdkTScQKr7tM7oxK4VyBO5MjYJR2uqaFG9SAEoBmj+C3Lx5F7ZrMvPU3Cmt3e8q3IjRvLZ0OePqbsn+2QoL5PJ2DFVJKC2Xhrxv/NA6g94Cw1NgQOhucUwk0zlze67owi+Woy+rbqbisgXmp7gdFKbit93ySfoXDQpmqY2JhBOFmdKioVXhDm21eBYGabdUTye6uvgnCscU8x9tPLPGskq36qE5ZEea5fg4HpnnpRy0hGWg7YOk7pe7/NbEp4diW0yPTPIjwOyqlfVTcqI0O4ORkJPDTaaWYZKokHkRsuHD8GO89fSMpUIlYS9aWWR7/uSeRnoywM11svERgoeolsLJUMJ5IjpPX52Ob8ihIYhrtI50Mr76Tfo9cLq7e3Eni6cZ; 4:f5MMmQp92ajnrLFerboBKA8+A6hjHgsq58yGPwr7kMlLeq0RBzRWU9E2EEFFvTnxmPDo1cECjJ8NeugRQPhf/TXxnzapn18y9xfOpWxOvdFVDlUuspdYI48aEM8SZfCqrr0LeXaA159gTNAfHjCYoQbt6TbO7+eBKvjyQRcEvgnO7ki/KWg2d3vZKYjUo1hybVcshf0UYkbVdw+sqnd6C3+PHpXVZVCXsOsHEPFKEmYAl9kD4EFKqA98UbomtIuwZiR54L1Bdf8XrMPlZ4RRjJxhrqq7ih8ciz3WGOhySRaR9g9SGOi0l+hdUUkvslnI 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(575784001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:PbRwNqHdmJNg/Cet3IIMSxtqQkQvFkq0HvVkMubti?= =?us-ascii?Q?GzgJH3Y64qsCRYyNm2Fsz0YcClm7dYq8AW5KMDtsQM9B3M/itGzlorf2B04T?= =?us-ascii?Q?xBA2pInXFalemS//ce6g/3wTLC9N6EOH/+wgVt1T3y7ZTVhm4TXlxwpYDlms?= =?us-ascii?Q?5TfLTmkWH3fAZTHRqIC3IgD0q639PavE+i1wp/sY7uawgDlxTRb02xRMfokZ?= =?us-ascii?Q?ToaPLBHsALt4G8eKsxyoFwciDrrQnRddZjsB36pJZf6SKPf+h5eBIIF+GS6q?= =?us-ascii?Q?LfI8J0X4+as5NyZz41mrjvHStciPgtd2NvF3zbTgteua+GEA0Q1x50Cgglf1?= =?us-ascii?Q?mU2NzYPHs7knvXDJxEw/yI6rpuyEmLUjfrWIb5GsRSnQbio8MRX389iWBjtL?= =?us-ascii?Q?vr+jMwVo14xIrpQJDYq+oAYmf8hI5DE1We5VvOTvvCtXaeUoEDzOAiY1g/s9?= =?us-ascii?Q?4rdDQ0uBF5FoBHwbnhcZVfU6J8VT1ziQpbZQ1QRhQiqfRU5m1sS6Fh+EF3xE?= =?us-ascii?Q?ht6ZDst5U1KVYahWJZi/tnk+gdHpeiyBAC3qGpZLweJDoZwxDMIVPRyl82h2?= =?us-ascii?Q?6+sWgp2302CCh8MRl1EOCMiHqRYWHcvXeg8JKiNqpWsJJ2y9+Y0GV2k5WlOQ?= =?us-ascii?Q?tnFQb0VeqoNO/hXgftc+BzGz4Icj2HIt63/nTO/mjfsjmXK2MxiZX/tOAlcT?= =?us-ascii?Q?p7WZasQ07pynzuRWtN0ScGOmpM9pkV1sQ5ZbUl1EcX66Gh8ikCaX17hMitea?= =?us-ascii?Q?fIk6dx73Qdw7itA0dYjAodumX681xr8qurcSpaPipNhgq4x777oidOTL1efZ?= =?us-ascii?Q?EVxVaYc2IVne/hGHEQ7Hikktt3xkA5nD/8/m+sUGKYkTpYv3mssn7QkCWh1e?= =?us-ascii?Q?wFXiDCJhMvRM1K/vreiwu7fQfHnENsw7YkBEQw7kTFjEApsG0Jkb0yXU4d2Q?= =?us-ascii?Q?pR3UVLKABm1JTBv07ODaM3l3+2ii3IN/Re+WGLhk5lAhqOJCtrgLu+dN4dWD?= =?us-ascii?Q?V2m1wyMEzBJVUB5bKp03EdqdHdo4/SPuqZztL/OQDXP5SoTHmuNg5T7iF6Pc?= =?us-ascii?Q?3omc+ZeCmoG1ESM+XlfIRrXfChmRj80R+YrS9Wwi4nWbLtG0k9qSiNPSnvuG?= =?us-ascii?Q?e9XacXxNFWXu92DdQ9GZF5HTdGjZqu4IIxh13Mc3cLBl2GUtCOybeOsv5RrO?= =?us-ascii?Q?wEnu3yHiOvhve0pf30U01rQX3qwZX5Uwn/axzZqRJA55L08nVuW5Aty3mvAP?= =?us-ascii?Q?CBDZC2f0WluvUl1Plt6ITWqHCYs6ZdOoCYA2xnlUNabsgirjn/EW3kHJLew3?= =?us-ascii?Q?cpooXtWhLtg52x7XEFTbi8=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:n9mSTtrGoFmR65kZgR+bj9Ttss9L0hgYNyBHosaGYjqzRkTnafsapiSmkh3ussfsVO6WuJZ5EjkLvimDktuU2IPzgMnYnqxNmaEFjIGrb8+AozXk3m0VRQhHiXztSI10Ok8SGbU+LsyNhUxhPXGJ6vndfSMEh8dVqIBWNPr/ruZWKeAxs0SryjhpkUmPuAs4BrVWbCS01DxDWnLma70QMjESWo+VFC8j+E7XKkhsnVpwxmQ/2XVazi7sy+FFI9RSC6m9iUsxjym27qRBDTkG5XhSNSrgIKy2RUk2sePg6+Nv5NWFs97FNsNTevo6v8si/nwk6xu2gWZjfBlJUUdVEO1joBymGQBp01CkJGQ1eP0=; 5:C4Ewdqc43QfGdEcnug04TS4EzzvEulWVDdDDpf3DlkcVxq2eSeOBAORhqn9+wFb1Ibjb9D/Dd7u09zzGFliecATE+4Y61zGSUnljs2rt0xRDI1TOwHoHdq7hHqzejVr3r0HDDnTTVzY1oSvP74Ew5jP6P1AxfUSoULz1FH7ZZ+g=; 24:TtXzMB2EgU+LOlwkGYoJEE4V+JzWntTQhasVWsz/BsZgSx43d2tuOPQ1n3+oAT6pEfGzkD+LoJ5fAM+c2JV5LM5gzONqvPAeZAEovhPGzMk=; 7:DATP4FuvhmnIYf2yy1o+UhVjJKbn9b3FqF1q5WwfRJh0RIcBb3C4623bPBv262K3yqKfmnUmGxPBYXH2ps6EFMBceUdoBogaKhNjw3RHKZ6JjXzojpY4r3JIQBNPbZkQPOCriE39ex1HyWRfyGCDrTL3nxOKUqWJZjSh3GLGf0BLZzNtxyiSlRVmxZvMlDvFQRzT3yqcJMqsA5guLjOtZO9MBsycURu5LahKgpk1jeb1+Vj0hdia7AvrwE7YLSeG SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:rjVndGfwIK0AhyaXZMkofYRGGdAeiw/73NohvZCN/AR7StealfIxkRoWKFm5I6aZIJid4ZsvbakD2wmtBTJ/etQzS5yXdG2CEtqzVlh5FyjmJyTMT4hhcHX7IP2SyRkcLZhv3sYC0v9SueVYM4mm9EOr1FMQMVPqtl8u4VhFNBYi/KDSCmocTIXjYCgSvYA6QUOnIg7A/dfJTReTLgwcx3zGP3vHx0iwVWkwfFOt8yKYUxp6bEgdfzpKoTPCiRT+ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:06.4165 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c99f1696-2c8e-422e-03dd-08d5673f9e34 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.86 Subject: [Qemu-devel] [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm' 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Markus Armbruster , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" update 'info kvm' to display the memory encryption support. (qemu) info kvm kvm support: enabled memory encryption: disabled Cc: "Dr. David Alan Gilbert" Cc: Eric Blake Cc: Markus Armbruster Cc: Paolo Bonzini Signed-off-by: Brijesh Singh --- hmp.c | 2 ++ qapi-schema.json | 5 ++++- qmp.c | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/hmp.c b/hmp.c index 056bf70cf1e2..6ceb6b30af75 100644 --- a/hmp.c +++ b/hmp.c @@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict) monitor_printf(mon, "kvm support: "); if (info->present) { monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled"= ); + monitor_printf(mon, "memory encryption: %s\n", + info->mem_encryption ? "enabled" : "disabled"); } else { monitor_printf(mon, "not compiled\n"); } diff --git a/qapi-schema.json b/qapi-schema.json index 5c06745c7927..2046c96669bf 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -314,9 +314,12 @@ # # @present: true if KVM acceleration is built into this executable # +# @mem-encryption: true if Memory Encryption is active (since 2.12) +# # Since: 0.14.0 ## -{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} } +{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool', + 'mem-encryption' : 'bool'} } =20 ## # @query-kvm: diff --git a/qmp.c b/qmp.c index 52cfd2d81c0f..3a527bc8c39c 100644 --- a/qmp.c +++ b/qmp.c @@ -69,6 +69,7 @@ KvmInfo *qmp_query_kvm(Error **errp) =20 info->enabled =3D kvm_enabled(); info->present =3D kvm_available(); + info->mem_encryption =3D kvm_memcrypt_enabled(); =20 return info; } --=20 2.9.5 From nobody Fri May 3 09:48:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248501013547.9980073463613; Mon, 29 Jan 2018 09:55:01 -0800 (PST) Received: from localhost ([::1]:53716 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDdy-0007Vc-A1 for importer@patchew.org; Mon, 29 Jan 2018 12:54:58 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49146) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRg-0005k3-Dp for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRb-0003Zy-Gm for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:16 -0500 Received: from mail-dm3nam03on0059.outbound.protection.outlook.com ([104.47.41.59]:40630 helo=NAM03-DM3-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 1egDRb-0003Zf-A4 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:11 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:08 +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=COwGJwlt5C2eybd5w3q1STSCXHleKIFgH8iI2YWRszI=; b=qY6tNj+tCaOb8N9In2s0gyZnGcQzKIRPwxC6LFNECcND0TBMP/9ercsLVLftMugxBYtmuQlJu4pHCt2Kcf6Wf3bZs9jTIOBmJeSVbDpXiRi5GXjzY16Momi82y1vuZ74xpzJyclmUx6YaOHxE0n/Ly+AkDDpqn1hwnNfG04lBTQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:23 -0600 Message-Id: <20180129174132.108925-15-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 380b71d4-ecb0-4314-0ca0-08d5673f9f20 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:yAa+0pL90/C5Ovq0dLxEcoiOX6VNBJjvTEajvNtpobOAXT2bpQbURuljglrUxdB3EsIo0OptGUvesBHJLHjF+ROKXSIIUEh+urYeedzvrXC7xYBnA5CBMwETI8AUz2SL9/8r/Wvupg/oVeS3xjgBtigrIVL6glO46eEiSZGIAn9OgT74lRZY5pJbm3D4DwopS1uoRXZHvWFmMLAYriBKf+CANvXr2yQ3krSTIZ3iLpoDYWKrQpCdbLzJiBiY4Q+d; 25:xD3YTI2agqPqYbTay4b+vaSdIgEOyzDLdPop2u6v6Mqj1VK8zgB0e6s6A/uUfwygpK9pPoiLtcI08+L1T8TGbUGit5whAiKDaD876IoW3ZELofiLCYGWix1DDvVgyf8Z+rFXNgDsLUgKytwA5n+J+sSh2+DTY77mZeMbowwPsZ/O1LCBz1CRjuSpDniS/lq3dZaVI/igSqp5y5cXQsaNdnXe/899cfM1NtnvHO1/4/+0yFs8kFaWsbbr/dFdaVdFq6Dh3RFUfwoiEUMnh7TUrC1p19csPvzph1pdjEkSvFkssy1z3ZcQVlKEXjvt+oxOpS0HQBMiAcZ6ZzR9cIegtA==; 31:qqWkiQC9YtFz1MC5N/DdE6SLN7b/3WG3thdSB/zuU4ZIxSfyBdjvO2vVsLeqbFE3x/eV1JKHR88nG+YqS7gfouc3iMVh3whjYeFu++L7ubfq/YS5pD0XiKmGH+i8fl0l5bjaD3uvVwhf7kRftO6TlhAHc7dl7LQp5SG+vV1FnHRkyJ2No+in3p1rDHaXVKNJy5cAPfhzPv3Ym3nocANskaoEtuWy34rsjCUfw+JIlZQ= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:YTSMZVyVtWxle1sk9z7ZMTM/KaUjTmZVHkVppxDRPD+Jgb7NkZhXvfUzCoUpEDQxm31s3+jKLmKfjHV8MIvL9EV+VAHLs7e2rDFY8kUiOLhae6vis9J2uRmxh1ifC4WK/MgapbMHNMjuTIsEnY682/VR9yPxLYZfkvvBzAkL3YT85cMMAT6pqpwJpaKflWnmzn4KLn1Y3l5LYtpA2T+khcb0jbYcGJYxYQF3dtaUpUsB5EJRfJ9Xvp/lLO29xhgESEOB2TiedeYMZGokhQKwGD6nHMIRnWS2prEqVKk5yKlEBV8SgjjxVcYPPIZvBjEokrBa5it6N+I0Gh26GsKFfoOPNihkkyM7KpiO9TtJ76GYezuE9bvU09MjD5GDzwQTuCEhR0rjL1D3jgCtCr7Mg9JPFYm9Yc2/XOebprUAgIw/tNmgegmCRpr/tDbwOY1LlrT7Uo/1iEnm6+dgP6SFV4HG76zgahwnTsdvvf+cFAu6A/9r4n0Kp+1kdoN/jm3j; 4:J6hMAj6Sra4Z96DrOSVqFuym/dsis1JYsfiPV+RigsvnUoyZGXPduLatiOalTsTryK6/uVu6DmO7noGJpaqNyypuvVu5rVAQNobC3vBU3xA2VOgxGmPhx0hiUuy7vVdiLJadexz8fZaaXYvFoc2fyuULs3SS/T38nqUNME5hNfyIBt0V0e/tmy9+hgzOYzimTY2m1PvYAkLsirmNhfOp7T19GfAzfNbSjocL5+0aiZfrQzibSsGZQXrV6mJKB76m4cmb1XvNCkUu3N0QzGEJEHlUboJqgS4iFJmQOEVEHTpaxMQvn1wYWMc8N8o34x4RLopQXKcOTwpY2p75ZB8bzQ== 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)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:SmsQ/eOl7JKMxQQzxGJ/kTJYTQaw0rLBnqWbBn4am?= =?us-ascii?Q?8j70jrpa8i6WloczceEueKnWKqju74I8+32gc/3ZZa7Z1uExySh3ex+TwTLx?= =?us-ascii?Q?7YeQuQrH8wy82aq2Xoq6Mf4k7sWSqgoxoXarx0BKle1W0LIKklhSNgrwcEl4?= =?us-ascii?Q?JurZu1Er2JhcLF6DQ6Cu8rG/2Q/96nuty90EaBxjJPlgOYbkVymjhCDcdMAD?= =?us-ascii?Q?bPLnxzshKMEAJCPZugT2boUms1X162uTvpROZzYNjTlD+LImsKgZmTNZU8Wz?= =?us-ascii?Q?RmLVmwcF9dvpKkrLeCVc739TH7lJtLUW/QyR8uNYQAOKv/HkaLyBrVQlAADc?= =?us-ascii?Q?puGyRVwSUymld1woGFOk+u1KS2vJVh/G9k+vy4eWOfewWpusvw1GG8hLvrAh?= =?us-ascii?Q?+CaAucZd8hZF9pRPqW6rnGB1O1gMt5UHI6+NZ1c55lANCk1kON9LDB+GIEOW?= =?us-ascii?Q?sm+lvFP1RdhAdr1ujp8lsV1bqe4zePtXsWGLD1HU7v11nE2rV13ra5Gb7i7D?= =?us-ascii?Q?PY1vT1Y92UuNPAnDKWhJ/NyI9APQDEiHxHdNTO0lIWuCWathdQDJ7+CnmAb6?= =?us-ascii?Q?pLKpBDWhAk6bA7tK6xuZjc5cScuqjuuaUKD2k1Q8w6lyAh9mn2l4LInS4u/H?= =?us-ascii?Q?xd/z1we6dA3iLMSD5HRao4t1iNaPe5vOK6KU5I04BucT3EleEpcxhotFB/VH?= =?us-ascii?Q?H74E6YjtKu/RghjumwWiCZbtsti+vul8J0595PxJLcAcOpj4ecmKVjv9KNQZ?= =?us-ascii?Q?atruRNGr18Dw5oVJSgXrc0Y8NxeJv6T9bVYeD3cptoLOeOST42U7Njo8aVhx?= =?us-ascii?Q?TOI5g+TKJvNYDGt4NQ93ayq+wUVL7JmUDIoR2G8FF8lWUAaT8hhtWWjPVZi3?= =?us-ascii?Q?0G9wZOs7CJMRJp3bJ0+fB22A2bQ5uw1T68ngZkB5Q7amL8pYD6iEF4ytW4O1?= =?us-ascii?Q?EUBgBDCzjV/9yQSw9QBk3yZFTAQPTKriZr1BXhfSelI4i3fxQzczZyWzlzDe?= =?us-ascii?Q?HxBePLA7FzjugQXuTIZcWyfCHWItVe5VQVkHjQsEfQ8uO8NaH/AW5+l94JTn?= =?us-ascii?Q?1F9GagVJybm2E09I+j7tHJiNzrJFAJUQIpn9y+Vo1T50wWqzV1N8uNT1+Zko?= =?us-ascii?Q?pZjsr2c1kbn7IMbydlXt7H2H0TnVF57E/cUSMeboFarLCAs8JEhneTLoOc3H?= =?us-ascii?Q?dXsEbb6sFooX63Zz8XJ5G/YYwn9ldwMmahZfALugWbbrzDHI3gGKdTN+1IlR?= =?us-ascii?Q?RhhQl2m7aRFF/ZHD5lJDovc7sYFcmum7TXVxLRd?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:sX8v31oe6ZMrVbLYMOIJPx0nSsnmHE2c9ZpHsC9Is8I8JNBFhdxJA8UDtP+PrT2sedVfmO5phoseN+wDDKHrZKLUOAJH+7xVsCv0w2uus67wmWhYWUOtIsv/HRxwrCLzLlGD3LF9KgaVzDSVo9Ovyfuu0HS/Z9zRX5w49DvF/YfdXLX4a6lecjOufNlhCAOlJaEhf/8yKwCs88oGOhylY/C9ri/INn5RR021OmCAfilsPzZOm1R9hyfoQ0gD3c/b737oCBK7b4S1kb3p5/lAhST7XhRkpPyoxMOQiyRAE8YKlbZFSbPxrO2H2NbtOocUVBn1YO0GlN7a4dVYk1ZoMnBtLd3leFeFt8cEiLieswg=; 5:AzJdnXdtdoEKT++o5ZiMCViVHf1iijpnS08jf96TRE2Mx/sfL4hF0IQS7WUAlVzjy/lsrAokOi0IikmFKCZm5rtuOCoC9/ymdEwSWa7r0p6ut7QNR9bxQGDWi6zPhiTiQ+3XmbF7ejrV4tNmQQt7kpKa3sLVgrN5iDSe5dOqjzw=; 24:1btPDKAywueM0l6hFb+yxcaw9omPUhGuN5nzKV2QZ4wDo03SI85HgWOZAuCefRJ9RMgw7rCw+54ic5+wbBdbaOU9aEpE44gSdgULPNrFtZw=; 7:n25cYS3eBJLdQjkYQJi8S+yPgShROayS6/ObsYOzlQqLz4aoxi1kLktKsZLPBJ52A2WaWs8sqmuCFz1mPN+njV1QqPmaP9z5BJnN/n2ytVzc2oZY7eXR/s2IDAVNvjkv/VUbxKAaFiTDJcqE6Qe7yTGK1gd3Ne0F9U1enJwO+ljdF1T8S2qDSLnOXzf3vCM2kD5/Ehl1jb63D18b1MJH02T4QE8s42lBDs3k+2E+gFcqlI85eUAFA4WwzHMr02H0 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:2/RkeHcAhgC/aFeG1yX+r3ymPQygODDN5WtJkTnLvUrl1H38YIOoREuNxU3EC2QKfFA+BtTkJWtg/aHQxukBnG296ekEVQUEE9LaFYxFhimdKvvPBW6BF00TvBYGdr9B7gCcDMMtjI2oseQ8CkUXQRbMsBg+36NH7vwo3Wk1deRP3u7/ANZd1M5Qz1v5VI5CjEXzUEx8XMQLxlOiuKygogi65kGJGLEQZkkyg0zhbDgvies0X4hSqe0WGxzroF5/ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:08.0259 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 380b71d4-ecb0-4314-0ca0-08d5673f9f20 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.59 Subject: [Qemu-devel] [PATCH v6 14/23] sev: add command to create launch memory encryption context 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The KVM_SEV_LAUNCH_START command creates a new VM encryption key (VEK). The encryption key created with the command will be used for encrypting the bootstrap images (such as guest bios). Cc: Paolo Bonzini Cc: kvm@vger.kernel.org Signed-off-by: Brijesh Singh --- accel/kvm/sev.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++= ++++ accel/kvm/trace-events | 2 ++ include/sysemu/sev.h | 10 ++++++ 3 files changed, 109 insertions(+) diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c index 5ae37caeb361..eea07ac9642f 100644 --- a/accel/kvm/sev.c +++ b/accel/kvm/sev.c @@ -27,6 +27,17 @@ static int sev_fd; =20 #define SEV_FW_MAX_ERROR 0x17 =20 +static SevGuestState current_sev_guest_state =3D SEV_STATE_UNINIT; + +static char sev_state_str[SEV_STATE_MAX][10] =3D { + "uninit", + "lupdate", + "secret", + "running", + "supdate", + "rupdate", +}; + static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] =3D { "", "Platform state is invalid", @@ -85,6 +96,16 @@ fw_error_to_str(int code) } =20 static void +sev_set_guest_state(SevGuestState new_state) +{ + assert(new_state < SEV_STATE_MAX); + + trace_kvm_sev_change_state(sev_state_str[current_sev_guest_state], + sev_state_str[new_state]); + current_sev_guest_state =3D new_state; +} + +static void sev_ram_block_added(RAMBlockNotifier *n, void *host, size_t size) { int r; @@ -291,6 +312,76 @@ lookup_sev_guest_info(const char *id) return info; } =20 +static int +sev_read_file_base64(const char *filename, guchar **data, gsize *len) +{ + gsize sz; + gchar *base64; + GError *error =3D NULL; + + if (!g_file_get_contents(filename, &base64, &sz, &error)) { + error_report("failed to read '%s' (%s)", filename, error->message); + return -1; + } + + *data =3D g_base64_decode(base64, len); + return 0; +} + +static int +sev_launch_start(SEVState *s) +{ + gsize sz; + int ret =3D 1; + int fw_error; + QSevGuestInfo *sev =3D s->sev_info; + struct kvm_sev_launch_start *start; + guchar *session =3D NULL, *dh_cert =3D NULL; + + start =3D g_malloc0(sizeof(*start)); + if (!start) { + return 1; + } + + start->handle =3D object_property_get_int(OBJECT(sev), "handle", + &error_abort); + start->policy =3D object_property_get_int(OBJECT(sev), "policy", + &error_abort); + if (sev->session_file) { + if (sev_read_file_base64(sev->session_file, &session, &sz) < 0) { + return 1; + } + start->session_uaddr =3D (unsigned long)session; + start->session_len =3D sz; + } + + if (sev->dh_cert_file) { + if (sev_read_file_base64(sev->dh_cert_file, &dh_cert, &sz) < 0) { + return 1; + } + start->dh_uaddr =3D (unsigned long)dh_cert; + start->dh_len =3D sz; + } + + trace_kvm_sev_launch_start(start->policy, session, dh_cert); + ret =3D sev_ioctl(KVM_SEV_LAUNCH_START, start, &fw_error); + if (ret < 0) { + error_report("%s: LAUNCH_START ret=3D%d fw_error=3D%d '%s'", + __func__, ret, fw_error, fw_error_to_str(fw_error)); + return 1; + } + + object_property_set_int(OBJECT(sev), start->handle, "handle", + &error_abort); + sev_set_guest_state(SEV_STATE_LUPDATE); + + g_free(start); + g_free(session); + g_free(dh_cert); + + return 0; +} + void * sev_guest_init(const char *id) { @@ -327,6 +418,12 @@ sev_guest_init(const char *id) goto err; } =20 + ret =3D sev_launch_start(s); + if (ret) { + error_report("%s: failed to create encryption context", __func__); + goto err; + } + ram_block_notifier_add(&sev_ram_notifier); =20 return s; diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events index 364c84bd7a73..a4ea1c382ec2 100644 --- a/accel/kvm/trace-events +++ b/accel/kvm/trace-events @@ -17,3 +17,5 @@ kvm_irqchip_release_virq(int virq) "virq %d" kvm_sev_init(void) "" kvm_memcrypt_register_region(void *addr, size_t len) "addr %p len 0x%lu" kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu" +kvm_sev_change_state(char *old, char *new) "%s -> %s" +kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x se= ssion %p pdh %p" diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h index 6aec25bc05e5..392b21fafbd3 100644 --- a/include/sysemu/sev.h +++ b/include/sysemu/sev.h @@ -51,6 +51,16 @@ struct QSevGuestInfoClass { ObjectClass parent_class; }; =20 +typedef enum { + SEV_STATE_UNINIT =3D 0, + SEV_STATE_LUPDATE, + SEV_STATE_SECRET, + SEV_STATE_RUNNING, + SEV_STATE_SUPDATE, + SEV_STATE_RUPDATE, + SEV_STATE_MAX +} SevGuestState; + struct SEVState { QSevGuestInfo *sev_info; }; --=20 2.9.5 From nobody Fri May 3 09:48:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517249419585757.919264647812; Mon, 29 Jan 2018 10:10:19 -0800 (PST) Received: from localhost ([::1]:54811 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDso-0003bR-N4 for importer@patchew.org; Mon, 29 Jan 2018 13:10:18 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49152) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRh-0005ko-6E for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRd-0003bC-1r for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:17 -0500 Received: from mail-dm3nam03on0073.outbound.protection.outlook.com ([104.47.41.73]:1695 helo=NAM03-DM3-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 1egDRc-0003ae-R3 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:12 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:09 +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=3W1yjLfdIK9z8/pWa/vYNy8YOCHPmJBmgOjtI0BboeE=; b=OBBnbXCyQ4WlGCOk87fd9kFQYAzgKIBycfy1lAfhZh5ZXAMu2PsrLUQvpOylKr7u77Uxdv5aWNP/mMCnSPT0oZjzc/2TEID7YDfY6xhAWAx/zGmapRN2l/hMMb03QOaWSkLbVG63WXghccQp4gyepjFEc9T//I6k33nsm55Dnio= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:24 -0600 Message-Id: <20180129174132.108925-16-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: b054f1fb-9e94-480f-0132-08d5673fa018 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:fj2snc3F0zexzStY0VefU2Iga/g0kQqghmjQSwLNkhvxxBjK/jACVfZ/+OChwsN0nWKi4OpQFFqHCdc+F6CgXJQkQ5JJqpjDx4X1CFYISdOSmE+TV5k4ohXitxD4b5gHG/FqoqeBSO0yvKi26Mo0UketQ1tBK40QEwpj4TOR8LnEAVt8rtoceYxC6DTCbJKzVyO7qoUhN7IZA3vWRN95Ck4da6FBRkqzwxjkdn/dOT3B1Bn7IzyIPN83o9ZWdssT; 25:MuKS9DQj+/+ZlNurUZwqUuYprfKQzBRccU2B3VwdbfnLeQxtd898N8fGi7THv27g6uQynBDyYXww4LvuXI2hK8aECs0VmbN1Gk9g6lzhIZjzew3pQ9MXUWNMbr27zMVq5a8TaqppZErfiE1Ilirh0YS1O+oZAimuFqhsgZLJP66Hg6L0ECcHj09AQNJLpgWaMeL3e4f1Bh02j3Rk0t1BBxEaoFGWlp7+Hxq6uRVA/iCOZ9IKAXgtduCj4feDDI0InY6ScJ88uiYb23AfgCGCJ1iX8fjWlYUNiWRR8WEEsfFu7d3sta1q1DxKSPHjBwV5aVjNELPWgIbcLPx4Hq1eNw==; 31:lQhqRPFQ2V9dKLOSJQF+NbE1YKdHrKdJoQd4n0GzZqWMFdpNyWl9JOyjeELVJMi8uTdtAiRraSZHUaBiBS6cOF2Awa33vjqpiapqMZKG3xXn885ygH/qG0AeXe1ie1W7wKhRBoF2xtMsrau8EGRLmEm/yfd4exXPi++YqkTTrCeeWK6TxjBsZWWWFBtIydFip/ca3U1p6EqQi+1rL6Db+IBOv1Lyv6ndjQOBeAJlXW8= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:SZO28AsGiiUrr0VP/3Dm152JZccq4WmKAsjMAxyiuAZaTNkTmR7Ppf5Q0OBxIWru3iPbIVfWYuuL4mGZJ6lFjPMFWifWrD9wKFW38NXLNQhtueUinN45Qp5Vkjl6JAQVzjBGH1k00SyGh74s1JIYaxsVwf1v+fn7QrJEESd9H+vbaKAiE+d4FJcOPuzxK4ZRCNPu2udrc2/NjwSNeZyWbBBAJ/majaiTAWYxUjGZd87faHoVZjdDTA9T5BvVez4GUveugVEGHBY8hYiiokekX1s71+V9GVwdnyTGgwRNeYAv5SI6eZTbYFiCL0W/OpMBzKtlnyg6NlctwWF6iHDdL9x2sOKDPMvwEoRoo6GWiQqPDgDl+dV5gBi4LJrIsp84mCkzPx3bU9royfyW2xiIQplzmHwoNDlrWLUxw17r/Fteia7mPIzayQ4198IEUUsaKL0NZv7EHgBGJlvcTl+PmTq7+LyhNbFbkbKLgkhrzgqOVMBDnfzGiUivcNNLNEnR; 4:F8iolj4ppyWd3gOwGH50ciIlWFmOGyHgN1tWkMOLcHskXDConYHMzJu3cG6nZYcwpyLliQ+DgRpjeWYRAJW/GwaWV1ew6ELJXbOlfH9GTFQvRupU3fTjHItveYZXFXgyET0qWGLeMxDS2qfoZhpwNw+/BbMXZso/qPYeCwGp3+mz02C1Fe4vZB/UwFTCqIi7daJJMPnpfnxbtMJ/HSpLOlHC/HGN+4eFAqfIfw4EMqOiWvhkNfhbKQEmrFjlUOd0lCnDuEV1YecHJL0Bsm+8/dVe0qFM992Dfai1Vi8U0PQfxtXbaGL5y7wTNP2WKEM4 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(575784001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:ki6SoSi0PLl+s1hgjG/dW1CuZmV+KNXeZHfXC9XpD?= =?us-ascii?Q?zAPL8l7wc1pkGQFYDfDSCdE8oqngJ7tpSikM/CLVoyqVhtwVo6huus67PLEw?= =?us-ascii?Q?NpIVj9Ak/vXKrKn91Unam8yfP/oqREQYYEkHWU0MoHyMQIWQZmQ077p5P5UV?= =?us-ascii?Q?z4jxX9qIJ6zwg241nH/vap7bqdxxpMhSAarw3rRy1q4Qw0cPq1+A7qgv42Wn?= =?us-ascii?Q?Xg1AM5miZ0ztA0XWPe0gWyVwlHJd71FJhOW9FOB6m2/rOKR6JdNO0URrHKYk?= =?us-ascii?Q?E24HvuTd1mehALshSyp39uTqyFmvk1UAnVdX98wL71M+JaROTeOpUCty2h12?= =?us-ascii?Q?qxZ3Jrkv8uXwznUOp/UddDZefhrJoZiL8rqtGKTARlYxSww9BjfV9RTp0fQe?= =?us-ascii?Q?fw81Md8iWi3I77WHHCy80UZOb4CL80T5FBcGFjTJmTsSkNYGWFyBhN0qDiD9?= =?us-ascii?Q?CNxvSIG9slZscgrYXnjUm3g6IUbQrf6Sht4Oj7eST+e3fkDHQMYlmyEb9JW7?= =?us-ascii?Q?dP3CAImtROJnsRuzEZzaVlL1bIMLv1/rotSYsw/OP8B4m9/T1Lc2eCgmzEaO?= =?us-ascii?Q?JdrOnS3laTIuBBdfS/d0BjFM0SLcZzTZvq+5vRJo1HgR8+9WW8R0EUd3sNbG?= =?us-ascii?Q?r9hxEaAQQ1rDxC44E9CZk+0RtWaO9yiUZdZLmZ1BQAWclP5SZ8PQCyCeUpcd?= =?us-ascii?Q?Nq8Y0xrCRFzJwqNS0GQPKb+T3VhAEJ402xe0+vCZQdGFaZ8Nq2NdXt88kuPm?= =?us-ascii?Q?iyOf7lB9if9roX6k/IdwiGUQJdollv1wWgyxcpqjA+PzZW9h2xbuExvzkVTi?= =?us-ascii?Q?BlP/yx80mD008+ZPQ5ipcWblohKuCx0A1shZ8g+bPeNG7mNcYZCKKB1wIO3J?= =?us-ascii?Q?XwWV4EGe5zXT/r28Sack4BaJ64nf0TiigV58gPdMA/YdQWKQvLC94yYmyDiB?= =?us-ascii?Q?Qzg8CR6LwiGsHVPsfn/5MlZKXmiY7b3TB1C5pFxga0Y6vdwjg8psYQ3+gVAl?= =?us-ascii?Q?jTHwDgGsZvRxnOFC15GRrkqrDurcLle2K03CFbAH2yHKoIzFRguQ0PpupJ7N?= =?us-ascii?Q?JXNOe3w2kXP4oAhNXc9fiZ10fKBA8DDUWYlx5tGePMc6PYM6oKREYCbiKL29?= =?us-ascii?Q?/sIW7fTXFKhSxtuWphy7oIJZL9K0itR/czf92qGNi+g1SBdZIzbwm0JYHJzl?= =?us-ascii?Q?ef/Y394ZEryLnH9jLFqNkNkPbezlnLvAYgNjbHCOmS1rC40eOFvPPERczvsg?= =?us-ascii?Q?AAEleNnH5xUebconeEEZ4JPyPogj53Wf7+a/6lCHEwGfIMhIo6n5Vn6YxR3n?= =?us-ascii?Q?iUSMiSpWwgqZg9//wrZs/Y=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:VC5Y1xOu5jFHTzDICN0ySxoDdTUmAnn/9+cpFYpS30bhkyaOqBmkryYh/ZgvJb0bq0a0gMS1widRLrPrURBHniD+MUDQ6k7fxnMN8XDOEaOGckMEArAXWZ/t7e1STzjeWYwgeGb/NRlA59i3IBGoyd5N9fy3uo+pNIu5H5JGAALgZAR7CJww8ATgj2qn/XbeHI6U65US191tk/aMyY1RnHkBZ66ndqNkCK4ayr7menm8drwxkYDnyER+EjbLVF1y+FuMIDwX3u/UqFE7DrcbDkPYqNwQbXpeRGBHP1zHHnZuxx+Vw+YRzCQpHLW39NAcLKnuE9dIC5fwnlTg5RqOs+e9hResFiZTsdIlFVY9qf8=; 5:cTJ2f4bjBQi9vorKhHHRDNpku6OCsciePuuwlXtC/slIqZ7xDhrHaKTNC1fpg/ZV0yMEf/jPKUtt/dxJEUwhEPVOzsTz8Vd2Hi1uGhJJpw3odmjlEjSC83Xr/DChRfo5DLzCG06YI3DydMwwz/ZDufZsf/aMG5DbkpiIVTbY6Sk=; 24:4VsjonJC8bI6LjkFGfl0S/Mq28UW5KpY+ImRtHzZFaQrJNPMy9gBmDs1HZk9xJ51x23P/+qqgzJRUIOOpqSolBbVoWV6UjaJgWMntXUFuxM=; 7:SREhfMj5TL33H0Cm+gZ7H0Ec0c6rZLk2anpcYF8YhGX+duHmclRm6v78bao43s253/Jr0gqtBAgkulItGzfAMyNH1vGM4F1HbtYeK4KsT0pIOKMI6r7cSlGWvGWFLxIQOoEcKbDRUyquttWHaWV6HSs29CRAy5miG8ExnjmPCUD+AT1g2KC9pZ22YJcl03SFBom5Rze4cD3euFNAWF3ZbeoaMuGBUAP/vbCRAbbiQaXfnDLe4xjb2voet9FUttYB SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:AWAcqcDqoPiaRhfZjTg3fie6HO7dZazDWbtyYA0r6Ahgx+f55BW7vGpnRp33FxLVDFhNvlIREHZ+UdiLq9LX/S1tN3arVDvnQTO+bqtEPfHAvvCeTcvQ0YvSk6IXZkpRSlmdeyop3bp9HkFDCq0ZwfdeAxc7tapX9rPt4DyQHcNlit0/RdHgh/dNDg3wWEdzcIcTE8g2nvFpoIwn5v5OH6VUYAv0A3hz4pA9eUcVLPhXprWF7idPbhDo009OjiOz X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:09.6352 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b054f1fb-9e94-480f-0132-08d5673fa018 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.73 Subject: [Qemu-devel] [PATCH v6 15/23] sev: add command to encrypt guest memory region 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The KVM_SEV_LAUNCH_UPDATE_DATA command is used to encrypt a guest memory region using the VM Encryption Key created using LAUNCH_START. Signed-off-by: Brijesh Singh --- accel/kvm/kvm-all.c | 2 ++ accel/kvm/sev.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++= +++ accel/kvm/trace-events | 1 + include/sysemu/sev.h | 1 + 4 files changed, 53 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 54a0fd6097fb..d35eebb97901 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1675,6 +1675,8 @@ static int kvm_init(MachineState *ms) if (!kvm_state->memcrypt_handle) { goto err; } + + kvm_state->memcrypt_encrypt_data =3D sev_encrypt_data; } =20 ret =3D kvm_arch_init(ms, s); diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c index eea07ac9642f..1f757df725df 100644 --- a/accel/kvm/sev.c +++ b/accel/kvm/sev.c @@ -95,6 +95,12 @@ fw_error_to_str(int code) return sev_fw_errlist[code]; } =20 +static bool +sev_check_state(SevGuestState state) +{ + return current_sev_guest_state =3D=3D state ? true : false; +} + static void sev_set_guest_state(SevGuestState new_state) { @@ -382,6 +388,36 @@ sev_launch_start(SEVState *s) return 0; } =20 +static int +sev_launch_update_data(uint8_t *addr, uint64_t len) +{ + int ret, fw_error; + struct kvm_sev_launch_update_data *update; + + if (addr =3D=3D NULL || len <=3D 0) { + return 1; + } + + update =3D g_malloc0(sizeof(*update)); + if (!update) { + return 1; + } + + update->uaddr =3D (__u64)addr; + update->len =3D len; + trace_kvm_sev_launch_update_data(addr, len); + ret =3D sev_ioctl(KVM_SEV_LAUNCH_UPDATE_DATA, update, &fw_error); + if (ret) { + error_report("%s: LAUNCH_UPDATE ret=3D%d fw_error=3D%d '%s'", + __func__, ret, fw_error, fw_error_to_str(fw_error)); + goto err; + } + +err: + g_free(update); + return ret; +} + void * sev_guest_init(const char *id) { @@ -432,6 +468,19 @@ err: return NULL; } =20 +int +sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len) +{ + assert (handle); + + /* if SEV is in update state then encrypt the data else do nothing */ + if (sev_check_state(SEV_STATE_LUPDATE)) { + return sev_launch_update_data(ptr, len); + } + + return 0; +} + static void sev_register_types(void) { diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events index a4ea1c382ec2..c55546f36a25 100644 --- a/accel/kvm/trace-events +++ b/accel/kvm/trace-events @@ -19,3 +19,4 @@ kvm_memcrypt_register_region(void *addr, size_t len) "add= r %p len 0x%lu" kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu" kvm_sev_change_state(char *old, char *new) "%s -> %s" kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x se= ssion %p pdh %p" +kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRI= u64 diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h index 392b21fafbd3..839800efdbbf 100644 --- a/include/sysemu/sev.h +++ b/include/sysemu/sev.h @@ -68,6 +68,7 @@ struct SEVState { typedef struct SEVState SEVState; =20 void *sev_guest_init(const char *id); +int sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len); =20 #endif =20 --=20 2.9.5 From nobody Fri May 3 09:48:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248248079565.3837840805354; Mon, 29 Jan 2018 09:50:48 -0800 (PST) Received: from localhost ([::1]:53693 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDZv-00048U-85 for importer@patchew.org; Mon, 29 Jan 2018 12:50:47 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49173) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRj-0005np-Ol for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRf-0003d0-QY for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:19 -0500 Received: from mail-dm3nam03on0064.outbound.protection.outlook.com ([104.47.41.64]:11072 helo=NAM03-DM3-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 1egDRf-0003bl-Is for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:15 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:11 +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=wfcGUbLLIoam8HMkyWvshq5YncZmKREAD+x3M7gdYac=; b=F3lqbVB0dkz1H0aeYTpC4g8OFdVAzbmDGS1cl6P2uWYV5CR90Aoi6g5ec9/T6e+7mtGXp2uQIJTDE0zrBQHqGvBCq7sg50DcgkefHGEM+QZII+8YLC24mh9TU1BDpyagAa3vVDMehp3F0+eQ0ticOvQft5BzLDUywx9jY+ZOI8U= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:25 -0600 Message-Id: <20180129174132.108925-17-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 5b8334fa-f015-4c5a-ba6c-08d5673fa114 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:MuwKGkQubGUElXl1Vgfs1PPBzWDiRnFsn4djWMjOyqkExmmaSRU3hwt2/moOtfXOIW/UDdy24kOZHiPzBWpE1yX2jO9v5iLWyThpi5UFlR+sP4+xykPexy+HfQTWn8kQb0zW9dL3so/nscw/Cs2r+tShXMXYhL3njQZjOYUu42LglmQsan0dMm4GrDtSBxKiUAfLMZ1bx7LM8reDlwVZL6CMyjc9OKvyXBrXpsnsOXOCYq0sm5Er2CpbcgfngzI4; 25:TDbKIISULt/kybZ+dls3MYMg0cPpqzAF8rj5z2fv4bx8VSoFhhdAJ3a7Ls+4GoLwMHbPd8X3oPN8gvqQg6n88kKd1G3V3auIy0RxSrw6FHMDWBW5MsJYZpdHbICCvZscRocfO548biDQPRhTmxcc5esZhKYhb4MnxQoCmL4EJg/ha1ws5PZx6MwRTIlr4O17GPV51yaslNk4tO2GUUFEIIFoRCkpEpnbkfclxSlUGN1zYV1mVd4nfVwj/Iel7hf3DVixau94TMgU5afeVL345rUvUdqgp97mVwTwqYdnHIrQAbFQJAh9vTmD1YR/oD9dlkXzFcv+GwxehEb/hycsPw==; 31:KfBIhZKU5aws1gUYqZM4jJ1qZUMPTAm9GyMCyQiHw8U95257x3JYCaOWL3JW+YC6AsuTXeTe38Fg1EhBf8v2Dxu04me/vyHXAqLSD6SFUMYRLi5s8hNIQXPylA6Pnyp/6/0rRne6gDibX5zzO98wzMe5PDgku/ufg8gRMgwxFWrmLgCh2OapB6BaGm3D3f72oyLTOcHsASdjMYZ4waARo/Xv8y2cagXwIXGAU3dUlEQ= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:IowtWcjAY4viG5AVlQS4WKFEahA8N0YvdNGw6ZSUad03i9mk5zp6JIJdB9PKQO1aUy5U5EhzGF0Dv7871nKJoShBWh8tbdcWVJE2PbffVhQWHp8KC9VKbiu0mqhzN96pmejC39WM6udNq6nIfxgUgD79+9nxR+b2ml9ahPcj9bK7EUFcweAy0liEvwvywtT1CO/ZtBlo/lJNbT8W/RYBNIfnGzYeAgrvNaTLQtXRk12AsP5YQjjs1vJf0GPueMCFHhd2alPqNPmqA2dCylbCnf3CCWQSP4Xqvsv9nk9OTNLIMcX2q7pyIFcq6ClYPG9X27r9l7EFIIEVvz+CcglFwR4byqt8k5r+M0wHZeenkxL0R62RqvLL465379Eed9nHqfqHL3g+BdO54JrB2H2VFdmMCobJHDOo5SaA0GQDlW+D/YavvzLDruOocQBHOiQbomniMdnKVksr90LUMJlF2y4IrQojU8Pxr44ang8/xjgFMWtPw+WJSLYSLvsumW7w; 4:9hW1UzWt8W8X019GmWy4CBBf8voWHHCD0vNrUrcAA0hY2dtRkcM7cRjFghryEKbUkEOm6vlBUqDE2HEsbmj+DRPcpzpEQ6pvRqdImGliiLQGZPGAr5g4QrGlsc1ujgDoQ2ob8swhUu39R/FTruzbeR+JQq1xbKRnA4wbi8LamOl7Pt+/nihsBBp/FeRt/6N+a4/cCO2g3IcCBR9Z9w9c3NnO28vXkABZQl649wOUj8eZOscD/bgRhlTOC01u/6yqar9lJ402DQY8Hn6d4n8dD164+obNpuLRV+UIgZCr5O8IoihcdY2CJ7KWY/qvpjG8 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:9a7PUrIpe1dBPOrbNWGWPeYXxI0yQkryyzrIYYb3R?= =?us-ascii?Q?lblh3twprMPbHuXwQwyog7MZ6fHULoqaMJNylDwL/JA7AKuqrzAWH/73wCdW?= =?us-ascii?Q?67WUPA+qKFfQQ4ZyKfblmkbWjkyoKx7vMeapiwmy+br8hqe9Y1zUB85bNx15?= =?us-ascii?Q?ar88wtlArgMjFtmQiWlxVclYTnJ/RQxWH5vGCsBQkNzvYNohJndt0mB4aejn?= =?us-ascii?Q?Nl0qFZZGMWlB7xWrlYImSKKQh+5PLfItD4NrRYNUU1w564yJtRk5+ifoUfiy?= =?us-ascii?Q?4kE/AqKW7IHk/30uAaq3sZXvYoILObej9L0aCYXo705glAEJ+959IlEO85hb?= =?us-ascii?Q?X5DSaohuA9MyHbdeq+tuLqcIZOnPvVQlWvr6/DjQqRXjkatkaBtZOUy2Wq9f?= =?us-ascii?Q?51fPMXQPKFJhv+qrpFmJeQ6UxajZD12xV80YOoGCZnTBAN25fpV+lH1Tzo7g?= =?us-ascii?Q?kYsIf0hTsbqoyN6RJBvA1sYIUfT3GuqjmD5M0Mtba+XUENP3U/z6Xazkjkbj?= =?us-ascii?Q?D9/x+TRLjSaPnBl3YDQLCKy0EluoCsqUwt1uquolBGfjIfn2+zZMbHCZV52r?= =?us-ascii?Q?HDiNV1x/pvHGE45Q2+mLtfs/31meBfaMklg9ymov8EL7xxKeahzJnkVzA7oZ?= =?us-ascii?Q?STHlnLZO27yslGiuSsdJTIEmsaf92twgV/lsVU4z00e+ijg3ncYa0ITRsKZp?= =?us-ascii?Q?RuUdWo2rsgNRcnIEHralEHIbP4qdxGhRr9EB466Z+USSpSiRIf5f9LO0Flwe?= =?us-ascii?Q?cKyH2OhWnoUpjD5ytGLmliv0AobbZZjgsg/S/FJDdrZrt8NRqQ1otYD5Wgce?= =?us-ascii?Q?RM+k5syr47RDDVCrZxLiDx/6kGw3U58UpBgmET5rR9HiGYb3/o7kU/DSQxo9?= =?us-ascii?Q?7zdohlcgM5IbuCugQ4+KflpiwryVSA1gSE1z9JpSNHA9DGxwv1e9cgVUrWyC?= =?us-ascii?Q?1LHFfEpVRy44yAfGmJdPAmiYTKH8uwhOARwAKd45RLW2BKbdjwapU+VXVxSv?= =?us-ascii?Q?ew5W6WBDsCqkvD45ioLebKinuVzUbOxUOGCXEoiECN91scgcDEaSY/P12fcn?= =?us-ascii?Q?z+FnADa429ocOmZmeiYSMA6OkRaEr0rFJQhuzR+QsOrsR8xGZEvOEZ3vehjI?= =?us-ascii?Q?E3WgGyLu/j4gFLDY2wePp/OwNg0iDdTfkFy/VrNOf0dUAJGnwLTtCFgymNM6?= =?us-ascii?Q?ajBjUSDluxLac0gkUWBctFUDK6vu2C8Zl1P7mGFXCjNCD3V2IejBlSY8ptEn?= =?us-ascii?Q?4q7lysx9WR2r9zghdEqNUNGvnnDIsivBCfGfSLvRIpsLJm9cbGA0p1aFthoi?= =?us-ascii?B?dz09?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:fMozNazNcdgI6DBRf7Mmuey5scjWz0XB0+XBlsdSc6IFPeMD7cyCRXGkehOmomzI5ivESE3v8Xs/R6lyBohzydzSrsUXcH7SOh9H//uerHQlcf8ZPallAYfkboRoYPNXv/juvgfAGN3rU2QudcVBYU0V4LO2aISywtur5wEm4zV8sA7Noo93n+xw9p/gpTdN+wvCvwrasrXK6lU8bDcup3yCGyu7ri1iB9BR+jlRvx/OjZbUV4W34lgsbfKBbV3Oe5Vxr+KMIKNjjs2umVCWejckuzAiLaX/bP5J5mMXyVSHPzr2FtaBDh2D+bbJlewgHPo5BfDIm49bWHec2UJBLxW6ksdpochQglAWbXgj3Jk=; 5:M42ktFizQI91qakwFAy0vuyWJi3RziIOKqHhfn9hERhSR/5XT97zfTmCsD6UZq5cb7bZFCnA2pv3TCKYjWHmy2ZXXNLwPVtdCJTK9RJOOiGs4vkBWH0qRUeJCTJ5BsepNlfRRgb7Z1Tf7zeM+K2HPWzkTSydstqxkZgMzTE/o58=; 24:Moz26Elpnno/TQCkITTiyuJEsLyh9J+sBP+wOac+bHFKv2T5QCyRYZspJNBKwii0nZlX1h79CSyYcRxImtuSOnNjKhGgJSlKNuM/gAENFhI=; 7:xXmGR8xVTI8rkTh5o1OemE5Pt4oPHcwTIdJpzlE1RvIJytQJmqBAozoTU8907vvxxam54WPRp9oqvT+uR6OLLQYmJktX23Uk7BNzfd5wLtEMZoo8bQsK4E1R8JNkqB2KReew44lvtWpDNclHRvGBQYIT7GEZaux6bRh2hNy3MSJ/OgK5UWx67CaOL4jJnJRaAqOMK2d6jQRQwZY3bfnlTp4gEm+UMZseGBsXZwhE9nLhJud56IRF9bCHkjD4fStG SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:xw8DTA9UdimAcT1UBEUHxACdI83eKZgMWDIO6v9hQbqlIsmWSIkI4SUj+RBUtpktWJr9TAjH+lWZz2/A2m2sWbhZNtZsP4OKReK9iU4FK/GA7SfZxBNZhWGOB9s0PFOsO+vlF6jcmDRQxfQ6K4b0E2+R8sBKsL96bIGMl5Hetz7l8Gm9HpyLyt/OjAIgYglPQO9IqnmMRaAQLFlMlFLr7d8bhxsviS0GtNQEYphk0bUdb3FDmuH92mUEs7Ptaao0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:11.2290 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5b8334fa-f015-4c5a-ba6c-08d5673fa114 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.64 Subject: [Qemu-devel] [PATCH v6 16/23] target/i386: encrypt bios rom 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" SEV requires that guest bios must be encrypted before booting the guest. Cc: "Michael S. Tsirkin" Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Brijesh Singh --- hw/i386/pc_sysfw.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c index 6b183747fcea..8ddbbf74d330 100644 --- a/hw/i386/pc_sysfw.c +++ b/hw/i386/pc_sysfw.c @@ -112,6 +112,8 @@ static void pc_system_flash_init(MemoryRegion *rom_memo= ry) pflash_t *system_flash; MemoryRegion *flash_mem; char name[64]; + void *flash_ptr; + int ret, flash_size; =20 sector_bits =3D 12; sector_size =3D 1 << sector_bits; @@ -168,6 +170,17 @@ static void pc_system_flash_init(MemoryRegion *rom_mem= ory) if (unit =3D=3D 0) { flash_mem =3D pflash_cfi01_get_memory(system_flash); pc_isa_bios_init(rom_memory, flash_mem, size); + + /* Encrypt the pflash boot ROM */ + if (kvm_memcrypt_enabled()) { + flash_ptr =3D memory_region_get_ram_ptr(flash_mem); + flash_size =3D memory_region_size(flash_mem); + ret =3D kvm_memcrypt_encrypt_data(flash_ptr, flash_size); + if (ret) { + error_report("failed to encrypt pflash rom"); + exit(1); + } + } } } } --=20 2.9.5 From nobody Fri May 3 09:48:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151724831337642.08730563904692; Mon, 29 Jan 2018 09:51:53 -0800 (PST) Received: from localhost ([::1]:53698 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDay-000504-En for importer@patchew.org; Mon, 29 Jan 2018 12:51:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49189) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRk-0005ou-QA for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRg-0003dQ-3C for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:20 -0500 Received: from mail-dm3nam03on0064.outbound.protection.outlook.com ([104.47.41.64]:11072 helo=NAM03-DM3-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 1egDRf-0003bl-U4 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:16 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:12 +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=H2TDa+rvr+rvK4Pvh4HcTZed6CuUzXnbFUmvFXeGEEc=; b=qJcLy60EaDgvoy2IawgmYfzzNQ//KMfWCMzvM7lg7isBxeB5HxZOfm0V6N/qn3XPF0I4mpYWCNwfe5bWPQACEaTIX5SzS6igC0BHyMBZb1Eo/MrHwwDojwhWuLss/b4xW++be3ccO/BAEooPRS4tlTU5WiyLB/5a+w9s3cXxQHU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:26 -0600 Message-Id: <20180129174132.108925-18-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d7568b58-9df8-40f2-1150-08d5673fa20f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:xq9vSoGC31rN07avpnWcdK7707lmvDtkUVc+ZZ3EE7sZGJJ3IAL3sR3vwOZs1QU49X32XbmTSNsPihaza4HuBqclOpvN3ohQsdER9YQf2KVpLLmUHzl+YJpuucmSpHY5anSUvsM3zjiu+WB9apj+kjuKfAnjoVio5TM8suPLq679hxxonz02T5X2Nxs1JjST+L0A0zuvpXfWFZgCLlBQ3CCiL1g9Stx0RNNZHugJK3olluOs/NmMPY2Q9QZXwy9g; 25:zsl/JkUvUoFx5BclgDPCa98zvugLS/n5K4pjRf1cV8QcU77+/fs6QNLa8Xj4GlbIQyd4EvkqsQ3u6MwOLRj7vi07OA9f7PrHtXgbayIGOhtXXpsW2p9tcbob7L2M/P15QYeT8egxvh0dwdw0EPB/vTKXCN4QdOQYRBFh6u6Inw42gT1rz9ocjt+vufx2bYvH/7Dkl86KvcOn08yxPbfT8M5Zy7/ndlEcNoeow1O9NbC5kwl+enbrPSyLMt3rf8FXNru4IrKDmeT8r6cd0wPy09QHxudy1KJciCK0tijQuP+RZI1UIs/LIi1ybXVkC5xsy39a8nfv1l4E9uPYAkRAKg==; 31:TDssQGNcgbLIIF8uvwZdimLszZ/gtucCU4rgXfju1sSPBXd7yl4PZ1gFQimswDjcQ6P62Z/dLGZNeR7GLZymyDoOslHMM19Ar1RBpBTrf7Un3xXaJ8QcwFq25pfmP+qooPuiwRS2k3p/7cn0vMMnB+jRxUmeXvVHJ22MapNsdVuz4c2Iy2kH29SdkHg4p+kcI4EmtQ4cj30B9qUPgm9fh98bfCF6UWuK7wamTT0D8sY= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:b+lINvOpaL3rwWEo5AZTf18hHsfrVW+MBeELdQRFbk5I5Q8kMiEEwtQz0qaNmMG/5k5DR/mcyegLvaADHK2awxXGn5kvRcUV2+fzjK1LYkDz56kDp+4NhDuYMQUQyARdVvocyDi4QPQT580wIkuLL7zEX0u//qBX+3ynV03ZvOL+X477UOfR/374UPjx5QcAVQFJCbJkZNHG5kny0+APzR3xAhK16UvIfFjpXkWx+bv7yf3r7SM35sS5h4uMCJh/gPUnS31bDFN2BivzIgBoq7zsU+ftcW107jlTppVy++ail0L1nuFqbSN2iLIJy/80gRbf/GYIc5TafJojTyoZnxwmoTkxloi2Mje/0Oty6lxbm5+mBVCFBGS3EIN7CO6hFhWG7YBdzG4+NeoOCIcqGfwtC/PhQoEuVsBxPTjXy79SzfvvCZqCAGeS3M8BPDjfnNnJ2gNEWnZqqoY2S0oF3WWN//yE30U3A3ru7r8+pK25KUqZ2bms0uU7uf41hCyh; 4:ZnjxOElG379suAchcoHyiDcewr7m0HGQ/Ur4VddL9Xm8XiSVnvkKp7jdnMl56XlSJ2iaiRgAAslC//ewDFKPqzCEFfXdYxKXc5r7jvv0sviaFpfPDLit9G29SdB3ejNGI+HRKLr6M3uyF8Yt8FwR3iVuIH65wV1WPYumLQJuni2MvToV9DexuBhJ/3N+XpYvDTZAOk7MxslxO4tSqjIShA94+zZIgTPTX9Pr3fivvIjuvCD8/LzdMJblKtUkbGTpgJfk/4m0StV9XxejB36r8AT8ySNxpEaO/9xYkAIDoc68+UUUxvKJBsdeb6V354Ss 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:GhKJ9gpP0MmhiDpHNUGZSWJgopNaMGWSBwl8o9E1T?= =?us-ascii?Q?yRlSp0H2ADEhaq1HHcZf1AqeX8HZC0w1aSKIcMjdDBauXV+W1mSlksWWcj8A?= =?us-ascii?Q?4s7BSvzpSRdxAmHJgdIgT/AAdUdK7uapH5bCl1HZwmKXs1c+h0AivOoi9rG+?= =?us-ascii?Q?Rm/rBrWlYiO35N5AGI7kx2E4FaOht68xRE8DvMWz7Fp4ZOJH5CkNUE+2MGlf?= =?us-ascii?Q?vZC9DOsBywvSBahqZvcsUxhM9KV3JlR461RLr7fhGeKxhyu/JQ8AotlbmRo8?= =?us-ascii?Q?sQMGatz5wc2yrN3MYxLh7X4VkpRQ/pFbXnsYzGejwJkl7JvIXwg2uFIxAKCh?= =?us-ascii?Q?wPv1vEUAWG2JrdsAmnFV5KPTQiIoeLdEHU5zq1TRa7yhdE0k585x7ngSi+Fz?= =?us-ascii?Q?YEikLKdUWx9fFtKK/mProaEZxQ9MBi3eiSfF1l+J2dxrXrHGJll1K+Ya1pG8?= =?us-ascii?Q?E1LJsxbaiYw4QuEOX5Stqc/OP8RmooeiBBB8F1XRNxntRFtRB9BlTtWsJqxx?= =?us-ascii?Q?iXEqMD3K4JSFGhr11+TZUyucKJqBnO5h7xJd97tOMlB1r6bXkwlinBXFN7Hs?= =?us-ascii?Q?VmlcZwCfTWCJFOXSEq6unxxx9rX+k3ivfKgtSE6VZI2B1YmiaSKD/5aH0Ux/?= =?us-ascii?Q?qcrn3UWkgtQ6oEC/wm1oO2slXolqqFsjgEYn1fvkDVNa8iGTk2aiSCCTjFdM?= =?us-ascii?Q?gQpTCQfKv06ARZrETJF1AXCJTtQjC/S39zNhVWvVydxSRUd6/JTTXRX5Mq+W?= =?us-ascii?Q?i1m+cwAYejjqfsB5rMc2w7ji07ImR4IwdEX9aVdcu8/13nNfrl2Nqb3CqAZm?= =?us-ascii?Q?axYF5i13h3I2tkAxTPZRuF3z9vT7KhNpgMucrdXJgyafiAsAWuCcUKkXiSkz?= =?us-ascii?Q?X7ZjpetlEY/VACdEA8cWU3NsuPWCO2yqagp+U1ucQgnCzpYLATc2J/mwR4Fz?= =?us-ascii?Q?cTFY8QdxTQoajev7AZ9d7FTYNZSSUCfga4J0uQTNgyX/AFPAutM3f0Zd//x4?= =?us-ascii?Q?EcHt18CDae32zXHVOYomdRvPCpvbDGqQDYzQ2SOy6dt4xnE/DuraHOX1OdQa?= =?us-ascii?Q?CrqjE84GwfLTufymi3KCKvdYa2S6OCExusSgF5iYzFUAma7KbkfzD/USmsRH?= =?us-ascii?Q?pkx8s7pPwBTmx5GYb/RBWc5CqAkdSoI/fbco54ubFQGK9CVLFrvbcOLFvPVo?= =?us-ascii?Q?dFDGxqVi8QxwkHIOCTh032KJrLMHbUJsMpQo1kR+wIMLWKSwAtcn3Nm6feBu?= =?us-ascii?Q?T/UlUGubsjd3XubqS6WLUEhe15wsuRi68ktnfVy+eNx9qba2laT0qU/ls7zC?= =?us-ascii?B?UT09?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:v//L3Y/pc6sv+/jmP57lgaHsHRgdg+d61G4eAGMqqwpqPsssKLULkdnMMOz9PZbX9ID4OhQ6WdkEHP2tEqCY0coB9VxFrO0Gd1r/N+XDslQ5bE1p1YGsvdSgpVKMfHBTAq2/DEXB/dm9V1oxdoeejpHhgI0tbhiPRprR5SiF1IB6b3v2xF7hgmMTCFNVdjVlAaZ9pLVJU2HYeZN7EAMbazwCWr/PJwrkDF72OphT0ntVksWJouvhvYCKTwxIR/kTbiskGJ1h8QCx+a+uai5cF5FGEXkmsKRZVmgnMoyEetZWjNua5EiSHZogp7r+qtJVqj6Xr+53IO+BV3TMzg9inYSzfaEpkhRDWwm74a6uKh4=; 5:HrhrkI0uKyOC2pb0HgOTsrU85xsjxHL25XWOswrTxr7cyAeX9OHyr6T1LwCTGU4qc0XbB+Ri0ltYs0uzCn2rrRuUBtWTsESRRixR0Z2JYCF65by0uiEFv4u/MF+Rl/oPd3R5CsTq/ott+7AZl9WK6E/OembFD2bxUsodiHtZcs0=; 24:6TNDXZZZF/A3+4go7NBnp1bN/ZoHQ9dKt/QHMdSDQxsTxe2AD+FJE5vCrrt/oozhro+VuCx8vWeZ48s2nXsTV6q8BQYJUwaJ4hXIY/QQW5Q=; 7:e1LjVXJNx6xIDaHGbLU9Sr2eYOzLCrz4W/dnRDnk7VYC+SG8a1gt1fR22xLM2ojcWDbADNxJGz2vRQxvfSsThYR/bV7+jqq1S2RhToxQ4Kpx1ImgEQcmZjdrp0sggsNHGpI6j2K+la+v6SQXiTn2lGWDeF/IMSlpTJuyL/LqDnKmi48WktQj9kV/j7oxsW+7EKypzAKkEAT0y6EMQxZ4onf/WZlC74mPMSVx3MULYdauIX0M16YnBHHjZQXuKvM2 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:73N0YKcnJiMYh/NjgAhaaSDwqMbKDwRQ7YBuF/zm6ZtyHodqPkel+z2MTCOtBwBLthdZKm/CEqNWNIEvXKUjQRAASGj8oVRvSB0aAY5vd2s/iNqkstbupVfcXPp4tU7Hmc17zvi3b4pIKIytNZNpgcKsw8mvhMckEVEKG28IzMMfQn6TmTc7XdOOiP2qeFDQQt2nvZh4xOy7Ztszz6wWBAqB/Kr/rX0Zr8qgdfo7EZ0/zL6kmioFghoRlwjlqaw1 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:12.8696 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d7568b58-9df8-40f2-1150-08d5673fa20f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.64 Subject: [Qemu-devel] [PATCH v6 17/23] qapi: add SEV_MEASUREMENT event 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Markus Armbruster , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add SEV_MEASUREMENT event which can be used by libvirt to get the measurement of the memory regions encrypted through the SEV launch flow. The measurement value is base64 encoded. Cc: Daniel P. Berrange Cc: Eric Blake Cc: Markus Armbruster Signed-off-by: Brijesh Singh --- qapi-schema.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/qapi-schema.json b/qapi-schema.json index 2046c96669bf..e1f5d14e2e3f 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3192,3 +3192,16 @@ # Since: 2.11 ## { 'command': 'watchdog-set-action', 'data' : {'action': 'WatchdogAction'} } + +## +# @SEV_MEASUREMENT: +# +# Emitted when measurement is available for the SEV guest. +# +# @value: measurement value encoded in base64 +# +# Since: 2.12 +# +## +{ 'event' : 'SEV_MEASUREMENT', + 'data' : { 'value' : 'str' } } --=20 2.9.5 From nobody Fri May 3 09:48:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248048121996.428586830205; Mon, 29 Jan 2018 09:47:28 -0800 (PST) Received: from localhost ([::1]:53669 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDWh-0001En-7k for importer@patchew.org; Mon, 29 Jan 2018 12:47:27 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49166) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRi-0005mu-Qb for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRh-0003ep-H8 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:18 -0500 Received: from mail-dm3nam03on061a.outbound.protection.outlook.com ([2a01:111:f400:fe49::61a]:43136 helo=NAM03-DM3-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 1egDRh-0003e4-CA for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:17 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:14 +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=MfDZlPVRLwlDu6/yLokpnOfd9uc2bbj0/azaTHmv+8Q=; b=WcBwCE5aSDJmR98+3+drv+RkJ79dSlIY1WZ4hApjoAoaeWSqTRw5bAw46ht4dflD/5jNjTwJddAhyGRqqB9OAFl/dGFVyJaqXgKVh57vdxLwsutlvcl6BkxOdfKKpkzLL61wpaJxjRLnWbWqMF1WGWmbejWf8bKdec87KCk0CqI= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:27 -0600 Message-Id: <20180129174132.108925-19-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9dd2bdd0-b5d9-4758-a374-08d5673fa304 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:dzLii5Bkm0QC0DTJk2oBC1Dd0dQMFtbdX8urPU6qRhNJQUknukriTAAUAmfD2T46/dwiNVNpXgFgZGMIwhvC78c1BY7SdcdZlYbKE7YXb4Ob7Kr7WvaGtpvO1Pahw+rwPaRQBM6flKM6IjFDdBGgVpW7pM2bx1daX8tKEgmqMoPNLGL4YsTixaLOLgDvVFm1qpSPzJVt0LOFUpqslhWM4WHLEWf8XldkE9RttGXFPYWnXSaIGtzRzkmNaa4x7pkt; 25:tlYhi+J6QEgYEsEw1CFUM3w3RuXteKu9A1Cj84d2m63E7xUrffGQXR3y5QB1I2kSpxuwHenk55QuAN0bzbvScAbuH5wipfwv1LhLnEDHSAzaTf87mbsg96ir53nyDpn0k9vYIVZM8g2KA9wJOrVX10bdU02zw74EkKDk30YEruVnfowVvWKh4QiCzy1OiHXb5j9L5FGf5KxKyzR9kUd+J1+TQ7riMcu1Cpn2g7ETJBUEYJKIkNqp+sezJim3mLCO8BDNL9EXL9waHKNQtmKYvvUrFGy9HGLKC80rX5BbgOZALaSCT5kCJ9rH9eqGXf4H4oNrIhFVJ12r9vhzPTaEkA==; 31:NJo7tbgGzj8p4sHQ5J4WbosGCM4CJz7q1TZoaHl7wbDlF158d48Gtpa44CH/YysBxvJ3mTZ2UVAOYoQmOcvaIGrLBfxQQmXvpVr3s6/FhUKkgjDmGcgQFPCsjWt+98Nh+SroByvzg9N59oR8iYTTJmIP+DXBdTVaupmUOEyyprVJvC28muTONZCCoetT4oZf2Fuk/k6eRccehPPpq6ghXyH0Afz6xHJdatrHm51rZh0= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:Alccu4yZXnBIhuKGBdC7K0HPsZ98y1c7kX0Vy8ZqiPDzdxbqRyU5SIVLFimVeKjH231MEv0AvP/BC2+2xSMj88o7nVdsHqnizMa2HJvVMxPY1ifRfcowZcTjDDeBNDm+XHfMOT+gkTeVl1Hs4E/xpSnrVmBRqQhGlMGU3/aUIR32zgL+cyS3BzIsJ34S1rDjugJqODs0d/JXbnj/UvGZWrJqWIpo18swfDrle5DWQ+DQBN8oRKKfuZjjMKxlLJl1p1DpTrIJKDWEjGT3RVE89Z1AVFirbxExskw1q8aTzlrPQad2FdhrEuAdvraeAWb7RnjvhQfE205HKd5jcUm0Sn4wh2n7d/atrqbMzYzDvS64U0d31PUUz+qJp/wZaJdzaFFtxwZ3EwfBuvkibCnlr1DlqMzySKnWThtIBZow//ggjHCvw3kJtozWlzXkdFy/Tuw8b2+W5h9pVqr/Xr/hqNbDRMUoAeCPnqUZYmQFdghZZd1MTjfhamcgBxSopcn2; 4:POjrlQUXEljIIXf88onYJJoAbRB4e5UrWOyla8opLqNMYE3bnSRAlDj1Xi5cq1ghR8M3pvmkJ0mvZhQK1mUdWOBLWg+aitbdLf+Il8MqCGYPR681M7DPuAdICqXEHBEZANarP115BtidE4+4hnAp+qXWumrtLanZF9gaBHT5WfQ8Mq+ppCJ4lGVzC+BD+kT2XaZQ58RAsQg9Kf4fBXkz84JRrF9O6x9vWj3ya4wRRLKYxAo4I8qT4UOtjxDn1zSRYNtN1bRyvCTba//zo8+ZQQh/6blpzJYLFRyZypPFpnl7tWndkORS3M+v1KiIiimTz0ZYkNXfXVkOeOQwIJSwvw== 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)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:TRXG1ENx4Gbv/gizqEQw7ViTWUwvBGCvUfB8uYsmX?= =?us-ascii?Q?UlcjnM/i1FZGatS0+L83W7pdpNpOWlyiCCqcH05rUFTWNqDIG8X1YjBdQrAP?= =?us-ascii?Q?GTw/yExqiW1NdHOJsqu7N5V5mpykEbJ8vofpKu195AHOFi1OAyfvEGSG2zsP?= =?us-ascii?Q?/jBLoMMgLMmLGau/rvWg/NAMGmN1rWrM06k5QJI37ulpB84MLY9oDDsAXwfe?= =?us-ascii?Q?vkRgvGepcdkgDlpOMFPfMpWHCzVDmSc0nT3D4LipKzwfG2zPAtxW91j3aM7o?= =?us-ascii?Q?QcTtekua/nPia3j+aYs5Oe9aSrgYBqfUL+aDAeMR6zOWgaa0KPMXgC0PFosz?= =?us-ascii?Q?4fPFe+SGtOcHxO0qAQ8iYs9o6/gmdmzNmaEO4Cl2l4m6Sgwjq7BpluUNyRgP?= =?us-ascii?Q?idbWUCL2ZUj8BEHhtgu1LGo9wOhaVMzr0yMLTD6tzL3JfDd9crSmkRTMsqWT?= =?us-ascii?Q?q+PiP3qOY07WEd3LBUMyAmfyIoYQcgOMaFLj2bS+MDHHA9eRY6Cea6rp4xPU?= =?us-ascii?Q?GxWTcOviXC8yKe3dada8v0rkMndoHRsbs9ODqNbRJ0HdzljbgOkbbwcVFcXM?= =?us-ascii?Q?xXJHqV55ZzA5qjs6SSyDvVdsK4GXy7IamGpiSnC8yKOzeIDa0a2I2RtY5y0Q?= =?us-ascii?Q?QACs7PXNQKHxkDsnROzZFqZuMKpMHEJE7F4DPeHzFaxu7HYn4u61DgPh+dVf?= =?us-ascii?Q?y3BnnB01jy7y6wM44cqZV/VkuPC6sxyU1/HL7JqpSoLfGsfYRW0kt6qTsB9G?= =?us-ascii?Q?2scKIQWnqOl06XvXgJbCfpRi4iwYxrVARQExVIA22Zwsbm4WoRZ0LiwzYZJN?= =?us-ascii?Q?P0bYRpawg7p6278nEXnak6TAFxF3tB7Bknp1DxnXJCBr6NaCTZNb9/P41k1f?= =?us-ascii?Q?xe07zh07Y28FZ6HRu27j5bxXeLrYxodwxvhX6wfgfkyembqfwTcuZnGsxSgv?= =?us-ascii?Q?BVDJRPa01AYKai+XGgkKO5ZnnlzJf7qn1NsCOP7iTQLr+Ag2MNQdBWqBFPVQ?= =?us-ascii?Q?6aQWAc550uvcqqsbNQO4NlCvSDgdwWznUyWXVSdn+xVWURiq2EfAhpx0sMYc?= =?us-ascii?Q?q9yCg6RTe3H5YQWUEr7sRjCTeKNKnZ6oKHvKDGHPy4IeDsQ4TFgZj8ilagPo?= =?us-ascii?Q?5K40+ySq3yr4O4G2OXQwvhvUu5RZ+ezBAd6uj4EkzAZjvHa0YmJFpsahUSJM?= =?us-ascii?Q?omtU66DpdtYnDw7uXFA0lmvAskb4WNgQ0E8kRaZLa169n7TC1gQXDJewflpq?= =?us-ascii?Q?ogEjl3eQ4UhrjxDW3+WBw/D0jUwykbVHP12Y2UoEQ5GETlIbRS5n/B7TjzMV?= =?us-ascii?Q?7MoOUclt8ZHmezWtZUcKKw=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:CsTRY3+qhtsVjlr/+yRIQdB9j1+wgMgrJ7OresKuVbqa0a0tnYcDnoJ/3ZGlPqqMRXevta4rwO2DguoUh4Fxj/lhF0uGB8m8Xms71NvzIi3wiyQOokyLBK8BmGJ74sbvUvEs7oHSCpWXNwDs7dqRLEQiUwIy1BKGqEk1YbBIRl/bhLUvJWKAEM0v+YB2TkHjnKQqtDHjxFhXLjv06i2VdxEnqkcOHfSN9M7S88wOz6KHhimvDxbmgIY4Sfm9TPQNUiKRdwOIy2Sthf1Oc+CmjjdHjlF8e3sOloTJZvcTvAROexvXZFPEWKOdPEp1gcOeRU/bDuxHZv7jJhcSdB4/P1DR2BbF8iV2L3e1XT2aEiw=; 5:lVoX47JJK49Bh3J+p+aw5bIka0DNLeOzDWlF6T+rf7yNC4dawAugTxQf/SicseKN3BJJAYaZH51Lvcc1xgOm6kSDlUC9iYrpNiTcY94T2xe2gyod25OZyoS+3KbM8AoRlvmsscM2apOaYP0d/+vZ1VrCs2Cn8FHxdWvod15/ZBU=; 24:d3AwyNCNBLLKkyTtIK0LA5k+v5Flt+3NGInsCAPkL5HZLo8K1E/6j841AoY4McpfFxhHsnVUKsNJ0iIOqmKCObm5Esg47drO1gn+svucz4c=; 7:bp1idJl9vApFao0DObvxkhDTKARdHsAUr/dufi3j5mUEN7KceVO7vrDW8m7/QJ/YEZ7+jddsux79/reco8iWE3TX8lnubuvLhTm6P05qWKUHGIAw4hchpY5hu3BWWDK2z3IFI+dpNkd/eclfYFoc3tpReqUZlSXdC65igMhNXVC1bu78EeT+PAZt60ixSgZgEBOOcjlc+zsOxqNjJAhKekRGrAK2yzUh4MRjeJKPkYaVNKQMHypmLA5rs5uAuZ3l SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:eYs1/5ZQ/KX2vVpdaKnP7YM7l3HnqaCb7SQ7Z898Oa6ByWopUGf8WKAeBB7O+IqICVj1d5NAqFFcHioPsHrYC7vXY95UiEByi1cbQsu821OEWHFlrdlOPagOJFQsq5l4w1f4WOQom9kfxu05M1Oh4yitxAjWnwugrQNRqRDzinBZ/cKND8dm/ZINY8CWlWrQn3kf+NH3VCgbPWrr54Og7obZ79Pj86LWTiX2LmUfC/c7SuuAA1wm0OU8WIjCsAIZ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:14.5571 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9dd2bdd0-b5d9-4758-a374-08d5673fa304 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 2a01:111:f400:fe49::61a Subject: [Qemu-devel] [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" During machine creation we encrypted the guest bios image, the LAUNCH_MEASURE command can be used to retrieve the measurement of the encrypted memory region. Emit the SEV_MEASUREMENT event so that libvirt can grab the measurement value as soon as we are done with creating the encrypted machine. Cc: Daniel P. Berrange Cc: Paolo Bonzini Cc: kvm@vger.kernel.org Signed-off-by: Brijesh Singh --- accel/kvm/sev.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++= ++++ accel/kvm/trace-events | 1 + include/sysemu/sev.h | 1 + 3 files changed, 60 insertions(+) diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c index 1f757df725df..b78cf3144b1d 100644 --- a/accel/kvm/sev.c +++ b/accel/kvm/sev.c @@ -19,11 +19,13 @@ #include "sysemu/sev.h" #include "sysemu/sysemu.h" #include "trace.h" +#include "qapi-event.h" =20 #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */ #define DEFAULT_SEV_DEVICE "/dev/sev" =20 static int sev_fd; +static SEVState *sev_state; =20 #define SEV_FW_MAX_ERROR 0x17 =20 @@ -418,6 +420,59 @@ err: return ret; } =20 +static void +sev_launch_get_measure(Notifier *notifier, void *unused) +{ + int ret, error; + guchar *data; + SEVState *s =3D sev_state; + struct kvm_sev_launch_measure *measurement; + + measurement =3D g_malloc0(sizeof(*measurement)); + if (!measurement) { + return; + } + + /* query the measurement blob length */ + ret =3D sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error); + if (!measurement->len) { + error_report("%s: LAUNCH_MEASURE ret=3D%d fw_error=3D%d '%s'", + __func__, ret, error, fw_error_to_str(errno)); + goto free_measurement; + } + + data =3D g_malloc(measurement->len); + if (s->measurement) { + goto free_data; + } + + measurement->uaddr =3D (unsigned long)data; + + /* get the measurement blob */ + ret =3D sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error); + if (ret) { + error_report("%s: LAUNCH_MEASURE ret=3D%d fw_error=3D%d '%s'", + __func__, ret, error, fw_error_to_str(errno)); + goto free_data; + } + + sev_set_guest_state(SEV_STATE_SECRET); + + /* encode the measurement value and emit the event */ + s->measurement =3D g_base64_encode(data, measurement->len); + trace_kvm_sev_launch_measurement(s->measurement); + qapi_event_send_sev_measurement(s->measurement, &error_abort); + +free_data: + g_free(data); +free_measurement: + g_free(measurement); +} + +static Notifier sev_machine_done_notify =3D { + .notify =3D sev_launch_get_measure, +}; + void * sev_guest_init(const char *id) { @@ -461,6 +516,9 @@ sev_guest_init(const char *id) } =20 ram_block_notifier_add(&sev_ram_notifier); + qemu_add_machine_init_done_notifier(&sev_machine_done_notify); + + sev_state =3D s; =20 return s; err: diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events index c55546f36a25..51df5113ad07 100644 --- a/accel/kvm/trace-events +++ b/accel/kvm/trace-events @@ -20,3 +20,4 @@ kvm_memcrypt_unregister_region(void *addr, size_t len) "a= ddr %p len 0x%lu" kvm_sev_change_state(char *old, char *new) "%s -> %s" kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x se= ssion %p pdh %p" kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRI= u64 +kvm_sev_launch_measurement(const char *value) "data %s" diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h index 839800efdbbf..572120c865ea 100644 --- a/include/sysemu/sev.h +++ b/include/sysemu/sev.h @@ -63,6 +63,7 @@ typedef enum { =20 struct SEVState { QSevGuestInfo *sev_info; + gchar *measurement; }; =20 typedef struct SEVState SEVState; --=20 2.9.5 From nobody Fri May 3 09:48:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151724844461838.62737933300514; Mon, 29 Jan 2018 09:54:04 -0800 (PST) Received: from localhost ([::1]:53715 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDd2-0006jc-Jc for importer@patchew.org; Mon, 29 Jan 2018 12:54:00 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49224) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRo-0005sk-I0 for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRk-0003hS-Di for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:24 -0500 Received: from mail-dm3nam03on0042.outbound.protection.outlook.com ([104.47.41.42]:46789 helo=NAM03-DM3-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 1egDRk-0003gQ-6O for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:20 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:16 +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=vvShIU8nu8EWxWkDjL21WZcdjdRFB3mhGZ2oT58Sj1U=; b=YvDGFS1DcFFueSyxZm8JJVTyti0XFXlbb5XqT01y0FeUgrFYZOc2zzLeRbZHwd1UphefrQsyHheDmSlK61SxL8CYVram66mjm7czpp31anItADLu3z4XeeJkx5R4kbNsolYq1z7jFEb0PfDcu4a1q2CvmrdNfwLn7lbUEOa4xZs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:28 -0600 Message-Id: <20180129174132.108925-20-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e1a6eb94-9d8b-4028-d341-08d5673fa3f7 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:vgLL8f4hmzzdZvwU0skRTDF+D9exSumTAg567XaqLOWikxkXS1xXDol2MKVV6pW+dDjHrJN81ZjbsLAL0ZiFVS94sXo6i2I1XQS9fUTAZ+Yo72gdIXYnRxHh36PMoi45AmtV55sX7C6zGp8EHgd8ztb7EhbPfRJAxOnwq5Fl7rnrKoyhwuQ5SOc7N97VELjmudPALY6TOh7nSsg5mptu0n4EXsBwJQhxgtW1fmK964cRsWfTdvV565rYMJNSdMK1; 25:9uJlxqdy0y4GodoOwd79hLhKEydPnKpZuVRRn+DXs6etxsqpx58dq2+k4ncJGTJ++vYHLTOwjpE2NGFqsvPnHLzYnsB44NTh8br4kDN89eCihCDuFLVnj1fOpk/nepMCUCkDgrNCY8z7tXB9peaUM87G0ZCnSpQacLOlKMOO4yhDDu3AUeA/TFK0uDg91tkMFvUd23w3YolRUH3ntqnHQ6ogsp0ypA9YCfKWb5l8SmDfQQAVdQr8+TfndbS8vVkqqv829lWjyfzv10HsBTHwCFXSlZ8faYD8k0CBN2Zbl5HSzvwqiO3ZZXsJHxRz1Z3RhkFMtLkd5UtAkRU5WsfSAw==; 31:+MGuCZrFlYWUEUsvLbnXmVWpX4VMOM2ZUEiDK/MY4CFh1COwqU5rq+DgkFMKK0Ayjfd02ncC9IO0P8XtVXuze5z2/kdSw2JAg+dw0tJNbZoRngUbeEa5aoRfy7Z6qmoYw474Fp6pDLt284U2WhY/JcFARR/eVyX+B7ruFLO6TgM8/mFSgsYUwWeDyBro2zZKyIDkGEpqy7o7cJavcZrSUFtSekHtwWsUuyP2ot5X1gQ= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:QKNEq3p2gCD9gWNcXPX61q0vR6Mf13/xFiXdvjodyorzpJ9rlnQ7DWpz8Oty+6cOJ3npJq4EPe2Br7x33pgm22kdYb05fGvi7mq8QbtapSzu2e6Sfdm0ZBYwG+7zg6w7nm3j+osUDfrHVn+a8/L7IWfdhHip/VNeY2mJKAq1iu8xwhyHPCn3MiGItb64R7WEzLIrDZOo8Q6vSSP9f8BVt/U78SDa9fUJ6q9Zbcs7TgFF8OYse9kxmQvyeLjUdGrrobU3KTw18q0KflqDpvfXsvmr1UNGwlgw5mabgJwDYsbPPnCg2DDDp5P1svMLCRsn7k14o6tHdcxwlVThflSGgq3lrCCpAhwbFYS3iBCmfAe4CISYsLpt/hyyX+EArVs48I+qjzFEN8GhnpRvCpSayP1cWlgNnYnMtaRlXB2U7kd1YqsXmkrHd5PWnP/2whAtKzzBr15vhU4T9yXa7Z8f+t1G4l2xfw5ZvnBCeDyyOSc0ZEx8bQw+VnfbNGmcYgcu; 4:xrc5IP5o0/gWYjzYpUSU0sjRvSM2ZFrL/cOzQmJr+5klc3V/pFa6VwOXrszIAmuUQWOAudcw2v9Uh15AGy8NLOUNL/B8ZxXMgm4ZIM1vch3ySTkmLGXViRsNCBhsf1Rc0wFPk08faKzF6/3nDWRZ73uzj3gWrT4VyqHX/niQ5aRegPzKKbJAqGDYMBFD8RD2Z7JKwUHYR4KFcdsYn/3YZ+9uulKwc/H3LD/qUjFfc1lmDBWkNilpmI2F7j4CeTNVp1E73ybpug2fO9Fg2hbzzLlOdIt86X8POmyW74XDLYUHMPm4G3g/dtmyQcamzvMPzYgtj68ADndB+eMPoJVB+Q== 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)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:cHY8pRrA8PF8mguKMcMSsnuDSxYDp/H/T8n1M/tfy?= =?us-ascii?Q?U6mDfI2YsTyfFz6gncjOdiTRHnV338IhR5lbR/OzNM/8V0omV0ypTmTP5Aju?= =?us-ascii?Q?YDNIZiW6ZyRONBiS+cxp5GCpH2q/eoiJqcTSXAdD3QBxtvjd9PfA+f4SNGP8?= =?us-ascii?Q?pHPJG3Bk/BRtDXi9Z1jgH81C4+YLkwdonp/P+5748i1hKUk33B/ArhPPtG2I?= =?us-ascii?Q?T4cWYWt2oU2biwUE9azR180V5y2+LwSFTdt4b6TK8itxGqIixSm6sbT1WOdR?= =?us-ascii?Q?5C68fHsRiZdT2HpdJIA6TMG77Yjv4f6vwcxYrjPmk78hyxfkNq9+qzfJ8o3+?= =?us-ascii?Q?jBUSP3poxAG+Fo2wKohuvdiu/HZ0BoRjeoyM6hJ5ckOpviKf+HYVnUlP6GEX?= =?us-ascii?Q?/Q79cgPI1br73k6q4UUO8LZDeXMPo7F0kxgyeQOywtkqRUPug1lJLspQXg1Q?= =?us-ascii?Q?7qGgt61WmptQMfYwVu0Y6SBe4GgnFkIgzCt/jxeZpEOQ8gE8ITFKa5EBLuZZ?= =?us-ascii?Q?Yy6LGqPK7td9CpNVD7PodONg1XOK+ShFJkDgABcKWLiv/nF8N3elT9/Rybgf?= =?us-ascii?Q?oLCjSNIGyUtuxTWaS7OpZKzr6IU3YNTo0V9WYXViJW6hBH1IP2OXHMB1+zaB?= =?us-ascii?Q?1uSwsrKJYSlsRC5w9vBdpF5f3xXT0KnyZ/VT3CWK8XEin5C/F/4xXo0dHssT?= =?us-ascii?Q?F9/xp6uUpE/u8G2OCW5E+QxSIsJVZb/X2n4z80QOhBghi2YxHiBUK5dfyNap?= =?us-ascii?Q?gB83MkYUZySKIhcHRr0xwePPQgn2YrKX8kTdKGnBvjkE1xOaHK1J0VfZ3ohg?= =?us-ascii?Q?xik+yAQNOU6MbXwzmc7hzyo/TOuNOw3vVJek10xSG8G9LYwR0c8cIiB+2JH4?= =?us-ascii?Q?JXEZF5KGddv/+O50oUWO3L4xMaSj/CXLnIzNz81RGX6K/8XcxCb8UoPF+vTw?= =?us-ascii?Q?hgA/VlAtLhz7cV4I7Rm2qL7xEfoUD54LRocWGQvCVyi4Q8oVX/Vz8HdOioFA?= =?us-ascii?Q?SZt4cwJ/iy0/QLVHjsnZc31TVYO1gCgvcN2hufi5prJiAgzSKUnmdRt2272j?= =?us-ascii?Q?rcwxODXwIZUWruAKWAt9/KB+NacZ8Odv/SCwflG0a0S50ye7//e1eIHcgs/D?= =?us-ascii?Q?1dnyNqWtLyFKIuyGtzsTFMbdIHEpvhJTEeieXmfxL+69M5PL/GkaiR35wjaR?= =?us-ascii?Q?ewu+v10EE3pjvQ0zGlGLWZAT5ZaMda1xb3PUFjZpigSAR2UQLMLsWYMcN1N9?= =?us-ascii?Q?1uu37vFKnDW5H2ghQdpu7aY+duiJU6fmVSAST1OSbnGTDsPDUuj6l7jyHoji?= =?us-ascii?Q?pSCNESI0bB+EAdmwjOgU2I=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:Xll+oxEhEgsBO8L8GX2y7pY737vBlp5JXjfOC9w4ep/zqozYIO8LDLI2rZFspLKt07TvBmeI7eewwJxVQwsVfidTli68pozFpsT1hJ9ulmX4DClKu3VyJEOzYBYXLi4Nb49Ffq0vNSdzUvEpVSqqyKxDskE6f3wWjjqfCHp13rC1oban88XJPAagaNEcLR0+0RGaW6q2B3CxwttJ3NuPpY3xuxgrfzPmkU0+mbHcq4UVs8OpPkeILhZ1wrpuhkJvQ7sXCBEesNG1D2+35ApHxGpx/QhgqdcPSeG2yzFEMCbOQp8jDNEz6OicJ6Evq7staXf89aRSAz3EWJS7Og/TQY7ma6sp1qbWfc6DNE10jaQ=; 5:hcBLW1EbTfZF2fSfD7teSTAL/eZicND4qZg03nO7OvoRoerevj8ir/gLgx0iW9xdqDO+2+b6YdGG5kHeulphqIAxXqXpqsoyuV59qINhy0DJ89csWgicSsxyO45D7Dgdzt2I1jcdMXx8dVltAAQZipdUvjekRxqF4dveYyw9vmQ=; 24:1T9Nve70zsyC/iVSdp91G9mUtYNbkpLjQwxXQBSaZdCTg7CsiuHJbgbIf0xby4AYQCbQOLgBk1GLmwE4QQsa37+/GGZY7LypeK5TaW4CPJo=; 7:xk1n2DpsvimuLKGsgz8pwCGDrILgnonKMdGbeS3kViRwC3VxPZmtiUa2lsawP1dQZVyHd/P6yqdtvvrhytUf162JtSdZZ9L35EacMz4xNJVj0sRD/S59csMYr3vvg1pzD0N3uMhOPHrT6ygpMj2cWMg8Kt5SPbWqbWdUqjzr71xqrpDopbC/tPQlKpQ6/+GR//BANxVAvEDKBxuAAG6dyfJ14XTrfaMkHko5XNNGVNZnHgSAVBuidolGlpViVof7 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:m3kap0ZLFmglf1xwEv6fc5rt09++UiP6x7NFWxxQAuMoQZ0CbbMTvVK0cXq373k/J5waWLCy5Jw4Nn1Z49UEdShmLxE+hHJ1wK2q5Dx1GeMbsqaQ8YkfnaHMIyai67fUjLAenAFiU2Sqhgh1zPFCD2BA6V09LdWqfzUGbeJS/NRMQNAfyTEiS8MPXhVAgsZy52wz2nJimPNREgWQ+Od7pDNr7mqANickzjFQQJ+4cV8M2VHooCD0wp9sQOtJAgF7 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:16.1352 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e1a6eb94-9d8b-4028-d341-08d5673fa3f7 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.42 Subject: [Qemu-devel] [PATCH v6 19/23] 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 b78cf3144b1d..c227d7591c38 100644 --- a/accel/kvm/sev.c +++ b/accel/kvm/sev.c @@ -473,6 +473,34 @@ static Notifier sev_machine_done_notify =3D { .notify =3D sev_launch_get_measure, }; =20 +static void +sev_launch_finish(SEVState *s) +{ + int ret, error; + + trace_kvm_sev_launch_finish(); + ret =3D sev_ioctl(KVM_SEV_LAUNCH_FINISH, 0, &error); + if (ret) { + error_report("%s: LAUNCH_FINISH ret=3D%d fw_error=3D%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 =3D opaque; + + if (running) { + if (!sev_check_state(SEV_STATE_RUNNING)) { + sev_launch_finish(s); + } + } +} + void * sev_guest_init(const char *id) { @@ -517,6 +545,7 @@ sev_guest_init(const char *id) =20 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); =20 sev_state =3D s; =20 diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events index 51df5113ad07..05038709acfc 100644 --- a/accel/kvm/trace-events +++ b/accel/kvm/trace-events @@ -21,3 +21,4 @@ kvm_sev_change_state(char *old, char *new) "%s -> %s" kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x se= ssion %p pdh %p" kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRI= u64 kvm_sev_launch_measurement(const char *value) "data %s" +kvm_sev_launch_finish(void) "" --=20 2.9.5 From nobody Fri May 3 09:48:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248630746671.1668610284866; Mon, 29 Jan 2018 09:57:10 -0800 (PST) Received: from localhost ([::1]:53741 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDg5-0000x6-TW for importer@patchew.org; Mon, 29 Jan 2018 12:57:09 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49235) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRp-0005tg-Jw for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRl-0003in-Kh for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:25 -0500 Received: from mail-dm3nam03on0087.outbound.protection.outlook.com ([104.47.41.87]:58496 helo=NAM03-DM3-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 1egDRl-0003hu-Cq for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:21 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:17 +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=uQRDL3zZYqRL7evxO2GCfuupfWgURU30Ius5SsKULdA=; b=1YE+mifiFwUF2IcS8vGwcog/GcWrxCQ9Rn+QEhFMDzOK61Df8rOSx9k9TBqQlB5JknVQixUWAt2mk7WaMsxCBvEWlHKnMrSe/pvIvOl2RzFeZKcp+lFQ/eZ9HvHot9nJE9Q6V0U5QXF49dcL+97c4mzodiMzEFandUJcoPJKpPU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:29 -0600 Message-Id: <20180129174132.108925-21-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 58d82afe-a845-4b26-5135-08d5673fa4f9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:nAmx1G9UPbxJn1SDgubq3T64pWPhaAsWcFR0/wyr7EOQ8FA0ptfuD0J9J5E9jMTnPJXC1a6bfFToF2nEgIT7eWm+MQS2inV8o1h/0OSt07g9X4n/mDnr+Z44P3/xhdY4jqrG27ZhDAzQfdXptT4tEH7mKrSdfIaOiwXMiwPqp+hjtCgcy+AR8SPt3jAo2XE6HPkl+JpbnqjHIeX89L1AZChF0G6dpnsjpkkx23fXcAwyonvyCZXOcOWnnytFqRjy; 25:r0bs+FLcqQuCv1y8PQjPBGQyF9N696MXFyAeVjOaDPE4omVTLYOHFpRmQr0f75Ta+tOsTUjgfUZ1/i4IYw/xmJt7YbRe+513+RcATde0NkyKEeaI3uqTc2I5N9h6ofLVcx7xONtZcSW7NpHxciVS06iQ3wknAvxZ614BXZfY6kuD1YMZFFmabRb+UYADPreC3EZZyCyrC38JYvgeokBYCMdEKs6/YaC/MPQA29okB8jlIeNiahFtIU5e3SMNQ8BlevtwH86RsJqBZlwSAwJihA+BR5SzH3PtNupSWArJ77+ze6MjOE4ocOVf0wX5mAP73cup6drbwwqEA8SfayfBCQ==; 31:iPvi6s0tuO2oPKwI/Bz+VkvMLVobIX4+b/+w5WfxEDxSeLoDqM44BHQmA/BIVYyTTvZK0XTMHPoRvKuE8zu8jEzomgWRvvLEG2D90PaK6pnlfuHYU1cxrPz9oc1/MsqUkk2jK5i5gnsYacvurra+G4yCDqzNawxBQ9YZiF8Mhl5RYTslTOV3pl0fpBr5J8gLkdq9pSUYjuI1jpGoG1mxp4u6JON0CShnhQaXPA5toAw= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:hteIVV2+aUfRqB4j5LUTWQ4n/WmZNAHSwfy3LAETsy6BgdHiJIqbVDzxRZcj7Apyiwd6UD2yFYC9llZyyhP4zNNeQLLlKjJBsGbwLJvyWdGse18l3Uz8D1b2ZUG0XCBqomWsjYgT8740bA3LEu1KAizWWpqHek6voHRc+jANgAeiV1edCiFs8H+nmiiFaxuMu9NvPJckW0TgxEg7LWJ80mFYFCgaWH1ZPWLhQyOnMCyNAqvnZg25Zew5rGAGDCIyyfWoUpxzKKRKawbwCPzjGhb2Th9YndF7n8WKN6AapWVBCyui/srp8pNL5bQHRJ0EyKQkHY0RV6v+k2OH8BmO5KK6eSiuF4LvVPb5S7zjpaTM9wrz/mSRAJ7QcC0+PgmMPflQSebKemTcOFtsRC11OVCOOiyVrtKWyxVolRgxG+eClsql69wCrNu48ooTNsUSIKaR/9odfS0NA0U3o6RHVml6Qfc2XOYLT2zN5ehe345WYJotZrERp5Vw2PdYYyW3; 4:WgTsx8WB1yCbqwsT/zD9SLOnn/XPVBGmm/SBFMqazviXzgOX1/xQwKa/sQJJnAmrTe2Zkjp5umbyp5PR198HoHC/Fr4tYwWRpEO+awAC9EKi2MARbF02QrNWWdTh/7NMrAf0KuKyMThPQL+wd7UdgtpcoOTO3mk5UceRIZ7cn9ex8gqakqTQoW5aQQV7H0lIjEW3ThAtBbYHPjeQ2I+2/25kgk46gFKFZZVgcpVW9RfV05d2BxklQUYrYRiWnI10ApGDKzdA9HDBDKBc3Tr5Ph82rTw5uH5LLZEqFnL7oqldo8Qidbo9HreZgKKhX9yu 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(575784001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:ynW6Ht7i9MRytFSw1jppQYYg4I4TO6rebIC4CLq5G?= =?us-ascii?Q?WEYyLl0pSOj55PRObdaTe+HCNct3jTZbxu17M9/wOUCZm1Iq5bw39h99BpAP?= =?us-ascii?Q?dIvi5I8DQ/dJPVwyv/KdoG83ZMWOYHHi/RsM7IB0BfoTfLgFA+00oSdfv0W8?= =?us-ascii?Q?WKJt78TDbQZkqtcfMfR38ahUyCnqx+gOG4KQ2pm2quBTUbCLiqkpFpRJBxrI?= =?us-ascii?Q?OmUHQ1x/QgYMlGoMPFli85w4ICnxKkd/5ov+5LEAVAwUzF055IWKcRb8aDWa?= =?us-ascii?Q?RSxN590IDTVu0Vg8ghKp+5ikCnnQX9zZGvkRNTKKCUPB520T4cj14suCSEd+?= =?us-ascii?Q?RB2LbifWttooh00EgoVabIxpdIV3fjO4m/P2fx+TbFN02tBcHoEDgTQ0vSGx?= =?us-ascii?Q?W6qJyOvwL9EAa9VcfzKTf5twnHwFjHDuTs44qZPSIvcWsvt/pVxFSoG6LI/V?= =?us-ascii?Q?doOmp+YzwygP+Tk+aLXEPJPl4ieTOe8mB4xNGapSPLyY0TqTO0JdTxmJev2S?= =?us-ascii?Q?aubyZll50u5IG6UCO9H25PgKBBx9Z2df7ba4nQyH0HkcPkccTzqZARe3m0dN?= =?us-ascii?Q?lZJvDQLuaDxGUNtpBml//Pr8GCzEhg4cEjK6N/to5npHcR+7Xa8XV3mqX9rp?= =?us-ascii?Q?NVX1/4VJsPBCsROxmf0f0rJDzCXSMw6XI+h9VBs/bTC+IlOElXKoWXj21QUh?= =?us-ascii?Q?sm9uQwoGdeqsRGyy8Hqdzf2KxBXG6iwS0mPbzhljtfPRbb49f1KJRLGzJbdy?= =?us-ascii?Q?tdih53fKzHbF0nmbzorLS+GS9K6ZxlcqJPj6xTt6HIDHHQmXGhqz2AI+YjU9?= =?us-ascii?Q?K3lU/AeH89YbQz684J+zAA1NlEx4jg1VfQaO8TlZ2w5aVMX7Se1zjMEodNJu?= =?us-ascii?Q?XSMI2EuN2BL7SdpNvfi85E2hoArSiVV98bkYQvjyPZUGfeqRydU0zjCraEoY?= =?us-ascii?Q?P+79Im8eFvoYyKkFBhIoZJcEoZscD9KRu9ByAfzuB8vHZ19kb9H8VU8XWUil?= =?us-ascii?Q?aW1HZ7ISrPQ+wFzlcNflHnMoMqL20kjcKS5ZgD53rcHdVIhDLky2LONfQ9jm?= =?us-ascii?Q?Py/PnZSbTjPJCWiUSStH/LNI4oNU6H5L6R05V2uHSVFxiXQMeZX0RkkZE6TI?= =?us-ascii?Q?RongVwg8IgexvD4zlrm3aZCTI3ZeAk7pTWva+V6lEli448TX2rCpwnfd4p0Q?= =?us-ascii?Q?PPYY0TTTdbXHBB25deUtnS0hcYLHU7xJj7eTS7GryksICYNCnEUVPh+PlTbt?= =?us-ascii?Q?FPJHWKPQlzPH7D1wKYBLy5YAglz5sC9wMzKTrR7onHg+0uwYjsHo8DoAAHM3?= =?us-ascii?Q?y2M99M3GXDVQadKdR5xxte1HYi1zxmgkyZU1/PuLAYK?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:AtNbqeIWV6u9I0QM8OKZ7uu4mVyYqIrLcs+AcWzEfcExLjNCUmzVDHk6ATAW89tnKswQXcMNBTLt8A7LzwK5I09DpASN/+M56meMtKV+IZxkhiz8V54gFWIwGvV6N0DRTIsAdGu2mm6r/vBfaJj+OpGLyMh7O87i53xW3hB17TetxhBoNRPIKpRVuOlRXvIba28C608MCAfKu51T+L+/MTzV7lkBS0aLik8BFtB0ir+GpwF6mNpRxYagGzJXsEn6uD3uZJHNkytGKXjQp3YnpZ4GDqXk+ZRHztGFQTRWRkPZPegCz0SISKaFBksC/I2X0y/31OgvkZsZvH6j1RsyYqoEwzg30I07XnkbgTfTlkE=; 5:E8V8b4GZf6mx9nt/MiSrrph7ihw6RZZd7f6e1JixLFpCkb2koC/PrbeDuNiHneEkziH6ov0+uBYI05N826UYSqKsLUXi+rQSwaqzfDUwvMulM1Rz7JqifUsVKlvrEiQoxZKsGYHMIpI4hIT0E9/pSYK/euKT7uoBpPZBKemi8EU=; 24:2EucmHO0zIX6RjpMCU/Mpxim71svROEoJcVeu2EQxBA+RTzOGk5fAa9rmib5+d2HQJ98xW9tpnLBXiCiEFuL1Rg95CrdRWdLIEuYNm73UUw=; 7:D8L6OAMbl6J1iOI2YA5PIhIEoj/XiXecI5VwYzeN5c7iRY/OW3pH3aTo2FobgySBo3jYdisbrNaURUseCG+pMKzT3TF1wmUAHbRNteaz11ADyIMa54lVsbPUOJFSl3bces5l5NAYXUWOJr5iyFF1n0IX2CnQ6mRmxWE6ZNDR2F41rSdYYrqeRzuGZfmyRs5UQNWlb202mWp//L85/aUCbnYjCl8AMjau2B7jvlyMsVs2lxOLSdS5KtKwVzaFwZhm SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:GGSnC2M38RMbB92jgHM+VXhh6HhiZAmDi3NO/hmetuRTl/VRSo4lc0O+i41Qtcou0CGT6p2NTFqLGwXjkgvUZoqeyYCr1eSPwkRdNLI+jqcyPE+h71HPKmNMBISPBWm2kSdsDaado0ZrBxnbtLGdbHRHfrcPRmXdkt7B1hQl4S4Fm2W42Q+tAEb5sjxCcHvkZk1SthvlP33F7raGv6KinOowFMyun9p6V4m2SmsS24eQ7Zf1N/115KfOiK+xBzEi X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:17.7602 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 58d82afe-a845-4b26-5135-08d5673fa4f9 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.87 Subject: [Qemu-devel] [PATCH v6 20/23] hw: i386: set ram_debug_ops when memory encryption is enabled 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When memory encryption is enabled, the guest RAM and boot flash ROM will contain the encrypted data. By setting the debug ops allow us to invoke encryption APIs when accessing the memory for the debug purposes. Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Cc: "Michael S. Tsirkin" Signed-off-by: Brijesh Singh --- hw/i386/pc.c | 9 +++++++++ hw/i386/pc_sysfw.c | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index ccc50baa85e0..ba451c0dc520 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1357,6 +1357,15 @@ void pc_memory_init(PCMachineState *pcms, e820_add_entry(0x100000000ULL, pcms->above_4g_mem_size, E820_RAM); } =20 + /* + * When memory encryption is enabled, the guest RAM will be encrypted = with + * a guest unique key. Set the debug ops so that any debug access to t= he + * guest RAM will go through the memory encryption APIs. + */ + if (kvm_memcrypt_enabled()) { + kvm_memcrypt_set_debug_ops(ram); + } + if (!pcmc->has_reserved_memory && (machine->ram_slots || (machine->maxram_size > machine->ram_size))) { diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c index 8ddbbf74d330..3d149b1c9f3c 100644 --- a/hw/i386/pc_sysfw.c +++ b/hw/i386/pc_sysfw.c @@ -180,6 +180,12 @@ static void pc_system_flash_init(MemoryRegion *rom_mem= ory) error_report("failed to encrypt pflash rom"); exit(1); } + + /* + * The pflash ROM is encrypted, set the debug ops so that = any + * debug accesses will use memory encryption APIs. + */ + kvm_memcrypt_set_debug_ops(flash_mem); } } } --=20 2.9.5 From nobody Fri May 3 09:48:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248818299605.4404953674995; Mon, 29 Jan 2018 10:00:18 -0800 (PST) Received: from localhost ([::1]:53784 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDj7-0003Uj-AC for importer@patchew.org; Mon, 29 Jan 2018 13:00:17 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49256) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRr-0005uw-3p for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRm-0003jP-Hd for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:27 -0500 Received: from mail-dm3nam03on060c.outbound.protection.outlook.com ([2a01:111:f400:fe49::60c]:43376 helo=NAM03-DM3-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 1egDRm-0003iz-CC for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:22 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:19 +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=ZRABnhubR/5Tu2MBO0ZkoAJjDbmTm5G+iXXJMg4k5IA=; b=wfhDX7T3dpNaaIbAoFMJYEv1HtCNIRChtMsR91Cq/CJlJhSiQ089zUeVRXOmtLHGBSEabXXBpGCznGid6qwhbDMzqkUoQqNsUgAohVtHKk3JXPCEjodYIiyANssQAoSYw7WOnQMFh+L7MC4/OaMclgy5jMQxqUFL3s6WomZAhzE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:30 -0600 Message-Id: <20180129174132.108925-22-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c3bb1dea-e826-474a-45bc-08d5673fa5f1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:i9fVn/h50f9Fy6V4WXvZKuMZF0sR+Ef3QkoaAatX93ykgY69yBY1l2U/LU80lgqrzrCD1N6V4CPS0v58Q4b84lkKR1l27rTdrrBXU43XGP5QgBvG3kRlcm+NpSuzJqabo39ZAxYumNzxVbn8OPnFaz0eEqNAlnaA2UOqsbMopiaqmwdwaOoL9+5Xy3fT7i85jQnlVSnmQR5EfQQRYcNy4UOn3ikjT9ixsItm1e5ULHCmdZKTGXCPZIDY9SVTeq5s; 25:6K2Ho0PgJPC7QvxJdSYtTcgWUiAP6fxkCRLaNqLmSG3+npn8fTviKEPv00jPRWmQawrfzuaEPGsjcOz+i9COTcEMOSkQ/aJ2MOQi774Ghoc9sXx37ZzRUTk9JEgPLQZjl6W/hfF6GPjsObTF/RVkWvn2KFLrGI6J3t8q9KFBmDmYyi/DVCTAqOV2V74iTy9D4LM3MDYPHAbHmaEI5/LZJm2HKHDsncFo29N8EDMAxisq940rxZED9KbOPDQnSOdB16skFXmlgL1gqh8lS/eIeth9m8v8G8LSQMn/4WiHViKLcHyJAImsC36XH4XdbEBvcRVQFw9WF0b+W/JOafbgbw==; 31:X3d8dcdtkmGhvBCtBx17pW3LMPtWe0l5DGJxS2t3PK7BpXOiEZGipn6PSeXkqywCr/hfvQj2E+XfpzBDHZkW9IQzjSzHsYNYFaQ7ijKgW/75C7tQLanHya5GBsK90loVQ/7UCu4ksd7wWmh3NZWry0MhaPp5xys92XSRKL4kSvRy2z1SzzIQZQeS4Wp+7JO1e+LtAIgxoH1xDj38q61Pm3Fz/ZW5CokATxOYyjLwdqY= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:lzUZq3RR+10+yGti09mFCmYcNy2k6rFRx/oWewJDB3z2YmzTHA9nZmQ3EG2WuT9QbX81VL1bIYMv1tPGhtSmR7O117B5qze27k0a0qyud9v8MJgCkvz7M+hUNQiWtz9Ds9t/SS6DzQiPDpPOj6Dqq6OnlCZD5w/s/QrO1fnWEa0hF6x1IP3f74sL8rJbFHiohEGlY48L2RffI3QBa+4xr4wdZ4qr68n8rku4oKN8DxE0JUMhppbcjUE8nRJf3Ib3SpjvfVcrdnLGtaSH4Fs6LrPPm766WCedlqyPSFKpIwC5iiI/ePMpuC9i4cisWEPZsqsoBtx0QMEiBpapXkLxI0IHQJUzqldGyOy1Xe53MfqWdy/XM5WMujh1L6cpVWqgYDykRC6qtrWBtnutGWuB/dkUPNkuztsuwadFGwqokCtVBa0oeSKoKAFyNtweQftTEjvvuig3wK8jYpbFo6nW24aW0R8/4ZeTZ0kAcVe9EXpPifKpzds/o1JEPMvxWmOH; 4:gGUb1gEw0vKr2bWjphLprrso3ggupt44AaYegBQIzupY8X7dsjfmt51e0V7DhwSlF+LMGhF3m6U8yqpY1Rl054RqxTDQ7yIT7qF62ybRVz6ojOknH1JJ5zISgfcuX3yURHfzvzAjWpUqREflqx0MpLcKkuPeG8HTFRAeLniiHiSnx4W7PtrWpZ2AUHr5pylKF5P3yePv74QHz4OC3YU83fypb9LrDPzUG8BY5OilUakltuXLGtLdo6w0oT0DDT1M9XeFuq3UGXslc3vz0r8R1wvOCWFj4DjXw1+oQa6OQ+RfQGSh1ZsAc4/HxQgt8gvhtB7Vw4mrcidmOax98s2v9Q== 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)(8121501046)(5005006)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:tD2TXxWmAlAamscwiKwqqBTkFrzs9GkeNK3+ubGRk?= =?us-ascii?Q?Dpj1Uo7+lITtoY3XfAEXyyl7GVwiwR/1w2sXYuaOknDUH494lwu5i5AJEV0y?= =?us-ascii?Q?pdFEr1del8Hw+TH3mMIdqfe3QZOFGVhbotS71xHLDrtapVUolJoBxl6dg93b?= =?us-ascii?Q?mwB8m1ThJoRp2bsWFSdWEKki19JHr8EojX9Fz5hevctJHlnGPZTqnW1aNQg9?= =?us-ascii?Q?Xer9yrdAdircpiCFG8yqDHqR+6fvz5nEZD3Wu8QDyK5RvgTXbxQt8AyspGn2?= =?us-ascii?Q?rVonkN1RMy2S49FuyLBRiDbvU4ycCCYplpRWQ7TLZcyigXPNHTsSppHopdtP?= =?us-ascii?Q?qmR9kGxX/QinRfQSKnsBmbJRFsXcjXfR+MOw0r2yMYW57v/qGbjBWiIzP4le?= =?us-ascii?Q?EeeM3ke0kb+BIVh5Y/vlVE4ra6kegCGR5lHqLbuPNS0+yfXGCZDt7Wjn111b?= =?us-ascii?Q?eELjEUVEZ2i4bhIT65qo9CulwcjfxJ4Peq1+skt8nnhlxm//+IrgIU5PE+BS?= =?us-ascii?Q?sy12DADNWedSknxHS3MoMqqVi/ecEbm6uxxVNU0fgX0eFOWQv//IarEw0mer?= =?us-ascii?Q?zTSi73V4b8p8N0H2ijEjVehtpckiqUN96yGk+gA/l1IGfvfnAHmrqQi7rVxe?= =?us-ascii?Q?LcW2pWUwyXoD6sH5xeDvwpC1WZDU/ZfNl0wiRmWs6xiXM4yI4nUoydTYHM+m?= =?us-ascii?Q?pJJH1b68XKldI8M8d81QAReokd2sDJzAMoY3SZLiy8YclHiPmuwtEug8LiAX?= =?us-ascii?Q?ktM3gJAS7VXoUTkQqlpYL1b1KIelI5rg9YdXYPvWH0u0pkFl+oZlzWACacPG?= =?us-ascii?Q?g6bLgEfRSRuno3nA1Oz1I3GLj8vMEnA52R2FTB7DYhySqNZv7mKYI/uQbXDx?= =?us-ascii?Q?QOGpSLERXMRFUcgNp1pUokKykJIy3aTJfCgQNQDKfDVJSJQoB5xnxxowt5eT?= =?us-ascii?Q?Ad7/FEqG0hUiAkReRLomZ/ASd78EqY0UWQiEZQ3DdS5h4e0t2TWKhTkxNygt?= =?us-ascii?Q?odyLH/5XfJC5o9fJ/BM68zD3Ygi9EfP0br/CKyb1b+eCM4C3eF4GNEG6FJ+a?= =?us-ascii?Q?c7E+nBineHYjtVfUX4sU4PnyYYcCiSBk54C5+4syqb33q/U6BOI8CqsvdTbs?= =?us-ascii?Q?X9vF2MhMn8lRCdSuKX4nAOjDcz07wKOOTOICxjdmeoJNcgsbOT/5lSLrjswH?= =?us-ascii?Q?Xp4bH7Qs+GhZPi7EOhVZIOh0r+CWYfNSHEOOKjjEjgSP0D6GYNnkYmljaMCF?= =?us-ascii?Q?Lhp8dCeKuGy9HtIMet39RY1PEueLxrPw0j5oRjEBKc/ViAJPTk3t05jZ4d6A?= =?us-ascii?Q?9fnZFyCHZm8rYtTAT2oJ80=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:9TBfs3P1vnQmBXLPuTeqia0l+h+6/ixvVfTvObV1bgz5+4S+pbGeLdi/iER+Bn8dG375DCSdb4tm6FhR9sQMIjmGz2S3cvsLyfY1Uw6uuvViybmVQ/isVDJ49CRzp+pOEKExuA7TJO+jZ9j6I4QxPMPMTWasRDUzu6PaZqGpiaNUxjbT7mvdNGDXjGDja99ngwYA/ZmpsZhEJVhn561d3kSoRSOOAF+1dT3xAFWkFHeikNzw5q7sRQuLOhaiWaig+HnrAxpGk7y0KO1ShXK1pwIqgAqe5Ae6kuxTYs9keQIntX2MPOUIrRJdwp0+Ror+RsD900MC/wyn2pqlYOXSi+56DV5bRFHVgTKsiY/Xklo=; 5:rUFGOb568LPGcOqZuH9esBsOrbTEyreypzjxb4bOX2Iwe6nNnwLPY5tzJM4NaGtZaC/Pk9qaO35whyHaAXt5sx3aG4aCGEXxbOJd4mlF7EolmC4OlGRRkN4j6osEo+tGDpt9i+RJro+5WOe7Kaif6aGqKaqvWOK6kAvUs4DI/yk=; 24:NSqjHrHIhW0R57WbLity08XOlcxnQeLU+UWYD/Dt/YDYkox5H64LSrSZoZdANtKuEUZUNTMSeMLU1MpJ9Z5zCpFBWd9bUXNLWn472uDUZKk=; 7:mJOedjjb0hY+bXMJ4jEs21uPTKAteJwdAueJWyjOYjmTkp2MWmM3Rj/q0j++y7zrm3NYz7siry0kUhFQSrsGRbxZp2yY1yYKfWv0xIwDHXzKlGDQWYY6ieYvzdAl8ZzAJnlHxs441HdH7FJ/aYdaoE3lQGzJW8P3SxZwx+TBDGK3U3YGvWGypvNjQsmOBP3gmqy8FtL/dHvBRECQ7rMkr5KRZherkmpvmKxaOTGYmy2OwwDzSOVTOQEWcg0GC3SC SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:y3AjWTf5eVEY76KT4KNFOUDF8H3gQdO7GFmH0rIsVpm5xwx/IJDSnS8c6/eZgNpn6qVojaWOU+L/a8vNdnWlf3MAo9kDVtzojxVQZGUcEIrAJQkfwOrryirpzry51lYveELYgfQZqz10o8QnFeoZya9ca8LFMnXeifLi4tAyk+KJINOf5nZHjSQqxaGSgphVpUUWscDZv9wfTlomTBeTuQQQCEpKHNz4RI+nWm8jqp03FhS/JhKQekiCZP0zZYap X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:19.4633 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c3bb1dea-e826-474a-45bc-08d5673fa5f1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 2a01:111:f400:fe49::60c Subject: [Qemu-devel] [PATCH v6 21/23] sev: add debug encrypt and decrypt commands 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" KVM_SEV_DBG_DECRYPT and KVM_SEV_DBG_ENCRYPT commands are used for decrypting and encrypting guest memory region. The command works only if the guest policy allows the debugging. Cc: Paolo Bonzini Cc: kvm@vger.kernel.org Signed-off-by: Brijesh Singh --- accel/kvm/kvm-all.c | 1 + accel/kvm/sev.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++= ++++ accel/kvm/trace-events | 1 + include/sysemu/sev.h | 1 + 4 files changed, 74 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index d35eebb97901..b069261de32a 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1677,6 +1677,7 @@ static int kvm_init(MachineState *ms) } =20 kvm_state->memcrypt_encrypt_data =3D sev_encrypt_data; + kvm_state->memcrypt_debug_ops =3D sev_set_debug_ops; } =20 ret =3D kvm_arch_init(ms, s); diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c index c227d7591c38..65d34c531ee5 100644 --- a/accel/kvm/sev.c +++ b/accel/kvm/sev.c @@ -23,9 +23,11 @@ =20 #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */ #define DEFAULT_SEV_DEVICE "/dev/sev" +#define GUEST_POLICY_DBG_BIT 0x1 =20 static int sev_fd; static SEVState *sev_state; +static MemoryRegionRAMReadWriteOps sev_ops; =20 #define SEV_FW_MAX_ERROR 0x17 =20 @@ -501,6 +503,50 @@ sev_vm_state_change(void *opaque, int running, RunStat= e state) } } =20 +static int +sev_dbg_enc_dec(uint8_t *dst, const uint8_t *src, uint32_t len, bool write) +{ + int ret, error; + struct kvm_sev_dbg *dbg; + dbg =3D g_malloc0(sizeof(*dbg)); + if (!dbg) { + return 1; + } + + dbg->src_uaddr =3D (unsigned long)src; + dbg->dst_uaddr =3D (unsigned long)dst; + dbg->len =3D len; + + trace_kvm_sev_debug(write ? "encrypt" : "decrypt", src, dst, len); + ret =3D sev_ioctl(write ? KVM_SEV_DBG_ENCRYPT : KVM_SEV_DBG_DECRYPT, + dbg, &error); + if (ret) { + error_report("%s (%s) %#llx->%#llx+%#x ret=3D%d fw_error=3D%d '%s'= ", + __func__, write ? "write" : "read", dbg->src_uaddr, + dbg->dst_uaddr, dbg->len, ret, error, + fw_error_to_str(error)); + } + + g_free(dbg); + return ret; +} + +static int +sev_mem_read(uint8_t *dst, const uint8_t *src, uint32_t len, MemTxAttrs at= trs) +{ + assert(attrs.debug); + + return sev_dbg_enc_dec(dst, src, len, false); +} + +static int +sev_mem_write(uint8_t *dst, const uint8_t *src, uint32_t len, MemTxAttrs a= ttrs) +{ + assert(attrs.debug); + + return sev_dbg_enc_dec(dst, src, len, true); +} + void * sev_guest_init(const char *id) { @@ -568,6 +614,31 @@ sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t = len) return 0; } =20 +void +sev_set_debug_ops(void *handle, MemoryRegion *mr) +{ + int policy; + SEVState *s =3D (SEVState *)handle; + + policy =3D object_property_get_int(OBJECT(s->sev_info), + "policy", &error_abort); + + /* + * Check if guest policy supports debugging + * Bit 0 : + * 0 - debug allowed + * 1 - debug is not allowed + */ + if (policy & GUEST_POLICY_DBG_BIT) { + return; + } + + sev_ops.read =3D sev_mem_read; + sev_ops.write =3D sev_mem_write; + + memory_region_set_ram_debug_ops(mr, &sev_ops); +} + static void sev_register_types(void) { diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events index 05038709acfc..cdb244a3071a 100644 --- a/accel/kvm/trace-events +++ b/accel/kvm/trace-events @@ -22,3 +22,4 @@ kvm_sev_launch_start(int policy, void *session, void *pdh= ) "policy 0x%x session kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRI= u64 kvm_sev_launch_measurement(const char *value) "data %s" kvm_sev_launch_finish(void) "" +kvm_sev_debug(const char *op, const uint8_t *src, uint8_t *dst, int len) "= (%s) src %p dst %p len %d" diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h index 572120c865ea..82cd73fe58e8 100644 --- a/include/sysemu/sev.h +++ b/include/sysemu/sev.h @@ -70,6 +70,7 @@ typedef struct SEVState SEVState; =20 void *sev_guest_init(const char *id); int sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len); +void sev_set_debug_ops(void *handle, MemoryRegion *mr); =20 #endif =20 --=20 2.9.5 From nobody Fri May 3 09:48:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248506439617.256245652022; Mon, 29 Jan 2018 09:55:06 -0800 (PST) Received: from localhost ([::1]:53717 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDe5-0007bN-Hu for importer@patchew.org; Mon, 29 Jan 2018 12:55:05 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49276) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRt-0005xQ-Ig for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRp-0003mG-Ge for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:29 -0500 Received: from mail-dm3nam03on0070.outbound.protection.outlook.com ([104.47.41.70]:22464 helo=NAM03-DM3-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 1egDRp-0003ko-1Y for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:25 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:21 +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=VicULQEp07AxJLBRA0+wcgnbxTeOYvPh2LjOq3uzn1I=; b=kO+jQkgwqgRNj4aAZjU1mMM9x8ZgfDKgCbP3r1jo2TK14sJVsrk74eWSQWq5Xenb/nv0RPxgYcTCYLa9aJVnk1hKLtTzA/7R61GkuimahDFfGgWZDg7HC5drwvktoQjRY0KQ1DMS5TYre/wiDHx/AFFvdoUMU15Mks85UHS9hnk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:31 -0600 Message-Id: <20180129174132.108925-23-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 028acd86-cac2-4121-3a3d-08d5673fa6e9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:b7GXdzUuA0nHF9a+uqVI/KJg6YRdSmQZlQQRSgK+maQfusKYvsSABYkNl0fVoZan0KU1wnceE4WpdJKomhwK5rUA+ju1coVLMf4ebKhxXssX8V0u9rgrPslGHlkBTxeQdS05nWOqkXZKjZEmjEw4dKY9veE6wWFPAF/33J87YZ4HZ8DkZL2eeLMubQfKrIVGOxcnquEQcVU7PkKftJkbEhNaAa77COG5wPS8F/vTYKeh8RXW73319XA4E8K/VP9U; 25:GsmoNxzXr8PfiRYwC1SH0o/djx3m1AIep2MPgEWJjL2RJR0d2qkkN3kRkNzDQYhcr3ibYq3mfoLHqQzyd/bOhZHrTrdmE1c1VqykcIq2NwrMYKnS6iPq9U9PxEQz16sLX0N8Bac4MP7/7MGsbhzIObSBGeXwaLpoJVDBK/lj2zde4nMYYDSnFQnW9EYINK0f85DKv15H7VQNjQaw42RG89DcntD3mXtB8/62HEJLZNhvHIFYXi4uSEWbYblqTqO1Uxh87GECEB80Z9PypbemME2y89xW3IiLX6wemUtwJgdK3qokM7/dg+JMxnI/yUIqQVZHGBkF4wvwbCeM4QC7zw==; 31:H16lHFN6NYPkEvPRHkvKPEV+s+q+FNMASF9bMN0pKEicpki12VigrqBclXd2pCgjCygHcDCygTP77dV15nsGSyGYgkkaijSxrYyIIdfQhIKWKM0a54TenoQEo+ikshbuQl+cC2AZmxCjMjW+g2r1XQzbxqpO/trKOlAC/d4cBUYfokSV70TX9BQmFDd6hJ1X8nXXbrvgawwdMxRX/TDIzsY5vjUulj0WVIu0fUmkDPA= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:JMDQ8Jjiz5zzRFTcqq7z2bYHAdkIauqBrI4127yxxKteLEOt0homlT3r5GZusm+9/4qc0CNFsgD9QZnTpgOc0NN/grrLyN23RHp7C9S7pUK9pJaOFJF7tOCMOgSDZvErPpk/GU/fYGMLweptgM++12LQDNjYcMprgREPO/jtzhUSim+tcXvW2pJCNcrLXr/HD3sHY87bas0ztPKGC6qnBPx+C8ay8GRpH81ma3omNBaZNIosh595NeZgzeKKkOkX+BV+Q54TlP11JfHLHz25VX7uQUi0zmJ4E29EzqQC3PF2nQh8r5Avla9tRwNnqo0HLyiPTpkZbbyR2DtbvnDFgziIfjbORfSBREXI89Nf3lc1iYUyWMZ3fARv/bdsCBO+MAMQQWFCVI4cSFbEGImwMWqlsYkcM2ed+OSPp3U5WZDL01ItagtafejgtUO8O6iw/6Z6vQPxh02ADp+wqcwRiQI/KbvZc1HtVGGZpItW08rtT/9NAy5JFxPrKgz4wDXF; 4:XovDxsq9cRsMpPVpXIOD/XbUHJ2ELwF4377HXzeqqNoChYTOxhcEphentBFIDpAKPCoh3073HGQSf4l8P8szbqJw58Aj1L66GECgsodgJcSAuwKQsOx+QgKIoIobekUECRH4vlsGc7c2eeHC4k8RvoIlOqRaUa8GaPg7G3OKKPCqonidERp/d6Q/f9XWlzw6t0RCxa+4SFowzZbo/hpgGh44rISX3/okfWnh+myb0DWdVQgiKhsC44rDGAxjoMGHMbHwtWOI9zP0TGCk/oaxlMDzyxaLdXsyKi7Q++0tAY6NpaLgAuPeeV8Eqr/CgWV+ 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(1496009)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(59450400001)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:OxU8ZIvqptv32eVkg4zEL+Ij1Nzd6CRlTg+fqzGv7?= =?us-ascii?Q?ugSxsdjNjpKXXgCc0EnYM6cG3cWNWWF0LVra9SbNwba13SnlXsE1XuWllBaD?= =?us-ascii?Q?NsJPyz3CYpFJq6EauH9uDElNDOJqyy13bSyWFkqG+H8ZEfBarK81GztzTUOO?= =?us-ascii?Q?cyJjCb/xUCqoSjnKNvgogk7EnF5+BmKNlwF9V0KLW4vbN3kBXYFEftGmFwTF?= =?us-ascii?Q?/AoOEoIIurVwr5Ogzhgsx3lH/B3CbB9d/5IZjPCdFbrfydc/E+tmsCg88bIv?= =?us-ascii?Q?lF55fW+e6cmYx55hSO/zb30MTAAHWwOqvHFqYot3hXoPuBL3jKIP50i5Si42?= =?us-ascii?Q?YpgI8XfZAuyWCE9iS0clFJHdB2qXvthCikNmXVMMipugT5CO9XSzbmItLhvo?= =?us-ascii?Q?YJS/Tt6ig4vcQFsb7u9sWl/lLkH98KsggWVAtQ/ZeEW3/LZ04H6EJ98xRjoq?= =?us-ascii?Q?Vi6sqWYvE+fxtCnurDT566Frm4FnPE93Ba0J2fOEq+k3ThP0W5Z73DVrTKXJ?= =?us-ascii?Q?83cURsdwTLFJjP9RE4gKwzyuCpuGzEImSnZsi0p0HrDaBsdYqmCsIkcJkRNy?= =?us-ascii?Q?egeyp2dP91wFDXTUzUw2GqEO8QzmPR/+XG1KjjwJxFR9FspFOSwwpGdCJ+TU?= =?us-ascii?Q?DxrS0gcevGvNS6nFRkq3cZqZhya+AdgmS5/AI+lW3PP0SHfHW25CR050ywHh?= =?us-ascii?Q?E3dpP2syvJZzYGR6G1oFigxQIa2NXzDJpeO/GhTpLdJC2NyGIV/5l+HDPxvG?= =?us-ascii?Q?cnzpU8QWlNEYVOcaYJuwfhc/M3uGSyu3R8LgT0ERem5/wL8Tf2ee2teqnOJ4?= =?us-ascii?Q?LbEsVtOGz0g1R8W8CL2440wEuysTvX2MPm6Sd/VPwwPoUcuutUz77n3UY2Yr?= =?us-ascii?Q?52GUjYj9eKB53XJ9RSVBrKAlJzPOOaaPbwSkzxVDeQny+0GzzizP/qqG8oCn?= =?us-ascii?Q?M6BISdLwNRStLJ6mY8RdvL9gOaWtFOjX0QX1s1eWUvsVIWUtcVbALMM2m6FL?= =?us-ascii?Q?AdqTb75H8Ly5y01wpVf+LQ048RkoXTGP0akf/eF0fPKMnB0AV4Xs7/fAf1Cu?= =?us-ascii?Q?uy4T+0oJdzNzH2E+9TSEi1SnzKrthhhdJtIR3yfU0NU5iFJmA+6Ei0Mc5Yy2?= =?us-ascii?Q?qh2JPq21HmSIfY483EKIuowjfaUaT16KK2bATa22uQ4cMZVd7AIcdiK8qUSz?= =?us-ascii?Q?BBTw+njPw1PYejJi0aUrvczTY0g/1xU5H3xqJ4tww/DfYPZwlDz2FYWKCI60?= =?us-ascii?Q?1UkX+Lf9yLLaZudbGokxJyPZbykZ+Bi9cV6CAliO3ASv+E4PoVb+nXVyW2iu?= =?us-ascii?Q?gjV64r/blwln2dcJ6uSIuA5eB3W+IyEYypFgsMVMJy0DzIXFvcMi8g6OtQye?= =?us-ascii?Q?GDXYo+IsIPQux/WfESntM5L7w5NZfQ3wO4zYMjSX+mLDCn0?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:snREEgrswXhBH78fEmtGlVUHW3F0cfdJ8xdS1etVRkfPOZqKL0XrTVNBwWeB+v6UDuzggEQV6+tX2wcga3jMVL/XrqsRfAiSnU2Cu8xVX/TqBxBgMI+L1GpFKaVRhk5Bzw+47/HNvI7HfT2vHE06KE4Nw657IZIaDo8wV/CAQb5DnOVmujzoRXNu7FLD1pTa7Unqhdv+f+hJ0A8QWiKf+1Vhd5BONjSIPazicMq0G2iyzJmrCyVrEH3mSmfG01eX4WcEK8qOozpc5XsrQQt11ciWYXp6naD5KR4VMomDqRu7Tvm6+1giSNk7Q8kPICPgXyX2V9q0SXtoKhGLox1ElqLpsjKRbsppTUESkEG6EA0=; 5:8aMxxTROg3SRmFL+19i4yMOl3vcM/2HSrj7xj9U+dN7nBomIpXW2Aq+3QhRexWcx9/WiksQjGBiuHCJki5jNhTwVcGYg79lbCAjWHH6R9/rFmapv1bmeKyxliqwN9WalSxGSxaKtvfMxiv2XxKQAtVYuNLY0vKinRGFZgK6aPgE=; 24:jFbFpehwk/+x0wvnK9TNJ62o6oiAgziaSJCfNgHruonqy9ZX9VWCqyPpIeVCZlOK6pPZETk6cULawcJWkWvxgPFXTq2c+tBuQXZlb99XuUE=; 7:IevvhX/FDoZ6EAqCm7ZZVoJOeyR1/VOrWwdPczskx91UgTvAhnhapISKNqgnWfn2do1pl/EfXqUa+dCqdwmkSji//UwXUXrSpTKg6hRAEuCPyQTZDQmgJbkZPvTokL2BzTEX0/RLqQJJM12geGKaKJIEsnmdmM6SeK+nyOuxb0t4by9yS/qNDcGPC38AldP3F7O3uHcYE44PpBCS36juBwKJ5ofuzYIOrz7e7O7UhACNk0vhvuCJzq3IAhybVJ0/ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:dyyTOn+HlJWnwoRLnqueLNetrpFB8eebOyT5EBTT8NO/2ww0VLxgKuSKUdirzYx/vsu98c1wEFX90PxsByE2/J9NOaT7o2puSxt8cZ5T0jcR+Fh2Qyhaa9X4fplMqu7HgjDu0kGQBic9B5fPD7B6nmeT11+irJKO1jMxW/f+NsoAiV+4DouW0gZkDODIGMKw3vmH/tDSFoYCynwcbN3qox9Pi5aHGBDv2AMEQrsInZvd2CcljygbM3pBCeleP4d6 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:21.0258 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 028acd86-cac2-4121-3a3d-08d5673fa6e9 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.70 Subject: [Qemu-devel] [PATCH v6 22/23] target/i386: clear C-bit when walking SEV guest page table 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In SEV-enabled guest the pte entry will have C-bit set, we need to clear the C-bit when walking the page table. The C-bit position should be available in cpuid Fn8000_001f[EBX] Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Signed-off-by: Brijesh Singh --- target/i386/helper.c | 46 +++++++++++++++++++-------- target/i386/monitor.c | 86 ++++++++++++++++++++++++++++++++++++-----------= ---- 2 files changed, 94 insertions(+), 38 deletions(-) diff --git a/target/i386/helper.c b/target/i386/helper.c index 5dc9e8839bc8..7dbbb9812950 100644 --- a/target/i386/helper.c +++ b/target/i386/helper.c @@ -723,6 +723,22 @@ void cpu_x86_update_cr4(CPUX86State *env, uint32_t new= _cr4) } =20 #if !defined(CONFIG_USER_ONLY) +static uint64_t get_me_mask(void) +{ + uint64_t me_mask =3D 0; + + /* + * When SEV is active, Fn8000_001F[EBX] Bit 0:5 contains the C-bit pos= ition + */ + if (kvm_memcrypt_enabled()) { + uint32_t pos; + pos =3D kvm_arch_get_supported_cpuid(kvm_state, 0x8000001f, 0, R_E= BX); + me_mask =3D (1UL << (pos & 0x3f)); + } + + return ~me_mask; +} + hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr) { X86CPU *cpu =3D X86_CPU(cs); @@ -732,6 +748,9 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr = addr) int32_t a20_mask; uint32_t page_offset; int page_size; + uint64_t me_mask; + + me_mask =3D get_me_mask(); =20 a20_mask =3D x86_get_a20_mask(env); if (!(env->cr[0] & CR0_PG_MASK)) { @@ -755,25 +774,25 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vadd= r addr) } =20 if (la57) { - pml5e_addr =3D ((env->cr[3] & ~0xfff) + + pml5e_addr =3D ((env->cr[3] & ~0xfff & me_mask) + (((addr >> 48) & 0x1ff) << 3)) & a20_mask; - pml5e =3D ldq_phys_debug(cs, pml5e_addr); + pml5e =3D ldq_phys_debug(cs, pml5e_addr) & me_mask; if (!(pml5e & PG_PRESENT_MASK)) { return -1; } } else { - pml5e =3D env->cr[3]; + pml5e =3D env->cr[3] & me_mask; } =20 pml4e_addr =3D ((pml5e & PG_ADDRESS_MASK) + (((addr >> 39) & 0x1ff) << 3)) & a20_mask; - pml4e =3D ldq_phys_debug(cs, pml4e_addr); + pml4e =3D ldq_phys_debug(cs, pml4e_addr) & me_mask; if (!(pml4e & PG_PRESENT_MASK)) { return -1; } pdpe_addr =3D ((pml4e & PG_ADDRESS_MASK) + (((addr >> 30) & 0x1ff) << 3)) & a20_mask; - pdpe =3D x86_ldq_phys(cs, pdpe_addr); + pdpe =3D ldq_phys_debug(cs, pdpe_addr) & me_mask; if (!(pdpe & PG_PRESENT_MASK)) { return -1; } @@ -786,16 +805,16 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vadd= r addr) } else #endif { - pdpe_addr =3D ((env->cr[3] & ~0x1f) + ((addr >> 27) & 0x18)) & - a20_mask; - pdpe =3D ldq_phys_debug(cs, pdpe_addr); + pdpe_addr =3D ((env->cr[3] & ~0x1f & me_mask) + ((addr >> 27) = & 0x18)) + & a20_mask; + pdpe =3D ldq_phys_debug(cs, pdpe_addr) & me_mask; if (!(pdpe & PG_PRESENT_MASK)) return -1; } =20 pde_addr =3D ((pdpe & PG_ADDRESS_MASK) + (((addr >> 21) & 0x1ff) << 3)) & a20_mask; - pde =3D ldq_phys_debug(cs, pde_addr); + pde =3D ldq_phys_debug(cs, pde_addr) & me_mask; if (!(pde & PG_PRESENT_MASK)) { return -1; } @@ -808,7 +827,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr = addr) pte_addr =3D ((pde & PG_ADDRESS_MASK) + (((addr >> 12) & 0x1ff) << 3)) & a20_mask; page_size =3D 4096; - pte =3D ldq_phys_debug(cs, pte_addr); + pte =3D ldq_phys_debug(cs, pte_addr) & me_mask; } if (!(pte & PG_PRESENT_MASK)) { return -1; @@ -817,8 +836,9 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr = addr) uint32_t pde; =20 /* page directory entry */ - pde_addr =3D ((env->cr[3] & ~0xfff) + ((addr >> 20) & 0xffc)) & a2= 0_mask; - pde =3D ldl_phys_debug(cs, pde_addr); + pde_addr =3D ((env->cr[3] & ~0xfff & me_mask) + ((addr >> 20) & 0x= ffc)) + & a20_mask; + pde =3D ldl_phys_debug(cs, pde_addr) & me_mask; if (!(pde & PG_PRESENT_MASK)) return -1; if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) { @@ -827,7 +847,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr = addr) } else { /* page directory entry */ pte_addr =3D ((pde & ~0xfff) + ((addr >> 10) & 0xffc)) & a20_m= ask; - pte =3D ldl_phys_debug(cs, pte_addr); + pte =3D ldl_phys_debug(cs, pte_addr) & me_mask; if (!(pte & PG_PRESENT_MASK)) { return -1; } diff --git a/target/i386/monitor.c b/target/i386/monitor.c index 96890547f6b4..0b290f004a21 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -59,6 +59,22 @@ static void print_pte(Monitor *mon, CPUArchState *env, h= waddr addr, pte & PG_RW_MASK ? 'W' : '-'); } =20 +static uint64_t get_me_mask(void) +{ + uint64_t me_mask =3D 0; + + /* + * When SEV is active, Fn8000_001F[EBX] Bit 0:5 contains the C-bit pos= ition + */ + if (kvm_memcrypt_enabled()) { + uint32_t pos; + pos =3D kvm_arch_get_supported_cpuid(kvm_state, 0x8000001f, 0, R_E= BX); + me_mask =3D (1UL << (pos & 0x3f)); + } + + return ~me_mask; +} + static void tlb_info_32(Monitor *mon, CPUArchState *env) { unsigned int l1, l2; @@ -93,16 +109,20 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState = *env) unsigned int l1, l2, l3; uint64_t pdpe, pde, pte; uint64_t pdp_addr, pd_addr, pt_addr; + uint64_t me_mask; + + me_mask =3D get_me_mask(); =20 pdp_addr =3D env->cr[3] & ~0x1f; + pdp_addr &=3D me_mask; for (l1 =3D 0; l1 < 4; l1++) { cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8); - pdpe =3D le64_to_cpu(pdpe); + pdpe =3D le64_to_cpu(pdpe & me_mask); if (pdpe & PG_PRESENT_MASK) { pd_addr =3D pdpe & 0x3fffffffff000ULL; for (l2 =3D 0; l2 < 512; l2++) { cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8); - pde =3D le64_to_cpu(pde); + pde =3D le64_to_cpu(pde & me_mask); if (pde & PG_PRESENT_MASK) { if (pde & PG_PSE_MASK) { /* 2M pages with PAE, CR4.PSE is ignored */ @@ -113,7 +133,7 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *= env) for (l3 =3D 0; l3 < 512; l3++) { cpu_physical_memory_read_debug(pt_addr + l3 * = 8, &pte, 8); - pte =3D le64_to_cpu(pte); + pte =3D le64_to_cpu(pte & me_mask); if (pte & PG_PRESENT_MASK) { print_pte(mon, env, (l1 << 30) + (l2 << 21) + (l3 << 12), @@ -135,10 +155,13 @@ static void tlb_info_la48(Monitor *mon, CPUArchState = *env, uint64_t l1, l2, l3, l4; uint64_t pml4e, pdpe, pde, pte; uint64_t pdp_addr, pd_addr, pt_addr; + uint64_t me_mask; + + me_mask =3D get_me_mask(); =20 for (l1 =3D 0; l1 < 512; l1++) { cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8); - pml4e =3D le64_to_cpu(pml4e); + pml4e =3D le64_to_cpu(pml4e & me_mask); if (!(pml4e & PG_PRESENT_MASK)) { continue; } @@ -146,7 +169,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *e= nv, pdp_addr =3D pml4e & 0x3fffffffff000ULL; for (l2 =3D 0; l2 < 512; l2++) { cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8); - pdpe =3D le64_to_cpu(pdpe); + pdpe =3D le64_to_cpu(pdpe & me_mask); if (!(pdpe & PG_PRESENT_MASK)) { continue; } @@ -161,7 +184,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *e= nv, pd_addr =3D pdpe & 0x3fffffffff000ULL; for (l3 =3D 0; l3 < 512; l3++) { cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde, 8); - pde =3D le64_to_cpu(pde); + pde =3D le64_to_cpu(pde & me_mask); if (!(pde & PG_PRESENT_MASK)) { continue; } @@ -176,7 +199,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *e= nv, pt_addr =3D pde & 0x3fffffffff000ULL; for (l4 =3D 0; l4 < 512; l4++) { cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte,= 8); - pte =3D le64_to_cpu(pte); + pte =3D le64_to_cpu(pte & me_mask); if (pte & PG_PRESENT_MASK) { print_pte(mon, env, (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21) + (l4 << 12), @@ -193,11 +216,14 @@ static void tlb_info_la57(Monitor *mon, CPUArchState = *env) uint64_t l0; uint64_t pml5e; uint64_t pml5_addr; + uint64_t me_mask; + + me_mask =3D get_me_mask(); =20 - pml5_addr =3D env->cr[3] & 0x3fffffffff000ULL; + pml5_addr =3D env->cr[3] & 0x3fffffffff000ULL & me_mask; for (l0 =3D 0; l0 < 512; l0++) { cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8); - pml5e =3D le64_to_cpu(pml5e); + pml5e =3D le64_to_cpu(pml5e & me_mask); if (pml5e & PG_PRESENT_MASK) { tlb_info_la48(mon, env, l0, pml5e & 0x3fffffffff000ULL); } @@ -225,7 +251,8 @@ void hmp_info_tlb(Monitor *mon, const QDict *qdict) if (env->cr[4] & CR4_LA57_MASK) { tlb_info_la57(mon, env); } else { - tlb_info_la48(mon, env, 0, env->cr[3] & 0x3fffffffff000ULL= ); + tlb_info_la48(mon, env, 0, env->cr[3] & 0x3fffffffff000ULL= & + get_me_mask()); } } else #endif @@ -309,19 +336,22 @@ static void mem_info_pae32(Monitor *mon, CPUArchState= *env) uint64_t pdpe, pde, pte; uint64_t pdp_addr, pd_addr, pt_addr; hwaddr start, end; + uint64_t me_mask; =20 - pdp_addr =3D env->cr[3] & ~0x1f; + me_mask =3D get_me_mask(); + + pdp_addr =3D env->cr[3] & ~0x1f & me_mask; last_prot =3D 0; start =3D -1; for (l1 =3D 0; l1 < 4; l1++) { cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8); - pdpe =3D le64_to_cpu(pdpe); + pdpe =3D le64_to_cpu(pdpe & me_mask); end =3D l1 << 30; if (pdpe & PG_PRESENT_MASK) { pd_addr =3D pdpe & 0x3fffffffff000ULL; for (l2 =3D 0; l2 < 512; l2++) { cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8); - pde =3D le64_to_cpu(pde); + pde =3D le64_to_cpu(pde & me_mask); end =3D (l1 << 30) + (l2 << 21); if (pde & PG_PRESENT_MASK) { if (pde & PG_PSE_MASK) { @@ -333,7 +363,7 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *= env) for (l3 =3D 0; l3 < 512; l3++) { cpu_physical_memory_read_debug(pt_addr + l3 * = 8, &pte, 8); - pte =3D le64_to_cpu(pte); + pte =3D le64_to_cpu(pte & me_mask); end =3D (l1 << 30) + (l2 << 21) + (l3 << 12); if (pte & PG_PRESENT_MASK) { prot =3D pte & pde & (PG_USER_MASK | PG_RW= _MASK | @@ -366,19 +396,22 @@ static void mem_info_la48(Monitor *mon, CPUArchState = *env) uint64_t l1, l2, l3, l4; uint64_t pml4e, pdpe, pde, pte; uint64_t pml4_addr, pdp_addr, pd_addr, pt_addr, start, end; + uint64_t me_mask; + + me_mask =3D get_me_mask(); =20 - pml4_addr =3D env->cr[3] & 0x3fffffffff000ULL; + pml4_addr =3D env->cr[3] & 0x3fffffffff000ULL & me_mask; last_prot =3D 0; start =3D -1; for (l1 =3D 0; l1 < 512; l1++) { cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8); - pml4e =3D le64_to_cpu(pml4e); + pml4e =3D le64_to_cpu(pml4e & me_mask); end =3D l1 << 39; if (pml4e & PG_PRESENT_MASK) { pdp_addr =3D pml4e & 0x3fffffffff000ULL; for (l2 =3D 0; l2 < 512; l2++) { cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8= ); - pdpe =3D le64_to_cpu(pdpe); + pdpe =3D le64_to_cpu(pdpe & me_mask); end =3D (l1 << 39) + (l2 << 30); if (pdpe & PG_PRESENT_MASK) { if (pdpe & PG_PSE_MASK) { @@ -391,7 +424,7 @@ static void mem_info_la48(Monitor *mon, CPUArchState *e= nv) for (l3 =3D 0; l3 < 512; l3++) { cpu_physical_memory_read_debug(pd_addr + l3 * = 8, &pde, 8); - pde =3D le64_to_cpu(pde); + pde =3D le64_to_cpu(pde & me_mask); end =3D (l1 << 39) + (l2 << 30) + (l3 << 21); if (pde & PG_PRESENT_MASK) { if (pde & PG_PSE_MASK) { @@ -405,7 +438,7 @@ static void mem_info_la48(Monitor *mon, CPUArchState *e= nv) cpu_physical_memory_read_debug(pt_= addr + l4 * 8, &pte, 8); - pte =3D le64_to_cpu(pte); + pte =3D le64_to_cpu(pte & me_mask); end =3D (l1 << 39) + (l2 << 30) + (l3 << 21) + (l4 << 12); if (pte & PG_PRESENT_MASK) { @@ -444,13 +477,16 @@ static void mem_info_la57(Monitor *mon, CPUArchState = *env) uint64_t l0, l1, l2, l3, l4; uint64_t pml5e, pml4e, pdpe, pde, pte; uint64_t pml5_addr, pml4_addr, pdp_addr, pd_addr, pt_addr, start, end; + uint64_t me_mask; + + me_mask =3D get_me_mask(); =20 - pml5_addr =3D env->cr[3] & 0x3fffffffff000ULL; + pml5_addr =3D env->cr[3] & 0x3fffffffff000ULL & me_mask; last_prot =3D 0; start =3D -1; for (l0 =3D 0; l0 < 512; l0++) { cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8); - pml5e =3D le64_to_cpu(pml5e); + pml5e =3D le64_to_cpu(pml5e & me_mask); end =3D l0 << 48; if (!(pml5e & PG_PRESENT_MASK)) { prot =3D 0; @@ -461,7 +497,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) pml4_addr =3D pml5e & 0x3fffffffff000ULL; for (l1 =3D 0; l1 < 512; l1++) { cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8); - pml4e =3D le64_to_cpu(pml4e); + pml4e =3D le64_to_cpu(pml4e & me_mask); end =3D (l0 << 48) + (l1 << 39); if (!(pml4e & PG_PRESENT_MASK)) { prot =3D 0; @@ -472,7 +508,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) pdp_addr =3D pml4e & 0x3fffffffff000ULL; for (l2 =3D 0; l2 < 512; l2++) { cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8= ); - pdpe =3D le64_to_cpu(pdpe); + pdpe =3D le64_to_cpu(pdpe & me_mask); end =3D (l0 << 48) + (l1 << 39) + (l2 << 30); if (pdpe & PG_PRESENT_MASK) { prot =3D 0; @@ -491,7 +527,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) pd_addr =3D pdpe & 0x3fffffffff000ULL; for (l3 =3D 0; l3 < 512; l3++) { cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde,= 8); - pde =3D le64_to_cpu(pde); + pde =3D le64_to_cpu(pde & me_mask); end =3D (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << = 21); if (pde & PG_PRESENT_MASK) { prot =3D 0; @@ -510,7 +546,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) pt_addr =3D pde & 0x3fffffffff000ULL; for (l4 =3D 0; l4 < 512; l4++) { cpu_physical_memory_read_debug(pt_addr + l4 * 8, &= pte, 8); - pte =3D le64_to_cpu(pte); + pte =3D le64_to_cpu(pte & me_mask); end =3D (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21) + (l4 << 12); if (pte & PG_PRESENT_MASK) { --=20 2.9.5 From nobody Fri May 3 09:48:26 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1517248758398312.56019885150795; Mon, 29 Jan 2018 09:59:18 -0800 (PST) Received: from localhost ([::1]:53751 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDi4-0002Zq-Fa for importer@patchew.org; Mon, 29 Jan 2018 12:59:12 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49280) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1egDRu-0005xt-2Y for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1egDRp-0003mV-Um for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:30 -0500 Received: from mail-dm3nam03on0070.outbound.protection.outlook.com ([104.47.41.70]:22464 helo=NAM03-DM3-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 1egDRp-0003ko-Mb for qemu-devel@nongnu.org; Mon, 29 Jan 2018 12:42:25 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 17:42:22 +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=He3ye0BXxvloDA7WyWbg9sx0ZAKGHhTLETyFVYz+0B0=; b=cJm2nnahaOdB/GixuThsoFSfRsRhEo0vGQN2vYS1nyzdF3WejUz3A9DjqdJaXSoF310nXbWW5js6rU137mYre5lazSCgUOJGtwjH5Pk2b7Lhc+ACanosS7AEKUzQfzi9jMykV3loUVmGTXBDIIpku1aUHKz4lJrpVvOUyqipsOA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 29 Jan 2018 11:41:32 -0600 Message-Id: <20180129174132.108925-24-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180129174132.108925-1-brijesh.singh@amd.com> References: <20180129174132.108925-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0018.namprd17.prod.outlook.com (2603:10b6:404:65::28) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: af733b55-f232-44c5-cc73-08d5673fa7de X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:IC/NdrxrgsK1x/jCIFbAJ20Q7cyFuAzAcKxbofMhj0Lfww/3oSsmfc1TCw1xSb7UiJ+3pruhboQetaGydoYQzjzpEBuAQJMHZY7xIo9sfhgtoeIKjj58UAl14J6I0eysml9Yupn5RZWcvJsJVDaC4qbGqP4wh8hOCa3IVaR+qsdYHFdIOu5PWoX7BDak7G+eLXxcdU8vJjFRo4xQPzoZbkIDmfkpcXzpPaUwV7Zu3rvsOUOGWujG7fj51xSwN58w; 25:fl7XHRvvGC7CLt2MBdh9Lob2Xm5aM1AVjOQZxYjs0xDJi1b4h4xxlgtU4XdPmHue9YT2jj3Wavs0bEWaXkf1QxwTTr4j5LtyibskQQs1DX+cCx89TyuSUwYFqQbzMO229QORq/KCu9bRAGzWFBwjo9bZG3RjjVNjUYUtu275njIWs2tZRpV4AdvqgwAOlsb9JooU0yZfqm+W7iOxxWzks8rfdg51jwkPKb9aHflTZ6b/s4kx2TfEW4WHQAh5xfti/VmCPU8I8H6TS2FQyYXF4w9+3ZV8BwEwi9o6XhvMYfVDTS1A/Sekjg6R/awNSNSvMDlu82U6Oh348Q2O/cajtg==; 31:v9rIQ6kGca+b12woDActjIozrAI/Q1XmcAVYyMebOURCjn862Og3+eTceomk62jtpsm1q5BJ7+hflUG82vJJmbq7fO56g2DvSfObfCtT7ku15Ma4HP4/ieGl9xQhrxwDqni/unZf+eQeQ2jwndkGzRRbfQBSDBIQ55H2Y5zTwEmJMwDrI3Ihu1V+jsh0dT3a8fxzatUPU4f3EtnG8AzQrm33AA66TsQPtmHZmSWexgs= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:CVixsQcsK6QAO4ujmgVIlIbABZhGeRfeJaxv8iDih35ddeWgizMZ/ucVrdzsNzCRa9kQdQHvSv40i4qgPtzi+jxQPiNMyaMzmWqVN86G594eraf2APy3k5FoOAN4dB6pn/9ixo63ws8F5elVrcTW1U3Muv7sCAha8l7ix2mZJlL7g0xpz+AD6zRaHI5okxlrCyFKJ1U3i4q581WbDwfIQVE7CZ55lTeaiPQlUnlPaiHJDGc9BwW4Rw+jjlHH6vzAvjhq2yROf2wLVm3/gAbP4njgwULIWiI3kriOYoeHdlz3Djp1AmAQ++nUGuUi9p0RlG1/3LUYSx3syCEQzhK3vli+yEu1lCL0VrnL329i+63VO5zlIU8ZR6okx7eLGVMS+8TxlhtoiTj3abauahlgL9i9hPLmxN5ihJzPFRSBUI6VGKWFVEHEmG5TBpAgpoibHRkaaijCK/rOpMKXhp8Mc6ygE0BbZWlyrCDEYWOKmgfx/iGcd+R87SAZzvngZ/52; 4:FThAXwJTmhzEucLHB/W2Crq8UGj7Qrfzjdr08inCiONJmV27UQtIUQ3uk5SWvupUfFYnO+YDMOeFbdeVZOtcQfnn9ZU2tvZN22ZdP85mjyFvGt5BCb+zCEHlxJjBgM39i/0k7hl6jWyK9J9uHWM9NEEgft2LmxIURrM8I4a1oC55ZZ1pZPrVdLwFENIrSs9XonoQKhQ20rtvtKToj0d/EDOLe/AgWxqlksEl1wNwHT0KlRO+9YvCXWlGDYloHdTff1kfM22VVFplYxWQADp/4pEvcooCtP4WQSbKjoYLiv6Jkt+ar8szD/qoePH+InwU 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)(10201501046)(3231101)(944501161)(93006095)(93001095)(3002001)(6055026)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0154; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39860400002)(376002)(39380400002)(396003)(366004)(346002)(199004)(189003)(48376002)(8656006)(39060400002)(4326008)(6486002)(68736007)(36756003)(478600001)(26005)(97736004)(16526019)(53936002)(386003)(50466002)(86362001)(25786009)(8666007)(16586007)(54906003)(186003)(47776003)(316002)(7416002)(305945005)(7696005)(105586002)(106356001)(76176011)(51416003)(2906002)(81156014)(66066001)(81166006)(8676002)(2361001)(53416004)(3846002)(50226002)(52116002)(6116002)(2351001)(1076002)(8936002)(7736002)(6666003)(6916009)(5660300001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:xSshaP72R7CvrmVMR6tVtU1LyE75Hu9KTAasIO/4j?= =?us-ascii?Q?hXLyi6yMDcRxR5HUXGBQV70CFUhebZdyVY+kqnbkQNxkxGy8gxNkw2E62VJ1?= =?us-ascii?Q?nrbaje5bDbcXw0/9HbmMiVkta8qiF02HgqXZMabshRhY1ISlsvYrggRp7jFn?= =?us-ascii?Q?S9EvI89EzhIFwz4kTA1wBpgQ24PnIyotzf3irUB+XOM/OvijbdRDPZ1oCu1M?= =?us-ascii?Q?5YIef4BfV0B03DHAjUl1pRMxrr48T4W5dVnX1XyWj8+nwJRrz3lV2juFEBjs?= =?us-ascii?Q?Fv1SYXeoaoNngQioeZT/mrfbugmKsuz5YUKl30c24LOV91FDoZWdPclSQuEZ?= =?us-ascii?Q?4FtwkHoODpxmzOQLBzTMAdOnaKOhDJmS7fkg3+BrPY1rmZwsRjo6U6IOruA/?= =?us-ascii?Q?WKVSwNNIpiXGwflV5hp89b2ge0zepbomljYM5CJgXa9kqJF/w1Ba1UFd3QLv?= =?us-ascii?Q?ThHqug4/zIxtKusZyRRBUoGvEjr1bCTCVhrRPlTxpdUpT7jFmnujMsnmp+Xs?= =?us-ascii?Q?acxUwkupMH0Cpe+s72MPT1eQ4mRs1yRkzw48vej1b7CxZNo5t3DYz3zbG+Rw?= =?us-ascii?Q?f0wOS2T4jatxRUa7VBXwhq9c3RTr80Q4jpxYRHR3ZSTprGqNZcOLsTpNPE4C?= =?us-ascii?Q?6tOWt31X5+TQH4dwOkxxipcLlcnKmriqEfZDCDxIruHubofh+ypgsFWOzT/r?= =?us-ascii?Q?CUwM1SSWatUdsCd4DlcnXLch2hHzATN7p0qy35QHiLLRnL07dmjGphzx6vVi?= =?us-ascii?Q?S7rP3g57HxMNe+XAjfsoRQXg+t0dyOXK/FBUKnHvRezE0gATSvhwtF0ffvUU?= =?us-ascii?Q?8gjMj963ydcIAecOAjmCtLCxfout1Pdk6UN22wQM4f1AmdN7KqKrGqWs4q2y?= =?us-ascii?Q?Yzz+56Fcg8/xQERVEXzXv+2FLbT745ULk+RXBEnFvXlzXN6JsCGBsEaZSml9?= =?us-ascii?Q?E0/k7GloW9tj2IBeY7/ePM/DXy67W4YTWyCuTHVI8Z2dx/J7cfCQv1QCfI7K?= =?us-ascii?Q?7u7nMMyImPytlDSKRDc1WZLmwcHfHQtkrlsl18bFSGrbiDI43+ql5wc+mHg5?= =?us-ascii?Q?zoUsScwvKP9fbe6/PaCxwqD4QKwoEZkyEhgSd8omwYuzeq0JkSQk9fyF2hs8?= =?us-ascii?Q?naJW3URdNp4FeWSK8UckIrtRrhF+BiAlcAcwfz98+JPywUWYAgWNezEcUPoN?= =?us-ascii?Q?oC3SHfnM6T6aYaRdRFFQSNGnLjuakMkPcbKhn9Fs5z8lCCndGql8mQWKepij?= =?us-ascii?Q?Cs1EOvw28SQNY5bcy8Gpy8a6Rhf3fXTQPUU6YWAjdhtkvVmp13udlQ3tLKek?= =?us-ascii?B?Zz09?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:7ikk/XmHPC6EJqH3avoKCwyLboa0GeFq2tnAeQddDRejUxpmge3py/WQHK4TuQv9sWRdQM5nn9es4EkW7hehqK9dfRA49ibivptOU34Upxa8DK0uggiKN12i833lk2PKSOGcwQIJsadVsHlZ77YGjJWsgnIbBsmyckxEgX486s8hNLVv7CRV5idGuE4T7r0xxlVtcdsfq+kINR0lmScvH/vcwdndeEZ5xv58CYbWrIVztAUbHFKwyT7QwZEpJ+0J54Kp2wrchf514CKV6c2pjsK8+nZg07uNLc77tO+8jt0UewgDz3LXOMv1H630dCUuoIQUtQ5LI7uTTVTE4xz8uxs959ocMTJb6VuG1FENO4k=; 5:rZtHvoEkue5ffhdWnrJndFB08DEcciOvtm0icViXUVTrm7x4F6KIBj+JUP32tLWQ34vIjqmSpGhffgl6SmBFDvDjKrF5ne/dz30AFh3K+DCXnTKK4kzezdtuBc59xcyhrC08Kcv7JL43mD0rk+KV3kbP+0nEost9cbuHzNdesoM=; 24:pfLvMLdc59WVL3Vb5mvMFZ5vdbB4fzUmQGTf1GW1oENW3Sh0ok7c/ZlyRht9HXTRk2aMo3FidNgiaJAJk1EsRpnH0jm2UHXouwuRjP9FBFU=; 7:0uD3hR8FDl50JMkeqJzDZb6xgG0AR6sARgqLrEN3GbNCFsV9T9XYLVx7cBmel9xsZdkWhuWuH2vIoAYLUThpOaSxrLnCtj9ebwlNRWUcYQrtxq4A7/S++JqUm8oWoLn9Ve1pTM7DVS51pp87qHiawJPgVoZQi4moSporuXM96qOQzOsbeKuVMi/79yIQ9YQRldSfVhpEb/ZrMMORz+mYNRPwDy5lZxjjWG5o3T3rxrlFsmAxYQend16aoThES/mb SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:sBDo9zjBTtSWexrUYSTBsTu4YkU923dwIk4BBW684IgYZ9C9TO43+RJ6oqJnj1NzAJw46Jmu3BYc52LpybZC6m6jg0iDR9yI851NIvySbmIypuFB7+lOw3nt/qeJMFP9DrZ86U35CVX5nXszEHNGlh2O3kw0emKQn8ThW4bUQEDyknM6UsYMfetIvQqSvQwUFsi3wUVGPWOAJo/GW8BdSULesk6mFYyanWrXeu+taUrbGglwUb/fZcCdm2fNMcQG X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 17:42:22.6977 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: af733b55-f232-44c5-cc73-08d5673fa7de X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.70 Subject: [Qemu-devel] [PATCH v6 23/23] sev: add migration blocker 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, Tom Lendacky , Stefan Hajnoczi , "Michael S. Tsirkin" , Richard Henderson , "Dr. David Alan Gilbert" , Brijesh Singh , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" SEV guest migration is not implemented yet. Signed-off-by: Brijesh Singh Reviewed-by: Dr. David Alan Gilbert --- accel/kvm/sev.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c index 65d34c531ee5..6800e059f57c 100644 --- a/accel/kvm/sev.c +++ b/accel/kvm/sev.c @@ -20,6 +20,7 @@ #include "sysemu/sysemu.h" #include "trace.h" #include "qapi-event.h" +#include "migration/blocker.h" =20 #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */ #define DEFAULT_SEV_DEVICE "/dev/sev" @@ -28,6 +29,7 @@ static int sev_fd; static SEVState *sev_state; static MemoryRegionRAMReadWriteOps sev_ops; +static Error *sev_mig_blocker; =20 #define SEV_FW_MAX_ERROR 0x17 =20 @@ -479,6 +481,7 @@ static void sev_launch_finish(SEVState *s) { int ret, error; + Error *local_err =3D NULL; =20 trace_kvm_sev_launch_finish(); ret =3D sev_ioctl(KVM_SEV_LAUNCH_FINISH, 0, &error); @@ -489,6 +492,16 @@ sev_launch_finish(SEVState *s) } =20 sev_set_guest_state(SEV_STATE_RUNNING); + + /* add migration blocker */ + error_setg(&sev_mig_blocker, + "SEV: Migration is not implemented"); + ret =3D migrate_add_blocker(sev_mig_blocker, &local_err); + if (local_err) { + error_report_err(local_err); + error_free(sev_mig_blocker); + exit(1); + } } =20 static void --=20 2.9.5