From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832012; cv=none; d=zohomail.com; s=zohoarc; b=hqzGQSl+9e/jyOuVPSflnX1bNmpAqn57Yqgm17sPqv3NZoIZbnV/alzDsdzFpCbpbc15ylSjcvD5tc2g7zhtghrOSF/pQWP4/7t1StWhJ5SENWfsjaYPHgKKDkWN6NsRW7LB8Vyu+GoYEGZ64DGayxuWDK3nBCf8gMsS1LLozUQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832012; 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=wO48eSARApGSxLARmClClQ2cyCpnzYZ9Xqioz+EDiGc=; b=k/pqlaD6WDeuIEyOMQvRaOfw4qcoQC5Zcpyd70KY8yl/m9FfRpeXtWxcTfXoXFT+lc7LhALjLhgN+F3c/mXa87SWNCDUYZnI5Mko7lUa8kNEUXi/HG4UCvYvHf32nXIeysKc1r63/CDC0ePYGfAoW/pDbhLLDlMAWShm4m0WbXc= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176583201254870.55635905677593; Mon, 15 Dec 2025 12:53:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYE-00065K-VB; Mon, 15 Dec 2025 15:52:14 -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 1vVFYC-000632-T9 for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:12 -0500 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 1vVFYB-0005hE-A6 for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:12 -0500 Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-377-o_1Ec0UGO-yvRfRt8zcZSw-1; Mon, 15 Dec 2025 15:52:09 -0500 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8b2194e266aso802937285a.3 for ; Mon, 15 Dec 2025 12:52:09 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831930; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wO48eSARApGSxLARmClClQ2cyCpnzYZ9Xqioz+EDiGc=; b=X+MjSOvCP+EIZfcd725O6lP3+ytono1P1FUB7hVwjP4gANgWVXv6nSPBkMNPoxHRlG3wsF Zy6u0HAZqauGGMxMdlz1LL4NsPbFiVSM2BGX2PH11GzULTDcyMJ569StX7eYRSzXIVJNs/ sCiYv5mZxakjRglV8kp/ItIIPq0PVto= X-MC-Unique: o_1Ec0UGO-yvRfRt8zcZSw-1 X-Mimecast-MFC-AGG-ID: o_1Ec0UGO-yvRfRt8zcZSw_1765831929 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831928; x=1766436728; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wO48eSARApGSxLARmClClQ2cyCpnzYZ9Xqioz+EDiGc=; b=GVdZapjvwll4ufRh+mGAixISFDWTGePkbQNuUjOURaUke/7Hf8tNmIJE0wVWZu2XWS 5ZfV9qi9kHS59pDii/mhyiAtEhK6IIx6YtGzBF87y+zg+rhhVi3CWDNMp4QekJtUSW8t he2G6pOmu+xFS7Oty4GUXkR17x+hOBudqoqPQAVKZX5spUPoNPuGZsHdkQDM8/A6uda0 19UrWzXGq1g5za24WJOa2QYEJVHr0hGdiNeTU4awfoeUYX3TdSJlQlt2xROcvxEB2aRb b7E2Os25lBrJRC+dfWYNhEA2uqcNNA2XEAUNInoqlq4kBRmqrCev1RlSYHqtEniX9/lo FcxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831928; x=1766436728; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wO48eSARApGSxLARmClClQ2cyCpnzYZ9Xqioz+EDiGc=; b=nnJSZWFaG48D2kf/xpbmU+9FhGEZKcEhs3O/Lqkbior/JPS74D5aXo7/zXtpo+IeiJ ZtAbzTzJ71CBhkdTBZ3J19NiMIhXGS9LCExz0/jlgdvjR7wC003tj7jj6xHC/NRBqbZR wMQbusPXGFILON1LhiqiLkXe+MwkrNsiEO2QE4M16OoLvelgdAr62FT/lAXi9HnBYcPn XJCeEA7sJbdQqie5EIVJlhpq1HVhUBISpXvitFqiczMJuhhfksh9D4z/FKkoiaG53w/f TFqUTk45YdZ3GDSznjrDolM3CsooTEP0N0OsTg0ak1BQ7Hgzvt6WkOPWO10TCorPIafu RI9Q== X-Gm-Message-State: AOJu0Yw3d+qc2Kc552tv4J1zVB7lobHxPnhoxE+7B1l67qgyq8J7fPIj 6ewovJQ2l7KJ56MVUnVBAevS0KMaDcU6agqcs+GUDz7R2rK7J0L6Ino9RCVHr98uh16TOsAf/yo hit/kKUC4sR5+Eq+v+Tfxm+Ifbg65RKWOgP8xyfiETla4OX31VD0IsKsyZiJyzU0pVP+EHHm1od w9AffQsSiGCVl7AGrWLmie5VHI7BZ3UBQGPVbJ2w== X-Gm-Gg: AY/fxX4ue5YVWezAXuxvx2JE6ChzRH1ABK5WrsUe1SMfrv+ZdU6cFCTnlcawGsF1YZd oFUeVQ87N8Ic9oD4cen5T3VOn1ituFb/3xxuO/pbEFJAu8U/hl+zENRtohjg3j8uqXkqy2rerzf Fl9LERCknkjctA88mkj47NQxaF8g/qFWQ0EAp1P0lc8Z+pEih5oYS6FHKZ8OHvP7qTKmQlfx1WW rPWjT4nmj44Y7hRZtHah5x4I0aL1exwAZDd28nIqVJ1OxLfAkWPXpa35QtWYwf0jHs7B5Q2XfpT CXO16qxfrDDD3xgdc8yfYKDUjLjFjbuqh6/tchzoiO8C3nYE8J9acOGU3Erv6JVBZSehsFxEaid F X-Received: by 2002:a05:620a:2a02:b0:8b2:ea56:9660 with SMTP id af79cd13be357-8bb39eb9b2amr1641545285a.30.1765831928072; Mon, 15 Dec 2025 12:52:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IEoyjdtJ/rhPtsdiJKjZlM6aawycNkDpUb37ahVdf1nFzJGnKCJNQO7JsQiwCj8NiRuOqNtKA== X-Received: by 2002:a05:620a:2a02:b0:8b2:ea56:9660 with SMTP id af79cd13be357-8bb39eb9b2amr1641540785a.30.1765831927470; Mon, 15 Dec 2025 12:52:07 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 01/12] kvm: Decouple memory attribute check from kvm_guest_memfd_supported Date: Mon, 15 Dec 2025 15:51:52 -0500 Message-ID: <20251215205203.1185099-2-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.129.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832023403158500 Content-Type: text/plain; charset="utf-8" From: Xiaoyao Li With the mmap support of guest memfd, KVM allows usersapce to create guest memfd serving as normal non-private memory for X86 DEFEAULT VM. However, KVM doesn't support private memory attriute for X86 DEFAULT VM. Make kvm_guest_memfd_supported not rely on KVM_MEMORY_ATTRIBUTE_PRIVATE and check KVM_MEMORY_ATTRIBUTE_PRIVATE separately when the machine requires guest_memfd to serve as private memory. This allows QMEU to create guest memfd with mmap to serve as the memory backend for X86 DEFAULT VM. Signed-off-by: Xiaoyao Li Signed-off-by: Peter Xu Reviewed-by: Fabiano Rosas --- include/system/kvm.h | 1 + accel/kvm/kvm-all.c | 8 ++++++-- accel/stubs/kvm-stub.c | 5 +++++ system/physmem.c | 8 ++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/include/system/kvm.h b/include/system/kvm.h index 8f9eecf044..b5811c90f1 100644 --- a/include/system/kvm.h +++ b/include/system/kvm.h @@ -561,6 +561,7 @@ int kvm_create_guest_memfd(uint64_t size, uint64_t flag= s, Error **errp); =20 int kvm_set_memory_attributes_private(hwaddr start, uint64_t size); int kvm_set_memory_attributes_shared(hwaddr start, uint64_t size); +bool kvm_private_memory_attribute_supported(void); =20 int kvm_convert_memory(hwaddr start, hwaddr size, bool to_private); =20 diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 28006d73c5..59836ebdff 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1501,6 +1501,11 @@ int kvm_set_memory_attributes_shared(hwaddr start, u= int64_t size) return kvm_set_memory_attributes(start, size, 0); } =20 +bool kvm_private_memory_attribute_supported(void) +{ + return !!(kvm_supported_memory_attributes & KVM_MEMORY_ATTRIBUTE_PRIVA= TE); +} + /* Called with KVMMemoryListener.slots_lock held */ static void kvm_set_phys_mem(KVMMemoryListener *kml, MemoryRegionSection *section, bool add) @@ -2781,8 +2786,7 @@ static int kvm_init(AccelState *as, MachineState *ms) kvm_supported_memory_attributes =3D kvm_vm_check_extension(s, KVM_CAP_= MEMORY_ATTRIBUTES); kvm_guest_memfd_supported =3D kvm_vm_check_extension(s, KVM_CAP_GUEST_MEMFD) && - kvm_vm_check_extension(s, KVM_CAP_USER_MEMORY2) && - (kvm_supported_memory_attributes & KVM_MEMORY_ATTRIBUTE_PRIVATE); + kvm_vm_check_extension(s, KVM_CAP_USER_MEMORY2); kvm_pre_fault_memory_supported =3D kvm_vm_check_extension(s, KVM_CAP_P= RE_FAULT_MEMORY); =20 if (s->kernel_irqchip_split =3D=3D ON_OFF_AUTO_AUTO) { diff --git a/accel/stubs/kvm-stub.c b/accel/stubs/kvm-stub.c index 68cd33ba97..73f04eb589 100644 --- a/accel/stubs/kvm-stub.c +++ b/accel/stubs/kvm-stub.c @@ -125,3 +125,8 @@ int kvm_create_guest_memfd(uint64_t size, uint64_t flag= s, Error **errp) { return -ENOSYS; } + +bool kvm_private_memory_attribute_supported(void) +{ + return false; +} diff --git a/system/physmem.c b/system/physmem.c index c9869e4049..3555d2f6f7 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2211,6 +2211,14 @@ static void ram_block_add(RAMBlock *new_block, Error= **errp) object_get_typename(OBJECT(current_machine->cgs))); goto out_free; } + + if (!kvm_private_memory_attribute_supported()) { + error_setg(errp, "cannot set up private guest memory for %s: " + " KVM does not support private memory attribute", + object_get_typename(OBJECT(current_machine->cgs))); + goto out_free; + } + assert(new_block->guest_memfd < 0); =20 ret =3D ram_block_coordinated_discard_require(true); --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832013; cv=none; d=zohomail.com; s=zohoarc; b=kNXJi72GRCXZ+6QsPl+nnzSvArclk35U5NJEFfON1pjway7iCJ4wSQu41yuoxwbH6YSYB2PjXL3oT9v8Thin3YZtPfd/BOhA1v+g8Z6/Z7NgQDq0AcIl+GL4ruuUip4GBqFKexjwN+CKoMYyUoYk/shIb9aLJsEdPfJTCXIKrMQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832013; 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=SmRelyvkEWPwQViCA0GfPBr0X54FEreZWo37gPxLTgs=; b=EmCK4AdD25QNc2rC6H9AMTs7teJUxG4pp6LyYAL5AFu/xwqiHuJjPzmwUThFWzN8jupnGnfVOwVUgdacwy1wjDe3eeTNMc8rFAwG8fydDkkSrWvwyxqDZT7qlsl084IifZ4vSCFh2nesDSsIAmxek5yg0d2aw4MEA5g3Saa8rkk= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765832013358791.185139264752; Mon, 15 Dec 2025 12:53:33 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYF-00065q-Mf; Mon, 15 Dec 2025 15:52:15 -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 1vVFYD-00063U-PT for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:13 -0500 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 1vVFYC-0005hX-E6 for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:13 -0500 Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-29-wPfzcQoLOveStDxEe44hHw-1; Mon, 15 Dec 2025 15:52:10 -0500 Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-8b2f0be2cf0so1305752985a.0 for ; Mon, 15 Dec 2025 12:52:10 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831931; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SmRelyvkEWPwQViCA0GfPBr0X54FEreZWo37gPxLTgs=; b=Wz3gsTutBaRHpuu6HQ/XnXfyUtHftiBawnzWuMGnAI/YKcxL8JgQvnbcqs488DF5srnIpD eBSk0kdZx46n/WzLS33SIs4xeJcbKcFm6GiGydZUzAzyJSSSjSEkHES2UjO8SzktwyV+Kk ctGoQ5kfmlzi2z3KNCpvxqKsrQWLyPc= X-MC-Unique: wPfzcQoLOveStDxEe44hHw-1 X-Mimecast-MFC-AGG-ID: wPfzcQoLOveStDxEe44hHw_1765831930 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831929; x=1766436729; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SmRelyvkEWPwQViCA0GfPBr0X54FEreZWo37gPxLTgs=; b=BqUvz2PVtFWNKH0AxOHOEfxKEj3n3x8VVaDfLHyQq4J3CGE8PfjBG8cRJEdLijGj5T OknGoO6XaERJM+lwRk0EweQxfug8R/K6RDOjpH+ovRQYESXZ4zcSnBIT3rn+P5YVWneK FJMN9F9sWD8SI/6SET68JA2kp9OKH3L9j94nvoz/5igTPtoyjevz6d2Ht80kEn7h+wzc JoTbHQUqiboP70obgzfpctkWdldcUKGli32YadZwPVnxFBqD1CJ5ArPy9fGwSX/5WYa0 ACslt3r8wkHJJYsY8922MalP65G0jm7SRZGYAMxpOWXn9QV/FPn1XvFBQUIvouv7fQDB vggQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831929; x=1766436729; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=SmRelyvkEWPwQViCA0GfPBr0X54FEreZWo37gPxLTgs=; b=hrY+5z/DHVD13wdhUM8ucc60FjKA6wpSAfuLEz/U6krs5DuC7OVPa64uCOY+PXrfkA fNA9YhZ3Jgn+EEnTLL2G4hoKSD/X8GY3di6swYhoq6Rsrb6u5Tr8FUNdRKnMiExLlRqT dN7ViyYZ1n2EVphtutJmZqCMq0EyZnPeLVtA81wwuzwIygkrjVGKhpDi2swz/Gw2HaHh 1Xzrv6XJe6+VILSPAHGcppTAbd/pRfNMjYDVye/x756c4tAy+JmoonTHkCHyGV6Pbi4b McwFcI9vJ+7hxiHR5YPxt3DqMv/hAT1ZSXuNuGUMAm9IoYv75GeOV6jWp2FsQEnm+Wjq fKqw== X-Gm-Message-State: AOJu0YxpztN5gKTzldF0ftYKr30rPw9SS+M2OMcitSKhY0r3II+h6MI6 Zyjl4z88c+7GHk0sH6DDW/yXNwhQbwD++nifeTHCHc2+cZTAMCi0hs0OrkdVZz+Qmw1bVgZbmIw fPAwoE93stxv88gS5LUj3QlG5ThbL2fwoHBlvmMyw++blzVmm6sEEmGVQbVaDjld3Bfzv3K5aLo CuCPFQdSc6nin9nwULl2mVtwmjhMSBL6c/nHEvnw== X-Gm-Gg: AY/fxX6FV5Sg9zuLcT+d/NejLSI18xjXQ+iv0EIoorRMOGYiXdkT2h/H8XI3ybhunL9 tLemf+pXWYnnc9NeX4MUf76Y55SnTm4XylZ4rd1EQaudAmgumXgUhX90NyIXIRCvexym91Agr2N Ak7psQSV9KAEouQA0RISSJ12FBkgNxe5sw9BZqk64UwxpQicQcV8Hx8Ta5mvmkhUq2pajbec66P Ug0ckesK3KFsHCmOITBwrhN3vcqyvJwzfFKm47J2EzK73YJwtSRcEsbnPoykr1NK732xzGoTnKj NgNnVb0fOOWTsaV9S/3MbB7k4jy+VPhlH5BZzRhckDljQnLP0Cwab4EHv76IOoWu7koHTcgA7zA U X-Received: by 2002:a05:620a:1a20:b0:89a:ad1c:5139 with SMTP id af79cd13be357-8bb399d90a3mr1650871485a.1.1765831929169; Mon, 15 Dec 2025 12:52:09 -0800 (PST) X-Google-Smtp-Source: AGHT+IHbPXsWWzDu25bjK3oDlTGZWUlehNqb0ayakt6jxFVAHsqF+4litep2Z0/EBQs/flimdQFrxQ== X-Received: by 2002:a05:620a:1a20:b0:89a:ad1c:5139 with SMTP id af79cd13be357-8bb399d90a3mr1650866685a.1.1765831928655; Mon, 15 Dec 2025 12:52:08 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 02/12] kvm: Detect guest-memfd flags supported Date: Mon, 15 Dec 2025 15:51:53 -0500 Message-ID: <20251215205203.1185099-3-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.129.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832015162158500 Content-Type: text/plain; charset="utf-8" Detect supported guest-memfd flags by the current kernel, and reject creations of guest-memfd using invalid flags. When the cap isn't available, then no flag is supported. Reviewed-by: Xiaoyao Li Signed-off-by: Peter Xu Reviewed-by: Fabiano Rosas --- accel/kvm/kvm-all.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 59836ebdff..68d57c1af0 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -108,6 +108,7 @@ static int kvm_sstep_flags; static bool kvm_immediate_exit; static uint64_t kvm_supported_memory_attributes; static bool kvm_guest_memfd_supported; +static uint64_t kvm_guest_memfd_flags_supported; static hwaddr kvm_max_slot_size =3D ~0; =20 static const KVMCapabilityInfo kvm_required_capabilites[] =3D { @@ -2787,6 +2788,10 @@ static int kvm_init(AccelState *as, MachineState *ms) kvm_guest_memfd_supported =3D kvm_vm_check_extension(s, KVM_CAP_GUEST_MEMFD) && kvm_vm_check_extension(s, KVM_CAP_USER_MEMORY2); + + ret =3D kvm_vm_check_extension(s, KVM_CAP_GUEST_MEMFD_FLAGS); + kvm_guest_memfd_flags_supported =3D ret > 0 ? ret : 0; + kvm_pre_fault_memory_supported =3D kvm_vm_check_extension(s, KVM_CAP_P= RE_FAULT_MEMORY); =20 if (s->kernel_irqchip_split =3D=3D ON_OFF_AUTO_AUTO) { @@ -4492,6 +4497,13 @@ int kvm_create_guest_memfd(uint64_t size, uint64_t f= lags, Error **errp) return -1; } =20 + if (flags & ~kvm_guest_memfd_flags_supported) { + error_setg(errp, "Current KVM instance does not support " + "guest-memfd flag: 0x%"PRIx64, + flags & ~kvm_guest_memfd_flags_supported); + return -1; + } + fd =3D kvm_vm_ioctl(kvm_state, KVM_CREATE_GUEST_MEMFD, &guest_memfd); if (fd < 0) { error_setg_errno(errp, errno, "Error creating KVM guest_memfd"); --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832013; cv=none; d=zohomail.com; s=zohoarc; b=fKS+QrXXNTaVUqeZNBiBAHfTEqhzYtOTE4w/tKftRSLQgIL7fnJlHVd5TpmVfIlNGTfbkha7Hj59CHldp+y0QZtZK7lOsUFRimoWh7F3b4DNrL/vNOnI2a14hustCGFo6Yvz9zrboqwHvJEbUUlvHhJe0uU3sFCJiu8bWyjmcvk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832013; 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=v8ZubJdrLstUHPQhh3/7CyY2NbdwUkv9s3/htRkbmeA=; b=eqfNVqFllHwwuIX24Kp/rYRq+DDNvLfzBFGOtNpJcNNU9EgdhYkWXgISSqypTIXFNU1AbXBAKwQW+6ebqnHgP1XgCp8dm5Zxmm8ldjrGHY2lOMwmFJ9hD5xhJaQG9sMIzjHUP/bfii1SJUI7FHXzm9pxPit74c+ulWomXg0ThYc= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765832013435655.7993531049007; Mon, 15 Dec 2025 12:53:33 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYG-00067G-Eg; Mon, 15 Dec 2025 15:52:16 -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 1vVFYF-00065w-LH for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:15 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vVFYE-0005i0-7x for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:15 -0500 Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-358-IINjn6UmPw2bLcK9PsvMzw-1; Mon, 15 Dec 2025 15:52:11 -0500 Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-8b1d8f56e24so898725785a.2 for ; Mon, 15 Dec 2025 12:52:11 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=v8ZubJdrLstUHPQhh3/7CyY2NbdwUkv9s3/htRkbmeA=; b=BI/1aq49J3lLcDSwmeX7qciWeJnXRD1BsRaDfmokeSdSKNx1VNroSEBMnVE6lHpXM8JcBt 3Bkep7/y/A6IVbL0RAgLqG1AnU1lJAM6Y8LbFEFpioyUqBGiP7rsZxXvZQ/9cN3VNsJNBY tSq6YYBfCzuPfANUY3kZJ+LGrjgbAYg= X-MC-Unique: IINjn6UmPw2bLcK9PsvMzw-1 X-Mimecast-MFC-AGG-ID: IINjn6UmPw2bLcK9PsvMzw_1765831931 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831931; x=1766436731; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=v8ZubJdrLstUHPQhh3/7CyY2NbdwUkv9s3/htRkbmeA=; b=OzSlpMS336lxbjGrgeOKqHWwWG+/rhrOGPEaNq7P6ToMtzyIWWL7b+wwMHQHvLRKZc DS/qSIZn54Ny8kpWqU4i2vk+tPfZ4T2F1HrJbAFmgSicV656OGoqQ67N9Ef/A6K2c7Qz G9I5GNIlAnT7sJXJ0T7s5JUkGA/JYWKQtApvOEV1q1IdbCZczztjRm6LGPFDbZwVQU6m lXRX1oshSy1oy+P+JIafjcVswTXmDWGGltX1Vv+VU8XxJ7Kb/dU4/DyrX4joCL+U//Ch cxeKzDScbZ/4SJJyK/P/DT6AF1tmDoxMwLuK0nO4yHAQGFWlMJweU/wWSvuhhpTPnrf6 yErQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831931; x=1766436731; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=v8ZubJdrLstUHPQhh3/7CyY2NbdwUkv9s3/htRkbmeA=; b=jp0rbtI2BrZOQjSBrEd6ApFd4W9+LOobuR3tm9Q8UaNg5WEyRPJtb3F4I3FOcORJd9 HoTv09co1SBUCm33rXtlgtJRTQHC7fPJnTgmocl+JJoctS2x2EBK+abMIpMfXd3iFoSV 1CgeD75+SXFB9gB9e0dmG1qBQD8LRWCpOib9Que3E0frpn9Po/MDYpE94vXXtE0o/CEB IrXOaOasKahNbGaVTybaWwUc5t5x1apLQY45PFNcoIMKwEhG8IbnrXf1TzZLVOx8k9EZ teNK7HVrze42MP7Ur1QHYn8J69gMrLCWJCF9mXYXjsoz+87XjNLPIZsm21DY8vgCjun3 bwGA== X-Gm-Message-State: AOJu0Yx48upwz1Q/xGstgZFShKmrPK9AVPVNhl0zmpud+XEgeUWBWKe/ tYJnHX2BK9v7FPvojOQ3qW+1wHouwDi9We+KXbBUemmGoABo43FxOFTPuFvgIKFtFPFF4iW0wW9 MP8+BzjR1Ktqy9tMqABtAHABo84cMUbSNuVk2J8vIQyQQZ8m/caIPFCm4r1yrvfbxxko0jtWEce TZYNbdNaDYJAVlaDQ097cbORCthmWCscpxWOjxEg== X-Gm-Gg: AY/fxX5XdDZXDSlkw29JKVD+996yOmQ4gIIz4s0+w+Ths7owtUti3yKClu+iZnJvmsD FUbtrJoCpSUvBqU9uLtDvYjgzL3QxU8dm/WrXCiLbjsCs56Y0euE0u/ig1dYCRCZnUHOp2TerdO R/vE1BToAqEkdN3WXaiiXdHA0EhrldGCYMv18Z1LHUPRF9/NWchAFZNNHf5XKwd0cEimJ9D172W Yrzjf0mBW9ID847I29/EyqEduFNR1z2ZwW4CGSkSO+7AKfvQJwYMBTbX8apJbvdmLzAyt+MfrR6 gKellfKjznLAIwHZ5+jJkgBttJQe0aVSSjI0Wrh2ILlT2MdhyYpXytr6qz3K/yVsMLNMqWL+iv7 q X-Received: by 2002:a05:620a:4621:b0:8ba:1326:8c56 with SMTP id af79cd13be357-8bb3a38895amr1784640285a.63.1765831930972; Mon, 15 Dec 2025 12:52:10 -0800 (PST) X-Google-Smtp-Source: AGHT+IE4ZKjiocK9hhofHjOVY+TOu1rLK61wKaslSAfGoaX0AdwCotGzXdXZQXjTXD7WcLDStaLOlg== X-Received: by 2002:a05:620a:4621:b0:8ba:1326:8c56 with SMTP id af79cd13be357-8bb3a38895amr1784635185a.63.1765831930368; Mon, 15 Dec 2025 12:52:10 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 03/12] kvm: Provide explicit error for kvm_create_guest_memfd() Date: Mon, 15 Dec 2025 15:51:54 -0500 Message-ID: <20251215205203.1185099-4-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.133.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832015288154100 Content-Type: text/plain; charset="utf-8" So that there will be a verbal string returned when kvm not enabled, or kvm not compiled. Signed-off-by: Peter Xu Reviewed-by: Fabiano Rosas Reviewed-by: Xiaoyao Li --- accel/kvm/kvm-all.c | 5 +++++ accel/stubs/kvm-stub.c | 1 + 2 files changed, 6 insertions(+) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 68d57c1af0..c32fbcf9cc 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -4492,6 +4492,11 @@ int kvm_create_guest_memfd(uint64_t size, uint64_t f= lags, Error **errp) .flags =3D flags, }; =20 + if (!kvm_enabled()) { + error_setg(errp, "guest-memfd requires KVM accelerator"); + return -1; + } + if (!kvm_guest_memfd_supported) { error_setg(errp, "KVM does not support guest_memfd"); return -1; diff --git a/accel/stubs/kvm-stub.c b/accel/stubs/kvm-stub.c index 73f04eb589..01b1d6285e 100644 --- a/accel/stubs/kvm-stub.c +++ b/accel/stubs/kvm-stub.c @@ -123,6 +123,7 @@ bool kvm_hwpoisoned_mem(void) =20 int kvm_create_guest_memfd(uint64_t size, uint64_t flags, Error **errp) { + error_setg(errp, "KVM is not enabled"); return -ENOSYS; } =20 --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832063; cv=none; d=zohomail.com; s=zohoarc; b=KpTRHeJaD3X9XTftgyIJP4d3fuMtXu77yTZF/JGPnab4V8Woz0QmAQSAI7aelzeeeO2JhWfDGw7iS1cvLtPurmqATLQVEPha+cXhZBbRzfS6GZ3aM2tDq+ZfH7elLI4Bm9FPzypUvOgltjGgWdvg43gxkDKw5FEcHdzGpGV+VQY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832063; 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=JmKusuq6uHMqMtwb2w5nGfEZK05nMZ43+JE7R3KsL48=; b=iwWt+SR5s+egSU2g6IoBck4BkgkpDHZLJOyGFSZwoH9pvA5g0oOB/grUBXoW6q3AvdZuYM0QCZGaVI4sAsEc/6e9zuX6au/4Bs0Oxz9v+ussjZNpDirD8p/rvVpM5D/Blfwh8V7Wc6Nwd6i+ZPYuk9lLHJ9nWNUda5X89NWzxYA= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765832063738134.34730326161593; Mon, 15 Dec 2025 12:54:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYK-0006BT-2u; Mon, 15 Dec 2025 15:52:20 -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 1vVFYH-00068P-AM for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:17 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vVFYF-0005il-Bk for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:16 -0500 Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-84-faCWbvdeMSC7NpWZbRfFiQ-1; Mon, 15 Dec 2025 15:52:13 -0500 Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-88a344b86f7so48397396d6.0 for ; Mon, 15 Dec 2025 12:52:13 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831934; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JmKusuq6uHMqMtwb2w5nGfEZK05nMZ43+JE7R3KsL48=; b=N6Fl2PITJbzSsj6RNeTPD5qrJ4+0+4YfdbNWsh2unT9psVBfv8lRy+GgyRYBm+vI9dyJQl zb1WLtnOz6v/l+giiQL39md4MafJgEcMUHSQ7TUGradNUHp66KX0GfuJmtwLHm+HsVn/Es Yo1Ukhoo4E8//7DadEV8mC8nBHY0Y5E= X-MC-Unique: faCWbvdeMSC7NpWZbRfFiQ-1 X-Mimecast-MFC-AGG-ID: faCWbvdeMSC7NpWZbRfFiQ_1765831933 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831932; x=1766436732; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JmKusuq6uHMqMtwb2w5nGfEZK05nMZ43+JE7R3KsL48=; b=aIe0c8fcX2UDle1yv6H2NALaXi+syo1KlkiKxqO6iKSqnJyYu9l7fBy502YYQNjHSP qL0DLKokvtd19VF/XdoHT+UIt+LCVNSIUR9MiDVuV55sGBZ6W2FprlW5ttZ3it7n12LS 4gjPya3C/MT6C63xg69QrNX/L4fW+M04f5MoO62/uX/vdxshHckN1Fraf3sFqZQmhHe7 6DFA6sQzDbF4UAsHAXtL3fdofcsXx7MnaecafmVhomz1Di8MSe8y8VzD6WJ5YZH0rP5M GCW3liK0N+xe7zjM/Q/AR/npUofY+n2IgbhFQSJA43vpA3YwYbpNQUvsz7VPvUBkLqxp KTyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831932; x=1766436732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=JmKusuq6uHMqMtwb2w5nGfEZK05nMZ43+JE7R3KsL48=; b=YUbB72BBBLapvLWBiRq/Nxt6ae8BSEPHO+3fat5wnxRIB5Ql9+uQ5LzeABUp/Zzlx8 9uqbjGfzsk/fLg3TMLu5XGAD6EKEzt7Gu6AWSeko82LPwHsGcVb7GZq44Q4eraFb4cZh 78bJg+mkahvQFbMP2TvxIz+HhW/GiKyzPfg5F+IGJq3fw2sbiR5yXUOVLuZowTuFBGK8 oVynAU8EROGziBR3uA/BOq8Xx74gGsnLG7HV3S1lUwZWxAd6HrR7Q3ixlLjB8lEMs6lp YLfIIdJcRPA/eoKlgbGfgAB4Sb980LiwZy4sVY/cuAAF24V4CxSf23LeuNXVcqy3ZEwp OqbA== X-Gm-Message-State: AOJu0Yw0bCvuBtCKW7ygNCi7C60tkJWn1ZfH1M/fRiCrAgP0tPCRyfiw hbzWmaosUwr+T9CuOKj0GTltZulW66oh/oIb59ySdCzvRqPeZRWYSI78NQGgeCLvjYZtTMGhqzU lb6RJX3bC6Dv1VyTdm2PCX/wU9tnExf2/ZYomQ1Lm8R0OyEKN/my8cPUrkPwmuXbWNlpnf3VWcZ 20SUyAK58T4NUUVP9HWdchxEaGg1mDtnH4QWkfFg== X-Gm-Gg: AY/fxX4fjWCDGPRM92wFeDeWVS1km93fJWCC9ExcuN2MbrVgrQ8TSTJu4CHsBbfFGu4 vX9lM9cDpAObALGK7b8IqhqvpWVoKAzzESuZuBk/ZZ+7tOSoTVttxisxUCA1IN1pX2gN1IasJhj C440ljdiJOWaUCiQ1FZ1T+AIRV5l0Qf8JRpytvvZ9m/IvQJRK9KhIO9uDbhUzK226JKmt0mrB7V bPVtxohhVmEV+kV8eg0M2q84bPVxmH8UKK7CM3RqPl4DVd/S883bj9Dzv/Pg5UN03DRm/3nRp6e H/V7/THqs1lbCecVTesIpUuKFUqQj/jvZ0p3SLmfiBdZiFw7A8YTX/2afR531HnpX3Wmz9GnBhQ T X-Received: by 2002:a05:6214:da1:b0:888:5a6a:6413 with SMTP id 6a1803df08f44-888801a0de7mr163582026d6.34.1765831932476; Mon, 15 Dec 2025 12:52:12 -0800 (PST) X-Google-Smtp-Source: AGHT+IG186EHlsPG5y1vqNuLuMktpVSx3h/4JKcPW+SusIquB7ULFhBY1daE0AgPxIBWxFjd1lUSLw== X-Received: by 2002:a05:6214:da1:b0:888:5a6a:6413 with SMTP id 6a1803df08f44-888801a0de7mr163581666d6.34.1765831931932; Mon, 15 Dec 2025 12:52:11 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 04/12] ramblock: Rename guest_memfd to guest_memfd_private Date: Mon, 15 Dec 2025 15:51:55 -0500 Message-ID: <20251215205203.1185099-5-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.133.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832065980154100 Content-Type: text/plain; charset="utf-8" Rename the field to reflect the fact that the guest_memfd in this case only backs private portion of the ramblock rather than all of it. Reviewed-by: Xiaoyao Li Signed-off-by: Peter Xu --- include/system/memory.h | 7 ++++--- include/system/ramblock.h | 7 ++++++- accel/kvm/kvm-all.c | 2 +- system/memory.c | 2 +- system/physmem.c | 21 +++++++++++---------- 5 files changed, 23 insertions(+), 16 deletions(-) diff --git a/include/system/memory.h b/include/system/memory.h index 3bd5ffa5e0..2384575065 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -1823,10 +1823,11 @@ static inline bool memory_region_is_romd(MemoryRegi= on *mr) bool memory_region_is_protected(MemoryRegion *mr); =20 /** - * memory_region_has_guest_memfd: check whether a memory region has guest_= memfd - * associated + * memory_region_has_guest_memfd: check whether a memory region has + * guest_memfd_private associated * - * Returns %true if a memory region's ram_block has valid guest_memfd assi= gned. + * Returns %true if a memory region's ram_block has guest_memfd_private + * assigned. * * @mr: the memory region being queried */ diff --git a/include/system/ramblock.h b/include/system/ramblock.h index 76694fe1b5..9ecf7f970c 100644 --- a/include/system/ramblock.h +++ b/include/system/ramblock.h @@ -40,7 +40,12 @@ struct RAMBlock { Error *cpr_blocker; int fd; uint64_t fd_offset; - int guest_memfd; + /* + * When RAM_GUEST_MEMFD_PRIVATE flag is set, this ramblock can have + * private pages backed by guest_memfd_private specified, while shared + * pages are backed by the ramblock on its own. + */ + int guest_memfd_private; RamBlockAttributes *attributes; size_t page_size; /* dirty bitmap used during migration */ diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index c32fbcf9cc..1126b6f477 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1603,7 +1603,7 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, mem->ram_start_offset =3D ram_start_offset; mem->ram =3D ram; mem->flags =3D kvm_mem_flags(mr); - mem->guest_memfd =3D mr->ram_block->guest_memfd; + mem->guest_memfd =3D mr->ram_block->guest_memfd_private; mem->guest_memfd_offset =3D mem->guest_memfd >=3D 0 ? (uint8_t*)ram - mr->ram_block->host : 0; =20 diff --git a/system/memory.c b/system/memory.c index 8b84661ae3..355b1fa26b 100644 --- a/system/memory.c +++ b/system/memory.c @@ -1899,7 +1899,7 @@ bool memory_region_is_protected(MemoryRegion *mr) =20 bool memory_region_has_guest_memfd(MemoryRegion *mr) { - return mr->ram_block && mr->ram_block->guest_memfd >=3D 0; + return mr->ram_block && mr->ram_block->guest_memfd_private >=3D 0; } =20 uint8_t memory_region_get_dirty_log_mask(MemoryRegion *mr) diff --git a/system/physmem.c b/system/physmem.c index 3555d2f6f7..c3c7a81310 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2219,7 +2219,7 @@ static void ram_block_add(RAMBlock *new_block, Error = **errp) goto out_free; } =20 - assert(new_block->guest_memfd < 0); + assert(new_block->guest_memfd_private < 0); =20 ret =3D ram_block_coordinated_discard_require(true); if (ret < 0) { @@ -2229,9 +2229,9 @@ static void ram_block_add(RAMBlock *new_block, Error = **errp) goto out_free; } =20 - new_block->guest_memfd =3D kvm_create_guest_memfd(new_block->max_l= ength, - 0, errp); - if (new_block->guest_memfd < 0) { + new_block->guest_memfd_private =3D + kvm_create_guest_memfd(new_block->max_length, 0, errp); + if (new_block->guest_memfd_private < 0) { qemu_mutex_unlock_ramlist(); goto out_free; } @@ -2248,7 +2248,7 @@ static void ram_block_add(RAMBlock *new_block, Error = **errp) new_block->attributes =3D ram_block_attributes_create(new_block); if (!new_block->attributes) { error_setg(errp, "Failed to create ram block attribute"); - close(new_block->guest_memfd); + close(new_block->guest_memfd_private); ram_block_coordinated_discard_require(false); qemu_mutex_unlock_ramlist(); goto out_free; @@ -2385,7 +2385,7 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, ram= _addr_t max_size, new_block->max_length =3D max_size; new_block->resized =3D resized; new_block->flags =3D ram_flags; - new_block->guest_memfd =3D -1; + new_block->guest_memfd_private =3D -1; new_block->host =3D file_ram_alloc(new_block, max_size, fd, file_size < offset + max_size, offset, errp); @@ -2558,7 +2558,7 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ra= m_addr_t max_size, new_block->used_length =3D size; new_block->max_length =3D max_size; new_block->fd =3D -1; - new_block->guest_memfd =3D -1; + new_block->guest_memfd_private =3D -1; new_block->page_size =3D qemu_real_host_page_size(); new_block->host =3D host; new_block->flags =3D ram_flags; @@ -2609,9 +2609,9 @@ static void reclaim_ramblock(RAMBlock *block) qemu_anon_ram_free(block->host, block->max_length); } =20 - if (block->guest_memfd >=3D 0) { + if (block->guest_memfd_private >=3D 0) { ram_block_attributes_destroy(block->attributes); - close(block->guest_memfd); + close(block->guest_memfd_private); ram_block_coordinated_discard_require(false); } =20 @@ -4222,7 +4222,8 @@ int ram_block_discard_guest_memfd_range(RAMBlock *rb,= uint64_t offset, =20 #ifdef CONFIG_FALLOCATE_PUNCH_HOLE /* ignore fd_offset with guest_memfd */ - ret =3D fallocate(rb->guest_memfd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KE= EP_SIZE, + ret =3D fallocate(rb->guest_memfd_private, + FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, offset, length); =20 if (ret) { --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832026; cv=none; d=zohomail.com; s=zohoarc; b=hxP4knugy6S55HfyMJfJAoIASedN2ddPT+GxshnsNiIUlQSSjQpr291gzAus1NR5QNvuREP+5hFRyEQUVFJ272FQh+AXoWR9Flk81T4WUFp83tcyKewLC8zb2mRgXE8TdLasB9Pq7vOT7LElBULNXhiMvplM0neSfYiXXHg3ypw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832026; 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=OyW0lUuue+oSxUUag6YkBCN6AuGW/vwp0tgBJvbr4UA=; b=Cr/ImCMQjaaLf4M4yKfpbBsmPD/LpgaIOjRc/LfolguFQz+JkFrt5RDGdYxThvCJ3Z9WHI7ih14lOSDt8PC/o7stuBLH6TZoDZky/gMRg0cI3AWSfI07QzDo4RaN6ROCdv8zAej9iuySCamFNJEMcpnwQPNmIoH6nnbbCAmEqX8= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176583202635324.31396994609497; Mon, 15 Dec 2025 12:53:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYM-0006EG-A1; Mon, 15 Dec 2025 15:52:22 -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 1vVFYJ-0006Aj-Hf for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:19 -0500 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 1vVFYH-0005kQ-Hu for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:19 -0500 Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-379-7ryC7a9fNaKKb2cniWTWQA-1; Mon, 15 Dec 2025 15:52:15 -0500 Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-8b51db8ebd9so1362345285a.2 for ; Mon, 15 Dec 2025 12:52:15 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831936; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OyW0lUuue+oSxUUag6YkBCN6AuGW/vwp0tgBJvbr4UA=; b=ASRdnyZmg4yctXueMYvJUKpLJEqX87WYIumN1LKEVQ1HxEiocaMtjTJRU8cpZVURX+rC2e 6+yFbA0XgaXh6QHk8VaeRgYwY+7tObAADOcpOv4r+D/vKtmg3U8X1PFXIoBwyuaXRDx2eq k+AizMcJk8Gi46A/7eAViZCs+Hu+X0A= X-MC-Unique: 7ryC7a9fNaKKb2cniWTWQA-1 X-Mimecast-MFC-AGG-ID: 7ryC7a9fNaKKb2cniWTWQA_1765831935 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831934; x=1766436734; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OyW0lUuue+oSxUUag6YkBCN6AuGW/vwp0tgBJvbr4UA=; b=CB4awTsa+XbX169e9Zhm2BLOHNzTt/BjrHaG6WsYisX2zT5ix5lStbR4DZMV9ZkQpn zHupMqvkXuttasmNm0de0VYjSEzA3R68cDf2H4pvsgwCAVJEZhGd/NGT57tfXt3z6A2S ERpdvFnpMZdMNf6pfX5QN1dy2kKH9qn0l5SnSfx0nW8+h2NS3WS9wDVL/0fPG/9dJUSU oLTYOUlzPYrhOwbYzo4dBOj3CzrjX2EXEVagh0Shz52IdDREzrdarS9EkVOm3dzacPof Cx7blenPveIl0W7rHq5Ww/V8JfofcuNOCHJzmMGtF88f0koQ/Nu1LVy4rlwYjjpEKsI2 ++Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831934; x=1766436734; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=OyW0lUuue+oSxUUag6YkBCN6AuGW/vwp0tgBJvbr4UA=; b=PE+n5ieMJs1NYPGYqJmRku3sDZlYtlFN4SzWRptJ5m89/sFxgGTOuqzJ01NvxqtIbZ yp1X3bvfK8qgwUKCALnrJKUMIKBEHKJrHHejqkaRn+tuULpq1Pc8eZNcNfUIxHTEZx72 Ul2FcGZGBCgtEfICQAfOJfvdDKLQqDRaFoh75bLEzojNeYpwfygNAKpMqZX8o3Dj6Mmq FCMAfLPyr/bbtjGX95J7x+XQZDWwpFFPDVtkHAgqjFRQPjjuNSPB/6nRaxyGrVk5X62y /U4DrkjzlIC6K8VGwrmp3klexNc97mfPsdAfPgGKnHapcOsczFelU3PntVsxDqXDk/7r DHaw== X-Gm-Message-State: AOJu0YzfsRPdcrJx7MtzpKHQRk9CAnlOkriXVxWvUdbchOvi24x/eMD2 Yq9WiTHUR0sKDoIbJYz24JFAKzbJ01iC+LAh45U2Nv4xEI6pw/m1KP6rOa3LIJh9zb61EmiBFFc UgqC8zAPa69s7EJkZkJW6ITYTuynj7Kh8Dd+/VKeea5NeC1xmviHsyjf34rB0hZNtihSKJTgbaI Q/PcSEEtiV3oaJVnyDVEf7v/CpC1aT6J7HilhKlw== X-Gm-Gg: AY/fxX71I5DDXwYwRdJbYkrISdU9+CvgQ1u8jqwYxD+/AhIbfBZuMOnL3OswSH4MJOJ R0hEHXG5lSnNBzP+88CHWjS0I5AdQkMQDPFI7OPM6bNDk+xhaGvUplBbd9bMZMxJInmldMh0OQk bNK+ayfay7f+ioM+OZjqL9sNUPA+g/idIMp7OecqbyOuOuSAK8d1RUCIcmTODGV2dNS9S0jA42N T/m2BE68CEkQp5/BnNgbDj7kGRfaTdaAizDVuyfHbXW4Qv+68UYi1bvkF8hEkzBzSYkH14f9hns ndp9kBKtQ8z4gTWxNzeuX4I+/EZLKmTbZ0WKYSlsLyzKSWFfXFFHRTLtbZGBT+FeG0Q7gR2vNds q X-Received: by 2002:a05:620a:7105:b0:8b2:effe:b4d4 with SMTP id af79cd13be357-8bb3a38fab0mr1677233485a.78.1765831934273; Mon, 15 Dec 2025 12:52:14 -0800 (PST) X-Google-Smtp-Source: AGHT+IGdvWDdcpQ6hbL7d8lE245Plli67+G16QO0j/Z+l2xDYXRsoNvyIiYzZ6exHq/s6PjRoOEUMg== X-Received: by 2002:a05:620a:7105:b0:8b2:effe:b4d4 with SMTP id af79cd13be357-8bb3a38fab0mr1677229085a.78.1765831933552; Mon, 15 Dec 2025 12:52:13 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 05/12] memory: Rename RAM_GUEST_MEMFD to RAM_GUEST_MEMFD_PRIVATE Date: Mon, 15 Dec 2025 15:51:56 -0500 Message-ID: <20251215205203.1185099-6-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.129.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832027535154100 Content-Type: text/plain; charset="utf-8" This name is too generic, and can conflict with in-place guest-memfd support. Add a _PRIVATE suffix to show what it really means: it is always silently using an internal guest-memfd to back a shared host backend, rather than used in-place. This paves way for in-place guest-memfd, which means we can have a ramblock that allocates pages completely from guest-memfd (private or shared). Reviewed-by: Xiaoyao Li Signed-off-by: Peter Xu --- include/system/memory.h | 8 ++++---- include/system/ram_addr.h | 2 +- backends/hostmem-file.c | 2 +- backends/hostmem-memfd.c | 2 +- backends/hostmem-ram.c | 2 +- backends/hostmem-shm.c | 2 +- system/memory.c | 3 ++- system/physmem.c | 8 ++++---- 8 files changed, 15 insertions(+), 14 deletions(-) diff --git a/include/system/memory.h b/include/system/memory.h index 2384575065..1f49f9a0ff 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -263,7 +263,7 @@ typedef struct IOMMUTLBEvent { #define RAM_READONLY_FD (1 << 11) =20 /* RAM can be private that has kvm guest memfd backend */ -#define RAM_GUEST_MEMFD (1 << 12) +#define RAM_GUEST_MEMFD_PRIVATE (1 << 12) =20 /* * In RAMBlock creation functions, if MAP_SHARED is 0 in the flags paramet= er, @@ -1401,7 +1401,7 @@ bool memory_region_init_ram_nomigrate(MemoryRegion *m= r, * must be unique within any device * @size: size of the region. * @ram_flags: RamBlock flags. Supported flags: RAM_SHARED, RAM_NORESERVE, - * RAM_GUEST_MEMFD. + * RAM_GUEST_MEMFD_PRIVATE. * @errp: pointer to Error*, to store an error if it happens. * * Note that this function does not do anything to cause the data in the @@ -1463,7 +1463,7 @@ bool memory_region_init_resizeable_ram(MemoryRegion *= mr, * (getpagesize()) will be used. * @ram_flags: RamBlock flags. Supported flags: RAM_SHARED, RAM_PMEM, * RAM_NORESERVE, RAM_PROTECTED, RAM_NAMED_FILE, RAM_READONLY, - * RAM_READONLY_FD, RAM_GUEST_MEMFD + * RAM_READONLY_FD, RAM_GUEST_MEMFD_PRIVATE * @path: the path in which to allocate the RAM. * @offset: offset within the file referenced by path * @errp: pointer to Error*, to store an error if it happens. @@ -1493,7 +1493,7 @@ bool memory_region_init_ram_from_file(MemoryRegion *m= r, * @size: size of the region. * @ram_flags: RamBlock flags. Supported flags: RAM_SHARED, RAM_PMEM, * RAM_NORESERVE, RAM_PROTECTED, RAM_NAMED_FILE, RAM_READONLY, - * RAM_READONLY_FD, RAM_GUEST_MEMFD + * RAM_READONLY_FD, RAM_GUEST_MEMFD_PRIVATE * @fd: the fd to mmap. * @offset: offset within the file referenced by fd * @errp: pointer to Error*, to store an error if it happens. diff --git a/include/system/ram_addr.h b/include/system/ram_addr.h index 683485980c..930d3824d7 100644 --- a/include/system/ram_addr.h +++ b/include/system/ram_addr.h @@ -92,7 +92,7 @@ static inline unsigned long int ramblock_recv_bitmap_offs= et(void *host_addr, * @resized: callback after calls to qemu_ram_resize * @ram_flags: RamBlock flags. Supported flags: RAM_SHARED, RAM_PMEM, * RAM_NORESERVE, RAM_PROTECTED, RAM_NAMED_FILE, RAM_READONLY, - * RAM_READONLY_FD, RAM_GUEST_MEMFD + * RAM_READONLY_FD, RAM_GUEST_MEMFD_PRIVATE * @mem_path or @fd: specify the backing file or device * @offset: Offset into target file * @grow: extend file if necessary (but an empty file is always extended). diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c index 8e3219c061..1f20cd8fd6 100644 --- a/backends/hostmem-file.c +++ b/backends/hostmem-file.c @@ -86,7 +86,7 @@ file_backend_memory_alloc(HostMemoryBackend *backend, Err= or **errp) ram_flags |=3D fb->readonly ? RAM_READONLY_FD : 0; ram_flags |=3D fb->rom =3D=3D ON_OFF_AUTO_ON ? RAM_READONLY : 0; ram_flags |=3D backend->reserve ? 0 : RAM_NORESERVE; - ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD : 0; + ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD_PRIVATE : 0; ram_flags |=3D fb->is_pmem ? RAM_PMEM : 0; ram_flags |=3D RAM_NAMED_FILE; return memory_region_init_ram_from_file(&backend->mr, OBJECT(backend),= name, diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c index 923239f9cf..3f3e485709 100644 --- a/backends/hostmem-memfd.c +++ b/backends/hostmem-memfd.c @@ -60,7 +60,7 @@ have_fd: backend->aligned =3D true; ram_flags =3D backend->share ? RAM_SHARED : RAM_PRIVATE; ram_flags |=3D backend->reserve ? 0 : RAM_NORESERVE; - ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD : 0; + ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD_PRIVATE : 0; return memory_region_init_ram_from_fd(&backend->mr, OBJECT(backend), n= ame, backend->size, ram_flags, fd, 0,= errp); } diff --git a/backends/hostmem-ram.c b/backends/hostmem-ram.c index 062b1abb11..96ad29112d 100644 --- a/backends/hostmem-ram.c +++ b/backends/hostmem-ram.c @@ -30,7 +30,7 @@ ram_backend_memory_alloc(HostMemoryBackend *backend, Erro= r **errp) name =3D host_memory_backend_get_name(backend); ram_flags =3D backend->share ? RAM_SHARED : RAM_PRIVATE; ram_flags |=3D backend->reserve ? 0 : RAM_NORESERVE; - ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD : 0; + ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD_PRIVATE : 0; return memory_region_init_ram_flags_nomigrate(&backend->mr, OBJECT(bac= kend), name, backend->size, ram_flags, errp); diff --git a/backends/hostmem-shm.c b/backends/hostmem-shm.c index 806e2670e0..e86fb2e0aa 100644 --- a/backends/hostmem-shm.c +++ b/backends/hostmem-shm.c @@ -54,7 +54,7 @@ have_fd: /* Let's do the same as memory-backend-ram,share=3Don would do. */ ram_flags =3D RAM_SHARED; ram_flags |=3D backend->reserve ? 0 : RAM_NORESERVE; - ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD : 0; + ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD_PRIVATE : 0; =20 return memory_region_init_ram_from_fd(&backend->mr, OBJECT(backend), backend_name, backend->size, diff --git a/system/memory.c b/system/memory.c index 355b1fa26b..e8c6d484e6 100644 --- a/system/memory.c +++ b/system/memory.c @@ -3755,7 +3755,8 @@ bool memory_region_init_ram_guest_memfd(MemoryRegion = *mr, DeviceState *owner_dev; =20 if (!memory_region_init_ram_flags_nomigrate(mr, owner, name, size, - RAM_GUEST_MEMFD, errp)) { + RAM_GUEST_MEMFD_PRIVATE, + errp)) { return false; } /* This will assert if owner is neither NULL nor a DeviceState. diff --git a/system/physmem.c b/system/physmem.c index c3c7a81310..d30fd690d1 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2203,7 +2203,7 @@ static void ram_block_add(RAMBlock *new_block, Error = **errp) } } =20 - if (new_block->flags & RAM_GUEST_MEMFD) { + if (new_block->flags & RAM_GUEST_MEMFD_PRIVATE) { int ret; =20 if (!kvm_enabled()) { @@ -2341,7 +2341,7 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, ram= _addr_t max_size, /* Just support these ram flags by now. */ assert((ram_flags & ~(RAM_SHARED | RAM_PMEM | RAM_NORESERVE | RAM_PROTECTED | RAM_NAMED_FILE | RAM_READONLY | - RAM_READONLY_FD | RAM_GUEST_MEMFD | + RAM_READONLY_FD | RAM_GUEST_MEMFD_PRIVATE | RAM_RESIZEABLE)) =3D=3D 0); assert(max_size >=3D size); =20 @@ -2498,7 +2498,7 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ra= m_addr_t max_size, ram_flags &=3D ~RAM_PRIVATE; =20 assert((ram_flags & ~(RAM_SHARED | RAM_RESIZEABLE | RAM_PREALLOC | - RAM_NORESERVE | RAM_GUEST_MEMFD)) =3D=3D 0); + RAM_NORESERVE | RAM_GUEST_MEMFD_PRIVATE)) =3D=3D= 0); assert(!host ^ (ram_flags & RAM_PREALLOC)); assert(max_size >=3D size); =20 @@ -2581,7 +2581,7 @@ RAMBlock *qemu_ram_alloc_from_ptr(ram_addr_t size, vo= id *host, RAMBlock *qemu_ram_alloc(ram_addr_t size, uint32_t ram_flags, MemoryRegion *mr, Error **errp) { - assert((ram_flags & ~(RAM_SHARED | RAM_NORESERVE | RAM_GUEST_MEMFD | + assert((ram_flags & ~(RAM_SHARED | RAM_NORESERVE | RAM_GUEST_MEMFD_PRI= VATE | RAM_PRIVATE)) =3D=3D 0); return qemu_ram_alloc_internal(size, size, NULL, NULL, ram_flags, mr, = errp); } --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832029; cv=none; d=zohomail.com; s=zohoarc; b=Eb+xpJyM9gtBx4cRoiqLyR9TyGa3MhMLL7Kh1/vnlO/rLqCDK8/xIJ35lys+FeH02ws+b2r+yn8yOLLzkr0WjLQ4h62gKSgC7/azLKwtunKzPAYUXQ/glySnYzsV1Od516T3B3Du0b80luENRhD28/sBGiFLjvrZmFinVnFewPA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832029; 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=tZwiaCu3Ephp0x1hYM6njn6cQ5FWzr55+DbUEhACNdI=; b=cfOfMUj4ehyGqnvjme2y7N1RtahyU1cTTqoCUr0AF9/yU8pZzR8zE1ZJGrO3GuxPmGHdZWaUVl+SWC2JdqxefwnC/Z7k+b7bg5HhrkU4c2M+AjUhUYAdYG8kWAe1hsjKgynzTTdQJ2CghXwjht074ZpKXtoG+rZ2hdtEV3dmcto= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765832029790197.52498645877733; Mon, 15 Dec 2025 12:53:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYM-0006EQ-Dd; Mon, 15 Dec 2025 15:52:22 -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 1vVFYJ-0006Ar-MM for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:19 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vVFYI-0005kt-0c for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:19 -0500 Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-216-10_nRFDjOBSJUNYKVny2Dg-1; Mon, 15 Dec 2025 15:52:16 -0500 Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4ed74ab4172so85753321cf.1 for ; Mon, 15 Dec 2025 12:52:16 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831937; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tZwiaCu3Ephp0x1hYM6njn6cQ5FWzr55+DbUEhACNdI=; b=bXR5O2sLd1o+/G2V1oPstsEsUdZQxJZhwaRx5CY+Viv3diGI8JFpn67q7xeQmwl1zyX7gF neRxZxEerc9cJPgM+hJICTdCX5KYbKHsUPFayZoRKdoUuG2YWrekDKEPyAjH2tPZLPGHne ru0lPPNXgHoTJvHuOQLO3sNbMjvnr0w= X-MC-Unique: 10_nRFDjOBSJUNYKVny2Dg-1 X-Mimecast-MFC-AGG-ID: 10_nRFDjOBSJUNYKVny2Dg_1765831936 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831935; x=1766436735; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tZwiaCu3Ephp0x1hYM6njn6cQ5FWzr55+DbUEhACNdI=; b=bxk9w277+jryfz8jKUUG7iZsHcSh/bGcdfpXqhDkxVPjvPFMC9cD7kLdPoS1x7GZ8B Rb551YtdTLLrmPyZYkUDdMbn9o5whImGvyixKoN2clWbHq711WyEyM1tDXEivAzkCppS sJUyaHw4MP90opDJZXeBCUweB/S86dOMXX3GJK8Ld5fO7lvCkOQV3SsNs3Uu6gCcjGgO S6WnkNyUGHp2apMbpwF0vp3CG/gFWzvhWj5TM1WmuLs6kxqFWKMu3IXQRF3rhVWTkWQF W5xA+9ECvFVStzA1qPRdE4qovDMv2pu7NJLiwvyuivtcar6/5Miiaz/ijj9Q4Lzs966B wwHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831935; x=1766436735; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=tZwiaCu3Ephp0x1hYM6njn6cQ5FWzr55+DbUEhACNdI=; b=J48l5n33Ckx2fmsLOg15hAByVhITSOK5GwwWXdAdeK8w5dfKElOMe49ZjeTHkckeuM cFXwVyOxuTWc/kJsKxFmrVNfGTI51xyj+aAeL4PXKthjLJD82aYe5E0mWXzr2DjxcAZG dilJxw0U1acD5QueMVUFIo8FCkATjTf9CgJ+SxOqeXSCgsgNGpA+updwwaLeCggeBcYr 2TOWx2nFLpPddIY671DlAdCRsJ/YH+3tSMeU87EWCITINYHln/q1vJAU8CQ2SL4T2E7U QZmzPEyDEWro9Pk7JrDy6+qIh2YBxJPYR1idMCTGdyhKBbLIHCY0xQmpJbqW6GJ8U7TX sHAw== X-Gm-Message-State: AOJu0YxxG8flLW+B9JhL1dIOCQKYWEM4k35Fo0Ypva/D6/S4JZn8gu0d 8hrVjA2cT2W7HnU9R0ozpIAcANWYFDwUFbBsSYZ8lQx34OqRFDNu0io+09Zkm/H/gJYZqJ+623+ oUAaWe9vqIxM26qfFsSwhMxolkcqpNUrNZMH7H4FCU4/8D4Us1nMqWhed2PbK3g/6NEl/UeYe4O y7irjNm0bPQ29kvWa0AiJlYJyW8x1Zzvy2C5s/xA== X-Gm-Gg: AY/fxX5uw6HBrhxnR6Fx2pzzKE4X2rFL7ewExNvrs4IizURLNhA/s/n5S1x7KSVpPsT F3fyLG1PHTfukf02H/ro/jcFxPpA87TqZPjAqA56UUHIs/nLift67SWqUAh5F69dOe928j2w/yL Z2l1fPAR9eyNfISH/UiwIzsrYJCBW1pL0peku/NWnf+uCeqHl9taQKYpCmkiBgbq7Bu6M/QLMjH +ygMmaQ4hMKkdUemO4DRBgk7Ggic/g0H/D/7Bcl3SC87e3a5ls3h00l1Zg1cpL5XEpjg6Vk/Z5p ISXX1x1yKHZV9HaJPyr9X0kd0JB+kYurFDnMOG/WP04J462L7GQfOG8ZNWx5daF1VuKZ0vOjKcO m X-Received: by 2002:ac8:5c88:0:b0:4ee:4a3a:bd11 with SMTP id d75a77b69052e-4f1d05ee877mr184845531cf.64.1765831935382; Mon, 15 Dec 2025 12:52:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IHQNDrxVpZTIDg7mxEgJ8B01SY5Cs6tEA5719BpaKhoUFpyRp4u1mLJQobHYI5ViiyFwUJAsA== X-Received: by 2002:ac8:5c88:0:b0:4ee:4a3a:bd11 with SMTP id d75a77b69052e-4f1d05ee877mr184845131cf.64.1765831934805; Mon, 15 Dec 2025 12:52:14 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 06/12] memory: Rename memory_region_has_guest_memfd() to *_private() Date: Mon, 15 Dec 2025 15:51:57 -0500 Message-ID: <20251215205203.1185099-7-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.133.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832031345158500 Content-Type: text/plain; charset="utf-8" Rename the function with "_private" suffix, to show that it returns true only if it has an internal guest-memfd to back private pages (rather than fully shared guest-memfd). Reviewed-by: Xiaoyao Li Signed-off-by: Peter Xu --- include/system/memory.h | 4 ++-- accel/kvm/kvm-all.c | 6 +++--- system/memory.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/system/memory.h b/include/system/memory.h index 1f49f9a0ff..9b58303bb8 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -1823,7 +1823,7 @@ static inline bool memory_region_is_romd(MemoryRegion= *mr) bool memory_region_is_protected(MemoryRegion *mr); =20 /** - * memory_region_has_guest_memfd: check whether a memory region has + * memory_region_has_guest_memfd_private: check whether a memory region has * guest_memfd_private associated * * Returns %true if a memory region's ram_block has guest_memfd_private @@ -1831,7 +1831,7 @@ bool memory_region_is_protected(MemoryRegion *mr); * * @mr: the memory region being queried */ -bool memory_region_has_guest_memfd(MemoryRegion *mr); +bool memory_region_has_guest_memfd_private(MemoryRegion *mr); =20 /** * memory_region_get_iommu: check whether a memory region is an iommu diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 1126b6f477..0b7ce5a9dd 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -666,7 +666,7 @@ static int kvm_mem_flags(MemoryRegion *mr) if (readonly && kvm_readonly_mem_allowed) { flags |=3D KVM_MEM_READONLY; } - if (memory_region_has_guest_memfd(mr)) { + if (memory_region_has_guest_memfd_private(mr)) { assert(kvm_guest_memfd_supported); flags |=3D KVM_MEM_GUEST_MEMFD; } @@ -1615,7 +1615,7 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, abort(); } =20 - if (memory_region_has_guest_memfd(mr)) { + if (memory_region_has_guest_memfd_private(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", @@ -3101,7 +3101,7 @@ int kvm_convert_memory(hwaddr start, hwaddr size, boo= l to_private) return ret; } =20 - if (!memory_region_has_guest_memfd(mr)) { + if (!memory_region_has_guest_memfd_private(mr)) { /* * Because vMMIO region must be shared, guest TD may convert vMMIO * region to shared explicitly. Don't complain such case. See diff --git a/system/memory.c b/system/memory.c index e8c6d484e6..d70968c966 100644 --- a/system/memory.c +++ b/system/memory.c @@ -1897,7 +1897,7 @@ bool memory_region_is_protected(MemoryRegion *mr) return mr->ram && (mr->ram_block->flags & RAM_PROTECTED); } =20 -bool memory_region_has_guest_memfd(MemoryRegion *mr) +bool memory_region_has_guest_memfd_private(MemoryRegion *mr) { return mr->ram_block && mr->ram_block->guest_memfd_private >=3D 0; } --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832061; cv=none; d=zohomail.com; s=zohoarc; b=CMRVwAFpdetZBN4hqpZVNp3+yROnMo1gwKpBLIjtkCQWp+DGXNS6MD+8E/8C4U/vSmaZH1TrKrcP9CI0DhqPOHpdLdhBHPMYpVT2Y67ZSpqnFa76pB8jbjYEKLpJrkeWIDULH/Kh79dZPu63M1G2yG2z7OCKNsTC06HqVar0fOo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832061; 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=ZCO99HltQYka+mV4Zl2jwDQO4MyhCZa7p2lWRxsiyeA=; b=M/gxB+9mcvhV1OhrcE19pbClj/asbWpVHEFuXbX+GavDIMUuMc959u2vkekah6rKqB/zmR3jAZEh48wKoZ2Lz9IirvjkY+cO5QEQ8PSrAyfqRDG3iQLXuMDiFs+2JUbHlUoCncUKVbBDRaiNnK/wQ2He+qBckHdz3iRjScze6II= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765832061786746.8242206174693; Mon, 15 Dec 2025 12:54:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYO-0006IL-6Q; Mon, 15 Dec 2025 15:52:24 -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 1vVFYL-0006Cs-9P for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:21 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vVFYJ-0005m3-Ly for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:21 -0500 Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-70-z-LqT0OaOviIZknDZkswKA-1; Mon, 15 Dec 2025 15:52:18 -0500 Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-88a3d3823e1so18536776d6.2 for ; Mon, 15 Dec 2025 12:52:17 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831939; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZCO99HltQYka+mV4Zl2jwDQO4MyhCZa7p2lWRxsiyeA=; b=KD4rDa+G5QLiGIR6ckGI45g7HmIHY1YWv4ig6dJJJSarEziU2wW5TnDl2Yj47FNav6LdcL bsqiT3j0mdWwe9a0IHW274MUu9BhZ8bxIcdSafwp6Nr/nDNcCmTa+ruw4M0UK39ScHLLcO G0b/W2U22GMs4KKE0L0eSkRFdYchRXQ= X-MC-Unique: z-LqT0OaOviIZknDZkswKA-1 X-Mimecast-MFC-AGG-ID: z-LqT0OaOviIZknDZkswKA_1765831937 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831937; x=1766436737; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZCO99HltQYka+mV4Zl2jwDQO4MyhCZa7p2lWRxsiyeA=; b=hV7aM6SNYygm21kXbzx2QJQKfVf4HFMzlfVI6wMlZt8lG9T6itfc2MiJrd1CfYGGsP WjTF044o7FZdeAjBJ1c8JaFEDwvlGEUNZDoC1kMuvKtMWzjvC4UNI3NiPFO9Pp1s+bNV ymuGYykpGY7qnehG8GbL1/kHTqnLvoTMet9Ug1sYxlbAlNJ2+ugiYTLUqluT7LtPNpax OqfmkXKZ5dT7M+mZfhOtlPpEbo9nVWw2osEeObJxbkH6GMA8iSlebyHN/Qfjz/NKBDOc n85mJxqdk5drkBqOtl9onZPaMYICAivMLazHzqqeRxeWjJCc+hQF3rFH7VNkq9OSKe+c ULkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831937; x=1766436737; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZCO99HltQYka+mV4Zl2jwDQO4MyhCZa7p2lWRxsiyeA=; b=fPLdDtfMh9iGjW+TNKtjEenMfcP3J7oXmcHYZnVfWXCCnbAWZ5VKFQ+BJ9uqJMA0AM IMRTjWFqcxRljoGqun9+idO921vnu4J3k57puIdR1UVwK/PIRoDOYdnhMUno87bpgH2l 53I9jtr/oHpDgCD26RKhLQ9tdrTRAkOD2NjH2EaZEytW14o7t/Obkw54daAMhilsnc5J eaB+CrKxCQbGz/Y1E5J1egdEru51vLvfDwqaqgB9wQ/BZFW5xFfWxCvGa/z9MSTi47ZF 5MQ9j08x3p08jLToe8cy02uxL5a6PwkHFvHZ/zUEpmR21CGRfGDjuWB1Z1hVNWpm2n6M Y/cw== X-Gm-Message-State: AOJu0Yyr0Z/1nfekL9Ag15KCeiaU14uaGfiZWi5vgjEB424jw565cCBs oCG0W5tFF6kUSX8KmpEYCXHUy1Q//bO0al4WmQT0RxgusoZM8F2UmKO5DmF+9Fc5LY7oMLNN55f fTZ81FNnbY95VjYs3o4KJ5kfMi3JpJSKKNMwUXqKgRyA61uzlMTcmg5fRo4EFEIqmFzPDCekApy oyNn1EsHRdFkzjwOX0kZ3pmd/z9S6TtY5P8CKtvA== X-Gm-Gg: AY/fxX6xIVO1/df3iwAwKnMhmiILj1l6WTlFhgqg7UF6AP7ZhEu67y52j69THyszoYp jJ1rCWSXeNOxo+usYlbbcs7pzsNdkSJE9SVT9xpfkLGF1pBWBqAZcSvaaPeFu6LA+/Fl5uTLZvn 0Mou0NZ+V+sVN9ioAH1UGzuDWUWYYvseAEZfrCkF3iwlmKOEqAS8Ip3MgqdnOXs2BzyaX1GPgXM /rIjNodB+bhjAa5NzZ63m+AZoDmj9o8Kqrua0d+Qxvu0EylgINIS/y1Wz/DSJk7oXh440QpxpoZ vVyN8fv1/lt5jtfdt1GyXH+xKeKZpNkYoH6veM6eXnQ8BWbAe1VWTjew6w1vmQYc4R+aK3JlAv3 0 X-Received: by 2002:a05:6214:3203:b0:884:5e18:e91a with SMTP id 6a1803df08f44-8887e16bc5dmr227582276d6.2.1765831937087; Mon, 15 Dec 2025 12:52:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IFv3wHa5SuWYP1LYyaUTSP2dqRTbegD/ZM+IzW8zefsj+KKO48yYLHrS3oX8wWwtbbS01OJ6A== X-Received: by 2002:a05:6214:3203:b0:884:5e18:e91a with SMTP id 6a1803df08f44-8887e16bc5dmr227581726d6.2.1765831936542; Mon, 15 Dec 2025 12:52:16 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 07/12] hostmem: Rename guest_memfd to guest_memfd_private Date: Mon, 15 Dec 2025 15:51:58 -0500 Message-ID: <20251215205203.1185099-8-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.133.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832064016154100 Content-Type: text/plain; charset="utf-8" Rename the HostMemoryBackend.guest_memfd field to reflect what it really means, on whether it needs guest_memfd to back its private portion of mapping. This will help on clearance when we introduce in-place guest_memfd for hostmem. Signed-off-by: Peter Xu Reviewed-by: Xiaoyao Li --- include/system/hostmem.h | 2 +- backends/hostmem-file.c | 2 +- backends/hostmem-memfd.c | 2 +- backends/hostmem-ram.c | 2 +- backends/hostmem-shm.c | 2 +- backends/hostmem.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/system/hostmem.h b/include/system/hostmem.h index 88fa791ac7..dcbf81aeae 100644 --- a/include/system/hostmem.h +++ b/include/system/hostmem.h @@ -76,7 +76,7 @@ struct HostMemoryBackend { uint64_t size; bool merge, dump, use_canonical_path; bool prealloc, is_mapped, share, reserve; - bool guest_memfd, aligned; + bool guest_memfd_private, aligned; uint32_t prealloc_threads; ThreadContext *prealloc_context; DECLARE_BITMAP(host_nodes, MAX_NODES + 1); diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c index 1f20cd8fd6..0e4cfd6dc6 100644 --- a/backends/hostmem-file.c +++ b/backends/hostmem-file.c @@ -86,7 +86,7 @@ file_backend_memory_alloc(HostMemoryBackend *backend, Err= or **errp) ram_flags |=3D fb->readonly ? RAM_READONLY_FD : 0; ram_flags |=3D fb->rom =3D=3D ON_OFF_AUTO_ON ? RAM_READONLY : 0; ram_flags |=3D backend->reserve ? 0 : RAM_NORESERVE; - ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD_PRIVATE : 0; + ram_flags |=3D backend->guest_memfd_private ? RAM_GUEST_MEMFD_PRIVATE = : 0; ram_flags |=3D fb->is_pmem ? RAM_PMEM : 0; ram_flags |=3D RAM_NAMED_FILE; return memory_region_init_ram_from_file(&backend->mr, OBJECT(backend),= name, diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c index 3f3e485709..ea93f034e4 100644 --- a/backends/hostmem-memfd.c +++ b/backends/hostmem-memfd.c @@ -60,7 +60,7 @@ have_fd: backend->aligned =3D true; ram_flags =3D backend->share ? RAM_SHARED : RAM_PRIVATE; ram_flags |=3D backend->reserve ? 0 : RAM_NORESERVE; - ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD_PRIVATE : 0; + ram_flags |=3D backend->guest_memfd_private ? RAM_GUEST_MEMFD_PRIVATE = : 0; return memory_region_init_ram_from_fd(&backend->mr, OBJECT(backend), n= ame, backend->size, ram_flags, fd, 0,= errp); } diff --git a/backends/hostmem-ram.c b/backends/hostmem-ram.c index 96ad29112d..6a507fad77 100644 --- a/backends/hostmem-ram.c +++ b/backends/hostmem-ram.c @@ -30,7 +30,7 @@ ram_backend_memory_alloc(HostMemoryBackend *backend, Erro= r **errp) name =3D host_memory_backend_get_name(backend); ram_flags =3D backend->share ? RAM_SHARED : RAM_PRIVATE; ram_flags |=3D backend->reserve ? 0 : RAM_NORESERVE; - ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD_PRIVATE : 0; + ram_flags |=3D backend->guest_memfd_private ? RAM_GUEST_MEMFD_PRIVATE = : 0; return memory_region_init_ram_flags_nomigrate(&backend->mr, OBJECT(bac= kend), name, backend->size, ram_flags, errp); diff --git a/backends/hostmem-shm.c b/backends/hostmem-shm.c index e86fb2e0aa..4766db6aad 100644 --- a/backends/hostmem-shm.c +++ b/backends/hostmem-shm.c @@ -54,7 +54,7 @@ have_fd: /* Let's do the same as memory-backend-ram,share=3Don would do. */ ram_flags =3D RAM_SHARED; ram_flags |=3D backend->reserve ? 0 : RAM_NORESERVE; - ram_flags |=3D backend->guest_memfd ? RAM_GUEST_MEMFD_PRIVATE : 0; + ram_flags |=3D backend->guest_memfd_private ? RAM_GUEST_MEMFD_PRIVATE = : 0; =20 return memory_region_init_ram_from_fd(&backend->mr, OBJECT(backend), backend_name, backend->size, diff --git a/backends/hostmem.c b/backends/hostmem.c index 35734d6f4d..70450733db 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -288,7 +288,7 @@ static void host_memory_backend_init(Object *obj) /* TODO: convert access to globals to compat properties */ backend->merge =3D machine_mem_merge(machine); backend->dump =3D machine_dump_guest_core(machine); - backend->guest_memfd =3D machine_require_guest_memfd(machine); + backend->guest_memfd_private =3D machine_require_guest_memfd(machine); backend->reserve =3D true; backend->prealloc_threads =3D machine->smp.cpus; } --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832050; cv=none; d=zohomail.com; s=zohoarc; b=F1Wkd48QPJCA5DpdQuYzfS2SvD4BN0vSxsqAZ8arrZKYlSJ6NLsy4FP4e64Gaa/Jj7sUIR23mKPVbDvEbE5BXowWqNPlRB6CMhAXokBOJmJpebCRNlu2NrCfltM/QCS4oBuy4Q1KHh1cX4Bv8JRsgFFuqsJsy0wtvy9umnYRGuo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832050; 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=pgZrEo4/DY4n0337ei0aQoLyE7/lInlTug5w3FqBW0I=; b=XpoExMZDRdxeY/kpUqOvtqSpWLVN9o16P4wBYjBUt72an0BpVQbArvlE6376PhIAbtU+tlp7pxvl41bfdm/Tk1GPDJ7hPxNUUFf9Wd6l6iJVUpyQZXvo2638kUCba+PL/dHGaUSpyRD6EqV/5c21Gps6eVIglBDSJKXqVZ71S+o= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765832050652483.4876270361914; Mon, 15 Dec 2025 12:54:10 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYO-0006J9-KK; Mon, 15 Dec 2025 15:52:24 -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 1vVFYN-0006GE-AM for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:23 -0500 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 1vVFYL-0005nN-JO for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:23 -0500 Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-139-Xa0uwzi3NL6kH-wCPpophQ-1; Mon, 15 Dec 2025 15:52:19 -0500 Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-8804b991976so90829216d6.2 for ; Mon, 15 Dec 2025 12:52:19 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831940; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pgZrEo4/DY4n0337ei0aQoLyE7/lInlTug5w3FqBW0I=; b=F2eXU03i59s9dBkfgRSb/DZKPlpd3SAzVJnOA6Rw575R4XNceRdPcSCw2JA6MymBgsLZXx KI31CjeE3AkQkoOCJq8+hQEXigwIxgUocjrrWVlNJ7HJGQ5QlJbjHH7+sNjlQ+7dq83bf2 h9UKG1wMA2g5p7e259Lsw2KiuiJuRws= X-MC-Unique: Xa0uwzi3NL6kH-wCPpophQ-1 X-Mimecast-MFC-AGG-ID: Xa0uwzi3NL6kH-wCPpophQ_1765831939 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831939; x=1766436739; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pgZrEo4/DY4n0337ei0aQoLyE7/lInlTug5w3FqBW0I=; b=lxpBAfOgWheQbfboNL2S5f127AkyggSiYDF/jbH/gPr5Go19ggjJsg7aSnK3K2UTMy N/7UOw9vxqEfSe1YtbCNNNJMN0yg43nq3jr6iYZuMmykGFOXn3Jz8+hk/3JgqXq5Jxds 2xkPXdyVTLf58VGcRPdCUl3Qwf4zvG15lFmEXJUWPg7HRFMOniANwok6nV5YQpMCtWge fqEx88afOoXVxnKKUCjfEoeU+OU/pQPJEK4eM3zoWJL1j3xkyJNklD/cnQ+QvWGbs3j6 CzLb54YAbjTJ+4t5Hsri8mrMeWoI6J74NEpFewskVp6ef+iWL1q372qq4lqOasKhkPzg muUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831939; x=1766436739; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pgZrEo4/DY4n0337ei0aQoLyE7/lInlTug5w3FqBW0I=; b=NwBFOycNGdAbfSG4fzfuiQF9rLa6TmqAIwH1Klhy3cDEFX5Byjkav8vaTiWU2AvVlm Hhln9nRz9y8CIG0AR2tK7vTUNKmtkBqrWHxOT5Cwl0di4w0RDBCwYFc+JBzLLGk+xLJU un8l9Grz2vj31Ec1JWfkCbdqDQUZxL3K/0jDhRw1mCUvYlLa+teWJDxDdYJLbwb+PRZa x+TMDYQp8tR80fcA7OQvwAVdTo7ZRkRghHlc04b7WeqvHRx0F6lNez5aKg1PIZlxl6P3 uE3IXzATQwqR2fDASm+EWbCtRD4nPkvuC36bPPKzMwYRTV/MT5tSU+2/ShlnhTGLVYat oUCg== X-Gm-Message-State: AOJu0YxYrPfLX0R+Jii+WEguc2n7MoTrvg0b4cxWBsNp4LWZbkKpj/Wi o2pySACrFEGGj9oRbFory0F2mzvPnK4hJ/jHmyKN23YaH2vLo+6pYwVvr4OX8GSfg3KeBWZkgFr CRsidFIfE+lcChvhYsFB2adWo84fspA5RhptmOsQSElrOvPumtnQceQwTq3Llgd2iZuiQ4Jze4e iFhY6TMSC8fptmKPxALATDgE2/ZU+UN4cZpyVzpg== X-Gm-Gg: AY/fxX70suwIOLC4lkEZ5/4pSkSFfYe/5MzZX9YM25gmGro5S2JVASvV3dYaMKn5aRO Gu77a+hSJCsdsQOMT8ETuwf8d/r0wiBAL5FkPiuWv6TfC4UcgPrZyQxnw/xhs8iZ+4PnTnqgtS1 +Vf/WkUNqHMHWgHC0lmzbbKipg3QL2r1TSvAcIH7afTBvR7GlQ/bqu33tREXCetpHz0Uj7GoEkw UXZwFl3SA1SZ5psYx6gUQvUNTtizpJwUpg8MziUbCJDPzuVGoAQAbduppJVTufEm7FePbigRbUp xyMyVCcZHxRiaKbMKaCzbJpD7SIA2/B+MfNYjazyRsII/xIvv8xao8zcv/3OA9ep1E5IlnGEB03 f X-Received: by 2002:a05:6214:3203:b0:880:1f14:e086 with SMTP id 6a1803df08f44-8887e191605mr184204176d6.64.1765831938615; Mon, 15 Dec 2025 12:52:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IHoWT7Liw+FSuMicaSV6vJRL/U+RxelNOAeH+dUvt0vjndwRP2wr7owEmhrCCI0JCtcigKmNg== X-Received: by 2002:a05:6214:3203:b0:880:1f14:e086 with SMTP id 6a1803df08f44-8887e191605mr184203726d6.64.1765831938119; Mon, 15 Dec 2025 12:52:18 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 08/12] hostmem: Support fully shared guest memfd to back a VM Date: Mon, 15 Dec 2025 15:51:59 -0500 Message-ID: <20251215205203.1185099-9-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.129.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832051873154100 Content-Type: text/plain; charset="utf-8" Host backends supports guest-memfd now by detecting whether it's a confidential VM. There's no way to choose it yet from the memory level to use it fully shared. If we use guest-memfd, it so far always implies we need two layers of memory backends, while the guest-memfd only provides the private set of pages. This patch introduces a way so that QEMU can consume guest memfd as the only source of memory to back the object (aka, fully shared). To use the fully shared guest-memfd, one can add a memfd object with: -object memory-backend-memfd,guest-memfd=3Don,share=3Don Note that share=3Don is required with fully shared guest_memfd. PS: there's a trivial touch-up on fd<0 check, because the stub to create guest-memfd may return negative but not -1. Signed-off-by: Peter Xu Reviewed-by: Fabiano Rosas Reviewed-by: Xiaoyao Li --- qapi/qom.json | 6 ++++- backends/hostmem-memfd.c | 53 ++++++++++++++++++++++++++++++++++++---- 2 files changed, 53 insertions(+), 6 deletions(-) diff --git a/qapi/qom.json b/qapi/qom.json index 6f5c9de0f0..9ebf17bfc7 100644 --- a/qapi/qom.json +++ b/qapi/qom.json @@ -763,13 +763,17 @@ # @seal: if true, create a sealed-file, which will block further # resizing of the memory (default: true) # +# @guest-memfd: if true, use guest-memfd to back the memory region. +# (default: false, since: 11.0) +# # Since: 2.12 ## { 'struct': 'MemoryBackendMemfdProperties', 'base': 'MemoryBackendProperties', 'data': { '*hugetlb': 'bool', '*hugetlbsize': 'size', - '*seal': 'bool' }, + '*seal': 'bool', + '*guest-memfd': 'bool' }, 'if': 'CONFIG_LINUX' } =20 ## diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c index ea93f034e4..9299cd7675 100644 --- a/backends/hostmem-memfd.c +++ b/backends/hostmem-memfd.c @@ -18,6 +18,8 @@ #include "qapi/error.h" #include "qom/object.h" #include "migration/cpr.h" +#include "system/kvm.h" +#include =20 OBJECT_DECLARE_SIMPLE_TYPE(HostMemoryBackendMemfd, MEMORY_BACKEND_MEMFD) =20 @@ -28,6 +30,13 @@ struct HostMemoryBackendMemfd { bool hugetlb; uint64_t hugetlbsize; bool seal; + /* + * NOTE: this differs from HostMemoryBackend's guest_memfd_private, + * which represents a internally private guest-memfd that only backs + * private pages. Instead, this flag marks the memory backend will + * 100% use the guest-memfd pages in-place. + */ + bool guest_memfd; }; =20 static bool @@ -47,11 +56,26 @@ memfd_backend_memory_alloc(HostMemoryBackend *backend, = Error **errp) goto have_fd; } =20 - fd =3D qemu_memfd_create(TYPE_MEMORY_BACKEND_MEMFD, backend->size, - m->hugetlb, m->hugetlbsize, m->seal ? - F_SEAL_GROW | F_SEAL_SHRINK | F_SEAL_SEAL : 0, - errp); - if (fd =3D=3D -1) { + if (m->guest_memfd) { + /* User choose to use fully shared guest-memfd to back the VM.. */ + if (!backend->share) { + error_setg(errp, "Guest-memfd=3Don must be used with share=3Do= n"); + return false; + } + + /* TODO: add huge page support */ + fd =3D kvm_create_guest_memfd(backend->size, + GUEST_MEMFD_FLAG_MMAP | + GUEST_MEMFD_FLAG_INIT_SHARED, + errp); + } else { + fd =3D qemu_memfd_create(TYPE_MEMORY_BACKEND_MEMFD, backend->size, + m->hugetlb, m->hugetlbsize, m->seal ? + F_SEAL_GROW | F_SEAL_SHRINK | F_SEAL_SEAL := 0, + errp); + } + + if (fd < 0) { return false; } cpr_save_fd(name, 0, fd); @@ -65,6 +89,18 @@ have_fd: backend->size, ram_flags, fd, 0,= errp); } =20 +static bool +memfd_backend_get_guest_memfd(Object *o, Error **errp) +{ + return MEMORY_BACKEND_MEMFD(o)->guest_memfd; +} + +static void +memfd_backend_set_guest_memfd(Object *o, bool value, Error **errp) +{ + MEMORY_BACKEND_MEMFD(o)->guest_memfd =3D value; +} + static bool memfd_backend_get_hugetlb(Object *o, Error **errp) { @@ -152,6 +188,13 @@ memfd_backend_class_init(ObjectClass *oc, const void *= data) object_class_property_set_description(oc, "hugetlbsize", "Huge pages size (ex: 2M, 1G= )"); } + + object_class_property_add_bool(oc, "guest-memfd", + memfd_backend_get_guest_memfd, + memfd_backend_set_guest_memfd); + object_class_property_set_description(oc, "guest-memfd", + "Use guest memfd"); + object_class_property_add_bool(oc, "seal", memfd_backend_get_seal, memfd_backend_set_seal); --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832037; cv=none; d=zohomail.com; s=zohoarc; b=iU9sByFyP4rFNXnbTVpiiwyhrDNsAChZBeOc+5L8hnGhZS483d0aWePEDoQet0TA+MbttLcQp55Ckd0a04cJWGx3NAwYPVn4AKqpC4a0EXJ02MBmoMz4+2GWISqukLwNSCCHcG6Lo0nlYuFg4rO3V2rQQB2J946a8Khs04P45j4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832037; 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=RU4gCD89I0rnoKneGioT3W3S9tJDhKT//EINbLeoG/g=; b=P3JMrJLhx5dV4/iqk+hDRll9HymHtDC4G8Ca2c0Hp47Xp4s6qKZ+4L4Fo2oa0yCGnR8OXUjSNrx9Oaoyp03JpxYne6l9HARS3K9yUWKUW0MleYdHNF1zdnIsnEwMOFuYsP0WEFVBG4oGzkMETFYYizMwpPT4Rg/0184Je5LBQd8= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765832037227580.6443829103019; Mon, 15 Dec 2025 12:53:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYg-0006Uw-Nl; Mon, 15 Dec 2025 15:52:42 -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 1vVFYP-0006Ji-Ar for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:25 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vVFYN-0005p1-DA for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:24 -0500 Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-296-U9QumEO9NPOLo3rGkL16tA-1; Mon, 15 Dec 2025 15:52:20 -0500 Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4ee25cd2da3so72500701cf.2 for ; Mon, 15 Dec 2025 12:52:20 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831942; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RU4gCD89I0rnoKneGioT3W3S9tJDhKT//EINbLeoG/g=; b=e4O2ZnxJ3d2TW/Keoiepi/1+1im8qhhsCshckfILrVi3mIaLfhFx7Ua6LPGO3jcx2Szdjz A03C36F/Neyph1L5cm3q5+xIOlVZdCSue627JRy21ek9JjgmjXzIQQQv0SpCpHfif675IU DLIiAevhm4RAVzJDLh9GBhvkVMsPzDc= X-MC-Unique: U9QumEO9NPOLo3rGkL16tA-1 X-Mimecast-MFC-AGG-ID: U9QumEO9NPOLo3rGkL16tA_1765831940 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831940; x=1766436740; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RU4gCD89I0rnoKneGioT3W3S9tJDhKT//EINbLeoG/g=; b=Mpnt/aH/bXMWpfxkj/bFEe95OnXuFLq+GyyQNRMOeozjMuGxWyMQ7v2vDwdlNhc1CR kzCxv5UW4K8rqZwuS3xEnZjI3GlvpuxVVqcyUnCGdUb85McKtANbjAOXsIsNB/Fqd18n k4seL5H0miw7jVvvDTDqDsCpfaOugZV1K59r3f/cIkRoIM6aWc+TmJjWqBCnxyTvlLaR B6WkkXg5XGId8lUUX1MZHPDaU2R4+8oaQuXQBIdJgRF10QBBzdlGEcUPGo21qLOxsfn8 L7gwY7kUEnKMlclfZ2W6yJR+208lZgQ6GhyYUaoOZY3PLS5cy5OAVJCiAMH+lkyLwcUa b1xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831940; x=1766436740; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=RU4gCD89I0rnoKneGioT3W3S9tJDhKT//EINbLeoG/g=; b=RVKL9UT3nPTTNgZ7B5WAYbbpl1o4OTtwUiWduBhDxIfM9COkvkjBeZrRCy0IOnazIQ SM8ima0KAHZzYz0VHwPpEisksU35IaBjU3Ilf/5eqIoEe1yst8KxweIcZ0/Fy9Cr22dt kn6iSaQSvg3qvxRE5S+IY7NdsFU5DCU+4uevBmuTgwH/rPN8t2gNGn5wKD+kSPjVaKq2 +otVLvXysby+SmfEsD2TkaxjobwT4LV3M9Rr5hIY5XYRJtjK2yOCEk0Ud3bhfrp/iIV3 2oavr0CcW6SdXfQAN9TL9WVpYd2QMnXqOCtu1SQKTs+78Vifl3ppRzxFMlJjnJpDaU8T hB7w== X-Gm-Message-State: AOJu0Yx8WtFJ+WnVQf+UIo02ttljGC7c+B0eo3yPamjxH3/iSlH8uo6l WLU0hvj20HBWIdk3WE320qLNpa2UqOQoxzrxLTdEf5oqG9OJDPE1TbQvAL3rYmCjb14hkuo9I7R 6DkhAcHwS3uSR+mDNsHX6VLxpoeFj31rnBqHBeg6AyoxtzLp/l3rVPPfiGhJDTrHNlcm0cbcE8u 5G6Jb0OBjUhQDTU/gvAV6mxDiHvF0n6BmuUjwxwg== X-Gm-Gg: AY/fxX41vV7Bwtf90GXoznMFwN/cnAbykVHOXBgvMKNLBhN4h13bvBAUhpHiuQgKvu2 ihj9oy0Hjh6kBAMA9hMi9qzkwgdS9HehjuGyAiT+Q48QZtW4X4f6De/TwU7jISR080gr7Jgoc5d L5QAXczzC4d111b8uUhoq1JOA276lGc3vfzBYLd+ET2BpNtdR93+TLOWsUVCIHuyrMrLAGp/WXs 8FQFChaVi37CauewrsJCe4HEdPPtoBV+wACLd7P66TeiQ9ZtsvyagRGsFWbhBDdv0mGagi4Obwa KQOkgTWPTvHD6OuCR9Z9yFPGZprDvovN5k/OF+yMKy5M8OcLmngsm6MbvuaH44hZkAifvE6CKs7 s X-Received: by 2002:a05:622a:1195:b0:4ed:e0c1:44d5 with SMTP id d75a77b69052e-4f1d04a556amr174108811cf.19.1765831939814; Mon, 15 Dec 2025 12:52:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IEdq9CD9YhihSu+Iak3GteAoFJbCIBkYpGjgr7KPytI789B1sZrK9BmbzOvLN1PCaBPUIv5Eg== X-Received: by 2002:a05:622a:1195:b0:4ed:e0c1:44d5 with SMTP id d75a77b69052e-4f1d04a556amr174108471cf.19.1765831939227; Mon, 15 Dec 2025 12:52:19 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 09/12] machine: Rename machine_require_guest_memfd() to *_private() Date: Mon, 15 Dec 2025 15:52:00 -0500 Message-ID: <20251215205203.1185099-10-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.133.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832039181158500 Content-Type: text/plain; charset="utf-8" Differenciate it from fully shared guest-memfd use cases. When at it, add proper brackets in kvm_handle_hc_map_gpa_range() otherwise checkpatch may complain. Suggested-by: Xiaoyao Li Signed-off-by: Peter Xu Reviewed-by: Xiaoyao Li --- include/hw/boards.h | 2 +- backends/hostmem.c | 2 +- hw/core/machine.c | 2 +- hw/i386/pc.c | 2 +- hw/i386/pc_sysfw.c | 4 ++-- hw/i386/x86-common.c | 4 ++-- target/i386/kvm/kvm.c | 3 ++- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index a48ed4f86a..3a0a051d19 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -42,7 +42,7 @@ bool machine_usb(MachineState *machine); int machine_phandle_start(MachineState *machine); bool machine_dump_guest_core(MachineState *machine); bool machine_mem_merge(MachineState *machine); -bool machine_require_guest_memfd(MachineState *machine); +bool machine_require_guest_memfd_private(MachineState *machine); HotpluggableCPUList *machine_query_hotpluggable_cpus(MachineState *machine= ); void machine_set_cpu_numa_node(MachineState *machine, const CpuInstanceProperties *props, diff --git a/backends/hostmem.c b/backends/hostmem.c index 70450733db..e2dcae50c4 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -288,7 +288,7 @@ static void host_memory_backend_init(Object *obj) /* TODO: convert access to globals to compat properties */ backend->merge =3D machine_mem_merge(machine); backend->dump =3D machine_dump_guest_core(machine); - backend->guest_memfd_private =3D machine_require_guest_memfd(machine); + backend->guest_memfd_private =3D machine_require_guest_memfd_private(m= achine); backend->reserve =3D true; backend->prealloc_threads =3D machine->smp.cpus; } diff --git a/hw/core/machine.c b/hw/core/machine.c index 27372bb01e..3bdce197f7 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -1376,7 +1376,7 @@ bool machine_mem_merge(MachineState *machine) return machine->mem_merge; } =20 -bool machine_require_guest_memfd(MachineState *machine) +bool machine_require_guest_memfd_private(MachineState *machine) { return machine->cgs && machine->cgs->require_guest_memfd; } diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f8b919cb6c..b2d55ceb5e 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -962,7 +962,7 @@ void pc_memory_init(PCMachineState *pcms, =20 if (!is_tdx_vm()) { option_rom_mr =3D g_malloc(sizeof(*option_rom_mr)); - if (machine_require_guest_memfd(machine)) { + if (machine_require_guest_memfd_private(machine)) { memory_region_init_ram_guest_memfd(option_rom_mr, NULL, "pc.ro= m", PC_ROM_SIZE, &error_fatal); } else { diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c index 1a12b635ad..1c37258654 100644 --- a/hw/i386/pc_sysfw.c +++ b/hw/i386/pc_sysfw.c @@ -52,7 +52,7 @@ static void pc_isa_bios_init(PCMachineState *pcms, Memory= Region *isa_bios, =20 /* map the last 128KB of the BIOS in ISA space */ isa_bios_size =3D MIN(flash_size, 128 * KiB); - if (machine_require_guest_memfd(MACHINE(pcms))) { + if (machine_require_guest_memfd_private(MACHINE(pcms))) { memory_region_init_ram_guest_memfd(isa_bios, NULL, "isa-bios", isa_bios_size, &error_fatal); } else { @@ -71,7 +71,7 @@ static void pc_isa_bios_init(PCMachineState *pcms, Memory= Region *isa_bios, ((uint8_t*)flash_ptr) + (flash_size - isa_bios_size), isa_bios_size); =20 - if (!machine_require_guest_memfd(current_machine)) { + if (!machine_require_guest_memfd_private(current_machine)) { memory_region_set_readonly(isa_bios, true); } } diff --git a/hw/i386/x86-common.c b/hw/i386/x86-common.c index c844749900..33ac7fb6e9 100644 --- a/hw/i386/x86-common.c +++ b/hw/i386/x86-common.c @@ -1044,7 +1044,7 @@ void x86_bios_rom_init(X86MachineState *x86ms, const = char *default_firmware, (bios_size % 65536) !=3D 0) { goto bios_error; } - if (machine_require_guest_memfd(MACHINE(x86ms))) { + if (machine_require_guest_memfd_private(MACHINE(x86ms))) { memory_region_init_ram_guest_memfd(&x86ms->bios, NULL, "pc.bios", bios_size, &error_fatal); if (is_tdx_vm()) { @@ -1074,7 +1074,7 @@ void x86_bios_rom_init(X86MachineState *x86ms, const = char *default_firmware, } g_free(filename); =20 - if (!machine_require_guest_memfd(MACHINE(x86ms))) { + if (!machine_require_guest_memfd_private(MACHINE(x86ms))) { /* map the last 128KB of the BIOS in ISA space */ x86_isa_bios_init(&x86ms->isa_bios, rom_memory, &x86ms->bios, !isapc_ram_fw); diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index 60c7981138..5d0d02bcaf 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -6050,8 +6050,9 @@ static int kvm_handle_hc_map_gpa_range(X86CPU *cpu, s= truct kvm_run *run) uint64_t gpa, size, attributes; int ret; =20 - if (!machine_require_guest_memfd(current_machine)) + if (!machine_require_guest_memfd_private(current_machine)) { return -EINVAL; + } =20 gpa =3D run->hypercall.args[0]; size =3D run->hypercall.args[1] * TARGET_PAGE_SIZE; --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832050; cv=none; d=zohomail.com; s=zohoarc; b=P1WF0CmaPvJTQ7OLIZxnuPwIl/oMuy8OfE7zVoqK0uR9RUfPlxmU4XM6Tpjig528QELSS/f0le0fm8UcXLOF4mKu85mvNAUGzBX+yE9BH+VsyzoZ9+cemk8sk4+HTKR6yeMLXRkhqVkTQsqQeXgzp0m1iWTHdAEDvUnfnvylvxQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832050; 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=JnMxtrXTusXMIXSRjsHu7VxCqHT0zBV4fsUGeGwSgkQ=; b=LkSpOjhHBTXVIKplJ/g2XaOCCmo5geNefiG449eTp2bdVEpub92aFWcNqt8LiSR7Hm6Uyu0u0U7wNYhFeO0L9Oexa63BsI8TpXc5FZRC7nQMmWHkAscwyK3KowyMX/EPn/dozKQ5k2F14ckm56NnJTqSah79fiYnj104PzFYUXQ= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765832050663276.790442113328; Mon, 15 Dec 2025 12:54:10 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYr-0006h8-4F; Mon, 15 Dec 2025 15:52:53 -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 1vVFYQ-0006KQ-7s for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:26 -0500 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 1vVFYO-0005pq-3i for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:25 -0500 Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-319-xOFcFoHeM06gmoiraHEPSQ-1; Mon, 15 Dec 2025 15:52:22 -0500 Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-88a3356a310so44021206d6.3 for ; Mon, 15 Dec 2025 12:52:22 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831943; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JnMxtrXTusXMIXSRjsHu7VxCqHT0zBV4fsUGeGwSgkQ=; b=eDEHr8UhMiOCGy9HVOtkLa568KU+aZDb2m06riB1gRFKr+QO3tcZ+e/qkuvKA7VC7MfGCA OJgK8oADJ+9IhYPMAxD1nEZMQ77RzpKOsX8YojY9mwlisYrhx0ZUeOYay+HRW1ig18wZZe AaJ69O+r/d3LtUwj+sS/b0+XTOnsKbE= X-MC-Unique: xOFcFoHeM06gmoiraHEPSQ-1 X-Mimecast-MFC-AGG-ID: xOFcFoHeM06gmoiraHEPSQ_1765831942 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831941; x=1766436741; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JnMxtrXTusXMIXSRjsHu7VxCqHT0zBV4fsUGeGwSgkQ=; b=N4rr5RQajsueO6oxhheyafh30BvZcaLsAAKAMzXnoS+HSHKuXoJgndFyRN+mcdGDMX fu1KY2+lYFWIkzZPJ4eyNsYmIuNQ2aaApToJjvP5FcxxCRNUHGyU+vznLtdEHlRCb9nK erF4ngPgiKt1KLMGY8/KZnFbCT4+obFSyZs0oF5izvOiMMftnUPwP2E39X3oJzOLJNO2 B3BOUoX3kz//yx3l/EvH7Oq64vP8EQLE7N3IMOn4jrVQN5BrpDHja/0YbZ0fbeHy8TKR cw9ONBf46ZZCm6p5r0IZIpgYR5NKhIRtVxDncjLI1/eo393GSMD/UWI9XCeBSyFKtUZc f9iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831941; x=1766436741; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=JnMxtrXTusXMIXSRjsHu7VxCqHT0zBV4fsUGeGwSgkQ=; b=C1fUIU4SkptxTrbNyXGGf0dAyncT8/+8yUHkAqWxiPp1u5TUpLG2OSGJFoSiOeSGb6 Mpey97rPaOSpP8K1jyiJflMjU6Joxd5b2bIwffLMn8o3ybSnUBphFxC8aWoSau/PaYtL IN7vb+G54ltHKjlgULU7YCEAlXIVhgN8hlJlUvGZFioeoSWSVWS2cr/9vLT/nvnVre2/ dEmm77LWd/SYxgjDIlpZ+tbJQ9dOTP6dEY2Is5uCA0+TdarVl/uF1pGKdA6NnceGxdhf pPG9xWKES8ibpudjnjanoqbrAl6Au1CFiXuajkWmdXSUlHsa0zNguESFsKf/n8ezKQZU FuRA== X-Gm-Message-State: AOJu0YwbkshF2Tv0l8H1wiYarVJAOoIBYm6bdi8ZMavUvGqF4DWtloNY u+LEnwUq5ntDWgetNgPTS+GJkiXqzrjmU16hhwQBmHhOzvz+Ccqdk+ifBreZ+SNaci8/aXzTEEc oqPpwbfY6lyW1nrLOsMB+VpWvtn1aTLi19ifxhKKNOdpF/YA4SRKAH1QDkGzCnhuhCVO6lX5i2J XO9n+nLovF7Sbh8YU/R5gVqlDbg5poQvl2To1jyQ== X-Gm-Gg: AY/fxX6VoPLsSGuZmQRcPNs2Ogo/g95sKJeeQXs9E4iSR7kdNahLr8j3e4Hbi42pIKW 3TAaDAeFB4NYdBC8j3YDr6zhNG5h4o5mgkt8hgFM+9kHGdSg27Sfh3H4o+9gc3Abgt/9R3WPLHW vn/1d0k4uCALorCdgJHaG/W7PrqUmPxT3+GZJsIRNgPo0KW3pINexVqGGzn7VgtQd/Ly+rFx24S NhH7Cp3TvyEhiC3XMFpZNCDwx9oj2plGTcvvgy7/ejW8p4tccSse8uVPEpnB2r0X/7quXkeGsx1 GzrMsnO0k2XBfzWAAZ5OzxTlh+mSjp82wClDEEcfR1Hg1NWANvjnhVMY8Ya1i3/+BvqJzQpGoYK F X-Received: by 2002:a05:6214:5bc6:b0:882:3bc7:1909 with SMTP id 6a1803df08f44-8887e0fd8dfmr173823336d6.37.1765831941429; Mon, 15 Dec 2025 12:52:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IEtC2B1Bs+WJtJ64cYFnO/hAfp9LsJnsdyV8d0bJxMXIFybc8OnE4R7KhEcp1u29oA52MWTIg== X-Received: by 2002:a05:6214:5bc6:b0:882:3bc7:1909 with SMTP id 6a1803df08f44-8887e0fd8dfmr173822966d6.37.1765831940959; Mon, 15 Dec 2025 12:52:20 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 10/12] memory: Rename memory_region_init_ram_guest_memfd() to *_private() Date: Mon, 15 Dec 2025 15:52:01 -0500 Message-ID: <20251215205203.1185099-11-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.129.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832051264158500 Content-Type: text/plain; charset="utf-8" Differenciate it from fully shared guest-memfd use cases. Suggested-by: Xiaoyao Li Signed-off-by: Peter Xu Reviewed-by: Xiaoyao Li --- include/system/memory.h | 10 +++++----- backends/igvm.c | 4 ++-- hw/i386/pc.c | 4 ++-- hw/i386/pc_sysfw.c | 4 ++-- hw/i386/x86-common.c | 4 ++-- system/memory.c | 10 +++++----- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/include/system/memory.h b/include/system/memory.h index 9b58303bb8..b3d000a563 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -1693,11 +1693,11 @@ bool memory_region_init_ram(MemoryRegion *mr, uint64_t size, Error **errp); =20 -bool memory_region_init_ram_guest_memfd(MemoryRegion *mr, - Object *owner, - const char *name, - uint64_t size, - Error **errp); +bool memory_region_init_ram_guest_memfd_private(MemoryRegion *mr, + Object *owner, + const char *name, + uint64_t size, + Error **errp); =20 /** * memory_region_init_rom: Initialize a ROM memory region. diff --git a/backends/igvm.c b/backends/igvm.c index 905bd8d989..91631829e5 100644 --- a/backends/igvm.c +++ b/backends/igvm.c @@ -221,8 +221,8 @@ static void *qigvm_prepare_memory(QIgvm *ctx, uint64_t = addr, uint64_t size, g_strdup_printf("igvm.%X", region_identifier); igvm_pages =3D g_new0(MemoryRegion, 1); if (ctx->cgs && ctx->cgs->require_guest_memfd) { - if (!memory_region_init_ram_guest_memfd(igvm_pages, NULL, - region_name, size, err= p)) { + if (!memory_region_init_ram_guest_memfd_private( + igvm_pages, NULL, region_name, size, errp)) { return NULL; } } else { diff --git a/hw/i386/pc.c b/hw/i386/pc.c index b2d55ceb5e..41dfbbdcf0 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -963,8 +963,8 @@ void pc_memory_init(PCMachineState *pcms, if (!is_tdx_vm()) { option_rom_mr =3D g_malloc(sizeof(*option_rom_mr)); if (machine_require_guest_memfd_private(machine)) { - memory_region_init_ram_guest_memfd(option_rom_mr, NULL, "pc.ro= m", - PC_ROM_SIZE, &error_fatal); + memory_region_init_ram_guest_memfd_private( + option_rom_mr, NULL, "pc.rom", PC_ROM_SIZE, &error_fatal); } else { memory_region_init_ram(option_rom_mr, NULL, "pc.rom", PC_ROM_S= IZE, &error_fatal); diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c index 1c37258654..ad55d4eba6 100644 --- a/hw/i386/pc_sysfw.c +++ b/hw/i386/pc_sysfw.c @@ -53,8 +53,8 @@ static void pc_isa_bios_init(PCMachineState *pcms, Memory= Region *isa_bios, /* map the last 128KB of the BIOS in ISA space */ isa_bios_size =3D MIN(flash_size, 128 * KiB); if (machine_require_guest_memfd_private(MACHINE(pcms))) { - memory_region_init_ram_guest_memfd(isa_bios, NULL, "isa-bios", - isa_bios_size, &error_fatal); + memory_region_init_ram_guest_memfd_private( + isa_bios, NULL, "isa-bios", isa_bios_size, &error_fatal); } else { memory_region_init_ram(isa_bios, NULL, "isa-bios", isa_bios_size, &error_fatal); diff --git a/hw/i386/x86-common.c b/hw/i386/x86-common.c index 33ac7fb6e9..27854a9164 100644 --- a/hw/i386/x86-common.c +++ b/hw/i386/x86-common.c @@ -1045,8 +1045,8 @@ void x86_bios_rom_init(X86MachineState *x86ms, const = char *default_firmware, goto bios_error; } if (machine_require_guest_memfd_private(MACHINE(x86ms))) { - memory_region_init_ram_guest_memfd(&x86ms->bios, NULL, "pc.bios", - bios_size, &error_fatal); + memory_region_init_ram_guest_memfd_private( + &x86ms->bios, NULL, "pc.bios", bios_size, &error_fatal); if (is_tdx_vm()) { tdx_set_tdvf_region(&x86ms->bios); } diff --git a/system/memory.c b/system/memory.c index d70968c966..28810dcb29 100644 --- a/system/memory.c +++ b/system/memory.c @@ -3746,11 +3746,11 @@ bool memory_region_init_ram(MemoryRegion *mr, return true; } =20 -bool memory_region_init_ram_guest_memfd(MemoryRegion *mr, - Object *owner, - const char *name, - uint64_t size, - Error **errp) +bool memory_region_init_ram_guest_memfd_private(MemoryRegion *mr, + Object *owner, + const char *name, + uint64_t size, + Error **errp) { DeviceState *owner_dev; =20 --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832052; cv=none; d=zohomail.com; s=zohoarc; b=XqOgyOuH1e6gwlZkE/ug/5o7iEwdCpABnaY1K7c6OCL2Gt2YLX6tQ1N2SmZD2iPUQZZkjggOmFJWc7KADEUGuz24SsXLKwMT8yQKSqcokyWP4QViwfL7kMvu2HLfJEx5VLBn8hTz5bRBKLyPKtk82r0dbQVow6853HC7NXrWAEw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832052; 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=LF7JnsCpnjxHRd2k7qGwgLD06GkanDYYSmy4s3TF9Ic=; b=lJqmVNAl3KbD/OisPFaL3PngWDPYKUk4bhwaqrQhdsDafo2pfNwd8Tz7KeBT9vx+JNsIzoBuJ2spVOe4hAkEV4Yk4rCWVfhOQipKXCAi2kzzetFQDmuY0XBzXJ319AkIpFoplt5mxdVP6UuSH+3K/VQ071D31FvncUnBXD3AEFk= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17658320526399.787532867929599; Mon, 15 Dec 2025 12:54:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYr-0006hU-9l; Mon, 15 Dec 2025 15:52:54 -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 1vVFYT-0006NB-Hg for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:31 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vVFYQ-0005rD-Ha for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:28 -0500 Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-512-qIY8hqqVPIy1vYPcsKaiEQ-1; Mon, 15 Dec 2025 15:52:23 -0500 Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-88a2d8b7ea5so25249176d6.0 for ; Mon, 15 Dec 2025 12:52:23 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831945; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LF7JnsCpnjxHRd2k7qGwgLD06GkanDYYSmy4s3TF9Ic=; b=eV+crgSOJysN0cOjOvnfTPH55Nutw2eIk3O2Rgl6PXVEAEaWCVN2rEYCXxjeyuYHt44MM2 U6ozGKlV2nnyFptFRYHcP70SeGu9qN1QJu5m8LsZhLBHDD4jXidWxDJqFalK8zbCf+Bjoz cc+EW2qruzE9Ah/zg3UmACWo9b3FnPA= X-MC-Unique: qIY8hqqVPIy1vYPcsKaiEQ-1 X-Mimecast-MFC-AGG-ID: qIY8hqqVPIy1vYPcsKaiEQ_1765831943 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831943; x=1766436743; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LF7JnsCpnjxHRd2k7qGwgLD06GkanDYYSmy4s3TF9Ic=; b=ZTb7TEio9K+YysoxlmiHfxyjA2jAtsLNY/Q6YpFNomRLsQcHGaj3DwhD2gDI+SYhWB X89BaM3XzmN5VSU2Ok9UxZ6bxidfp1ek/Q8N+k7Pmi+DrbDEsXilg6eS6znMFppsWFdH sosfAnVBMzPNxS1YEuYcusMfEYYT2Hejsa7Wz48A7Ru0d4NIRdAeL/2RZBPNJE2iFc4p efzEId6GI7tsgpElgX3PGusEK9DEFIDNMyeg8heWmVYqF8l5bkHyOrBiGRrCDSRNTfci LVr+eqR6CsLngCsL83uGBCp4sEygCzDvgOV4Bm1xtZJG1wDqzs+hzeCXN9Y55LkRPEb7 53tA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831943; x=1766436743; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LF7JnsCpnjxHRd2k7qGwgLD06GkanDYYSmy4s3TF9Ic=; b=GGuGYBycSNRXl4iI/OtlH8XUXx0bqlMbHnwKyJKO8h2kQ/gdWRdeEH/tnGN7pS86C+ j4TBirthlTFfUq37dsty3Jj7Yq1aQPgahfGK2H7v2AcJX52WVMdaX7iKlCyY6UrkFl7W kZ4MwEM8uppfWPQNZxNWF8lxSsiV9V5LYLn/iSRRwLviLEZMvWY9OzSWYmUdtwyk3AlZ EnKBB/APSF/+B4IT5EBHWFTk12bY+/DXeI/yxhCtbF51F9Cllo2/+t3ZrLdH72yGvXZQ XvDyB3mVwRTNIJ1M21AnEC6RlTvydH2p2z/D1svCLZmISDREt5WOFZ6o6TTMA5OunWeN 0gaA== X-Gm-Message-State: AOJu0YwSbCZNpCzif+m+Dq3JRTFhRX0aH8o8IbcapZaGV+DEVqwtCK77 1KbbYubQHNOmhV2XzVBzQ8sA5WX+NZOxdz4EPkzJmGn1oIqB8lFrYL0/mIzoiCU5LHoCkWl2/vy EW/JQxnsimuSMrn9yfDdIgCpDLVYb3rRmb2Zglk0l22d7moYveCcCxRhquXdBy2850bgLyk9orV BIJolgXXwzQq1QKiNbRTmmvDrMeqYhYogT9HnWbQ== X-Gm-Gg: AY/fxX4uSoAc0z/cfI2LIu+Lozx6XjbdlPB4/XVsUnIxPiZAKggXUYw3qsCkIKpOQrL XxAshCsAmxy08GvivzlCD/PAadJIDJJ13wOQePXXiwFf6cw67KpdLvibxNm9y8EyPWD9JFZnVT3 bUTdJIzOUottASlERC4mfG1bBTX2r1T+LJuejl9XdfMzj1kZ9J6HQLQuVDEYmceUjzmG5hZZkds Q2LZVcygzwUY38Tpou8ejxt+Pe/XF+Rnil/kc8yctAH4PMskWsdMpj3u3vPulut6N3QH6P9nGo7 c+1gWO2yQOheAfmT7+koBXcBLaK0gm0seygbYILDXTwUpwKj5a8ePt23mlCzC09+GWtKuiVZywJ Q X-Received: by 2002:a05:6214:2608:b0:88a:35cf:8db3 with SMTP id 6a1803df08f44-88a35cf91c7mr77365106d6.18.1765831942643; Mon, 15 Dec 2025 12:52:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IGXvVvlLUuaI3CmDkGYxq2/j0XDR1RDPya0LwZRhuGWiIDckeBmdcsfCDNbJglmvpzeF3TgBw== X-Received: by 2002:a05:6214:2608:b0:88a:35cf:8db3 with SMTP id 6a1803df08f44-88a35cf91c7mr77364646d6.18.1765831942059; Mon, 15 Dec 2025 12:52:22 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 11/12] tests/migration-test: Support guest-memfd init shared mem type Date: Mon, 15 Dec 2025 15:52:02 -0500 Message-ID: <20251215205203.1185099-12-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.133.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832053246158500 Content-Type: text/plain; charset="utf-8" Support the guest-memfd type when the fd has init share enabled. It means the gmemfd can be used similarly to memfd. Signed-off-by: Peter Xu --- tests/qtest/migration/framework.h | 4 +++ tests/qtest/migration/framework.c | 60 +++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/tests/qtest/migration/framework.h b/tests/qtest/migration/fram= ework.h index ed85ed502d..b4c5edcad3 100644 --- a/tests/qtest/migration/framework.h +++ b/tests/qtest/migration/framework.h @@ -34,6 +34,10 @@ typedef enum { * but only anonymously allocated. */ MEM_TYPE_MEMFD, + /* + * Use guest-memfd, shared mappings. + */ + MEM_TYPE_GUEST_MEMFD, MEM_TYPE_NUM, } MemType; =20 diff --git a/tests/qtest/migration/framework.c b/tests/qtest/migration/fram= ework.c index e35839c95f..9aa353bac6 100644 --- a/tests/qtest/migration/framework.c +++ b/tests/qtest/migration/framework.c @@ -26,6 +26,10 @@ #include "qemu/range.h" #include "qemu/sockets.h" =20 +#ifdef CONFIG_LINUX +#include +#include +#endif =20 #define QEMU_VM_FILE_MAGIC 0x5145564d #define QEMU_ENV_SRC "QTEST_QEMU_BINARY_SRC" @@ -283,6 +287,9 @@ static char *migrate_mem_type_get_opts(MemType type, co= nst char *memory_size) case MEM_TYPE_MEMFD: backend =3D g_strdup("-object memory-backend-memfd"); break; + case MEM_TYPE_GUEST_MEMFD: + backend =3D g_strdup("-object memory-backend-memfd,guest-memfd=3Do= n"); + break; default: g_assert_not_reached(); break; @@ -425,8 +432,55 @@ int migrate_args(char **from, char **to, const char *u= ri, MigrateStart *args) return 0; } =20 +static bool kvm_guest_memfd_init_shared_supported(const char **reason) +{ + assert(*reason =3D=3D NULL); + +#ifdef CONFIG_LINUX + int ret, fd =3D -1; + + if (!migration_get_env()->has_kvm) { + *reason =3D "KVM is not enabled in the current QEMU build"; + goto out; + } + + fd =3D open("/dev/kvm", O_RDWR); + if (fd < 0) { + *reason =3D "KVM module isn't available or missing permission"; + goto out; + } + + ret =3D ioctl(fd, KVM_CHECK_EXTENSION, KVM_CAP_GUEST_MEMFD); + if (!ret) { + *reason =3D "KVM module doesn't suport guest-memfd"; + goto out; + } + + ret =3D ioctl(fd, KVM_CHECK_EXTENSION, KVM_CAP_GUEST_MEMFD_FLAGS); + if (ret < 0) { + *reason =3D "KVM doesn't support KVM_CAP_GUEST_MEMFD_FLAGS"; + goto out; + } + + if (!(ret & GUEST_MEMFD_FLAG_INIT_SHARED)) { + *reason =3D "KVM doesn't support GUEST_MEMFD_FLAG_INIT_SHARED"; + goto out; + } +out: + if (fd >=3D 0) { + close(fd); + } +#else + *reason =3D "KVM not supported on non-Linux OS"; +#endif + + return !*reason; +} + static bool migrate_mem_type_prepare(MemType type) { + const char *reason =3D NULL; + switch (type) { case MEM_TYPE_SHMEM: if (!g_file_test("/dev/shm", G_FILE_TEST_IS_DIR)) { @@ -434,6 +488,12 @@ static bool migrate_mem_type_prepare(MemType type) return false; } break; + case MEM_TYPE_GUEST_MEMFD: + if (!kvm_guest_memfd_init_shared_supported(&reason)) { + g_test_skip(reason); + return false; + } + break; default: break; } --=20 2.50.1 From nobody Sun Feb 8 22:13:45 2026 Delivered-To: importer@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+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1765832064; cv=none; d=zohomail.com; s=zohoarc; b=KiZIrQV8Jk2wzWWdLE8uSbZFWAhN74Ybpvp7Y2PQrtZ3cLrE+hUM1XP2COSEZMHfPZVAxHP2QrmfD/09jpDnCH1ZCK6U4ZDE5UmsHY3k+TSKRGCrxmbDzRcLzP7AAcerA51Ks2a2oXEB39YKTreeYZ+IHMHtkJGaOUxtvGKd5RI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765832064; 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=8LRdt+/CQiyd/RiqOaKeRjP93SY+POOdomSS9E7DfjY=; b=D+anHLJintDYX+hZIkLLhQFDBv2KJ3CI17xSuYMuEV/UYouOc7eCcuuSYPj7S9LqxIPibM6t6XF9kC4lkilNiopIqWNdu3U7lZT6WRdvbmJiXOvdLHgA2oIIj2EHlYEDP5jcU817x3V8dUyAyYh0GHxnReETHjVSz6EWGRdjDHQ= 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+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17658320644591000.4072802461111; Mon, 15 Dec 2025 12:54:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vVFYv-0006ik-GT; Mon, 15 Dec 2025 15:52:57 -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 1vVFYX-0006PV-8Q for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:36 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vVFYT-0005tB-2f for qemu-devel@nongnu.org; Mon, 15 Dec 2025 15:52:31 -0500 Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-630-bZ-L53sXPtOJy7ZrlfWbbA-1; Mon, 15 Dec 2025 15:52:26 -0500 Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-8b8738fb141so869221885a.0 for ; Mon, 15 Dec 2025 12:52:26 -0800 (PST) Received: from x1.com ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8899ea3621bsm58726236d6.36.2025.12.15.12.52.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 12:52:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765831947; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8LRdt+/CQiyd/RiqOaKeRjP93SY+POOdomSS9E7DfjY=; b=YojYklWRayaxD0zghTqDRxU5BAuD/UGDC8GbXz3MEoYwdWNjE1KELMRieQfGioN2fabxEL 3PfEfltaNxe2aoFS+K87KLWny/R+94Rb/2auusof/ajMKS/90ES+DzzUH2mzw6oBm2Y2IW SWCNmXcnANJFcJpfg6WzuIjGbwzkdVQ= X-MC-Unique: bZ-L53sXPtOJy7ZrlfWbbA-1 X-Mimecast-MFC-AGG-ID: bZ-L53sXPtOJy7ZrlfWbbA_1765831946 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765831945; x=1766436745; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8LRdt+/CQiyd/RiqOaKeRjP93SY+POOdomSS9E7DfjY=; b=ZP+acPRbzFvFh70d42Or1o56p6VE4WW4ld57fcS+TMDfzG/WXQ18auA6ADBIXFeY2b lOIQWgRY6pJdZBXd1SCYEDV9dCC0OQJdoCucUA3TkHi7ZFuryhvSHZ5GQ0Vl1tRAEBZJ +QiifM50zTgVMGNB5TYE22C6Y53om5C5Q5hcJCECbpoQLgk386i5BEjKzBYqzEDcRlfb vfnlmGyTd37qEPeBWlsUiPMpNNT3J4eduxpSWeULOJW3BFENitf6Wl9ozZdQ0qdZvsaF PpGQud6a6sRNgu0mSkXEU+cMeQl0cZ8naKcHutoiDMlEo9uheqxiwmfiwEcSRLKe5gHS ddMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765831945; x=1766436745; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=8LRdt+/CQiyd/RiqOaKeRjP93SY+POOdomSS9E7DfjY=; b=luMgF5R0Dhq7cX5j2fU0UmLoPSPPgdAIzGr5Q59EJp87Kx5ZMLxViN08mhjRxSOjHd CtReulqs4wGVHJoAWg1ClzET4yslxD+TTlumOUh+Jhjucd7ccerokr20FyVJsIcdMnkW UspW7b3HtrZUQJ1leX3jUfaa8XaqnS5x88xNMLIZpusHYDkiviHPUqOZhfiEfiChLJ50 QrAdtNt+E2bsmwDOajcICbWI1sD+kcffK90U4p3h56H7ftVb67JFR59ulldUR4rkOI63 Wa6/2LVOOYutuziupFW21gvxVTC2UvpCZVYxQ7IO3mmWNIVJFjCSN+aw6VuKSMPlyVbS msgg== X-Gm-Message-State: AOJu0YygD8vU5D2dVheWNeLdNBr1n/tuDmMX1HsyTPCZZCrQf/Lbw6f7 TGhsTZe+hyjg+PzdP33Xphwc3jmw6+wjcgHN7mY0F491nsHdlUn5E5q9CS3ZJJJzQcKe3l9zyyT uquZL+Ji3hpEsJjKXPR8A++s/yHhad49cIm1KH4158W0apzwuxSBpJ7f2y25/tOupj+h7kSlLY4 I0tKkCI5NqltBP7XZwsGDYfQJ8+UtfF/E24xCpPQ== X-Gm-Gg: AY/fxX66vTrnXwglCsPSma4duAGZqPQxTUjTGA91IwvWHkuGHNpsbajq+sRxJfEBYPy +/u4xDwFT8dJ7SGbI+L/fbGpAOueLoP7Rl5ftUY6DjfED61Hjc/Leq0cgb+B6jdFcfl0tyVxB/t FQf7XQhvXJwdJgJfwQ3pD0n4d/VdpagXPd/QEh4ekm1y6fv2iY4N/L2e7oncbauHxXYkxgujnOv vaZfVUSqd1rY0jpv4Hc/6P/ntOWijIns1DzRxb1n0Di2iupkUyPUBoNeZVpLv3P2WqPG0CXIMxm Cmzliwv+QHurebBVcHD2YE01U52bfDzlb9pmwtyEGjkJvMSpNekM03zPIQsmdfuQfDwGhjuhEvz + X-Received: by 2002:a05:620a:25d0:b0:8b2:eea5:3325 with SMTP id af79cd13be357-8bad3fafe5dmr2239878385a.14.1765831944079; Mon, 15 Dec 2025 12:52:24 -0800 (PST) X-Google-Smtp-Source: AGHT+IEAyF4WCTaqPMSxxh76gAvuOjJd7gboiCINJudabLIO39fPUVgu3anrIUW+SzJ+XQUeNq3eeg== X-Received: by 2002:a05:620a:25d0:b0:8b2:eea5:3325 with SMTP id af79cd13be357-8bad3fafe5dmr2239874185a.14.1765831943612; Mon, 15 Dec 2025 12:52:23 -0800 (PST) From: Peter Xu To: qemu-devel@nongnu.org Cc: Juraj Marcin , David Hildenbrand , Paolo Bonzini , Chenyi Qiang , peterx@redhat.com, Fabiano Rosas , Alexey Kardashevskiy , Li Xiaoyao Subject: [PATCH v3 12/12] tests/migration-test: Add a precopy test for guest-memfd Date: Mon, 15 Dec 2025 15:52:03 -0500 Message-ID: <20251215205203.1185099-13-peterx@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251215205203.1185099-1-peterx@redhat.com> References: <20251215205203.1185099-1-peterx@redhat.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=170.10.133.124; envelope-from=peterx@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1765832065339158500 Content-Type: text/plain; charset="utf-8" Add a plain tcp test for guest-memfd. Note that the test will be automatically skipped whenever not supported (e.g. qemu compiled without KVM, or host kernel doesn't support kvm, or old kernels, etc.). Signed-off-by: Peter Xu Reviewed-by: Fabiano Rosas --- tests/qtest/migration/precopy-tests.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/qtest/migration/precopy-tests.c b/tests/qtest/migration/= precopy-tests.c index 57ca623de5..88d2627efd 100644 --- a/tests/qtest/migration/precopy-tests.c +++ b/tests/qtest/migration/precopy-tests.c @@ -215,6 +215,16 @@ static void test_precopy_tcp_plain(void) test_precopy_common(&args); } =20 +static void test_precopy_tcp_plain_gmemfd(void) +{ + MigrateCommon args =3D { + .listen_uri =3D "tcp:127.0.0.1:0", + .start.mem_type =3D MEM_TYPE_GUEST_MEMFD, + }; + + test_precopy_common(&args); +} + static void test_precopy_tcp_switchover_ack(void) { MigrateCommon args =3D { @@ -1276,6 +1286,8 @@ void migration_test_add_precopy(MigrationTestEnv *env) return; } =20 + migration_test_add("/migration/precopy/tcp/plain/guest-memfd", + test_precopy_tcp_plain_gmemfd); migration_test_add("/migration/precopy/tcp/plain/switchover-ack", test_precopy_tcp_switchover_ack); =20 --=20 2.50.1