From nobody Mon Feb 9 06:26:30 2026 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 1518450365862410.737403392597; Mon, 12 Feb 2018 07:46:05 -0800 (PST) Received: from localhost ([::1]:45593 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1elGIn-00015k-OD for importer@patchew.org; Mon, 12 Feb 2018 10:45:57 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55915) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1elGBY-0003Ti-U5 for qemu-devel@nongnu.org; Mon, 12 Feb 2018 10:38:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1elGBV-0004DC-BV for qemu-devel@nongnu.org; Mon, 12 Feb 2018 10:38:28 -0500 Received: from mail-by2nam01on0070.outbound.protection.outlook.com ([104.47.34.70]:50592 helo=NAM01-BY2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1elGBV-0004C9-2c for qemu-devel@nongnu.org; Mon, 12 Feb 2018 10:38:25 -0500 Received: from wsp141597wss.amd.com (165.204.78.1) by BY2PR12MB0146.namprd12.prod.outlook.com (10.162.82.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Mon, 12 Feb 2018 15:38:20 +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=L4DdoriXEEzXzafN00aXHcLZDcEXRXfJAwr0HN04PlE=; b=zGW5o5FCxhJu2pqjrzWLF0Il8lXAjXXbIbVhlYr7tmfCJpAG3EEBoy2qRcHsEq/VEbmhPmClppBdqTV3dwVND6d5rPc04pFQCsFSdjuj+fZAqgcI5FGivgcYuOIma5se/BQshgPS2z1YIpibKfXp/XlO3s4bqtBkAUukHIvXtJo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: qemu-devel@nongnu.org Date: Mon, 12 Feb 2018 09:36:59 -0600 Message-Id: <20180212153715.87555-13-brijesh.singh@amd.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180212153715.87555-1-brijesh.singh@amd.com> References: <20180212153715.87555-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: SN4PR0801CA0004.namprd08.prod.outlook.com (10.161.215.142) To BY2PR12MB0146.namprd12.prod.outlook.com (10.162.82.19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e14750c0-75a2-4243-2b7e-08d5722ea5c6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:BY2PR12MB0146; X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 3:ycZ/kC8qYqiufXDZdSkOl6Fo74ZRVh+KyUptTjtH6BpFlhAjymJR8ykC9pWMBcU03DUlZAWbjmJyabN4N+IQbutdJ3YWik0Eb5C/aPJlgWI1ThuTtKJKrvliRnw7HOoORQVxfDkbdMq4N2mlsvqIue4onzeyEKHYfl221JcK2Tc6kt5ZpvuUSj0X8EhJj8b6uQKttWvW1i+vI7xTrYZ62Qw0aPJs8whHmzqIHGpfBxvUiqkIZta5EPJZTbiHbhkp; 25:hOz1O6W4ORcrarnN2p4P67tV40b8/eAsyxgMN3EFA8m1x3lq6wtafLretVARL1/++xAEzotwddcwl9tzXek+CIvydMVQV5m2BRDmCcPoQclmHPKLKsr4CLdWG42gkmkX9BEMADFiE20FoCkLNR1/KLK21Z2Lb2anEwATqTE+VtvgMHC26RmeSSJDi3ExQM4LG6hHDJWXsS6M/CQ7z5q9cJOxLnP2esbvUjLrFw+AgZGbk7OiuGQrMLQLic+StIsWoLUHMHymY3oayaWiZAWHVRn935ygKpZZ6H75lm9DTcy1HZmU5lULBFenyjLGGvitiNwuKkxXX7zPjWN6Ui8fdA==; 31:rKwzf4tRyi5x3ml3gT53qdwPjZyo9S3ES1DOi1NkzAlUxCqi0Q8pDmpfEE8DFVwid6xOdDMUkFASpqMvZgGjv1FLPQFLK49MRzCcF+ngce86ppYrOPEzgmyz2VqC1hbEY1pvG9GsiLfuaRkL5gFpqfPc6XUwEBsCs++sCqwFFM0W6gDzW/Gz643sazDgTxmPQz+RQoR/I5AtthTrVOilY+ljB5z1ezyngUEGXXVAftw= X-MS-TrafficTypeDiagnostic: BY2PR12MB0146: X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 20:2jYirG6AQqF6W61DGCNdGTUTtfMs/Rn3apLcz719vcF8CRdrhnYV0nYJKBpZ+lED9fU5mIcVCk3ObKCLqpcNf4aqyOQ5yeREV+tojEveJU21lHljYHy5KW25zQnQtsI9enf9+sdEbwPxhVXPjVruT9WvA5nsRKoXRKU87dMbhhOXqCEZCanars5VjoAfrzUCUZQPjKGuNd+7bB2ObIMeXxpqkoFsG8/Z3nMrA+Fm6R/CkZVWASBshRTPxB1YGAT/KCLbxwqaQQqT3jDq66TB8y07ISuoh7FwwbKu/wUMJ5bTiAGLURiMu4FmhlBmR5V/HrZZY0+2JlsdpnwzkIXL+pFaAc+euxgsqRU/IMaaDI/R5WzEC/4/txiXlsUy7UiME1RmQWrsRIamCANoyIpmYGYjKR4icc7zsshep6pZ2QGJH3QTCGoD0CpuR6i6kmVDtgeRbTT+n0Kllkvgfy9Pz9cemHqAYy+Dk4XjXHAo1cv1o9kWEh8DrM4i1MfRNFvG; 4:s3sBQRDQCx6ZhqCRx4UlYCcKHfSlHqTYhWZslroMYaoJnm8EPZLg/hyOzlXM0G2wt+Bb67eX/w6M7F80mezFjuWGBxnt+HdG3mykRQ8tYqB8Q+tmj5/iQ08JLBMcmiOjRhb4HXU+E5Y0voBQUJqFQb+USULzdzUU8CYZFhwn++bEq03CpxpKeewFbO0sMCLscVW6BVVlnogcVu5EP0m3EJHHIz6/2mK6Gzi6j+Cogfnkq5wHOgtkJPv9CEUwVhGK1NDuKmPLn0/0wrnkidoCutnpJe4pKlRTrHx71wJKYKJvQ73GIyUcFLoZBCO95zFUeKJsLwaaLNzIbafLE6wqkQ== 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)(93006095)(93001095)(10201501046)(3002001)(3231101)(2400082)(944501161)(6055026)(6041288)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011); SRVR:BY2PR12MB0146; BCL:0; PCL:0; RULEID:; SRVR:BY2PR12MB0146; X-Forefront-PRVS: 0581B5AB35 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39380400002)(39860400002)(346002)(396003)(366004)(376002)(199004)(189003)(25786009)(53416004)(66066001)(8676002)(7416002)(105586002)(59450400001)(81156014)(76176011)(81166006)(5660300001)(97736004)(186003)(16526019)(8936002)(106356001)(50226002)(2361001)(6116002)(3846002)(47776003)(305945005)(1076002)(86362001)(26005)(2351001)(7736002)(478600001)(51416003)(36756003)(4326008)(2906002)(53936002)(6666003)(2950100002)(8656006)(52116002)(6486002)(48376002)(39060400002)(68736007)(54906003)(16586007)(7696005)(386003)(316002)(6916009)(50466002)(8666007); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR12MB0146; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: 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; BY2PR12MB0146; 23:xEvwV4JkaejnP0MYMGprwRp6s2MIfBfprkY75Tuu4?= =?us-ascii?Q?HWNGAL+gbvcO26vcm8aeywM+G8AstYFiEWDaNyEHOhaKioqW80heSzqXTkSh?= =?us-ascii?Q?d3t8ehRZStO/Nc8PLijVClJM+fT1V8D6uqFZKOPnHTun2t6qowYwek5smTnH?= =?us-ascii?Q?ZuvmxHQoE9NPTrfhy6mEy2zzkIKmkRNYx/l5ixvT0iiRhIW/4MQvzj3gk2zt?= =?us-ascii?Q?Sppz73xQ9fapSiYs2137h5RcrwQp1WGAwKoCQz9SxY2LkDEAsfS6eif3G+tH?= =?us-ascii?Q?J0H3OWsrn/azU9uAEj2ykBski2ynWL/K7UQPb13ZoVoH1iIeAvb95f1cl94z?= =?us-ascii?Q?qQ2e8Hv7rLBnlAK0J+3GG5tb9k5dX5JUGvubcuprHh8nWw83HNMTEmvvp1FR?= =?us-ascii?Q?p/4lm5WNpPdJ4vflRWM0utLPeTEfNFIy3bW/eCjfRsNocgvkSjRdCmlf2IH4?= =?us-ascii?Q?5ezwDvsdvtWWv5YdqtLJeFYc2dNKPzKNLvy4uv0+mVjM5iYr6QeJ744b2RY4?= =?us-ascii?Q?ZKcsFy3E7frSVpVm2AWKW+oUhwMVyyrDdMKEakzIOELyiO+3nlwhAb2fRX+W?= =?us-ascii?Q?HcpcYGkcLtdDfOOevvc+QOrOxw7cU5/Ym6/gyPx6nJ4GtpaHEyHGOq1h8/i7?= =?us-ascii?Q?dc8FD77WcYbp/wqz825p6TfcRMLYLgtoB097W68fN6cn18WLtcgH62/v3k1m?= =?us-ascii?Q?uoIJIalFjKW6HJcSdvRKvBgU4AByswkxvWMx+Z8cIKGIdvHuzulGLx4dFyXx?= =?us-ascii?Q?LGOp6zwf81gwlH9Y6HNLjMYRPL/zRMSKJIDMIjI0yY/emFsFnwENItkv9SqS?= =?us-ascii?Q?91b8RbFXggZl5C50So23tsU9Dh01PzpwVot/SkIWfTJspEsMhcQsUWVplc+I?= =?us-ascii?Q?SSNtMyYWxx7ADeKyRvaZL3lRf53PH07KoWTPM/NPW2rE98rZ10pAsaiwCd/m?= =?us-ascii?Q?PRdRRIgW5QoP4/fClAVRkyHD2eGHIlHkVJSdpi0U6DmMEV4xbhjkxqx/zqis?= =?us-ascii?Q?VD6T7T2UkRx5f2DgQ+Le17Z4WjmQDAr3RphQyQx3jVAYxTsalHlgyiagV8iM?= =?us-ascii?Q?I6uWPZLS90x0Pt5bOmHvhxjzQ+6NgVu2Y41ZXi4+LxFbh8a++agB+35en8Qh?= =?us-ascii?Q?Ql6mCpIMiMyWsbrlrWdxbmfwWnqRlq4nJ049wzTPAWZGCIudCE5q3B24m82m?= =?us-ascii?Q?OF/Ag99LpFEyZbhreNCmw+ZretFVtSvc1OgaLBaVEo5ZwcWb9rE9+DKGoqbE?= =?us-ascii?Q?+GlQ+MGxUxY0bIGeL0a1gz65FFJ6f325Gt1oxmA6XViFsk+3yxMbRuPmVby/?= =?us-ascii?Q?dtABreg8h13pFPf9ZPmKao=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 6:wXJrHKBIIiQkaqptVCcaqQUFn1/Vt7mLtfLwTpCUghN5p7ip6yErHY+b92+Gxemwruc2hqUzJrDizWP9WXMNNc+FKlCm7ikvKclksgB4MCm2+Io6DFQJcCbmHljREv+aQ3oDvIx8bJ7oIBoeu+bKe668R05nCVjo6m0P3qOZaHPT8vS56xb5cwA9Sce7zcCM14cuYbGZp+sRvOVYWzaIVO+qdKdvx4QSRE4v2Q50MMPgh43ZlL4xr1/htuBbbmdARffNPYevbWZ0CfWK0VYzFkxIAi88OWNA51vYvHzrKafPgf+3FunD9aNz2FQ12pyu5ybtTyYbki4oixPpMPkCNHfgFjJJS7tNwBp1SxVPvRg=; 5:SagXMvB3oV0x9LmLxh0ZvAN13I+69HocpZ+yktzP8YnjzR6heGrkkzlfZjbGrUnyGalaygsMxFkKZaEKlt1htU52Uj+x7tydKnhKQoqOkcAhixaG87X6awdXxhJtBGuQeHu/GpFX0yFTeKQLa9FOb3wQ6r8gWYnpZ1OtJZYmrns=; 24:j85E84NNI5N6ftI6SsQlvkrUmRaB6OH9IhmtROJoZ8okWTbwojcPVygT8uo550xyS/g3LpCq14C7fHiVoYO5VrSrtG4aBAF+nHGnIiqmlaQ=; 7:WHwmArHGQ/IElVK9IZD3zWi6npZ7aj4BUmoF14tS1I6Woqv6Zb6uiemvbay8pOJds4qOVBhDF4CyeaA0wR5JH7QAfHXALFba5acF9VzZjaVdQ6wdgIpYaZEBVXT5gRrU06k5QxQXIszafmyfPgYNRgNOYb/0OBfct0bQaw/7e3LZr66GiA+DNTt/03iDjj+oIpDERxlrznVSgMtzjYtJhVOKsr2EmsNfPojs5BQIXrGRjXjFm1OdIUflg1Nau+Jp SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0146; 20:C49LvYIiAax/5US1foDdnmcECoIL9O794JyRDYSsc3K4SY7qPBtXttK6iWfKY6mglBmNqEfv72GT1CiTXTShtF6oB63yqRNrrDdixX0ZU1aD+UF6alvmxhID6yS0c5d5WZkYQuAavfyPBzyZbAFiVmnIRRY+Mno3cSS6ot4CZ9VRzU8fETJ3agzVLSexFBIpdH3ljOhGrElALZMWjUhZICvRIT+gThOYqiLGM5Kn3yyn3PcTs612SOR88+9kMQGX X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2018 15:38:20.4491 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e14750c0-75a2-4243-2b7e-08d5722ea5c6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0146 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.34.70 Subject: [Qemu-devel] [PATCH v8 12/28] 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: Peter Maydell , Brijesh Singh , kvm@vger.kernel.org, "Michael S. Tsirkin" , Stefan Hajnoczi , Alexander Graf , "Edgar E. Iglesias" , Markus Armbruster , Bruce Rogers , Christian Borntraeger , Marcel Apfelbaum , Borislav Petkov , Thomas Lendacky , Eduardo Habkost , Richard Henderson , "Dr. David Alan Gilbert" , Alistair Francis , Cornelia Huck , Peter Crosthwaite , 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 300fc3cd44ce..4468c8fe002c 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.14.3