From nobody Fri Nov 14 18:19:15 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760440502; cv=none; d=zohomail.com; s=zohoarc; b=it1UsN5JTE92OfFRsORJmp+Jj7JXkDtaXGajGQpv93pv8ju3JlJ0IbVzIhu+FZ+sIMDVYU4EG68YqLTm2ypReRkmooIYnxeFVuDGBuxAkhv7dWa6vGNt5h9+NFggd7KVXCJNrFYWqQqtO0w4dmfQiquKLKZ7RsBUuENKTawFIKE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760440502; 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=j/kw8tYIwMBnzBLUietdBRI+PGY5gSak1QKmauHgZS8=; b=k1NtpqZ59DIi2/z+noPRC1FYnoJhKYKaAuX2AYxzUUr60pyrxwLzE4gJ7g54FuP8NhrcNCJShp00BhfnVTUvZSJxqrL37F9zRE0bUTq8nEGpGFw3uAVsoreI1v4Emw478gEUzFtXQ/+1QasZI0Qcg+/F0Y6+wHknyh5y8dZA8Uc= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760440502879315.2399463226243; Tue, 14 Oct 2025 04:15:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8cxZ-00081I-Si; Tue, 14 Oct 2025 07:12:53 -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 1v8cxS-0007vk-Qr for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:47 -0400 Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8cxO-00081u-AQ for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:46 -0400 Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-b5a8184144dso226890766b.1 for ; Tue, 14 Oct 2025 04:12:40 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b55d951ceb4sm1133750766b.72.2025.10.14.04.12.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 04:12:35 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 28D2A5F82B; Tue, 14 Oct 2025 12:12:35 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760440358; x=1761045158; 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=j/kw8tYIwMBnzBLUietdBRI+PGY5gSak1QKmauHgZS8=; b=Dlk3VAGB9dJq8iJSWVpniELaIWLMoS8Ab1dHeDP7Ml7bIGh01CtKeagMwdZo1cb6MM ElVjPIU1QYJEyTjDSzWwknQ5xWe9PDWhsOBhTzhefizQagiIVoxNE549T1kLn/zUL81M SvS4oiEyHpuV7BKg9QOXAKyJP/ip5TkF2OVEfM1g8YzaYkithnoWh3taKmcptJ7fiAeq X+OypvQFe73lFfOl2oW51X3Yi2h0zYxVIvAahCLwzUm/rlGJLWpseHzgmBDk0bZF6Rhm bG5hCIoPOJw7f1aQk5XU56SYnjKHV0HwOdQ6Y8BKrYG2rXH68j9NVBENCzD2uZYOvtbI f2eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760440358; x=1761045158; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=j/kw8tYIwMBnzBLUietdBRI+PGY5gSak1QKmauHgZS8=; b=Q54Zc7KxZxNPujxg5Z27StWVbC+pNw+5vtXvcq49lqmQSJpCEuhTmjBopZw3Ohai40 6+UUPCfyzB8yMOMyAlaWm5tTJkthP3eFhN+7KlZk6tw239S5CSyFIoOi+Fb+pmnUcZ7q E9ubU9q5syBpvKD61bpMtW+HPM7/2sm611WsSsUnS1CEO/okcoym5hK99qhpcFW4P67m khrLAFLlmhNVu5Pk9xuDLJvBvP6luvoDzui4MvfVFre6/wHGLN+XkS+HwaLyrWR3NRNS Wa+3vTBHYLWxxNwW+T8bAHwcxrULC2Msv0ROcEPN+smCKV/1icorFGEKVbuFIpGY8DnC P5ug== X-Gm-Message-State: AOJu0YzmZpdhIeX8MScLYOJEffS+I1OfLCRU8y18dXN0LNYsLsRPXBt+ +sCawXs7L1aSik9TMwmnGQn0K5v1lvOB9x4N8DcBB2pxxLOcsEvRXnQWHtDLas8I87k= X-Gm-Gg: ASbGncssRTomGShUhPEiHkIp9Mj+aj2pObeIc5ByKWKHKGAgS2Aier8JYF/qf2WIwTP SQehBhjuwmJp0hfAOAhizODgiDLET5/l8aIe5SmA/NAGKIzIlEgXHGPIzFTLXjU6eAlyLTV827L lfPaFT0zb1NTQdj8uQKdfFa9knDQiGeZOBgOihJ10nAn6BXqOzDpnI8ZWMhdDVQnExlxRlVxi9X kpvldI3NjisWzxR8YsEoPqJDpIWOxGgdsS6ZzwcJaKKfLF5peUg+iKq8goNuFbNm2sydfpEMMBj uAuMI56SHRu5c0veIy0twSQToLTRjShN+hDfSDxYMOHfNZFyFak6HPCjedUFkKfCbC2sGB0ZIK9 JsmyuwC6MNNJhepVC+i+QsK/qpod25fVXHy6cH/XMCAkyuA== X-Google-Smtp-Source: AGHT+IGmVtbq3KsPtESdOWmj6fQM0KKisYYnvk4u+b0iGptwk2279uwTHKTo7zmh6e3FNPabruOkbw== X-Received: by 2002:a17:907:868b:b0:b3e:babd:f257 with SMTP id a640c23a62f3a-b50aa49207amr2896780366b.10.1760440358209; Tue, 14 Oct 2025 04:12:38 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: David Hildenbrand , Paolo Bonzini , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Dmitry Osipenko , Markus Armbruster , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Peter Xu , "Michael S. Tsirkin" , Andrew Keesler , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PATCH 1/8] Support per-head resolutions with virtio-gpu Date: Tue, 14 Oct 2025 12:12:27 +0100 Message-ID: <20251014111234.3190346-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251014111234.3190346-1-alex.bennee@linaro.org> References: <20251014111234.3190346-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::631; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x631.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760440507829158500 From: Andrew Keesler In 454f4b0f, we started down the path of supporting separate configurations per display head (e.g., you have 2 heads - one with EDID name "AAA" and the other with EDID name "BBB"). In this change, we add resolution to this configuration surface (e.g., you have 2 heads - one with resolution 111x222 and the other with resolution 333x444). -display vnc=3Dlocalhost:0,id=3Daaa,display=3Dvga,head=3D0 \ -display vnc=3Dlocalhost:1,id=3Dbbb,display=3Dvga,head=3D1 \ -device '{"driver":"virtio-vga", "max_outputs":2, "id":"vga", "outputs":[ { "name":"AAA", "xres":111, "yres":222 }, { "name":"BBB", "xres":333, "yres":444 } ]}' Here is the behavior matrix of the current resolution configuration surface (xres/yres) with the new resolution configuration surface (outputs[i].xres/yres). Case: !(xres || yres) && !(outputs[i].has_xres && outputs[i].has_yres) Behavior: current behavior - outputs[0] enabled with default xres/yres Case: (xres || yres) && !(outputs[i].has_xres && outputs[i].has_yres) Behavior: current behavior - outputs[0] enabled with xres/yres Case: !(xres || yres) && (outputs[i].has_xres && outputs[i].has_yres) Behavior: new behavior - outputs[i] enabled with outputs[i].xres/yres Case: (xres || yres) && (outputs[i].has_xres && outputs[i].has_yres) Behavior: new behavior - outputs[i] enabled with outputs[i].xres/yres Signed-off-by: Andrew Keesler Reviewed-by: Daniel P. Berrang=C3=A9 Message-ID: <20250902141312.750525-2-ankeesler@google.com> Signed-off-by: Alex Benn=C3=A9e --- qapi/virtio.json | 10 ++++++++-- hw/display/virtio-gpu-base.c | 10 ++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/qapi/virtio.json b/qapi/virtio.json index 05295ab6655..0ce789bb22f 100644 --- a/qapi/virtio.json +++ b/qapi/virtio.json @@ -971,15 +971,21 @@ ## # @VirtIOGPUOutput: # -# Describes configuration of a VirtIO GPU output. +# Describes configuration of a VirtIO GPU output. If both xres and +# yres are set, they take precedence over root virtio-gpu +# resolution configuration and enable the corresponding output. # # @name: the name of the output # +# @xres: horizontal resolution of the output in pixels (since 10.2) +# +# @yres: vertical resolution of the output in pixels (since 10.2) +# # Since: 10.1 ## =20 { 'struct': 'VirtIOGPUOutput', - 'data': { 'name': 'str' } } + 'data': { 'name': 'str', '*xres': 'uint16', '*yres': 'uint16' } } =20 ## # @DummyVirtioForceArrays: diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c index 7269477a1c8..6adb5312a40 100644 --- a/hw/display/virtio-gpu-base.c +++ b/hw/display/virtio-gpu-base.c @@ -233,6 +233,16 @@ virtio_gpu_base_device_realize(DeviceState *qdev, g->req_state[0].width =3D g->conf.xres; g->req_state[0].height =3D g->conf.yres; =20 + for (output_idx =3D 0, node =3D g->conf.outputs; + node && output_idx < g->conf.max_outputs; + output_idx++, node =3D node->next) { + if (node->value->has_xres && node->value->has_yres) { + g->enabled_output_bitmask |=3D (1 << output_idx); + g->req_state[output_idx].width =3D node->value->xres; + g->req_state[output_idx].height =3D node->value->yres; + } + } + g->hw_ops =3D &virtio_gpu_ops; for (i =3D 0; i < g->conf.max_outputs; i++) { g->scanout[i].con =3D --=20 2.47.3 From nobody Fri Nov 14 18:19:15 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760440499; cv=none; d=zohomail.com; s=zohoarc; b=YRL9727ax4DzUk9v0pd3fNF2+hOVq0pVHR6/ZIyEUHeUlbORtHCe/Kuhg4QbyEGjlr6b6jfHhXxcNfjnT6l/XrvN0E8t4R81ZoVld1HZGLKbKYFoxN163m3kddj2xTDADHXW5cnrhn10loCCC0grixaORBNgHQvIG3YSO9ffxY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760440499; 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=lx/g6Brw0vnITlYo9+9jagFBHEALpmQn7onYoxBlbPw=; b=dkRwUJEK7ozMu647wWbJNJ4VmqOEAK0ui/OtzM4UNsCwMT5VYk37OoYbknaapYE8NpHnNALlkEQhFyH1y9CD9oAMR+C0E+lHQdF30UGpQcmTt9+GKNWLejMrqlRJjpbGh960/EDBpspEe5y49e3YhgB0FPUfdxOBmUWQGUDnVog= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760440499971625.4314879091822; Tue, 14 Oct 2025 04:14:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8cxZ-00081C-77; Tue, 14 Oct 2025 07:12:53 -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 1v8cxO-0007uq-Mv for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:42 -0400 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8cxM-00081o-3P for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:42 -0400 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-62fc0b7bf62so7731395a12.2 for ; Tue, 14 Oct 2025 04:12:39 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b55d952a273sm1156506666b.83.2025.10.14.04.12.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 04:12:35 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 40AB85F82E; Tue, 14 Oct 2025 12:12:35 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760440357; x=1761045157; 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=lx/g6Brw0vnITlYo9+9jagFBHEALpmQn7onYoxBlbPw=; b=z4gscisi0owWUHTNARNgXQq/cnKMp3njsYec0YjggNwMionENVdaZXwbLc2uLJ75Zz pZOo+dNQBCPYfi7KsXMOubnPbhvWgeIRADSU7108Suaxj1hZSmo4dxJJLOaT/3USIYr5 C+sTQ9hVqtQo/ZLsDVPye55a5TAzvD2FGGk4qY9ikw14RCVvrz1GKyNCD0dQ5iyGZgdG 1YOJVvIiUZ/fByRXP7unWfZPJMYBj/m7I1wSpj0LaH+SrmY/XJogmZRiKw8U0IzvVRP6 U9PO6UHeu7FIII7Myqz62tRT2hRDBt6NzNSvVxu9h1Wb0t7kQdge7rdjrOyQITdu+xIq 4sug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760440357; x=1761045157; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lx/g6Brw0vnITlYo9+9jagFBHEALpmQn7onYoxBlbPw=; b=YgP/bI7kS4uO5D5cDf8Qay9fD/XXCL45mF0L2d9XkY0WcXHvjDANpzXczw6TbmvyMd Ss+sX2Tl10bTLBrJMvKy6QFaxIfTy2RwGvl0LR4F9CYADgNOkqu8y3zq8rH58M92/T8K ztpANVnlVEcMbKVgyAZV0wwA+FJeybeY3qJpi6PyG3Z+K0i0XF6iKBPP0GGy5qyBF5eO Qamv6M0TLB98iD+F8KWWoplYxoPomml+jTHwCSqNhHyAkHIonxHXlBRTyRd//mIxNb+Z CVUmMIr2nnSdPvBxG7wCYTAb/HPDY7GDFwHgV5C/MJDNh8z6DFcS86mhxmvv55i/BXSA yeUQ== X-Gm-Message-State: AOJu0YwH5+T2Malt9V86eakfxocOSK2RBK04FdLBGAL3dUT+cRn4NS3u KQY8k9cN5UO22NL4jY7/bTxvZVjIs7mYNvs3bSJvZfBzoI7oMD2Nd6w212608yhEJHc= X-Gm-Gg: ASbGncsmRjmQXTTmShpjlagRSgOV/MnytQXtOZP8kFwBGm/f0F+BDGDMXulENhBkOWx i9SXZ4nXlmz9zzKiTGtDS2qFESabq6Z2KW4QQJ24DQ9RYS+5TVkPXCX0NNZ0FuGhgvK+ob/45/m XQX6EytR2K/+l/7ZhnL1ZrxKUSnZWmWtA3Th8iy9nApSB4eqeevdmgjLrGt+MoC1wycHw+umgiC TW7IIdakTMCPIgEP6ibJZt2yl0REjV07gABNgoiVH6GCJ10CJJT8XTBg98RnKr2nr/OglmeXHcl tZy0gPau9uRJGM93e6kP09W+p1HaQFVL6MUdmxzPeHBTrDR6ddaSHI7Vdc5EfRq6xvFokYnAwcb BrUh81box0oy0qzFNmgT0iGU75IzVrOUuFUj4Yx7zflPtzLeR/cU2UWh5 X-Google-Smtp-Source: AGHT+IEiv+LJHJ1Yn/obZ6afL5QOdUhoCNGsyqdIWtfNYp4gWu566tH7NL+iDzsR3h9d5Rs2w9Zo4g== X-Received: by 2002:a17:907:9612:b0:b41:b0c4:e74c with SMTP id a640c23a62f3a-b50ac0cc075mr2662316466b.33.1760440357185; Tue, 14 Oct 2025 04:12:37 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: David Hildenbrand , Paolo Bonzini , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Dmitry Osipenko , Markus Armbruster , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Peter Xu , "Michael S. Tsirkin" Subject: [PATCH 2/8] system/memory: add memory_region_finalize tracepoint Date: Tue, 14 Oct 2025 12:12:28 +0100 Message-ID: <20251014111234.3190346-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251014111234.3190346-1-alex.bennee@linaro.org> References: <20251014111234.3190346-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::529; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x529.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760440503000154100 This only traces named memory regions as it is otherwise quite noisy every time the address map changes. Signed-off-by: Alex Benn=C3=A9e --- system/memory.c | 5 +++++ system/trace-events | 1 + 2 files changed, 6 insertions(+) diff --git a/system/memory.c b/system/memory.c index 8b84661ae36..fd7c3192ed4 100644 --- a/system/memory.c +++ b/system/memory.c @@ -1821,6 +1821,11 @@ static void memory_region_finalize(Object *obj) * memory_region_set_enabled instead could trigger a transaction and * cause an infinite loop. */ + + if (mr->name) { + trace_memory_region_finalize(mr, mr->name); + } + mr->enabled =3D false; memory_region_transaction_begin(); if (mr->container) { diff --git a/system/trace-events b/system/trace-events index 82856e44f2e..a8ef2326e14 100644 --- a/system/trace-events +++ b/system/trace-events @@ -23,6 +23,7 @@ memory_region_subpage_write(int cpu_index, void *mr, uint= 64_t offset, uint64_t v memory_region_ram_device_read(int cpu_index, void *mr, uint64_t addr, uint= 64_t value, unsigned size) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64"= size %u" memory_region_ram_device_write(int cpu_index, void *mr, uint64_t addr, uin= t64_t value, unsigned size) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64= " size %u" memory_region_sync_dirty(const char *mr, const char *listener, int global)= "mr '%s' listener '%s' synced (global=3D%d)" +memory_region_finalize(void *mr, const char *name) "mr %p, %s" flatview_new(void *view, void *root) "%p (root %p)" flatview_destroy(void *view, void *root) "%p (root %p)" flatview_destroy_rcu(void *view, void *root) "%p (root %p)" --=20 2.47.3 From nobody Fri Nov 14 18:19:15 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760440431; cv=none; d=zohomail.com; s=zohoarc; b=V1AJOsXVmaakirmSjUGpJU4FRPHE9+5A3sjOtfG2rt2DWTYSYcl+Oan5V+8a+Kq4Ci63g9MHoTcppjiYLoEcFaUZWE4hshFy2EtcC9MizFSntbL+yFA6SCczt/wqrMgZZOWDgncZg7VsBpp6otpa2O+WIojH8Ua/4TuvDcBFnu8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760440431; 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=Bg8rMtlhXnkF/w+mBJd2TOmEOHNkxcbPVb42bgZPfso=; b=N8h+Fyev06QNpvzfTkwc5dQjF/dZh7xzTghbMUV0AV2C4inUaoqZfGjYPbIjlkBVkpEFXWtRNnCssKGxthhYVu311BfsjHdPArTXtnlXQ99OmIbfNWh4FSqp1gF6XrOvc5ZjeHwnfuxJgD2G8hBd9ykdmXO1u6ysGOLQJ4iZKoc= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760440431135898.6481156066393; Tue, 14 Oct 2025 04:13:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8cxY-00080b-Pr; Tue, 14 Oct 2025 07:12:53 -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 1v8cxQ-0007vE-MM for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:45 -0400 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8cxO-000823-80 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:44 -0400 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-b50206773adso1120536666b.0 for ; Tue, 14 Oct 2025 04:12:40 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b55d9525541sm1127441266b.80.2025.10.14.04.12.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 04:12:36 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 5510B5F83C; Tue, 14 Oct 2025 12:12:35 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760440359; x=1761045159; 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=Bg8rMtlhXnkF/w+mBJd2TOmEOHNkxcbPVb42bgZPfso=; b=zsJ453v88Bg4jgk6+95QOAdXd9l90D8GD5qBULAY6fNSL2t8isnMZ7h82XSIpk6yy9 CRn3+VyiS/WHP3hmRTDv9snLcnqKU9qPGA9cG7ZptH8ulf4OPuSjWbAM0bVAveBE2hM0 d94FHQL6Oh0JDHxS5uEc7x0CW9/wBeX6ZlnISHeFL9IYcOzUZUXF5MYLCiI5+qz9hFjt yt3ETuV5fgkiGFW31waboLj8Xg6mNnyOlu5wTuI4qBmOah806rJikWmjfNziChb/pKE4 uU9mpivL/aqUfT78+IINKntdDlD1vaqCoCMXuo/MIEwE7Eg8l87ZE+2bm6sVrH2KmRJL Epdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760440359; x=1761045159; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Bg8rMtlhXnkF/w+mBJd2TOmEOHNkxcbPVb42bgZPfso=; b=DSdgNKUT0y/txYUiwSu1mK46mgQlDfzf5hYmQ1yNo4GKuEoEpdIXz+3Zra0fFqrSqA d/9a5Z/i4HxtSG1UY2/sIsM9KIK73dncVsmZ36ui18JS9Ve4gSvYBm7oXfuHhsYyu5/e BTd1kFoQxIDgIItprVlOxspyh5nT6lHgf/iZIuMbMAB2TTqYx4svA5xzz37v/MfoHZH9 7F4l6cY2Oplm7ER5md6JwCsBPgMGH9zb4mTTdVhniuxPGeK4pNf/tKknHalkvpmYm0rC lBp29n/6Q5bppOXenRQNI+WLWeTWi8xitwxUJEkL/p6SaOgQ9Prtcwva1SVZnmVRP28l J/6A== X-Gm-Message-State: AOJu0YwOAXecbrJCJ2ysFTSlKiHV40o+qvdwVS7dOYaY72zPEYcoj9rX tPza7l0B3zdUYrXBwlFYSh039OYyImLxzN8F34jjUPMfdXB93+iAh9tmaSnd3WKNGhM= X-Gm-Gg: ASbGncv87uwl2cQn4d4DSsjygjqXUWsSxEs0IOIPlArXmxkIiVI2r9eLOmLqvOfcUqS F7Uv+Vn2G6AqL8U6zztPbmLJvXVcWJf6tAvUDF9In3Cu5oy0Ee4ywbZn0MtER0i0S+FSrC6gN44 wdjWYGkhJ+q3B7UYUnjcRPZ09H55VOthoELbi0eR0P7GFFVYFQYylI16YaE0WC2jV6BoYgstPHH hgKn9zZ/VwGwm2chRQJh4sDYDeZ43YmO1P1JQy6cbsQh1E7jVe69DJ+WJlHfDBxlOI7F+PEcE7x KNDm9ux9iqWgkgK1Wr/tGzVlruO+/aqCJtPqLeFJwk5lbeEAL5SG9xgdNA4JUdd34dIv3ueJtDY /rtnZUWGd74vwb2rytnF1sA8/cPuvO72V84exAXJhzz9Sn0ySBwX1MhR1FGubVw/IYCg= X-Google-Smtp-Source: AGHT+IFfA4YwSeSl9iZVBc6k9MB9nfb3h9qQQwAJjvgfVfWJCggQ+Mf9MFEijfyE+xhebnDfR5bPSA== X-Received: by 2002:a17:907:18c6:b0:b54:2c82:40f1 with SMTP id a640c23a62f3a-b542c8241bbmr2520263066b.11.1760440359504; Tue, 14 Oct 2025 04:12:39 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: David Hildenbrand , Paolo Bonzini , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Dmitry Osipenko , Markus Armbruster , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Peter Xu , "Michael S. Tsirkin" , Dongwon Kim , Vivek Kasireddy , qemu-stable@nongnu.org Subject: [PATCH 3/8] ui/gtk-gl-area: Remove extra draw call in refresh Date: Tue, 14 Oct 2025 12:12:29 +0100 Message-ID: <20251014111234.3190346-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251014111234.3190346-1-alex.bennee@linaro.org> References: <20251014111234.3190346-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::635; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x635.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760440433670154100 From: Dongwon Kim This partially reverts commit 77bf310084dad38b3a2badf01766c659056f1cf2 which causes some guest display corruption when gtk-gl-area is used for GTK rendering (e.g. Wayland Compositor) possibly due to simulataneous accesses on the guest frame buffer by host compositor and the guest. Fixes: 77bf310084 ("ui/gtk: Draw guest frame at refresh cycle") Reported-by: Dmitry Osipenko Reported-by: Alex Benn=C3=A9e Tested-by: Alex Benn=C3=A9e Tested-by: Dmitry Osipenko Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Dmitry Osipenko Cc: Marc-Andr=C3=A9 Lureau Cc: Vivek Kasireddy Signed-off-by: Dongwon Kim Message-Id: <20250214170813.2234754-1-dongwon.kim@intel.com> Signed-off-by: Alex Benn=C3=A9e Message-ID: <20250603110204.838117-12-alex.bennee@linaro.org> Cc: qemu-stable@nongnu.org --- ui/gtk-gl-area.c | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c index 05fc38096ec..9a11c9b4d18 100644 --- a/ui/gtk-gl-area.c +++ b/ui/gtk-gl-area.c @@ -165,7 +165,6 @@ void gd_gl_area_refresh(DisplayChangeListener *dcl) =20 if (vc->gfx.guest_fb.dmabuf && qemu_dmabuf_get_draw_submitted(vc->gfx.guest_fb.dmabuf)) { - gd_gl_area_draw(vc); return; } =20 --=20 2.47.3 From nobody Fri Nov 14 18:19:15 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760440505; cv=none; d=zohomail.com; s=zohoarc; b=kucAYLXlkTDcuYvK76iiq+ap505QU2ulN6Y5nv90eFGb344UMeUpt5lSFHJAICwqF61sNB3lcPSRUeYmYzKTfegxvdWeX3zUwEOx5QfOo0P0hfx5scoBljOPe2R5ZektUdHVYPqXzn9O/R7WV9Uz2bbYUSnVzkNhAHWncKTXDU8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760440505; 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=UBrmEioes5BcTvg3mWej6DkCUcELOhpLd7xx/WVVmZs=; b=SywVFqEhQ65UEjC1MjtD0jP6Rb5zHLSds2qn5iqpdyp3QqRWk83xYPnRHq5Z2ggJgaxoZeqxDcWDndCPmwx+6kK1h1T0CNsjy6KNsQvltBCcBCorQz0SGJEpIoh7mxbNDeAmlqi9Jc7d4+odQICzkLUaa+3LdrcciRGcTmq7ryU= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760440505731895.759346808355; Tue, 14 Oct 2025 04:15:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8cxa-00081K-9S; Tue, 14 Oct 2025 07:12:54 -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 1v8cxS-0007vi-J6 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:47 -0400 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8cxP-000826-6S for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:46 -0400 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-63963066fb0so10827320a12.3 for ; Tue, 14 Oct 2025 04:12:42 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b55d5cad7e1sm1133061466b.9.2025.10.14.04.12.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 04:12:38 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 6D72C5F871; Tue, 14 Oct 2025 12:12:35 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760440360; x=1761045160; 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=UBrmEioes5BcTvg3mWej6DkCUcELOhpLd7xx/WVVmZs=; b=FF0KFTGKVlQY1GQfOmtZzZmJsmH4tEeaEAA7UqMhvdvcPKau0bl1aGLFyeTP71vWQR GnF8i4t9CsQLqgy14P505kJ9UezliQ/1cokLqPrlpHt2DTJ8Tdtc8N5V6cCTgXUYl9vw dQ6Tc3ij9os/gMM088Q/pSbJ8jv8Ekrcp0+jenKE2Yv+q/vd+GWAGUusY6jHAjkqUgjd UzJiFKrRS6MxNku+P0qfzZkYvm7jZMev7+61nx/xkef4py+73MpozdAKKgLAybCgjfXa QNel2cCpv/tALMNRajOaEHJmaqXmu4Mld4CqHYDjyROcVafMQtm0mMgLNaBF8z0v8pX1 DGNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760440360; x=1761045160; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UBrmEioes5BcTvg3mWej6DkCUcELOhpLd7xx/WVVmZs=; b=MvZ6oGfk2QR0VD4Qci/A3MaMPNQFrzYyDPGbHYYWaiznATURjzIlDCYRx9oD9KDeDe qoihSE+rDzNnDtH6ghg8Lw6NwirT/54/CKI/9aUuPvsaCVadOEzM2efO3NvB3iR+q9zv yY4omyqzBwySM9f9388laXERgV6aeX5+chVFmxDTsJc2b/n0/bHN1PXVsDwlihj9WgCO FhTUxOVgLRFz1x0R+yqp3tfkizeuFvqzqMU2zn4qolhlkIc3q+7Bcif7Mycz9QOZKOMs ufEEYYxl7EUpbPRAtEPcOriZKQ0kLfgitYzUC+poQgTy51HQuGOv2PW8EwKalv6KcSnR ns2w== X-Gm-Message-State: AOJu0YwPsoScmfq6oa4jZfZtchlOI64HThF1p8978ohW2V/VfgaK6HrM 7b8knuEBt/KeoQ1XnVoVc5VMgK8UwVGTU+vYJgOo1pPPcfaeg9Prvz9eZlGSM7JIAx4= X-Gm-Gg: ASbGncsmb9L3XAclKkV+hooWShH+/vZmLUezyaStX1lhK2qVNPzGpVEGiJVR6Xccz+b KIvsroB/3Q0uIVipakSoEvzLesz5wgZNx9fse3h1T2sa19r6RlL++tyuKF+nD2B9QdjQikY3dUa UuLch2ey+EfjUOZXXfb/PK7aAxVpqn8FTru6mirxjUXB897VxfySFj1Ndz4O/AHVmDpCdb7hJvc 6eOIf0l3AnTpvuv1VA+Dq59gx/n6/Y6f0/SzUWlWaVOfLQA72GyFIyZn/8HGFBnl1tcJOzbifgv /oP8XHTN+we+T8VGK5F9ZBageH18ZiKzI48ThcjJuErBpSS8WnPXxNvWYkn3jBdvIuaNtV3+f/j HRLftvMuXA4XHK2fQks7aYzCxGiLEFhg25G7NMF19VsBwnR+meD+I+fWl5jlsKjtdGVY= X-Google-Smtp-Source: AGHT+IHkXi19VXhoMSJIweJrDy7ZFTE6XAIQpOzd35ITzE6n5SPGE6PG7mOB1EpyDCLz42VCCT5xhQ== X-Received: by 2002:a17:907:9690:b0:b3f:d232:5797 with SMTP id a640c23a62f3a-b50aaa97b7amr2466771066b.22.1760440360102; Tue, 14 Oct 2025 04:12:40 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: David Hildenbrand , Paolo Bonzini , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Dmitry Osipenko , Markus Armbruster , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Peter Xu , "Michael S. Tsirkin" Subject: [PATCH 4/8] hw/display: add blob map/unmap trace events Date: Tue, 14 Oct 2025 12:12:30 +0100 Message-ID: <20251014111234.3190346-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251014111234.3190346-1-alex.bennee@linaro.org> References: <20251014111234.3190346-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::52f; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52f.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760440509885158500 As these events happen dynamically as the guest does various things they are quite handy to trace. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Akihiko Odaki --- hw/display/virtio-gpu-virgl.c | 4 ++++ hw/display/trace-events | 2 ++ 2 files changed, 6 insertions(+) diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c index 94ddc01f91c..07f6355ad62 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -134,6 +134,8 @@ virtio_gpu_virgl_map_resource_blob(VirtIOGPU *g, =20 res->mr =3D mr; =20 + trace_virtio_gpu_cmd_res_map_blob(res->base.resource_id, vmr, mr); + return 0; } =20 @@ -153,6 +155,8 @@ virtio_gpu_virgl_unmap_resource_blob(VirtIOGPU *g, =20 vmr =3D to_hostmem_region(res->mr); =20 + trace_virtio_gpu_cmd_res_unmap_blob(res->base.resource_id, mr, vmr->fi= nish_unmapping); + /* * Perform async unmapping in 3 steps: * diff --git a/hw/display/trace-events b/hw/display/trace-events index 52786e6e184..e323a82cff2 100644 --- a/hw/display/trace-events +++ b/hw/display/trace-events @@ -38,6 +38,8 @@ virtio_gpu_cmd_set_scanout_blob(uint32_t id, uint32_t res= , uint32_t w, uint32_t virtio_gpu_cmd_res_create_2d(uint32_t res, uint32_t fmt, uint32_t w, uint3= 2_t h) "res 0x%x, fmt 0x%x, w %d, h %d" virtio_gpu_cmd_res_create_3d(uint32_t res, uint32_t fmt, uint32_t w, uint3= 2_t h, uint32_t d) "res 0x%x, fmt 0x%x, w %d, h %d, d %d" virtio_gpu_cmd_res_create_blob(uint32_t res, uint64_t size) "res 0x%x, siz= e %" PRId64 +virtio_gpu_cmd_res_map_blob(uint32_t res, void *vmr, void *mr) "res 0x%x, = vmr %p, mr %p" +virtio_gpu_cmd_res_unmap_blob(uint32_t res, void *mr, bool finish_unmappin= g) "res 0x%x, mr %p, finish_unmapping %d" virtio_gpu_cmd_res_unref(uint32_t res) "res 0x%x" virtio_gpu_cmd_res_back_attach(uint32_t res) "res 0x%x" virtio_gpu_cmd_res_back_detach(uint32_t res) "res 0x%x" --=20 2.47.3 From nobody Fri Nov 14 18:19:15 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760440474; cv=none; d=zohomail.com; s=zohoarc; b=RCSWQzNCLpPkyfzkRELR023gU368vClmx15uCh10EDzFuO+lj2Ho9pQ0OAJ9UC9fu0xFxJkVCofZ1LuTb30RY0SNaLzir3XvzLbbJ+NE84RhjBqv4cpE6ENsvGgBR7MTE+eWU032gUOPVX+pozTjQ6SpbpSluwfIkYyp9GYVvuo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760440474; 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=NoJP0MdnaIgzVa6mb0U/qUkjWQ3CrMo7a6Lc8hlUXFM=; b=M6FuXTYkZ35et73VanlzLmXyEJVTmyQJMN43/cFRUMguwYuL3/s6vkNXE/37ipA24zMQtheEyrcD8q/wZYAdry14f+axhoGhg3eF4w+K9t+n4tGmGVvkjcA9EVdDMEXNKvLq3lPuxJEH61Yi4iXD/GxNPM6Ww3Z17i4MLMVAyYo= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760440474788223.36359628110552; Tue, 14 Oct 2025 04:14:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8cxa-000826-R9; Tue, 14 Oct 2025 07:12:55 -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 1v8cxS-0007vj-Qt for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:47 -0400 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8cxP-00082G-IC for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:46 -0400 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-62fc28843ecso7852949a12.1 for ; Tue, 14 Oct 2025 04:12:43 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b55d9525bd1sm1119289266b.81.2025.10.14.04.12.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 04:12:39 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 8456E5F9F7; Tue, 14 Oct 2025 12:12:35 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760440361; x=1761045161; 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=NoJP0MdnaIgzVa6mb0U/qUkjWQ3CrMo7a6Lc8hlUXFM=; b=lZwevKR7jskyYteWRSfABota1x+rNb+2OunhsVYzwPtr/CGpnsGrKEbGxJvsXhHvDl rXJwaukhBg/aTGSpHRrOEPdIHQpjWfktRaRZDgNZLePmcFPvzSMts2bJyGfIgZPTcbqI 0YJ0t0vM+zQ49tFcFpznNqYUMFnkPHTw42YhAJpyH7rfuLz3jgYX/Evn96o90l0PY3en w1VykwLTx+lwCniJciQTFJUgZ5e89QvhtsxikcDIXpsr+/Y9IVz/nNjJQahRr/EIOHEs scn8noeHh1lZOvYgZR8BVcQ4G1FJXS2mzuYTBHk0aMvE4G5ppbbKtjqO2ynoQ7MkzMvL CHsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760440361; x=1761045161; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NoJP0MdnaIgzVa6mb0U/qUkjWQ3CrMo7a6Lc8hlUXFM=; b=p1i/Xm+Kn+rB6W1pARjdG4dZxh/AJaPKHy9noz2/gQJXlaoCShUSsmiq3JDc0gRW12 P2mSOdyxyD2CTPoDlv293YJCd4DrLOAksATRWIuxjt9hT0jYUgwCKlGibGB6Z6RRv6Fn 5fDrbbHeRV3obrF74sqqKlXxQcxTYzmexjx8IglHQmJcynogKQ5v7kdW0uKP4CgJTZg4 Pa48Q6Lju0K/Y/8bn4znZjkXhbwEGteUxAworjG2EDN+SPNfaWxNPWTw9Sr7Y775G2Px v52j65JScFpJXdffZJmjQ+xbm9sas56Yd/X6aCgUAM/XwH+nItfAGLLUMCF5Ohzf9kZX MXSg== X-Gm-Message-State: AOJu0Yx42VLve17F8OrGaobNZze/+964qpQ3Cv7HDNsNXmrsKb/gR6YB T2arH4CZohB/kVCf5t2zhjdRCW7fio+kyyZ37xnKY97Upw+PjPi8GpJt4Tnk7xiGKUI= X-Gm-Gg: ASbGncvki+xUWbiVH7qz5B0G2OZh6avfxYIA8sDfR7nq62ZAQc9TDD/WL1H/mABPIKk 3zLdxoqw5YhCT7f/QbzfRruw4lPKYzSQQ4UR1EmjGeroRr4BpXU+UTETCxeDwUhGwxpNehGSaM8 4+jG1TfAhE1w7ELn/Ez4U/rP0KngWc/8zhl4uDXkdsQS/LJbhMtlGUSMdED5gEF+WD/+epE8Nz1 fI2ERs2Lp3bi99n3s5K+Ti5utjkPoTnuW8mhpNHSRDzpOUxGWvolBoiMVcFqedPbXTxAX9XFK4k 91LQBByKi6pL8eSMhLwlUg2lZ2zso4C3VcC+uVysvIjXKR/3+ffioHI34T1o+lTYcEaiFYO3TjB YJ7WOnCTWFIqhvoZ5btctR7iiWd6fSagZFWcBgPSX8ExEDg== X-Google-Smtp-Source: AGHT+IEEf0cmj0UjYmzy09K38Axqy31HrXext/x0fJxlbgQTyvwc8uEMlOwEx0k6w0wT5tHLXSOefQ== X-Received: by 2002:a17:907:9448:b0:b40:a71b:151f with SMTP id a640c23a62f3a-b50ac1c4e7cmr2772602866b.30.1760440361138; Tue, 14 Oct 2025 04:12:41 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: David Hildenbrand , Paolo Bonzini , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Dmitry Osipenko , Markus Armbruster , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Peter Xu , "Michael S. Tsirkin" , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH 5/8] hw/display: re-arrange memory region tracking Date: Tue, 14 Oct 2025 12:12:31 +0100 Message-ID: <20251014111234.3190346-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251014111234.3190346-1-alex.bennee@linaro.org> References: <20251014111234.3190346-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::52e; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52e.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760440476184158500 QOM objects can be embedded in other QOM objects and managed as part of their lifetime but this isn't the case for virtio_gpu_virgl_hostmem_region. However before we can split it out we need some other way of associating the wider data structure with the memory region. Fortunately MemoryRegion has an opaque pointer. This is passed down to MemoryRegionOps for device type regions but is unused in the memory_region_init_ram_ptr() case. Use the opaque to carry the reference and allow the final MemoryRegion object to be reaped when its reference count is cleared. Signed-off-by: Manos Pitsidianakis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20250410122643.1747913-2-manos.pitsidianakis@linaro.org> Cc: qemu-stable@nongnu.org Signed-off-by: Alex Benn=C3=A9e Message-ID: <20250603110204.838117-10-alex.bennee@linaro.org> --- include/system/memory.h | 1 + hw/display/virtio-gpu-virgl.c | 23 ++++++++--------------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/include/system/memory.h b/include/system/memory.h index 3bd5ffa5e0d..3349a5185a0 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -843,6 +843,7 @@ struct MemoryRegion { DeviceState *dev; =20 const MemoryRegionOps *ops; + /* opaque data, used by backends like @ops */ void *opaque; MemoryRegion *container; int mapped_via_alias; /* Mapped via an alias, container might be NULL = */ diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c index 07f6355ad62..0ef0b2743fe 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -52,17 +52,11 @@ virgl_get_egl_display(G_GNUC_UNUSED void *cookie) =20 #if VIRGL_VERSION_MAJOR >=3D 1 struct virtio_gpu_virgl_hostmem_region { - MemoryRegion mr; + MemoryRegion *mr; struct VirtIOGPU *g; bool finish_unmapping; }; =20 -static struct virtio_gpu_virgl_hostmem_region * -to_hostmem_region(MemoryRegion *mr) -{ - return container_of(mr, struct virtio_gpu_virgl_hostmem_region, mr); -} - static void virtio_gpu_virgl_resume_cmdq_bh(void *opaque) { VirtIOGPU *g =3D opaque; @@ -73,14 +67,12 @@ static void virtio_gpu_virgl_resume_cmdq_bh(void *opaqu= e) static void virtio_gpu_virgl_hostmem_region_free(void *obj) { MemoryRegion *mr =3D MEMORY_REGION(obj); - struct virtio_gpu_virgl_hostmem_region *vmr; + struct virtio_gpu_virgl_hostmem_region *vmr =3D mr->opaque; VirtIOGPUBase *b; VirtIOGPUGL *gl; =20 - vmr =3D to_hostmem_region(mr); - vmr->finish_unmapping =3D true; - b =3D VIRTIO_GPU_BASE(vmr->g); + vmr->finish_unmapping =3D true; b->renderer_blocked--; =20 /* @@ -118,8 +110,8 @@ virtio_gpu_virgl_map_resource_blob(VirtIOGPU *g, =20 vmr =3D g_new0(struct virtio_gpu_virgl_hostmem_region, 1); vmr->g =3D g; + mr =3D g_new0(MemoryRegion, 1); =20 - mr =3D &vmr->mr; memory_region_init_ram_ptr(mr, OBJECT(mr), "blob", size, data); memory_region_add_subregion(&b->hostmem, offset, mr); memory_region_set_enabled(mr, true); @@ -131,7 +123,9 @@ virtio_gpu_virgl_map_resource_blob(VirtIOGPU *g, * command processing until MR is fully unreferenced and freed. */ OBJECT(mr)->free =3D virtio_gpu_virgl_hostmem_region_free; + mr->opaque =3D vmr; =20 + vmr->mr =3D mr; res->mr =3D mr; =20 trace_virtio_gpu_cmd_res_map_blob(res->base.resource_id, vmr, mr); @@ -144,16 +138,15 @@ virtio_gpu_virgl_unmap_resource_blob(VirtIOGPU *g, struct virtio_gpu_virgl_resource *res, bool *cmd_suspended) { - struct virtio_gpu_virgl_hostmem_region *vmr; VirtIOGPUBase *b =3D VIRTIO_GPU_BASE(g); MemoryRegion *mr =3D res->mr; + struct virtio_gpu_virgl_hostmem_region *vmr; int ret; =20 if (!mr) { return 0; } - - vmr =3D to_hostmem_region(res->mr); + vmr =3D mr->opaque; =20 trace_virtio_gpu_cmd_res_unmap_blob(res->base.resource_id, mr, vmr->fi= nish_unmapping); =20 --=20 2.47.3 From nobody Fri Nov 14 18:19:15 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760440425; cv=none; d=zohomail.com; s=zohoarc; b=SL3twBGM1QYDJT/Qulcshey8GrQaCUVH8j5s739hQPC686tUynmhkJsTNF8AG9pFEfuu/OQWpOfmc/tmuazwOWmdt2oYmjMtED81U89zoNoNei9wddVCF7zi+rOcX61M9kOQ3pnm8pjlDRIWDt4k1agls6r4Jc3hQk3DgKkiDhM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760440425; 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=iAZRcsAaL30fN5Qz7yHgxQKCt54WMH308w8bbB7E+lY=; b=Rs7YCOfvKv5TZSVAtCVLr+cj4XCMXwHmE3MZq3Y8WGGif9w+trU2ug3UhZ8QotKjpbRTqt6Mg1fSVfr2sRVweK6rBVY/l1tpU4C1yn3HDhCt4thkqT/VmwdN/t2QzvxfHVl6V22x2Yp7p6x5DhQHq08RXWyayp/85p9Q+HC56A8= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760440425785290.2196679333408; Tue, 14 Oct 2025 04:13:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8cxZ-00081J-SP; Tue, 14 Oct 2025 07:12:53 -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 1v8cxU-0007w9-5x for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:48 -0400 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8cxQ-00082q-U4 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:47 -0400 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b5a8184144dso226900466b.1 for ; Tue, 14 Oct 2025 04:12:43 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b55d8c12b9dsm1128553466b.45.2025.10.14.04.12.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 04:12:39 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 9AC735FA31; Tue, 14 Oct 2025 12:12:35 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760440362; x=1761045162; 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=iAZRcsAaL30fN5Qz7yHgxQKCt54WMH308w8bbB7E+lY=; b=rYhwtaqpZtLqLnrl+/9Y2vC5boHmx/5ffnSLhL6lpgg/c8kgsPiB69NfejUyJ7s6m2 utNkKG7kX5wi801QCHuu9r/Ue5t3bmmuOxwERuTREc9gfuTVH/Nfsoo2pV2pKAqpT1rc dIQ0x+0HN+zMxQgVEwr6WyR7fiEmx+2SoMYyk164NjayckucEA15/2b8PdTXQIP7lWYk /yNa+Cg6kKPxP86YJFmUpFrSkcUqK7sfmxXVMKJYdDHxbJlVjPUuyAuZNWEanWkCqtDF MLi+u45AHfMoLSMRdQcCmyOkMvhlZ5DVtYqEseVe2PpA318Fg8TPlVouAN3M/HJQXlGg TSEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760440362; x=1761045162; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iAZRcsAaL30fN5Qz7yHgxQKCt54WMH308w8bbB7E+lY=; b=GWxp7pAxvkE4M71gOA7ilE+bai3Djb4hJtsZoBAvsLpaPUmmOjUh8wOqHvXJAP1XBc 23Dl5ytwafLA/8jpx+HAwlwEKJa+X7bc+7AQY+xvxTenZdWMnHcqJ71iFFoS4vRcVD4V IwYES/6/WIYWsrCfiAz44bKAgk6mw2fem+AiEbbBKo3CeLsCxWlZV1vlJBAKlotDIwgW KStSFHyKvRXpo2/0Q2U4O/1hXIKxOqJXmFX9wRTUqDLkXDI4dI/640FuEz/2Y6W9ZkaO lTIhmtNGrhSIpvXoelRALANQq2OXbXFS032/l8uF0nogbxLTBb3CaqYmClc3WBnwIlMy uRDQ== X-Gm-Message-State: AOJu0YywDuUcxern57EICX6cyFYkuh2bojoGxIuvF314VIrBNlAy7igy ANmNzzTnwYBhiqXFigxHwVZKGquPlfwjFeoBWNOoZxMXGW9o/jawOHP7xHAwldGRi6Y= X-Gm-Gg: ASbGncsp4U7+MgF6GG88NV9RZbz4Eeec24KbDZE2BgASQ7NRhVXbFUUfpENmkxnxUqc vsZf6LC9WzoO9a01jxguNl4OgrL8oznc0QH30lm2hweIDrOPtzJ5Va1/26b55IzmZXvrO5J1/Iy onQdW+K3OpJ3WLHda1PEj8crQR8RDcBqk/P71eadtpLjwdKRXUXpgP/IaXVYSi8VCZMIjie68jH 6gXpGdD9+IMww4z2h3P93eWficxkKW7oc0c1uvDGmPNtAk79sfIcaC1VRDVazY/nG8qdweH1Qf9 zwF3BWMCX1FJXl8ag/lecNQHncTfvX/negVgAwiNBYcymApfW+4Zy5dFw+eTy/MNWYB3d2cPAa5 nYzZz6bY5Kv0pMumx7ZKEX/jFszL7nTWiAynhU7Odx5F06wp1Zypj27Um X-Google-Smtp-Source: AGHT+IFVXyLrrvBRZT/J/qaDHRbM0I9ePEsN/28+MCU2GmuP0HW7ViCf25WLBGBLB0aeHHwEPL3cmQ== X-Received: by 2002:a17:907:9409:b0:b50:893f:6fb8 with SMTP id a640c23a62f3a-b50acd2d7a7mr2565014466b.63.1760440361776; Tue, 14 Oct 2025 04:12:41 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: David Hildenbrand , Paolo Bonzini , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Dmitry Osipenko , Markus Armbruster , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Peter Xu , "Michael S. Tsirkin" , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH 6/8] virtio-gpu: refactor async blob unmapping Date: Tue, 14 Oct 2025 12:12:32 +0100 Message-ID: <20251014111234.3190346-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251014111234.3190346-1-alex.bennee@linaro.org> References: <20251014111234.3190346-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::62a; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62a.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @linaro.org) X-ZM-MESSAGEID: 1760440428308154100 From: Manos Pitsidianakis Change the 3 part async cleanup of a blob memory mapping to check if the unmapping has finished already after deleting the subregion; this condition allows us to skip suspending the command and responding to the guest right away. Signed-off-by: Manos Pitsidianakis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20250410122643.1747913-4-manos.pitsidianakis@linaro.org> Cc: qemu-stable@nongnu.org Signed-off-by: Alex Benn=C3=A9e Message-ID: <20250603110204.838117-11-alex.bennee@linaro.org> --- hw/display/virtio-gpu-virgl.c | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c index 0ef0b2743fe..ca7c607bf67 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -159,7 +159,32 @@ virtio_gpu_virgl_unmap_resource_blob(VirtIOGPU *g, * asynchronously by virtio_gpu_virgl_hostmem_region_free(). * 3. Finish the unmapping with final virgl_renderer_resource_unmap(). */ + + /* 1. Check if we should start unmapping now */ + if (!vmr->finish_unmapping) { + /* begin async unmapping. render will be unblocked once MR is free= d */ + b->renderer_blocked++; + + memory_region_set_enabled(mr, false); + memory_region_del_subregion(&b->hostmem, mr); + object_unparent(OBJECT(mr)); + /* + * The unmapping might have already finished at this point if no o= ne + * else held a reference to the MR; if yes, we can skip suspending= the + * command and unmap the resource right away. + */ + *cmd_suspended =3D !vmr->finish_unmapping; + } + + /* + * 2. if virtio_gpu_virgl_hostmem_region_free hasn't been executed yet= , we + * have marked the command to be re-processed later by setting + * cmd_suspended to true. The freeing callback will be called from RCU + * context later. + */ + if (vmr->finish_unmapping) { + /* 3. MemoryRegion has been freed, so finish unmapping */ res->mr =3D NULL; g_free(vmr); =20 @@ -170,16 +195,6 @@ virtio_gpu_virgl_unmap_resource_blob(VirtIOGPU *g, __func__, strerror(-ret)); return ret; } - } else { - *cmd_suspended =3D true; - - /* render will be unblocked once MR is freed */ - b->renderer_blocked++; - - /* memory region owns self res->mr object and frees it by itself */ - memory_region_set_enabled(mr, false); - memory_region_del_subregion(&b->hostmem, mr); - object_unparent(OBJECT(mr)); } =20 return 0; --=20 2.47.3 From nobody Fri Nov 14 18:19:15 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760440453; cv=none; d=zohomail.com; s=zohoarc; b=KvXJI1BdbqBKzTQx97+m7lqW9bDxAdFWT7QKhCPQgTYxHhy5R088WypBtykh/eEHoBAEFZM1NSZNuk3c0hvaMttIE7enrFz6bMoTcRVknQ+5IE+dFKTLlxk9CkhxpuA4I4H5828BNCIgVReoNAKumesZBhja547pV5C+XCfbYWA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760440453; 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=sNsz/B9ZMuWBA6zhxt/zXKcHrrm+1gb8tG46YN/TcvU=; b=PCqKZmB7vV/+GRttpIpNA0tRPnGqCaPPTdX7Azjm2VcbFMIjBbp6y2D2Dl3yUustVmZr+H3MVURBu2Tz6iHFMJsAeK4r/uGJnYOliCHjInhg6V0w8VdfB7U/KhHJ4uEaIIninbxkfvFKwUBTKJH0NewQb/eLPav4xtBTm2NxPz0= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760440453240411.88236515739356; Tue, 14 Oct 2025 04:14:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8cxf-00084E-5D; Tue, 14 Oct 2025 07:12:59 -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 1v8cxV-0007wO-NI for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:51 -0400 Received: from mail-ed1-x52a.google.com ([2a00:1450:4864:20::52a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8cxT-00083F-AC for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:49 -0400 Received: by mail-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-63b9da57cecso3758842a12.0 for ; Tue, 14 Oct 2025 04:12:45 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63a52b7164dsm10774803a12.21.2025.10.14.04.12.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 04:12:39 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id B14175FA53; Tue, 14 Oct 2025 12:12:35 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760440363; x=1761045163; 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=sNsz/B9ZMuWBA6zhxt/zXKcHrrm+1gb8tG46YN/TcvU=; b=Ces9/lPweWELXf9PXDcPfj/9dgflVIwS6zzheGdImwQCQZNn4kZhmgv0xnTGu5g/Kt r6tRQA/fOFt9NXpNC2/j6Zner3X7SU3P4h1ILv9gRJZ4cw+CWd+mVicJLef4eXNMLxPH csDyJU2eJwGh869S96fznokYV+4qXZam2Zscad8TfLRX6KM60VCLr+cTBZZu+bUEl4v7 fkfRhaufhBcDay0cM31+ruSDDPw4itTYQZqE1ddFHTyaaEp57Ie2dylnyMEDvTqrUop4 RVqwRy2RmQkPiYeioIkFnZ5X6xOLvyqD38LArUlIYivodh63dzT9b7DwaQd2790aLPUF UYOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760440363; x=1761045163; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sNsz/B9ZMuWBA6zhxt/zXKcHrrm+1gb8tG46YN/TcvU=; b=t05+rZa75TNeCiYhk2GCMDjR21R2DlCSWzcd+t7dp8QqdR1Qm/cW8SbfxUrvv9ePQW 0oXX+aiHg1m/tcl+Xt74jvMdWsTl8ZvawLFpEqNIBCygZ8vS5ZNVsCAHhLDj2HB+XWVQ K4+top8iKcnrQ2xRL4VIjaKwUxdxPwg2DKGap0uyoXm7rGM0917Cj7wmX19Ydbngps0z UnS9xG7Map4IoCA2HUjO9fg6JdFa3PFWQwypyzqLYav0tLRss/BWYGsimeDWs6rIXSwG 804fpEhq5aYV0uaGDNQdFIWqH0aMWdUUVmKizUCtvZeEFmtiWIgihLrPaYmOseH6PXIT Kb5A== X-Gm-Message-State: AOJu0YwmR5bBmEfzxXFmKoEjSQTyKpyjjiEtnRvI2jYbQzP7HiWrHWE3 hTIyfd2vMOunvhI+dsd+V/TwJgVxed3sUSM8BcWUI5HG3cJoAYNa4P/Ycgg78PKlYns= X-Gm-Gg: ASbGncvPIpY31xDkMYkqU00RVQ0rZF9MIg4pHyon+GoICFT7ui2KH/v9YgJ9/FmOybp UcD3gfd8x0GtCeZC8PJ+JZylYgL1M8cH/vMD9II8V4j3sK2Sypvec1Kg9mvcfCAHvkIhddEdGjM Mh1MMKQiKrALVIBcifW6hJd9fsk8momC52Hdv2laJtRP1f+5aRDpmR3hBqCRcUU2IExabg89ZkX n9RG3TYgoM9UUoYd7ZbcNA+Isxyci2R6N48aMp6V2DU5Q3OGBy0OkgwixOlGY8v1RwAbFkxF0xx J6xVayEN66IwKHnTGZuxpSWQYWUmKaBHqL/B/iCsNv4KPlwm443HCEEhAvfEQSL3shhaRh4s7Os bfSJSb83w26+dU0etVebHkZJlD8bYeOHCOu+Oe45eysCO+TNSFEaQZbtV X-Google-Smtp-Source: AGHT+IHeaehqiUFmtqcm0+6ZnsjB4TAQBHlmiSHEXNd/c9jqhHQkwBwtmTahsdnyRaHFBFD35pTWVQ== X-Received: by 2002:a05:6402:26c8:b0:63b:dfab:6d5f with SMTP id 4fb4d7f45d1cf-63bdfab6f6emr562709a12.5.1760440363122; Tue, 14 Oct 2025 04:12:43 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: David Hildenbrand , Paolo Bonzini , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Dmitry Osipenko , Markus Armbruster , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Peter Xu , "Michael S. Tsirkin" , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH 7/8] virtio-gpu: fix hang under TCG when unmapping blob Date: Tue, 14 Oct 2025 12:12:33 +0100 Message-ID: <20251014111234.3190346-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251014111234.3190346-1-alex.bennee@linaro.org> References: <20251014111234.3190346-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::52a; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52a.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760440456462154100 From: Manos Pitsidianakis This commit fixes an indefinite hang when using VIRTIO GPU blob objects under TCG in certain conditions. The VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB VIRTIO command creates a MemoryRegion and attaches it to an offset on a PCI BAR of the VirtIOGPUdevice. The VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB command unmaps it. Because virglrenderer commands are not thread-safe they are only called on the main context and QEMU performs the cleanup in three steps to prevent a use-after-free scenario where the guest can access the region after it=E2=80=99s unmapped: 1. From the main context, the region=E2=80=99s field finish_unmapping is fa= lse by default, so it sets a variable cmd_suspended, increases the renderer_blocked variable, deletes the blob subregion, and unparents the blob subregion causing its reference count to decrement. 2. From an RCU context, the MemoryView gets freed, the FlatView gets recalculated, the free callback of the blob region virtio_gpu_virgl_hostmem_region_free is called which sets the region=E2=80=99s field finish_unmapping to true, allowing the main thread context to finish replying to the command 3. From the main context, the command is processed again, but this time finish_unmapping is true, so virgl_renderer_resource_unmap can be called and a response is sent to the guest. It happens so that under TCG, if the guest has no timers configured (and thus no interrupt will cause the CPU to exit), the RCU thread does not have enough time to grab the locks and recalculate the FlatView. That=E2=80=99s not a big problem in practice since most guests will assume a response will happen later in time and go on to do different things, potentially triggering interrupts and allowing the RCU context to run. If the guest waits for the unmap command to complete though, it blocks indefinitely. Attaching to the QEMU monitor and force quitting the guest allows the cleanup to continue. There's no reason why the FlatView recalculation can't occur right away when we delete the blob subregion, however. It does not, because when we create the subregion we set the object as its own parent: memory_region_init_ram_ptr(mr, OBJECT(mr), "blob", size, data); The extra reference is what prevents freeing the memory region object in the memory transaction of deleting the subregion. This commit changes the owner object to the device, which removes the extra owner reference in the memory region and causes the MR to be freed right away in the main context. Acked-by: Michael S. Tsirkin Signed-off-by: Manos Pitsidianakis Reviewed-by: Alex Benn=C3=A9e Tested-by: Alex Benn=C3=A9e Message-Id: <20250410122643.1747913-3-manos.pitsidianakis@linaro.org> Cc: qemu-stable@nongnu.org --- hw/display/virtio-gpu-virgl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c index ca7c607bf67..d880adc8ab0 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -112,7 +112,7 @@ virtio_gpu_virgl_map_resource_blob(VirtIOGPU *g, vmr->g =3D g; mr =3D g_new0(MemoryRegion, 1); =20 - memory_region_init_ram_ptr(mr, OBJECT(mr), "blob", size, data); + memory_region_init_ram_ptr(mr, OBJECT(g), "blob", size, data); memory_region_add_subregion(&b->hostmem, offset, mr); memory_region_set_enabled(mr, true); =20 --=20 2.47.3 From nobody Fri Nov 14 18:19:15 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760440424; cv=none; d=zohomail.com; s=zohoarc; b=e0t3yEOc9WPOE33fyWKO4E2NJw4/kOmuiyZknCyt9bETd0DbhVtXMZ3C6iXy/ifwu86UpRTLq4/ONNX7WEE+fwlROelLbDJVTau0EKvn2sdUuSWLoSOGl0XsunkidJybO2oLgV1+ZZw/J/Eu/OPyUunKcVBv7Jv2WyuAZ8NKOpE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760440424; 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=kxqMBghotsNAW3z2sKbNmh6PO8mUrbQ9ykLagwcUbrI=; b=K4LJyEywHYVVa6gziHKhQaTVzzW31z9WPdnkprq8PBtjp7eT2jaEQ8luQJVeagUreROjc6iA2p9BhTbIULlGJ04b5O4CmcBnY/I5XUeOcEXi6fgL0drlsV2ARDYk79w77LI+4WUY1NTuGVY2pnetZR9HoLICWi2JUpJ7R5q3qPs= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176044042437332.60366252468077; Tue, 14 Oct 2025 04:13:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8cxc-000836-GJ; Tue, 14 Oct 2025 07:12:56 -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 1v8cxU-0007wJ-Ok for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:48 -0400 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8cxS-00083M-Bc for qemu-devel@nongnu.org; Tue, 14 Oct 2025 07:12:48 -0400 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b463f986f80so184462066b.2 for ; Tue, 14 Oct 2025 04:12:45 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b55d5cac037sm1102213566b.12.2025.10.14.04.12.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 04:12:39 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id CA6E65FA5C; Tue, 14 Oct 2025 12:12:35 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760440364; x=1761045164; 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=kxqMBghotsNAW3z2sKbNmh6PO8mUrbQ9ykLagwcUbrI=; b=vS9f/PMIKu7b/hHM6yztiOxk5YBy3SQGmparUaMPKf8DOJIPF/iqOoXELTgg1rzE2C 1kFZ6zqx3I/iSwIdGxVS3Q2/bLb6ZP/63dXJ+zrUAor0oNnKPOPyjkJYCAGlEJzBXRhR TDPRGqv0Us4xLSUbfOe/+wstk7+5gwvpIo+FjYmB+sQmEflOH4leifJdzknSdU2UFRQk c/stZLWdF30t3MZRO0XqNWZTqTTQjMvu6VKFnhiX6wr24O0sMPwbOzBG1euRtwt6tvgm jFxxDWX0uO+Ip1RSjrbKKoW+zz7qvy2iPjazQ1IOQmfleK5lYzcQQf24SrINwcldr7MV JdiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760440364; x=1761045164; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kxqMBghotsNAW3z2sKbNmh6PO8mUrbQ9ykLagwcUbrI=; b=Qhp+1QIm3kxuJ2GvFa7kTD47oZBMxVEqk5gPBFlaPgsucwdo8zwoBMqjpOV7I7/qCA F3gWZCu/FhMG/ZOI6TXZnLNZB4Nk5CnvqiddVrAR0Kj0wPLj5qKFuGSyufn6uciQW5bl /VAROHeezxoAzGXdn6ZcCd8r0531RzpNx0me9Rc29HkZEu9zYgA3x/2m8S4Rh87qCi6n 2aiob5O1r91IPqFY64uBWtgX5IINm3wKgcURVtc5GQbkAZ+VJaPr+o9SLdFdvK2tv+t4 GESuL8QZbyK628ehYm1UtRCXLZnY7ZwEFgW7mesroFN/oWmJJgep9WRnA/UXu7KCNGlU NcEg== X-Gm-Message-State: AOJu0YwWeW/IWKbtShivw0QYCW7RU1pDEevUHrEeM+O4S0+/vpwtYwhD nVT+nPHnI1VhDAyw7FTj1lhE2vLwNoo0y7Yy7HHYd969ldPAQAQPsGBsU6BL1TiRZH0= X-Gm-Gg: ASbGnctA25pOVKP5IhfhBsCknm4KiOI7CH3iQUHgxa1dkR7dqOf+2VjA4xWu5XsiREz jXoEE6mU/yANK92uEoVsoYvxKliiv1MBquAkZEqRH91Cd9zHxLZ7fZNf9dKoBODpC54HoqrNM8v LdRdnerOtb6SdYi0/xjgzrVbDZfBdiSFpI9udyv80prixwJXzb8e/PgHmxzbUiL6bGH5SnFkEYi s1w6pPFBcvKYk/XNzXU0ImajrzDYy8MbqOF3KFq6jEqbnoOg2iUJtfmXuFsK3CuWbMJZvO2Lof+ PbVvqg4MfSEBDWFNxHBfBTX2+3abbzzhcLND2UkpTlZFuFwtbWW233/VBqGnnsN6BuDVWUf95TT NyfYPx8cN4pLwW3T6IgnllOtNrMNgQAcsJFRWwhgUcKyKMQ== X-Google-Smtp-Source: AGHT+IHHJHMPJYJ5v7xglCte7DfQ1AWOsH39mv1264aNNKNlWkjYNPKN6crIFVmHw8oD8baC9uYpTQ== X-Received: by 2002:a17:907:94d0:b0:b04:7232:3e97 with SMTP id a640c23a62f3a-b50aa3921edmr2633393566b.21.1760440363678; Tue, 14 Oct 2025 04:12:43 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: David Hildenbrand , Paolo Bonzini , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Dmitry Osipenko , Markus Armbruster , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Peter Xu , "Michael S. Tsirkin" Subject: [PATCH 8/8] tests/functional: add GPU blob allocation test Date: Tue, 14 Oct 2025 12:12:34 +0100 Message-ID: <20251014111234.3190346-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251014111234.3190346-1-alex.bennee@linaro.org> References: <20251014111234.3190346-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::62a; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62a.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760440428298154100 This is a very short microkernel test that initialises and then maps and unmaps a blob resource. Without the other fixes in this series it causes QEMU to hang on the unhandled unmap. Signed-off-by: Alex Benn=C3=A9e --- tests/functional/aarch64/meson.build | 1 + tests/functional/aarch64/test_gpu_blob.py | 73 +++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100755 tests/functional/aarch64/test_gpu_blob.py diff --git a/tests/functional/aarch64/meson.build b/tests/functional/aarch6= 4/meson.build index 5ad52f93e1d..f6ca33b2be4 100644 --- a/tests/functional/aarch64/meson.build +++ b/tests/functional/aarch64/meson.build @@ -26,6 +26,7 @@ tests_aarch64_system_thorough =3D [ 'aspeed_ast2700', 'aspeed_ast2700fc', 'device_passthrough', + 'gpu_blob', 'hotplug_pci', 'imx8mp_evk', 'kvm', diff --git a/tests/functional/aarch64/test_gpu_blob.py b/tests/functional/a= arch64/test_gpu_blob.py new file mode 100755 index 00000000000..a913d3b29c8 --- /dev/null +++ b/tests/functional/aarch64/test_gpu_blob.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +# +# Functional tests for GPU blob support. This is a directed test to +# exercise the blob creation and removal features of virtio-gpu. You +# can find the source code for microkernel test here: +# https://gitlab.com/epilys/qemu-880-repro +# +# Copyright (c) 2025 Linaro Ltd. +# +# Authors: +# Manos Pitsidianakis +# Alex Benn=C3=A9e +# +# SPDX-License-Identifier: GPL-2.0-or-later + +from qemu.machine.machine import VMLaunchFailure + +from qemu_test import Asset +from qemu_test import wait_for_console_pattern +from qemu_test.linuxkernel import LinuxKernelTest + +class Aarch64VirtBlobTest(LinuxKernelTest): + + ASSET_BLOB =3D Asset('https://fileserver.linaro.org/s/kE4nCFLdQcoBF9t/' + 'download?path=3D%2Fblob-test&files=3Dqemu-880.bin', + '2f6ab85d0b156c94fcedd2c4c821c5cbd52925a2de107f8e2d= 569ea2e34e42eb') + + def test_virtio_gpu_blob(self): + + self.set_machine('virt') + self.require_accelerator("tcg") + + blob =3D self.ASSET_BLOB.fetch() + + self.vm.set_console() + + self.vm.add_args("-machine", "virt,memory-backend=3Dmem0,accel=3Dt= cg", + '-m', '4G', + '-cpu', 'max', + '-kernel', blob, + '-object', 'memory-backend-memfd,share=3Don,id=3D= mem0,size=3D4G', + '-global', 'virtio-mmio.force-legacy=3Dfalse', + '-nic', 'none', + '-device', + 'virtio-gpu-gl,hostmem=3D128M,blob=3Dtrue,venus= =3Dtrue', + '-display', 'egl-headless,gl=3Don', + '-d', 'guest_errors') + + try: + self.vm.launch() + except VMLaunchFailure as excp: + if "old virglrenderer, blob resources unsupported" in excp.out= put: + self.skipTest("No blob support for virtio-gpu") + elif "old virglrenderer, venus unsupported" in excp.output: + self.skipTest("No venus support for virtio-gpu") + elif "egl: no drm render node available" in excp.output: + self.skipTest("Can't access host DRM render node") + elif "'type' does not accept value 'egl-headless'" in excp.out= put: + self.skipTest("egl-headless support is not available") + elif "'type' does not accept value 'dbus'" in excp.output: + self.skipTest("dbus display support is not available") + elif "eglInitialize failed: EGL_NOT_INITIALIZED" in excp.outpu= t: + self.skipTest("EGL failed to initialize on this host") + else: + self.log.info("unhandled launch failure: %s", excp.output) + raise excp + + self.wait_for_console_pattern('[INFO] virtio-gpu test finished') + # the test should cleanly exit + + +if __name__ =3D=3D '__main__': + LinuxKernelTest.main() --=20 2.47.3