From nobody Sun Apr 12 15:42:53 2026 Delivered-To: importer2@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer2=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1713885186; cv=none; d=zohomail.com; s=zohoarc; b=MQCJxLdafx8PU6vJRxN5nb93rT9dNrOs9QxBTsE5olK6jHTn3vGDiqS+FSXrA8x1cG9UH3o4l+hOUUl/4iomP52+FlrsryAX3Dfk2JaUIAWICBb+y+NLAOmJ7yd52H19E97OjNqVY7/OMGAjkDxy9I4PULxBCqDPZGq/FZo1HLM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1713885186; h=Content-Type: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=yjRW8jvWB8Hndk8JS2SA4kR+Ko55Ohf9JH/g49Z2PDM=; b=h75pu9fUbAIpu2zlcaIP8WKijFWuOypsnTEV3AADIKCldVJ0pqCpesLXF10J4zbPTXmFdZ3qQXrN9XbXtIdtyPJ7HrVnshbc0YZnwg7tQPUHEUOxy7H8LxHnUlwJwQwgFGFhKPzhkdDA7GFHTtMXZDIVJ1ZLGGDcteOKIXfmS5Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer2=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 1713885186554609.2429634826309; Tue, 23 Apr 2024 08:13:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rzHnY-0006gg-Cu; Tue, 23 Apr 2024 11:11:08 -0400 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 1rzHnF-0004xS-Oq for qemu-devel@nongnu.org; Tue, 23 Apr 2024 11:10:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rzHnE-0000KP-2J for qemu-devel@nongnu.org; Tue, 23 Apr 2024 11:10:49 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-319-d7NOBaIdOACWXa8wy2FhyA-1; Tue, 23 Apr 2024 11:10:43 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 94483803505; Tue, 23 Apr 2024 15:10:43 +0000 (UTC) Received: from avogadro.lan (unknown [10.39.192.70]) by smtp.corp.redhat.com (Postfix) with ESMTP id DD31D20128F3; Tue, 23 Apr 2024 15:10:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1713885047; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yjRW8jvWB8Hndk8JS2SA4kR+Ko55Ohf9JH/g49Z2PDM=; b=iz6BXGFpdVAWTY4rLN27WkUa++44tzYdV9QKEMVcAzwFaVxCQzlKhRG5HC64JIb6if3xAQ FHUp1LsGF308ft8hbs7hd0qUx7wGxz08yZewxL4xByiF8enYFzFHELizyH4URJAYqTfa4I OXTzh3mK47+dgosSa7xWAj4NU13i/Lk= X-MC-Unique: d7NOBaIdOACWXa8wy2FhyA-1 From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Xiaoyao Li , Michael Roth Subject: [PULL 51/63] kvm/memory: Make memory type private by default if it has guest memfd backend Date: Tue, 23 Apr 2024 17:09:39 +0200 Message-ID: <20240423150951.41600-52-pbonzini@redhat.com> In-Reply-To: <20240423150951.41600-1-pbonzini@redhat.com> References: <20240423150951.41600-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.4 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.67, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1713885188155100005 Content-Type: text/plain; charset="utf-8" From: Xiaoyao Li KVM side leaves the memory to shared by default, which 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 Signed-off-by: Michael Roth Message-ID: <20240320083945.991426-16-michael.roth@amd.com> Signed-off-by: Paolo Bonzini --- 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 0386d4901fa..f49b2b95b54 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1431,6 +1431,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", + __func__, strerror(-err)); + exit(1); + } + } + start_addr +=3D slot_size; ram_start_offset +=3D slot_size; ram +=3D slot_size; --=20 2.44.0