From nobody Fri Dec 19 17:34:41 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1709188777; cv=none; d=zohomail.com; s=zohoarc; b=EBKIcQEb/Xv56sTXINOU2zfsk5uhcYnNk3+/6/P0rzcbtijszHVS8FZcfDJQWzdeB0B6QoHExpHbqeXadu5bFd8qV/CPrSE8ucjNgGgBJmc6l1/cm/mEdXZP6sT7YL+YvihSqOk3dylEs3z/t0z7umAeK6yT83S+uHxGgKu3L2M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709188777; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ASDX/j+eZI0NK536xkzQ4LHI6C71B4aLlmTlg/Hhp3s=; b=P2wUcAuIacpZPuta/VTpRnC+JisvNS8OFRMs/QQU+GE86+A3RVpCxHndHK7MAGClFAMXlUEfdBtxFUuRSyvETiIhHgdr65djCMS6++qJOu86o96EnU3vYgh86xKZ17C/G3rq7jWN3Jo8M5wkXwtqNLjJt3QK/bNG16hW9Xgfh3o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1709188777468205.88321906023975; Wed, 28 Feb 2024 22:39:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rfa4F-0001S4-1b; Thu, 29 Feb 2024 01:38:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rfa43-0001CD-As for qemu-devel@nongnu.org; Thu, 29 Feb 2024 01:38:44 -0500 Received: from mgamail.intel.com ([192.198.163.15]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rfa40-0004LA-RE for qemu-devel@nongnu.org; Thu, 29 Feb 2024 01:38:42 -0500 Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Feb 2024 22:38:39 -0800 Received: from lxy-clx-4s.sh.intel.com ([10.239.48.52]) by orviesa007.jf.intel.com with ESMTP; 28 Feb 2024 22:38:34 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1709188720; x=1740724720; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=R6P1mkE+VzbCklXI+XUrVzqW75xnxMrG1Ytrh3IX+7U=; b=YVngwO36YsNljVdECMShQDPp/CEcdLAzoJa/ytMBTN/Cdou5Zjvc0/TV gA96lHTIfkbG1bqx18dVjGazUho+Q8XkoP2KPpOcRTMxmfz+tgfpbvf0E qTr9XQzOyeDYBZmGdJi06uDRFrVVmX2sSIynhcZt3NxDu/5wDDDMAKBcf 6Ci0iK4zlcBhZQaccnCIEKE88fcJMjqf0+y58clz8AQchkCH7lwpq25OP YwsG5cnjXdt7VhE0BJsVeFM1BAuMlkfSZJwDyoFhMWk2Y41ZQP86mpVfo fF6UxAqJ/jPxcVHrR8Lrr6fKEO3LwbyrDNg4gCvjnEGUzxc2q0VYxfpQJ Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10998"; a="3802556" X-IronPort-AV: E=Sophos;i="6.06,192,1705392000"; d="scan'208";a="3802556" X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,192,1705392000"; d="scan'208";a="8075011" From: Xiaoyao Li To: Paolo Bonzini , David Hildenbrand , Igor Mammedov , Eduardo Habkost , Marcel Apfelbaum , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Yanan Wang , "Michael S. Tsirkin" , Richard Henderson , Ani Sinha , Peter Xu , Cornelia Huck , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eric Blake , Markus Armbruster , Marcelo Tosatti Cc: kvm@vger.kernel.org, qemu-devel@nongnu.org, Michael Roth , Claudio Fontana , Gerd Hoffmann , Isaku Yamahata , Chenyi Qiang , xiaoyao.li@intel.com Subject: [PATCH v5 10/65] kvm/memory: Make memory type private by default if it has guest memfd backend Date: Thu, 29 Feb 2024 01:36:31 -0500 Message-Id: <20240229063726.610065-11-xiaoyao.li@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240229063726.610065-1-xiaoyao.li@intel.com> References: <20240229063726.610065-1-xiaoyao.li@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=192.198.163.15; envelope-from=xiaoyao.li@intel.com; helo=mgamail.intel.com X-Spam_score_int: -5 X-Spam_score: -0.6 X-Spam_bar: / X-Spam_report: (-0.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.102, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HK_RANDOM_ENVFROM=0.596, HK_RANDOM_FROM=0.999, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1709188778850100003 Content-Type: text/plain; charset="utf-8" KVM side leaves the memory to shared by default, while may incur the overhead of paging conversion on the first visit of each page. Because the expectation is that page is likely to private for the VMs that require private memory (has guest memfd). Explicitly set the memory to private when memory region has valid guest memfd backend. Signed-off-by: Xiaoyao Li --- accel/kvm/kvm-all.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index fe2eb3f06902..0c0719a0303c 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1451,6 +1451,16 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, strerror(-err)); abort(); } + + if (memory_region_has_guest_memfd(mr)) { + err =3D kvm_set_memory_attributes_private(start_addr, slot_siz= e); + if (err) { + error_report("%s: failed to set memory attribute private: = %s\n", + __func__, strerror(-err)); + exit(1); + } + } + start_addr +=3D slot_size; ram_start_offset +=3D slot_size; ram +=3D slot_size; --=20 2.34.1