From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EC3F0C7EE25 for ; Mon, 12 Jun 2023 10:49:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BBB216B0072; Mon, 12 Jun 2023 06:49:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B6ACA8E0003; Mon, 12 Jun 2023 06:49:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A329D8E0002; Mon, 12 Jun 2023 06:49:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 95A7D6B0072 for ; Mon, 12 Jun 2023 06:49:57 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 5D9D280192 for ; Mon, 12 Jun 2023 10:49:57 +0000 (UTC) X-FDA: 80893775634.14.20D029D Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197]) by imf27.hostedemail.com (Postfix) with ESMTP id 5811940008 for ; Mon, 12 Jun 2023 10:49:55 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=alien8.de header.s=dkim header.b=ECTZefKK; dkim=pass header.d=alien8.de header.s=alien8 header.b=fzHKlyoD; dmarc=pass (policy=none) header.from=alien8.de; spf=pass (imf27.hostedemail.com: domain of bp@alien8.de designates 5.9.137.197 as permitted sender) smtp.mailfrom=bp@alien8.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686566995; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=HNvNkDQEJ4NeFu80fh8zSTZwGO0VQ8+2hvqiV1HA19E=; b=Fm1if/mF+T2nvFcUYzwJQP5kcXKzxmIZiW64JdEoZq/SAzm6d2ZvMKWJ4f4uCAv/H3Tep2 CXeqeZXtBeyv8HYmSvNVKfE6muyQSW7M5xuCC1KO+oYYPtk14B7OEGH57/2rrbPn//dj4W Fd66rnToE+9L79MNs/gS+am3Dkh2pWE= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=alien8.de header.s=dkim header.b=ECTZefKK; dkim=pass header.d=alien8.de header.s=alien8 header.b=fzHKlyoD; dmarc=pass (policy=none) header.from=alien8.de; spf=pass (imf27.hostedemail.com: domain of bp@alien8.de designates 5.9.137.197 as permitted sender) smtp.mailfrom=bp@alien8.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686566995; a=rsa-sha256; cv=none; b=R2Ju2mo1ktOhjMDiENLDZJXhy1NOfWAwspXvWgip3ZLr31UGrvIaCoSTG/yk+lu7bF0KN8 3erxnHdhM/evhSfdLJUYa/e7nNFYNOc5n94Zg3GrTfufQ+CP2Dl50vrxAUDdiAOtCebM7A utP44Wfd5xyfAcufBGZ5ovSOyBOx1Uc= Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id C2A291EC064A; Mon, 12 Jun 2023 12:49:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim; t=1686566992; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references; bh=HNvNkDQEJ4NeFu80fh8zSTZwGO0VQ8+2hvqiV1HA19E=; b=ECTZefKK401QeBWbC2TMZGv1HwZo6E/eF6Xf8qNHTCiodkyfOIAgHrznnvJfF4yDLLDbfR uXqar2YSbZ3mBBO6eY0bPQFgPpAx5RVLUAsgD5qb0TR/nZlft64jdSauyTfRGw/kkZjlkO qIT1tCwwAJ9hbkLilT4cwLex4Idpb1E= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1686566991; bh=HNvNkDQEJ4NeFu80fh8zSTZwGO0VQ8+2hvqiV1HA19E=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=fzHKlyoDn2jIjrFPn3fXdIOHGew1ihpJ24xw/CcJG3TkZy17Yg3oiu1bnMbVq84UW iNgouJVqXUIlprpLNT6jEYqwuCdIR4UyBqN0LLeppXZ6Zxnf/1zACTaax6OG6HN9O2 SOE2iUm4kVIsIWVAczbvD2b+xCOwZVkRo6KUyMxDLpXHsntacFHeddLoi5YIQ/XDLs lej+epOiS2/P6jDOdqpPgXhgQXBnG+ufX6pIjXgBsksfc0NJNmcQHl9YYln/2cU41g BwAiPcgtmQmzsCKNNWrhLfI+dBIbWHN+bDNFEfTBC6xTLSbAI9b2Cdiggf9B1ORMWL WjTHJQvMY5uFZKSwRvPshA4OqL2czb3UjBcE9IaoQJUll3BgtWGF8D8Ix6+9qEVZQj xAR1Mr8SRBHTUk4+Jn8/VYxtmea7lne8vuliylnzJa2ix4PRv3555QkY4Hvs+LLTjy 3DoXoLVlqLVpANXROF0gAKgiqwfA9ogDG+BlQKffdEePFS5jp6nvtK+Srd3JAllsfS EY8ZUaaDvnGrDN96o+2/qkjV80LcPe+uPdEknjnOeIF08vAiQJNKvstI9NTfFuAZwV oi00rtkB+AXh/hoxZHwCf+p5d0ljHivaOc1IxQkNzAaerWb25Vebzd0C9E+NzEMbGn n7bRmxX/yzDrVN55Z4Y0J6bU= Received: from zn.tnic (p200300EA971DC508329c23FFfEa6A903.dip0.t-ipconnect.de [IPv6:2003:ea:971d:c508:329c:23ff:fea6:a903]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id F1CD040E01E2; Mon, 12 Jun 2023 10:49:11 +0000 (UTC) Date: Mon, 12 Jun 2023 12:49:05 +0200 From: Borislav Petkov To: Michael Roth Cc: kvm@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-crypto@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, jroedel@suse.de, thomas.lendacky@amd.com, hpa@zytor.com, ardb@kernel.org, pbonzini@redhat.com, seanjc@google.com, vkuznets@redhat.com, jmattson@google.com, luto@kernel.org, dave.hansen@linux.intel.com, slp@redhat.com, pgonda@google.com, peterz@infradead.org, srinivas.pandruvada@linux.intel.com, rientjes@google.com, dovmurik@linux.ibm.com, tobin@ibm.com, vbabka@suse.cz, kirill@shutemov.name, ak@linux.intel.com, tony.luck@intel.com, marcorr@google.com, sathyanarayanan.kuppuswamy@linux.intel.com, alpergun@google.com, dgilbert@redhat.com, jarkko@kernel.org, ashish.kalra@amd.com, nikunj.dadhania@amd.com, liam.merwick@oracle.com, zhi.a.wang@intel.com Subject: Re: [PATCH RFC v9 02/51] KVM: x86: Add gmem hook for invalidating private memory Message-ID: <20230612104905.GOZIb4ISN9gj9lWYNv@fat_crate.local> References: <20230612042559.375660-1-michael.roth@amd.com> <20230612042559.375660-3-michael.roth@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20230612042559.375660-3-michael.roth@amd.com> X-Rspam-User: X-Stat-Signature: dnnxqyhyu1titu7s4opacwem6w7dzkj4 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 5811940008 X-HE-Tag: 1686566995-19228 X-HE-Meta: U2FsdGVkX182ybaff/SOG/HRvJak7uyYzC6NBFsQTwFAJ1T56G0DREoo6luMib+CkSdGbTpfhC8TTL9eY0czTO1M2HDggrpCO2KaZQvy3BszAs/p1yiWIAOtbdj6htw9lMwTfx/hgZXu3ouq3gLFdLyi23ScZiHtpKh+8CX1ja3VewS8tEe2C6CrcHTLlqEffxDE6sRWJ8QgGYj8ilRklCTFqqY9BEKlEex0jra60evkejN4nPeiXwPmLGGqCUHa4RqUJG/QiyaAc0lX8gADNyHkhMoYlCBGTjDzq9j8z+MBNKBRHwNTYOUz7ChzDND4AgptgSfSUZFBUxw7Ka79F//WkJvO6cNtTmK+4agQpub5zUBo63dxwVArcROUiMyVaa1Kj5bx+HhQ47ld+QiJTP4uoTujxefXeHjSsUcZrom9E+lDHH6caZjbgxPKLL/Jk6UAcRVhp0etlGSeRUpx3WwkblErQ9XysN3VeGEFevcx0MFSYoWKcFd5cSkraUPVufrCTUo615S2lq/mp/Vg0KEL4VRC0HiGBON/UciKssUgsb3AsR8kHbiN6P8uyBMUsJbSu4MLqN64BChPPvol5jUTk4LLZuR6W0hVzYdnKyv3p6Z9Ryk1wsQZnwVqYBSKxm2mgYZHVPiZajj50JuAmSVn8OZkOHQfA4qY3SEf/7c6CgkZwQSffsX1ey8s957Lz/8X/ybeaCWPpY82or+seWheoUmQtiS2Wk6OE8lbAoSkCxRceX0qJpL+1+ZJIvjlqu5hdHf2Ud/+zduHDH/l+WnG0GDgLQmIp7ihMhO47wIOzSnrHo9VdERPVWaFC1jyTRD5x+U5wd5GViHg+HXDKMyZrv57+x5iqbRsLbAG/XMK10JbanzeQiQ890MTSY3gQ2vat83g1PsSg0dn5NolfTiuI0NiR5d0gaRafL4mEAeT76h24QMDhaCjJz7fZpWBSTCI3GzjEHMptNRhxjY 4vXZlsyh CdSm1jWpPQjWWNj5h6xJs8FtrSCj1gkom+qlrw0I+8DMYRzV/62rkDtyw/wUr1aNrfZ9QSaAJ79nJJuvGMNgScP7vvbE/bc/y4O28REFcljtdwVW03AMVbi/nzE3Zsxr6SypPxj49WR/HgCoxjDWJ/ipyfDCh4qtKHgP1Fu/XUqcLH9DkdOXxcUozBvdKl15OXh2VANAHcOicF6gorJ2IVORdUsfn5GswlQ9/CwFkFnTkC6p+tHh0DdBKpf1jDiKd/zJG4CcFBuTZGge3VJO8hOmONQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Sun, Jun 11, 2023 at 11:25:10PM -0500, Michael Roth wrote: > TODO: add a CONFIG option that can be to completely skip arch > invalidation loop and avoid __weak references for arch/platforms that > don't need an additional invalidation hook. > > In some cases, like with SEV-SNP, guest memory needs to be updated in a > platform-specific manner before it can be safely freed back to the host. > Add hooks to wire up handling of this sort when freeing memory in > response to FALLOC_FL_PUNCH_HOLE operations. > > Also issue invalidations of all allocated pages when releasing the gmem > file so that the pages are not left in an unusable state when they get > freed back to the host. > > Signed-off-by: Michael Roth > --- > arch/x86/include/asm/kvm-x86-ops.h | 1 + > arch/x86/include/asm/kvm_host.h | 1 + > arch/x86/kvm/x86.c | 6 ++++ > include/linux/kvm_host.h | 3 ++ > virt/kvm/guest_mem.c | 48 ++++++++++++++++++++++++++++-- > 5 files changed, 57 insertions(+), 2 deletions(-) ld: arch/x86/kvm/../../../virt/kvm/eventfd.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/../../../virt/kvm/binary_stats.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/arch/x86/kvm/../../../virt/kvm/binary_stats.c:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/../../../virt/kvm/vfio.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/../../../virt/kvm/coalesced_mmio.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/../../../virt/kvm/async_pf.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/../../../virt/kvm/irqchip.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/../../../virt/kvm/dirty_ring.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/../../../virt/kvm/pfncache.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/x86.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/emulate.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/i8259.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/irq.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/lapic.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/i8254.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/ioapic.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/irq_comm.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/cpuid.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/pmu.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/mtrr.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/hyperv.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/debugfs.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/mmu/mmu.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/mmu/page_track.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/mmu/spte.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/mmu/tdp_iter.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/arch/x86/kvm/mmu/tdp_iter.c:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/mmu/tdp_mmu.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here ld: arch/x86/kvm/smm.o: in function `kvm_arch_gmem_invalidate': /home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: multiple definition of `kvm_arch_gmem_invalidate'; arch/x86/kvm/../../../virt/kvm/kvm_main.o:/home/boris/kernel/2nd/linux/./include/linux/kvm_host.h:2356: first defined here make[3]: *** [scripts/Makefile.build:452: arch/x86/kvm/kvm.o] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [scripts/Makefile.build:494: arch/x86/kvm] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [scripts/Makefile.build:494: arch/x86] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:2028: .] Error 2 -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette