From nobody Fri Nov 14 18:19:10 2025 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=1761135600; cv=none; d=zohomail.com; s=zohoarc; b=hmHSwqH/AQsTBBjZu7vQy6RC+XSB/SC4H8g64BI37FreyGBJnxgbBvw8gbbkYb7QDyiVxC6Mw6fSg9UQOfOMlknm8lKdx8H7MzLc8Qo8MPBob/uhNHIraWtQNLynCFd/6nETALH/Qu+BDwmKa2xVgXenSA9ed46peLgeKlMhUE4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135600; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=65Vgceb3D7yf4yWybcxJjxF58FTpfcd+SoMiXXzlJys=; b=UzWTj8JclV0d2N0qI0S6yC2vtHASU6B5FzZttMVVDDJShyjbo+Qn/WFIoedE66S2FKtpZquMsrhL0RUNa1lUnOyxHjvWDDJE5XDx2LszpUbAb2QrJ8rUp3gDyniGvkGBQiTaQSxHnoIeQqtiLfgBBNln6ejvXCvmatIrZucj+rw= 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 1761135600642610.9940584049314; Wed, 22 Oct 2025 05:20:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXoN-00014L-Kt; Wed, 22 Oct 2025 08:19:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoL-00013p-Dx for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:25 -0400 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 1vBXoJ-00073q-Go for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:25 -0400 Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-196-92ZtQlKVNnCaEEwmV9iqYw-1; Wed, 22 Oct 2025 08:18:54 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 63548195420F; Wed, 22 Oct 2025 12:18:53 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id E0318180044F; Wed, 22 Oct 2025 12:18:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135562; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=65Vgceb3D7yf4yWybcxJjxF58FTpfcd+SoMiXXzlJys=; b=AWvJPy4UUwzuUa7qubuSMYkF++EU69Av0k6tAyh0jOczERdI/xISH9ZAUqJZpF9pRNeepj RnPDxGvwLqI9tfPffNjz0cysIwy4L6pqLTgcTVlaHhbS3AAc3lm8gOFC1124ARQ5HROmQV gzN2+S8pwSMBAHK9l9OFRaZCOPvKKUs= X-MC-Unique: 92ZtQlKVNnCaEEwmV9iqYw-1 X-Mimecast-MFC-AGG-ID: 92ZtQlKVNnCaEEwmV9iqYw_1761135533 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , Zhenzhong Duan , Steven Sistare , David Hildenbrand , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 01/12] vfio/container: Remap only populated parts in a section Date: Wed, 22 Oct 2025 14:18:35 +0200 Message-ID: <20251022121846.874152-2-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135608354158500 From: Zhenzhong Duan If there are multiple containers and unmap-all fails for some of them, we need to remap vaddr for the other containers for which unmap-all succeeded. When ram discard is enabled, we should only remap populated parts in a section instead of the whole section. Fixes: eba1f657cbb1 ("vfio/container: recover from unmap-all-vaddr failure") Signed-off-by: Zhenzhong Duan Reviewed-by: Steven Sistare Reviewed-by: David Hildenbrand Link: https://lore.kernel.org/qemu-devel/20250928085432.40107-2-zhenzhong.d= uan@intel.com Signed-off-by: C=C3=A9dric Le Goater --- include/hw/vfio/vfio-cpr.h | 2 +- hw/vfio/cpr-legacy.c | 20 +++++++++++++++----- hw/vfio/listener.c | 4 ++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/include/hw/vfio/vfio-cpr.h b/include/hw/vfio/vfio-cpr.h index 81f4e24e229ef35f5b14582ce6e58415e0ebf3df..4606da500a7969b6519b0542804= 64608ae624bb9 100644 --- a/include/hw/vfio/vfio-cpr.h +++ b/include/hw/vfio/vfio-cpr.h @@ -68,7 +68,7 @@ bool vfio_cpr_container_match(struct VFIOLegacyContainer = *container, void vfio_cpr_giommu_remap(struct VFIOContainer *bcontainer, MemoryRegionSection *section); =20 -bool vfio_cpr_ram_discard_register_listener( +bool vfio_cpr_ram_discard_replay_populated( struct VFIOContainer *bcontainer, MemoryRegionSection *section); =20 void vfio_cpr_save_vector_fd(struct VFIOPCIDevice *vdev, const char *name, diff --git a/hw/vfio/cpr-legacy.c b/hw/vfio/cpr-legacy.c index 80af7469d06b2f15a705a97c4b5ddd25a8044115..b4581e8f859323c1c45560f7d34= 5b34f1ed9bd85 100644 --- a/hw/vfio/cpr-legacy.c +++ b/hw/vfio/cpr-legacy.c @@ -228,22 +228,32 @@ void vfio_cpr_giommu_remap(VFIOContainer *bcontainer, memory_region_iommu_replay(giommu->iommu_mr, &giommu->n); } =20 +static int vfio_cpr_rdm_remap(MemoryRegionSection *section, void *opaque) +{ + RamDiscardListener *rdl =3D opaque; + + return rdl->notify_populate(rdl, section); +} + /* * In old QEMU, VFIO_DMA_UNMAP_FLAG_VADDR may fail on some mapping after * succeeding for others, so the latter have lost their vaddr. Call this - * to restore vaddr for a section with a RamDiscardManager. + * to restore vaddr for populated parts in a section with a RamDiscardMana= ger. * - * The ram discard listener already exists. Call its populate function + * The ram discard listener already exists. Call its replay_populated fun= ction * directly, which calls vfio_legacy_cpr_dma_map. */ -bool vfio_cpr_ram_discard_register_listener(VFIOContainer *bcontainer, - MemoryRegionSection *section) +bool vfio_cpr_ram_discard_replay_populated(VFIOContainer *bcontainer, + MemoryRegionSection *section) { + RamDiscardManager *rdm =3D memory_region_get_ram_discard_manager(secti= on->mr); VFIORamDiscardListener *vrdl =3D vfio_find_ram_discard_listener(bcontainer, section); =20 g_assert(vrdl); - return vrdl->listener.notify_populate(&vrdl->listener, section) =3D=3D= 0; + return ram_discard_manager_replay_populated(rdm, section, + vfio_cpr_rdm_remap, + &vrdl->listener) =3D=3D 0; } =20 int vfio_cpr_group_get_device_fd(int d, const char *name) diff --git a/hw/vfio/listener.c b/hw/vfio/listener.c index c6bb58f5209a4c8eb67deac41a89c317fa391447..1b6e5065a3267ab08d2d3fea3c5= b4965a80947e8 100644 --- a/hw/vfio/listener.c +++ b/hw/vfio/listener.c @@ -577,8 +577,8 @@ void vfio_container_region_add(VFIOContainer *bcontaine= r, if (!vfio_ram_discard_register_listener(bcontainer, section, &= err)) { goto fail; } - } else if (!vfio_cpr_ram_discard_register_listener(bcontainer, - section)) { + } else if (!vfio_cpr_ram_discard_replay_populated(bcontainer, + section)) { error_setg(&err, "vfio_cpr_ram_discard_register_listener for %s fail= ed", memory_region_name(section->mr)); --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135575; cv=none; d=zohomail.com; s=zohoarc; b=nq+zd3jwk3t3wFNtDhzi7a76kIYcYGpsUtsJuYXjD1GdndGZxD269OBbuSHqNQDs+26AtjD92wW+H1uztm7rTusAn4sx4MsrnSUYShMsb9x1u3mO2c/ewV0/mSNvMhbhiCtHzYBdj0gKYj2hxwaD6zWg4qVNXD5KDkDPs72SDPw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135575; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=I/vHRPUGqrgjZdNlDXp3raXYca232VkVWeH0CgAlUCo=; b=D/Ru7yTfSAYGWo7di+Mag9XWdAOleHflvvqJL0N+QYce+UTriLbe8wOtEdw8KZ3HWKl9D8m74toIyYfyF3DCkoEWwQIbgPyg/nQUVYycZi613xiH/EbXC+UtrE69dH3swpILOpqJkTfwT2V3yNrpjCHguqjq+A6/gZlTL4PVzqY= 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 1761135575858925.4552194376583; Wed, 22 Oct 2025 05:19:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXo3-0000zM-42; Wed, 22 Oct 2025 08:19:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXo0-0000yp-BH for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:04 -0400 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 1vBXny-00071W-EV for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:04 -0400 Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-246-E2Xfwm_SNtitePvU3StDeg-1; Wed, 22 Oct 2025 08:18:57 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 4C76A1954190; Wed, 22 Oct 2025 12:18:56 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 355891800451; Wed, 22 Oct 2025 12:18:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135541; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=I/vHRPUGqrgjZdNlDXp3raXYca232VkVWeH0CgAlUCo=; b=XT2KGwUPA7f/b6UnCtcdRIpOEn9JijBp71jDhbTz0Nuf+EMnJcKxd0hoHrJq+7i3VUCSaF 0ihK5m/9BJb3dC1meYNSNYMZirm0TOlKtZsn52yR+o1LnBSfJ50QTDqxA3iDBpS7wa9X10 YMSPb5TPbEOu+guh6UP/OmN8k6XeI5I= X-MC-Unique: E2Xfwm_SNtitePvU3StDeg-1 X-Mimecast-MFC-AGG-ID: E2Xfwm_SNtitePvU3StDeg_1761135536 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , Zhenzhong Duan , Steve Sistare , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 02/12] vfio/cpr-legacy: drop an erroneous assert Date: Wed, 22 Oct 2025 14:18:36 +0200 Message-ID: <20251022121846.874152-3-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135579278154100 From: Zhenzhong Duan vfio_legacy_cpr_dma_map() is not only used in post_load on destination but also error recovery path on source side. Assert it for destination is wrong. Fixes: 7e9f21411302 ("vfio/container: restore DMA vaddr") Signed-off-by: Zhenzhong Duan Reviewed-by: Steve Sistare Link: https://lore.kernel.org/qemu-devel/20250928085432.40107-3-zhenzhong.d= uan@intel.com Signed-off-by: C=C3=A9dric Le Goater --- hw/vfio/cpr-legacy.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/hw/vfio/cpr-legacy.c b/hw/vfio/cpr-legacy.c index b4581e8f859323c1c45560f7d345b34f1ed9bd85..7184c9399128e71a658da51ba10= c2440f1e54d92 100644 --- a/hw/vfio/cpr-legacy.c +++ b/hw/vfio/cpr-legacy.c @@ -52,8 +52,6 @@ static int vfio_legacy_cpr_dma_map(const VFIOContainer *b= container, .size =3D size, }; =20 - g_assert(cpr_is_incoming()); - if (ioctl(container->fd, VFIO_IOMMU_MAP_DMA, &map)) { return -errno; } --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135600; cv=none; d=zohomail.com; s=zohoarc; b=Z6NoHjdcJCz/M98Akznb48WxB7+AWury1LoN5zxdL9Ny7jd9RmhFHNByQE+kuXURohcq3kM5BGsvbScESRXP5YA4S2xPfa153E6l7VqVI9zqHODXB6atIEpl8IMtdvX6A8eOHvYJvhVmu36fb1XxMq9G1oIe1KQWqdWYlx4p4lE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135600; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=l5j0Vt/s78dFDtfM/SEMY1vXEDEHiHjMWQvCeM3V3/8=; b=gaKFFTiQmVvhU8XyBvayQuhq/n5ks6K24zwFnDNHTBHohH/RQYTttsDufcTX/kyO1+v5FJX0coheKYJmcgA/S9b03lUWn6Zh/9EAaTleccHyqgGolp4XoGHkZGEFs4WMlm2ICn+lV3z1yerbQeuUG1vH7eyRwrKSqrJJxNKtD3c= 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 1761135600333950.240600264714; Wed, 22 Oct 2025 05:20:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXo3-0000zl-PV; Wed, 22 Oct 2025 08:19:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXo0-0000yq-D3 for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:04 -0400 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 1vBXny-00071U-EV for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:04 -0400 Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-402-zxQCrM1YPrWmoXEWfDhslQ-1; Wed, 22 Oct 2025 08:18:59 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 94F6A1800345; Wed, 22 Oct 2025 12:18:58 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id AE72A180044F; Wed, 22 Oct 2025 12:18:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135541; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=l5j0Vt/s78dFDtfM/SEMY1vXEDEHiHjMWQvCeM3V3/8=; b=Gb/bU3Px+uEtSCnICkjW3nUdUESEB1Ung8qhvnjkVauxhWxKAHWtWReI9T567/LoaAmKNa 0eo5cGosTMAb05C1Y5ixsr9yITSZZ6xHOgR+0/MLM5KEojPUeAQdpmnD03ZU4AdEpvIctk 9D1iRRrzk5HH1d3eo9pAGSeGNdaJWDk= X-MC-Unique: zxQCrM1YPrWmoXEWfDhslQ-1 X-Mimecast-MFC-AGG-ID: zxQCrM1YPrWmoXEWfDhslQ_1761135538 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , Zhenzhong Duan , Steve Sistare , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 03/12] vfio/iommufd: Set cpr.ioas_id on source side for CPR transfer Date: Wed, 22 Oct 2025 14:18:37 +0200 Message-ID: <20251022121846.874152-4-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135602234158500 From: Zhenzhong Duan On source side, if there are more than one VFIO devices and they attach to same container, only the first device sets cpr.ioas_id, the others are bypassed. We should set it for each device, or else only first device works. Fixes: 4296ee07455e ("vfio/iommufd: reconstruct device") Signed-off-by: Zhenzhong Duan Reviewed-by: Steve Sistare Link: https://lore.kernel.org/qemu-devel/20250928085432.40107-4-zhenzhong.d= uan@intel.com Signed-off-by: C=C3=A9dric Le Goater --- hw/vfio/iommufd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c index 68470d552eccc67afbf757de192ba53431e4840b..63a16d4dc1795d359ff298bcddd= a292d1e03028e 100644 --- a/hw/vfio/iommufd.c +++ b/hw/vfio/iommufd.c @@ -602,7 +602,6 @@ skip_ioas_alloc: container->be =3D vbasedev->iommufd; container->ioas_id =3D ioas_id; QLIST_INIT(&container->hwpt_list); - vbasedev->cpr.ioas_id =3D ioas_id; =20 bcontainer =3D VFIO_IOMMU(container); vfio_address_space_insert(space, bcontainer); @@ -636,6 +635,8 @@ skip_ioas_alloc: bcontainer->initialized =3D true; =20 found_container: + vbasedev->cpr.ioas_id =3D container->ioas_id; + ret =3D ioctl(devfd, VFIO_DEVICE_GET_INFO, &dev_info); if (ret) { error_setg_errno(errp, errno, "error getting device info"); --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135776; cv=none; d=zohomail.com; s=zohoarc; b=lkrq8nlag4NpOnAdQKJyjFB6gMuRGPZ+DdTd6qGSGvGb+jKydV1uoRJ52ZGGG/kWov/yWlj3sSO5b2lngGCWuoibe10G+TlcHterg3otZRehmptEhr/CH3GViVNnNKYJRaofcQqMewT47PapuodpRBlMhyO1DbZ1i/FnhDyBaC0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135776; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kJDH41Z/JWvNvJCXJkkhK1BkS0xXU5/DtVgbWD3nml4=; b=A+W3I9dkN4IX/rheiHuOf1CKi+QYFdiVMPoDvuUSEy6ce9CFefCBcHPbW2zORxBrSkIHQk5owTC1upj6YII9+ckiEX6HcOtIXSjBElS2Qgp0chiMzRHpw08naB1FprP8e63sg4sTQN5uqsCHV5ITKwcH7I/RKhMi8gbLHH0seZQ= 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 1761135776780382.7563875526772; Wed, 22 Oct 2025 05:22:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXo5-00010M-C0; Wed, 22 Oct 2025 08:19:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXo2-0000zI-BQ for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:06 -0400 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 1vBXo0-00071s-HU for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:06 -0400 Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-544-hXg5gUO-Opig_WfBtTFqww-1; Wed, 22 Oct 2025 08:19:02 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 0A98A1954191; Wed, 22 Oct 2025 12:19:01 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 227FA1800452; Wed, 22 Oct 2025 12:18:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135543; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kJDH41Z/JWvNvJCXJkkhK1BkS0xXU5/DtVgbWD3nml4=; b=YaXouxzP1KIUfgcDc2cv9ExVVFA0vq74XUxN0O6Xpjrw2vErLYvzfuoIf9djO15IKql6RX nkqQTgb9Fu1MtIDoMmTaQirFCkkjnuxllJeovH4FBS0fROJovg6wYJDBGdYXOt6j5KzK1a zFeAposUdGSDuad1MY+C8fZ1nLJhBtQ= X-MC-Unique: hXg5gUO-Opig_WfBtTFqww-1 X-Mimecast-MFC-AGG-ID: hXg5gUO-Opig_WfBtTFqww_1761135541 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , Zhenzhong Duan , Steve Sistare , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 04/12] vfio/iommufd: Restore vbasedev's reference to hwpt after CPR transfer Date: Wed, 22 Oct 2025 14:18:38 +0200 Message-ID: <20251022121846.874152-5-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135778943158500 From: Zhenzhong Duan After CPR transfer, if there are more than one VFIO devices, device is not added to hwpt->device_list and its reference to hwpt isn't restored on destination. We still need to call iommufd_cdev_attach_container() to restore it after a matching container is found, or else SIGSEV triggers. Fixes: 4296ee07455e ("vfio/iommufd: reconstruct device") Signed-off-by: Zhenzhong Duan Reviewed-by: Steve Sistare Link: https://lore.kernel.org/qemu-devel/20250928085432.40107-5-zhenzhong.d= uan@intel.com Signed-off-by: C=C3=A9dric Le Goater --- hw/vfio/iommufd.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c index 63a16d4dc1795d359ff298bcddda292d1e03028e..24a99efa87f4df268d0df7198f2= 6bba37976874b 100644 --- a/hw/vfio/iommufd.c +++ b/hw/vfio/iommufd.c @@ -560,10 +560,9 @@ static bool iommufd_cdev_attach(const char *name, VFIO= Device *vbasedev, continue; } =20 - if (!cpr_is_incoming()) { + if (!cpr_is_incoming() || + (vbasedev->cpr.ioas_id =3D=3D container->ioas_id)) { res =3D iommufd_cdev_attach_container(vbasedev, container, &er= r); - } else if (vbasedev->cpr.ioas_id =3D=3D container->ioas_id) { - res =3D true; } else { continue; } --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135699; cv=none; d=zohomail.com; s=zohoarc; b=Eo+ExggQeLKAnt+1QClmy40aq0AXtcw47TR88ak5jn7+92iczkj7B89CVns71KFyovftIk3QjdCVLXWlkd8siSadznpPJ2ctppcl8UmjqUE/xcUEl4ensZzKirj6jVupvtiB8h/eWPqxkEWirxtvE3LGGh1zB80MznkxSgS6LNI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135699; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=A5Ad/N+nePZpXSyZ1Bg+sV63303rHbg2A64+yZ90JzY=; b=JDxIKQOtohHdxnAkf3b0ObnhbBoKlmgW4o7UsGIYF679ugi2taO4G4iABKFpxhhgB0/3JqAUzd3sAzMjAK84GH2WjXA+CeMg6zS6J6FcJc+cpIP4tQc6dufq1os0U4YZB3x3zuMeV7+j/orcv05JP8zlEDYTJ1Hwn2IXasZuTsE= 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 1761135699368658.3532194210529; Wed, 22 Oct 2025 05:21:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXo8-000112-5V; Wed, 22 Oct 2025 08:19:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXo5-00010P-RL for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:09 -0400 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 1vBXo4-00072P-0U for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:09 -0400 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-208-OnecN58qMZOwA-7dlW0rjQ-1; Wed, 22 Oct 2025 08:19:04 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id CBCD8180899E; Wed, 22 Oct 2025 12:19:03 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 89AE1180044F; Wed, 22 Oct 2025 12:19:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135546; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A5Ad/N+nePZpXSyZ1Bg+sV63303rHbg2A64+yZ90JzY=; b=adkJtzeZXAjVaC/Gj0tKOCcjXnfzY3VcbmLWgQcl2c+3+WsCM/fEhCj6h6fwGPXjZICyia 5H9WHkGxT8xyiyjgasML3yTkSd95a+Sw5KBy/qyfAGnxKhtTeJnqi6W8YaN6k5hC7KQ/rl 7gW5viBzH0t5axPaVGbdLuvhjCJY6P8= X-MC-Unique: OnecN58qMZOwA-7dlW0rjQ-1 X-Mimecast-MFC-AGG-ID: OnecN58qMZOwA-7dlW0rjQ_1761135543 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , Zhenzhong Duan , Markus Armbruster , Steve Sistare , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 05/12] accel/kvm: Fix an erroneous check on coalesced_mmio_ring Date: Wed, 22 Oct 2025 14:18:39 +0200 Message-ID: <20251022121846.874152-6-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135700654154100 From: Zhenzhong Duan According to KVM uAPI, coalesced mmio page is KVM_COALESCED_MMIO_PAGE_OFFSET offset from kvm_run pages. For x86 it's 2 pages offset, for arm it's 1 page offset currently. We shouldn't presume it's hardcoded 1 page or else coalesced_mmio_ring will not be cleared in do_kvm_destroy_vcpu() in x86. Fixes: 7ed0919119b0 ("migration: close kvm after cpr") Cc: Markus Armbruster Signed-off-by: Zhenzhong Duan Reviewed-by: Steve Sistare Link: https://lore.kernel.org/qemu-devel/20250928085432.40107-6-zhenzhong.d= uan@intel.com Signed-off-by: C=C3=A9dric Le Goater --- accel/kvm/kvm-all.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 56031925c4e9e6d46fb0e026e7b8dede2dabc7d2..f9254ae6546671e4569c190a098= 447becbdac0e0 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -525,7 +525,8 @@ static int do_kvm_destroy_vcpu(CPUState *cpu) } =20 /* If I am the CPU that created coalesced_mmio_ring, then discard it */ - if (s->coalesced_mmio_ring =3D=3D (void *)cpu->kvm_run + PAGE_SIZE) { + if (s->coalesced_mmio_ring =3D=3D + (void *)cpu->kvm_run + s->coalesced_mmio * PAGE_SIZE) { s->coalesced_mmio_ring =3D NULL; } =20 --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135582; cv=none; d=zohomail.com; s=zohoarc; b=bQCa9T0ahBzZ07QnO3wD9V/35GFW4/krmDtfspVnTZNGNDoAf2ywMUf1Pm1h+/AFyrG3lB2F6u3IvheHA96dWRy/DHalBEOA82RSBPlNld0Wt0QcCaAivntLqN5jNOERH8tR6x/qm818jTPRlJB7O59W0nczVQfksjjd1eAeEvk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135582; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KkuOgutKsnzyz6zzREuIi83VHqQxaO3yShxiifas0sI=; b=TDvRe8Jo8G7oE/UApeZWx2cy4mFQznmiYcU9gBz31skYKBrMyuh5Hhjg+JJLj9Fo8wJQVJSRzXg6exnQg4zWL44iAktBEzI/cymO5XlwnI+xDuYPQlyFfpnqYhwfHOXB22g9m+vFwh/D/FE8n61DEpLrdRvadIvkjS32IsMR8O4= 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 1761135582394874.5565468266594; Wed, 22 Oct 2025 05:19:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXoC-000122-Lr; Wed, 22 Oct 2025 08:19:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoA-00011O-Ce for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:14 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXo8-00072v-A8 for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:14 -0400 Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-299-MChlWZTgMPWKR6rUC3qOWQ-1; Wed, 22 Oct 2025 08:19:07 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9DDAC1956094; Wed, 22 Oct 2025 12:19:06 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 56CD81800452; Wed, 22 Oct 2025 12:19:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KkuOgutKsnzyz6zzREuIi83VHqQxaO3yShxiifas0sI=; b=hRli+5M4zc3A4h6cs12K9MG49Sqm+yY2OcdmnuQjk2E4lDc1LpUp5aWZfFlLTAYsdssLwo /mlp63vKOlXuWHzmF7ZKrJmL51I9iT9Tg5mYMqE1U4Atx6RMFxaS0+qG0NGZI/oGB4fUX0 X6S/Nvr72po59Kiz36Bv70LtPik4HSU= X-MC-Unique: MChlWZTgMPWKR6rUC3qOWQ-1 X-Mimecast-MFC-AGG-ID: MChlWZTgMPWKR6rUC3qOWQ_1761135546 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , Zhenzhong Duan , John Levon , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 06/12] vfio/container: Support unmap all in one ioctl() Date: Wed, 22 Oct 2025 14:18:40 +0200 Message-ID: <20251022121846.874152-7-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135590115158500 From: Zhenzhong Duan VFIO type1 kernel uAPI supports unmapping whole address space in one call since commit c19650995374 ("vfio/type1: implement unmap all"). Use the unmap_all variant whenever it's supported in kernel. Opportunistically pass VFIOLegacyContainer pointer in low level function vfio_legacy_dma_unmap_one(). Co-developed-by: John Levon Signed-off-by: John Levon Signed-off-by: Zhenzhong Duan Reviewed-by: C=C3=A9dric Le Goater Link: https://lore.kernel.org/qemu-devel/20251009040134.334251-2-zhenzhong.= duan@intel.com Signed-off-by: C=C3=A9dric Le Goater --- include/hw/vfio/vfio-container-legacy.h | 1 + hw/vfio/container-legacy.c | 38 ++++++++++++++----------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/include/hw/vfio/vfio-container-legacy.h b/include/hw/vfio/vfio= -container-legacy.h index 74a72df018b50490b95d80044a31247ba7c9fc3b..ffd594e80d64ee11ebc48940bc4= 81b9aafc127d4 100644 --- a/include/hw/vfio/vfio-container-legacy.h +++ b/include/hw/vfio/vfio-container-legacy.h @@ -30,6 +30,7 @@ struct VFIOLegacyContainer { =20 int fd; /* /dev/vfio/vfio, empowered by the attached groups */ unsigned iommu_type; + bool unmap_all_supported; QLIST_HEAD(, VFIOGroup) group_list; VFIOContainerCPR cpr; }; diff --git a/hw/vfio/container-legacy.c b/hw/vfio/container-legacy.c index a3615d7b5dba8fce2f633e986036241e3cfd935d..8e9639603e08b2e1b13f1cd2ca5= 1cc3e48913135 100644 --- a/hw/vfio/container-legacy.c +++ b/hw/vfio/container-legacy.c @@ -121,14 +121,14 @@ unmap_exit: return ret; } =20 -static int vfio_legacy_dma_unmap_one(const VFIOContainer *bcontainer, +static int vfio_legacy_dma_unmap_one(const VFIOLegacyContainer *container, hwaddr iova, uint64_t size, - IOMMUTLBEntry *iotlb) + uint32_t flags, IOMMUTLBEntry *iotlb) { - const VFIOLegacyContainer *container =3D VFIO_IOMMU_LEGACY(bcontainer); + const VFIOContainer *bcontainer =3D VFIO_IOMMU(container); struct vfio_iommu_type1_dma_unmap unmap =3D { .argsz =3D sizeof(unmap), - .flags =3D 0, + .flags =3D flags, .iova =3D iova, .size =3D size, }; @@ -170,25 +170,28 @@ static int vfio_legacy_dma_unmap(const VFIOContainer = *bcontainer, hwaddr iova, uint64_t size, IOMMUTLBEntry *iotlb, bool unmap_all) { + const VFIOLegacyContainer *container =3D VFIO_IOMMU_LEGACY(bcontainer); + uint32_t flags =3D 0; int ret; =20 if (unmap_all) { - /* The unmap ioctl doesn't accept a full 64-bit span. */ - Int128 llsize =3D int128_rshift(int128_2_64(), 1); - - ret =3D vfio_legacy_dma_unmap_one(bcontainer, 0, int128_get64(llsi= ze), - iotlb); + if (container->unmap_all_supported) { + flags =3D VFIO_DMA_UNMAP_FLAG_ALL; + } else { + /* The unmap ioctl doesn't accept a full 64-bit span. */ + Int128 llsize =3D int128_rshift(int128_2_64(), 1); + size =3D int128_get64(llsize); + + ret =3D vfio_legacy_dma_unmap_one(container, 0, size, flags, i= otlb); + if (ret) { + return ret; + } =20 - if (ret =3D=3D 0) { - ret =3D vfio_legacy_dma_unmap_one(bcontainer, int128_get64(lls= ize), - int128_get64(llsize), iotlb); + iova =3D size; } - - } else { - ret =3D vfio_legacy_dma_unmap_one(bcontainer, iova, size, iotlb); } =20 - return ret; + return vfio_legacy_dma_unmap_one(container, iova, size, flags, iotlb); } =20 static int vfio_legacy_dma_map(const VFIOContainer *bcontainer, hwaddr iov= a, @@ -519,6 +522,9 @@ static bool vfio_legacy_setup(VFIOContainer *bcontainer= , Error **errp) =20 vfio_get_info_iova_range(info, bcontainer); =20 + ret =3D ioctl(container->fd, VFIO_CHECK_EXTENSION, VFIO_UNMAP_ALL); + container->unmap_all_supported =3D !!ret; + vfio_get_iommu_info_migration(container, info); return true; } --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135695; cv=none; d=zohomail.com; s=zohoarc; b=ZVTfE/4r0nLSO+EG5Eg2/pTeMAdiq9b5opHif6iqv8Tz+z33vfh/JwdBDD9n5b/ORojDx/u7cLQNy1SDdB0qPHY/YKiW6jgtrw3GO2k4CusmC8rFJBKqmgPjg3lHsxer+p2tQUZVKEL7C2k+a8lUguaN58HZekyYGWr6LOou0s0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135695; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=nYk2A4wVmkBhIJRz+4s4bB8w/6H5fxKaUobwydL0CgU=; b=aYMlDGaCO9juEKEwDLS7NgG6NPlCn9ZMQAuddHD9u2FAMYw5UmfYkpu7JShVAr8/W6msVD8qdGfWJtjRaj65HWUQr7mIQKAfQvj3UcGx9bVLcx9ZeV/YkWY3/G8fZc3wvwjo9YtoIYusjM9cZovHO1h9bCNH5/eXEPFkEyM7bcs= 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 1761135695189189.14281339995182; Wed, 22 Oct 2025 05:21:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXoD-00012A-Jk; Wed, 22 Oct 2025 08:19:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoC-00011e-0F for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:16 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXo9-000737-Uy for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:15 -0400 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-571-xsQ_4BYwN_ypD3DGopRlUQ-1; Wed, 22 Oct 2025 08:19:09 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 041F41800637; Wed, 22 Oct 2025 12:19:09 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 417C11800451; Wed, 22 Oct 2025 12:19:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135553; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nYk2A4wVmkBhIJRz+4s4bB8w/6H5fxKaUobwydL0CgU=; b=DHbVhc6R/vVZctxeliqsw+hcHdGxldO2D4gyyj1/WnjvL0DlYlc+VFM0f6MwyIL8pSxltT 0X9s1OWyKhanYmLpu45RoRUx/wNTo/eAisWs28598NuKIHmcFKwVOESqhcUak5/yeAXy0I tFKYQzti0p4thF7cPX68iFrmqObUc90= X-MC-Unique: xsQ_4BYwN_ypD3DGopRlUQ-1 X-Mimecast-MFC-AGG-ID: xsQ_4BYwN_ypD3DGopRlUQ_1761135549 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , Zhenzhong Duan , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 07/12] vfio/iommufd: Support unmap all in one ioctl() Date: Wed, 22 Oct 2025 14:18:41 +0200 Message-ID: <20251022121846.874152-8-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135698018158500 From: Zhenzhong Duan IOMMUFD kernel uAPI supports unmapping whole address space in one call with [iova, size] set to [0, UINT64_MAX], this can simplify iommufd_cdev_unmap() a bit. See iommufd_ioas_unmap() in kernel for details. Signed-off-by: Zhenzhong Duan Reviewed-by: C=C3=A9dric Le Goater Link: https://lore.kernel.org/qemu-devel/20251009040134.334251-3-zhenzhong.= duan@intel.com Signed-off-by: C=C3=A9dric Le Goater --- hw/vfio/iommufd.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c index 24a99efa87f4df268d0df7198f26bba37976874b..fc9cd9d22ff2d6f126d3c0964d7= 033eee33ed9f2 100644 --- a/hw/vfio/iommufd.c +++ b/hw/vfio/iommufd.c @@ -62,21 +62,8 @@ static int iommufd_cdev_unmap(const VFIOContainer *bcont= ainer, { const VFIOIOMMUFDContainer *container =3D VFIO_IOMMU_IOMMUFD(bcontaine= r); =20 - /* unmap in halves */ if (unmap_all) { - Int128 llsize =3D int128_rshift(int128_2_64(), 1); - int ret; - - ret =3D iommufd_backend_unmap_dma(container->be, container->ioas_i= d, - 0, int128_get64(llsize)); - - if (ret =3D=3D 0) { - ret =3D iommufd_backend_unmap_dma(container->be, container->io= as_id, - int128_get64(llsize), - int128_get64(llsize)); - } - - return ret; + size =3D UINT64_MAX; } =20 /* TODO: Handle dma_unmap_bitmap with iotlb args (migration) */ --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135574; cv=none; d=zohomail.com; s=zohoarc; b=VfC9kw6lIDgeIo0g/rp2Qk+oKae6VBe57upzgSFeRiGfwtNebtziU6tpxDhz1XzqCFqGeUL5jwQvghRhaS87fC7rUI6tjgTwfVpYtD3o1XMcAkvSi8V6uN6qCwjpUW2b+HRnFYdIY+/0Ia1kgJ6ycOKAd8enlvpHAVQ/1kMiBJo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135574; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dIgk14H79IoHwc8VkRMemli5WpxFeVxv6tNapfdMzPA=; b=RAvOYqPPAAlTyMKt36Ru3kJT4191mAJ7IbDSxlHcj88qJIrKxBtAzqxvd7URtfQXHwT3jVwD5DfH4qoemfJ3Jv4DpAprYo7A0zCDAKTR3w6XbBepkuBj/CiLPoO5nhWyAhEeHhWRNz1zlY2ogsr7TEXeVZy2rkwczhRblSx4Oz0= 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 1761135574264942.6769952146701; Wed, 22 Oct 2025 05:19:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXoG-000137-CM; Wed, 22 Oct 2025 08:19:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoE-00012O-9k for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:18 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoC-00073N-Et for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:18 -0400 Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-439-JFRAwkF6MiKjKacdLzt7sQ-1; Wed, 22 Oct 2025 08:19:12 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 32FDE1956089; Wed, 22 Oct 2025 12:19:11 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 82C5A180044F; Wed, 22 Oct 2025 12:19:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dIgk14H79IoHwc8VkRMemli5WpxFeVxv6tNapfdMzPA=; b=Syi8RsX+tlM6dMl+SKwKOoUKq7kCnQKpP0NCPAsNJwfMqZIynXZgqSTyB5B1r4uNlZrEg6 4RUGU1UU8+fioBGGS8L+FQdQ+lXgsB5sG11wTQCeKkraKhopM/ub9lRPy93GQwFAHMGLB3 ccmZeXyXag7hfz4QFj9f75NwRTX9Ymk= X-MC-Unique: JFRAwkF6MiKjKacdLzt7sQ-1 X-Mimecast-MFC-AGG-ID: JFRAwkF6MiKjKacdLzt7sQ_1761135551 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , Zhenzhong Duan , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 08/12] vfio/listener: Add an assertion for unmap_all Date: Wed, 22 Oct 2025 14:18:42 +0200 Message-ID: <20251022121846.874152-9-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135580119158500 From: Zhenzhong Duan Currently the maximum of iommu address space is 64bit. So when a maximum iommu memory section is deleted, it's in scope [0, 2^64). Add a assertion for that. Suggested-by: C=C3=A9dric Le Goater Signed-off-by: Zhenzhong Duan Reviewed-by: C=C3=A9dric Le Goater Link: https://lore.kernel.org/qemu-devel/20251009040134.334251-4-zhenzhong.= duan@intel.com Signed-off-by: C=C3=A9dric Le Goater --- hw/vfio/listener.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/vfio/listener.c b/hw/vfio/listener.c index 1b6e5065a3267ab08d2d3fea3c5b4965a80947e8..2d7d3a464577ee258fac869e508= e1b79aef2b53e 100644 --- a/hw/vfio/listener.c +++ b/hw/vfio/listener.c @@ -715,6 +715,7 @@ static void vfio_listener_region_del(MemoryListener *li= stener, bool unmap_all =3D false; =20 if (int128_eq(llsize, int128_2_64())) { + assert(!iova); unmap_all =3D true; llsize =3D int128_zero(); } --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135622; cv=none; d=zohomail.com; s=zohoarc; b=GiAWrP8hyaNx7QDymp8FqfAH1ZIAnmt/zxK+dT5fy1vxQ69QlWoMlvoxSqNvOL0RR62MJ+cXvn6cSNbJXqaGtWL7O9ydiiimxLpg3eU8ouOhLv2q95DJ2v57zEszzA8Rr7ynjBurclzHuK0Ygh0dkIfHS476KXyFZ+vwMjiOatg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135622; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UGJem6LAZsTDVDqrozo2wgi49k6GWNPrOC56h01KjKg=; b=dgpXmZyiymhx1fWI8R/kpGbt6TOUGqoggm5Ob6JhnaUGalV9HzkSAcqYFXurQ29Hife4mnYqmI7WDYs2tIA2S00bk7+DJwESi4FQJ6PWlbw2si2m/GVzmfHPlIQyl7WJt77bzl1Gz98mzWYAtL4JoDG0Dn4+yiwta5BLZ4f7i5M= 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 1761135622596457.5578068844742; Wed, 22 Oct 2025 05:20:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXoH-00013e-2I; Wed, 22 Oct 2025 08:19:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoF-00012u-Pd for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:19 -0400 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 1vBXoD-00073W-UT for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:19 -0400 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-94-FN9xbUiHP1G8fFLJtlxOeg-1; Wed, 22 Oct 2025 08:19:14 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id A511B1800654; Wed, 22 Oct 2025 12:19:13 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id B2CA11800452; Wed, 22 Oct 2025 12:19:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UGJem6LAZsTDVDqrozo2wgi49k6GWNPrOC56h01KjKg=; b=QUGw05b4q6SJp2qXPKB/f77dDouusIvxEuGXPHDxQjZBq2X7pQnwx4vyRTAuAbN8R7nOXN /PcB4bZxCotAjO3KB1QrfD3LkYg/sjfkPkffCgOupskQMRDMtgIBGjabx6x4HCXqfALOK1 86K0A3JvsF1VF28bhpGUmrG+jX83wtU= X-MC-Unique: FN9xbUiHP1G8fFLJtlxOeg-1 X-Mimecast-MFC-AGG-ID: FN9xbUiHP1G8fFLJtlxOeg_1761135553 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , John Levon , Peter Maydell , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 09/12] docs/system/devices/vfio-user: fix formatting Date: Wed, 22 Oct 2025 14:18:43 +0200 Message-ID: <20251022121846.874152-10-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135636608158500 From: John Levon The example QEMU argument was not rendering properly, as it was not indented. Signed-off-by: John Levon Fixes: c688cc165b ("docs: add vfio-user documentation") Reviewed-by: Peter Maydell Link: https://lore.kernel.org/qemu-devel/20251009140206.386249-1-john.levon= @nutanix.com Reviewed-by: C=C3=A9dric Le Goater Signed-off-by: C=C3=A9dric Le Goater --- docs/system/devices/vfio-user.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/system/devices/vfio-user.rst b/docs/system/devices/vfio-u= ser.rst index 30c2215f4ea5ad69c751bac4353ecaea7070b4f7..e10a6d0822993fc7565122d3dc6= 379853c541b16 100644 --- a/docs/system/devices/vfio-user.rst +++ b/docs/system/devices/vfio-user.rst @@ -20,7 +20,7 @@ Presuming a suitable ``vfio-user`` server has opened a so= cket at =20 .. code-block:: console =20 --device '{"driver": "vfio-user-pci","socket": {"path": "/tmp/vfio-user.soc= k", "type": "unix"}}' + --device '{"driver": "vfio-user-pci","socket": {"path": "/tmp/vfio-user.= sock", "type": "unix"}}' =20 See `libvfio-user `_ for further information. --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135648; cv=none; d=zohomail.com; s=zohoarc; b=Gr6fuD13SiEryFOPNX1CMj56dbSPyUBafK+bkvw6+NQTBxTddLwucxEW1YztcTp5XSFQ5ca7BJHHUga6ub3G09OHNUnYRUMYd0msM6O6S/+gAeFEZepbDmh8eeT8+oJXwlkWNGQEhkxtyg7ACUEYBc6sT6kDq19NoFi73d1go+I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135648; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QWm9Ac1hZbOd1SmioRNmWIpwDBbhUPJYXdQRIX2CAds=; b=ZuoVRsgkAYMjjVm6RFVsU4HC6cwlQgu+dyF3PCdv9cWtHW9oOkvWgnduZXIPJzfEwC0Yf0P8f3f3BSZOrepeXoiWJhE1fxHDLDCiNVDwVS/U7oQCUzJpGyukuJTQgYZkLcxG/jyi30XcMb1e+me46/1QKM1fQxAmOr098oKufOQ= 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 1761135648587571.5897671575124; Wed, 22 Oct 2025 05:20:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXoQ-00015F-2p; Wed, 22 Oct 2025 08:19:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoN-00014N-OR for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:27 -0400 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 1vBXoL-000742-Ol for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:27 -0400 Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-438-D94rtUsPOgilocRVeBATQQ-1; Wed, 22 Oct 2025 08:19:17 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 783CC195608E; Wed, 22 Oct 2025 12:19:16 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 30672180044F; Wed, 22 Oct 2025 12:19:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135564; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QWm9Ac1hZbOd1SmioRNmWIpwDBbhUPJYXdQRIX2CAds=; b=KwV2/CII6MeuEWPVl/Uf978PoNvGxUf6h6SPhn2mC/S3hdu9VTVlV9DHZaE3UOKgYYbhrw zmeyyBS2rARfcMBYUy/NBYdFQNYi7o81lc/N4cIqmsD36UIKnAy+bD3fxERGDfd2JTzQge UTY/z+bmXEE1r3EmPEAvH+GVkUhRaR0= X-MC-Unique: D94rtUsPOgilocRVeBATQQ-1 X-Mimecast-MFC-AGG-ID: D94rtUsPOgilocRVeBATQQ_1761135556 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 10/12] MAINTAINERS: Update Alex Williamson's email address Date: Wed, 22 Oct 2025 14:18:44 +0200 Message-ID: <20251022121846.874152-11-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135650265154100 From: Alex Williamson Switch to a personal email account as I'll be leaving Red Hat soon. Signed-off-by: Alex Williamson Signed-off-by: Alex Williamson Reviewed-by: C=C3=A9dric Le Goater Link: https://lore.kernel.org/qemu-devel/20251013153543.3091169-1-alex.will= iamson@redhat.com Signed-off-by: C=C3=A9dric Le Goater --- MAINTAINERS | 4 ++-- .mailmap | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 667acd933c7fef6d44796ed97e7f0c0bdf8e96fc..7a0809d82a365dc812b94ce363a= 7f0bb0d57cafa 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2285,7 +2285,7 @@ S: Maintained F: hw/usb/dev-serial.c =20 VFIO -M: Alex Williamson +M: Alex Williamson M: C=C3=A9dric Le Goater S: Supported F: hw/vfio/* @@ -2297,7 +2297,7 @@ F: migration/vfio-stub.c F: tests/functional/aarch64/test_device_passthrough.py =20 vfio-igd -M: Alex Williamson +M: Alex Williamson M: C=C3=A9dric Le Goater M: Tomita Moeko S: Supported diff --git a/.mailmap b/.mailmap index 15bec72470ead7cd953a15ef3a475ff93ae7b365..7f817d9f425c032be7988961fae= b159ae6955b04 100644 --- a/.mailmap +++ b/.mailmap @@ -74,6 +74,7 @@ Aleksandar Markovic Aleksandar Rikalo Aleksandar Rikalo +Alex Williamson Alexander Graf Ani Sinha Anthony Liguori Anthony Liguori --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135650; cv=none; d=zohomail.com; s=zohoarc; b=O7F6nzCS9kdCvU6wkc4steJT1cXM8PihPW5bBRXfVnlRyK7NFjnfZ+k4I3bVosXtN73tPG+0jMved/monECZJb5JmR2Xi+Ljz0BjiSxpIPSwn5YQ3VUExfhzq6lSZjxdl6k5PV8rl/I3V8GHe2b7CtgXAC5DREqXVbrfDNzKkHk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135650; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=drGGtVaxobxu4HvmHz2FmYJQ+I8x7J88yoMWzXLYGJM=; b=El2GsCfxLfYvbIy79gFE5WBw279KwnapXFQ4UE3mZHpAtyi8mPARxdH5micIQw1sJT7lA8L/EoR9rKiEj2GUinbeNnzjgOALiGxhmVZ96+ZAfIEF1o7ld1k3qbtNCtMxgqx0Kv7oU93MB9Sqad3zdeF7FsIQWmveLe7v7a6SOFQ= 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 1761135650296593.1451069295573; Wed, 22 Oct 2025 05:20:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXoO-00014W-8t; Wed, 22 Oct 2025 08:19:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoM-00013y-AQ for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:26 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoK-00073w-80 for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:26 -0400 Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-427-YL8Z_JnWM6eFT6gwywx-oA-1; Wed, 22 Oct 2025 08:19:20 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 303C31956070; Wed, 22 Oct 2025 12:19:19 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 041511800452; Wed, 22 Oct 2025 12:19:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=drGGtVaxobxu4HvmHz2FmYJQ+I8x7J88yoMWzXLYGJM=; b=WutfQYTZUujep1uGtUgUorZqYyQ/Hdi9enF4TV0QL65j34bKYfXnASa1R/W6LtbX9jh/cQ SEWslO+X2yJB9W+Vd5o/YxnVz/to/H/BmABdXq2iJJleEj8bvRqd0WtwPz8y2veySsg6Rg Z5kSIpobXuX1h++rv8fEaPcqH6vA8QQ= X-MC-Unique: YL8Z_JnWM6eFT6gwywx-oA-1 X-Mimecast-MFC-AGG-ID: YL8Z_JnWM6eFT6gwywx-oA_1761135559 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , John Levon , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Alex Williamson Subject: [PULL 11/12] vfio: rename field to "num_initial_regions" Date: Wed, 22 Oct 2025 14:18:45 +0200 Message-ID: <20251022121846.874152-12-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135659141158501 From: John Levon We set VFIODevice::num_regions at initialization time, and do not otherwise refresh it. As it is valid in theory for a VFIO device to later increase the number of supported regions, rename the field to "num_initial_regions" to better reflect its semantics. Signed-off-by: John Levon Reviewed-by: C=C3=A9dric Le Goater Reviewed-by: Alex Williamson Link: https://lore.kernel.org/qemu-devel/20251014151227.2298892-2-john.levo= n@nutanix.com Signed-off-by: C=C3=A9dric Le Goater --- include/hw/vfio/vfio-device.h | 2 +- hw/vfio-user/device.c | 2 +- hw/vfio/ccw.c | 4 ++-- hw/vfio/device.c | 12 ++++++------ hw/vfio/iommufd.c | 3 ++- hw/vfio/pci.c | 4 ++-- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/include/hw/vfio/vfio-device.h b/include/hw/vfio/vfio-device.h index 7e9aed6d3cd424d718919a0b236d8acf1bc0deaf..0fe6c60ba2d65b0ef5de5ef0c75= c43cfa8e89352 100644 --- a/include/hw/vfio/vfio-device.h +++ b/include/hw/vfio/vfio-device.h @@ -74,7 +74,7 @@ typedef struct VFIODevice { VFIODeviceOps *ops; VFIODeviceIOOps *io_ops; unsigned int num_irqs; - unsigned int num_regions; + unsigned int num_initial_regions; unsigned int flags; VFIOMigration *migration; Error *migration_blocker; diff --git a/hw/vfio-user/device.c b/hw/vfio-user/device.c index 0609a7dc25428c1e7efed1e7a4e85de91aace2d4..64ef35b3209429f7158d4ea79f0= 95a5f16950d77 100644 --- a/hw/vfio-user/device.c +++ b/hw/vfio-user/device.c @@ -134,7 +134,7 @@ static int vfio_user_device_io_get_region_info(VFIODevi= ce *vbasedev, VFIOUserFDs fds =3D { 0, 1, fd}; int ret; =20 - if (info->index > vbasedev->num_regions) { + if (info->index > vbasedev->num_initial_regions) { return -EINVAL; } =20 diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c index 9560b8d851b6b25e647476c51efe845ebff10410..4d9588e7aa1c0868fc2530d7e29= 7676834d85259 100644 --- a/hw/vfio/ccw.c +++ b/hw/vfio/ccw.c @@ -484,9 +484,9 @@ static bool vfio_ccw_get_region(VFIOCCWDevice *vcdev, E= rror **errp) * We always expect at least the I/O region to be present. We also * may have a variable number of regions governed by capabilities. */ - if (vdev->num_regions < VFIO_CCW_CONFIG_REGION_INDEX + 1) { + if (vdev->num_initial_regions < VFIO_CCW_CONFIG_REGION_INDEX + 1) { error_setg(errp, "vfio: too few regions (%u), expected at least %u= ", - vdev->num_regions, VFIO_CCW_CONFIG_REGION_INDEX + 1); + vdev->num_initial_regions, VFIO_CCW_CONFIG_REGION_INDEX= + 1); return false; } =20 diff --git a/hw/vfio/device.c b/hw/vfio/device.c index 64f87503894791850b059b225762fd45d85ee16c..52079f4cf5bda7c1d9e6e3791a6= c340a0e3f57ba 100644 --- a/hw/vfio/device.c +++ b/hw/vfio/device.c @@ -257,7 +257,7 @@ int vfio_device_get_region_info_type(VFIODevice *vbased= ev, uint32_t type, { int i; =20 - for (i =3D 0; i < vbasedev->num_regions; i++) { + for (i =3D 0; i < vbasedev->num_initial_regions; i++) { struct vfio_info_cap_header *hdr; struct vfio_region_info_cap_type *cap_type; =20 @@ -466,7 +466,7 @@ void vfio_device_prepare(VFIODevice *vbasedev, VFIOCont= ainer *bcontainer, int i; =20 vbasedev->num_irqs =3D info->num_irqs; - vbasedev->num_regions =3D info->num_regions; + vbasedev->num_initial_regions =3D info->num_regions; vbasedev->flags =3D info->flags; vbasedev->reset_works =3D !!(info->flags & VFIO_DEVICE_FLAGS_RESET); =20 @@ -476,10 +476,10 @@ void vfio_device_prepare(VFIODevice *vbasedev, VFIOCo= ntainer *bcontainer, QLIST_INSERT_HEAD(&vfio_device_list, vbasedev, global_next); =20 vbasedev->reginfo =3D g_new0(struct vfio_region_info *, - vbasedev->num_regions); + vbasedev->num_initial_regions); if (vbasedev->use_region_fds) { - vbasedev->region_fds =3D g_new0(int, vbasedev->num_regions); - for (i =3D 0; i < vbasedev->num_regions; i++) { + vbasedev->region_fds =3D g_new0(int, vbasedev->num_initial_regions= ); + for (i =3D 0; i < vbasedev->num_initial_regions; i++) { vbasedev->region_fds[i] =3D -1; } } @@ -489,7 +489,7 @@ void vfio_device_unprepare(VFIODevice *vbasedev) { int i; =20 - for (i =3D 0; i < vbasedev->num_regions; i++) { + for (i =3D 0; i < vbasedev->num_initial_regions; i++) { g_free(vbasedev->reginfo[i]); if (vbasedev->region_fds !=3D NULL && vbasedev->region_fds[i] !=3D= -1) { close(vbasedev->region_fds[i]); diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c index fc9cd9d22ff2d6f126d3c0964d7033eee33ed9f2..bb5775aa711a668b7927865d19c= 3a27499ef49c8 100644 --- a/hw/vfio/iommufd.c +++ b/hw/vfio/iommufd.c @@ -650,7 +650,8 @@ found_container: vfio_iommufd_cpr_register_device(vbasedev); =20 trace_iommufd_cdev_device_info(vbasedev->name, devfd, vbasedev->num_ir= qs, - vbasedev->num_regions, vbasedev->flags); + vbasedev->num_initial_regions, + vbasedev->flags); return true; =20 err_listener_register: diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 06b06afc2b43d34d3a78ab874e3735eef91f529f..8b8bc5a42186d617ccfcc2307f6= 2e19b53f46d50 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -2975,9 +2975,9 @@ bool vfio_pci_populate_device(VFIOPCIDevice *vdev, Er= ror **errp) return false; } =20 - if (vbasedev->num_regions < VFIO_PCI_CONFIG_REGION_INDEX + 1) { + if (vbasedev->num_initial_regions < VFIO_PCI_CONFIG_REGION_INDEX + 1) { error_setg(errp, "unexpected number of io regions %u", - vbasedev->num_regions); + vbasedev->num_initial_regions); return false; } =20 --=20 2.51.0 From nobody Fri Nov 14 18:19:10 2025 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=1761135708; cv=none; d=zohomail.com; s=zohoarc; b=c+PjrYDyt24nO6royAfJoDJxF/lSHQBhYsmS9AHhs7Ko7emCCdnxXCZl6zfjuu1DzQLpo/HwDIo+e2pk3mcLdVp+9jpSfWn7yuK7+kyrkY1ultOvAFvy5b78QyfAliNGbVr7VJnalz98WjLXhYekhV5zK9bnGTFrOdwUi8TTrMo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761135708; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=D7kgzKTYZ8ou97BveS1sALexRkahzseuftgDs0yDqws=; b=GVKkuQn7Q7jX8asVm8OhWX7HfQ2Pu82PQlpEp1LbldfOqb/oF7sVVhopL7iSJMzA9FIShfU5WBI80zHnBAojVqbiKdg+Ux5o+I8k6SqT1WYI3qwPNMJ0EdAbwcuNakFow/k5GPI43GbyaYME51wUj4J3eHP1rl8MjdOIRJhTvVM= 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 176113570837223.019325574526874; Wed, 22 Oct 2025 05:21:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBXoQ-00015G-2K; Wed, 22 Oct 2025 08:19:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoO-00014n-Ne for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:28 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBXoM-00074F-Qe for qemu-devel@nongnu.org; Wed, 22 Oct 2025 08:19:28 -0400 Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-205-z7F5lkEpNC2wGwz9Ajqrgw-1; Wed, 22 Oct 2025 08:19:24 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E3030195606C; Wed, 22 Oct 2025 12:19:21 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.12]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id DC52E1800452; Wed, 22 Oct 2025 12:19:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761135565; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=D7kgzKTYZ8ou97BveS1sALexRkahzseuftgDs0yDqws=; b=Y2qETNp5bqClgDjqUHyZedK7joUG0uBCsVKQGCiP2Q4RbhYULWFw8M8DIXMEZaRrxxNrUy AkhXmDjVe133x/6dFI4LgqFq5Y4dThkCWKjEZYg2NKT4S0kM04U2b6ZZZh0TTwF7WBdtaM Vi+C0ncYtkAZjW3+UeNSa9AbDLdSD6U= X-MC-Unique: z7F5lkEpNC2wGwz9Ajqrgw-1 X-Mimecast-MFC-AGG-ID: z7F5lkEpNC2wGwz9Ajqrgw_1761135562 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-devel@nongnu.org Cc: Alex Williamson , John Levon , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Alex Williamson Subject: [PULL 12/12] vfio: only check region info cache for initial regions Date: Wed, 22 Oct 2025 14:18:46 +0200 Message-ID: <20251022121846.874152-13-clg@redhat.com> In-Reply-To: <20251022121846.874152-1-clg@redhat.com> References: <20251022121846.874152-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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=clg@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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1761135710872154100 From: John Levon It is semantically valid for a VFIO device to increase the number of regions after initialization. In this case, we'd attempt to check for cached region info past the size of the ->reginfo array. Check for the region index and skip the cache in these cases. This also works around some VGPU use cases which appear to be a bug, where VFIO_DEVICE_QUERY_GFX_PLANE returns a region index beyond the reported ->num_regions. Fixes: 95cdb024 ("vfio: add region info cache") Signed-off-by: John Levon Reviewed-by: C=C3=A9dric Le Goater Reviewed-by: Alex Williamson Link: https://lore.kernel.org/qemu-devel/20251014151227.2298892-3-john.levo= n@nutanix.com Signed-off-by: C=C3=A9dric Le Goater --- hw/vfio/device.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/hw/vfio/device.c b/hw/vfio/device.c index 52079f4cf5bda7c1d9e6e3791a6c340a0e3f57ba..8b63e765acbacdccc5365d000e2= aa9bd49ae9701 100644 --- a/hw/vfio/device.c +++ b/hw/vfio/device.c @@ -205,10 +205,19 @@ int vfio_device_get_region_info(VFIODevice *vbasedev,= int index, int fd =3D -1; int ret; =20 - /* check cache */ - if (vbasedev->reginfo[index] !=3D NULL) { - *info =3D vbasedev->reginfo[index]; - return 0; + /* + * We only set up the region info cache for the initial number of regi= ons. + * + * Since a VFIO device may later increase the number of regions then u= se + * such regions with an index past ->num_initial_regions, don't attemp= t to + * use the info cache in those cases. + */ + if (index < vbasedev->num_initial_regions) { + /* check cache */ + if (vbasedev->reginfo[index] !=3D NULL) { + *info =3D vbasedev->reginfo[index]; + return 0; + } } =20 *info =3D g_malloc0(argsz); @@ -236,10 +245,12 @@ retry: goto retry; } =20 - /* fill cache */ - vbasedev->reginfo[index] =3D *info; - if (vbasedev->region_fds !=3D NULL) { - vbasedev->region_fds[index] =3D fd; + if (index < vbasedev->num_initial_regions) { + /* fill cache */ + vbasedev->reginfo[index] =3D *info; + if (vbasedev->region_fds !=3D NULL) { + vbasedev->region_fds[index] =3D fd; + } } =20 return 0; --=20 2.51.0