From patchwork Tue May 6 12:57:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887756 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2529118wrq; Tue, 6 May 2025 05:57:35 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVq/wOy7gUj//vZb5invHzgTJA06sRtA0gv1TLy/ktUkjhRxHkVRKtqBV3ueUSnCeVZD+SHGg==@linaro.org X-Google-Smtp-Source: AGHT+IExxU2KtQsI10h6RhEgJxDkm0udWDavhkgL5QzsQedIS56vz9GxMNyo/z4FAUBD/wFcgl9U X-Received: by 2002:ac8:7d88:0:b0:48a:b879:998d with SMTP id d75a77b69052e-490f19bebfbmr54131061cf.13.1746536255195; Tue, 06 May 2025 05:57:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536255; cv=none; d=google.com; s=arc-20240605; b=M9sEwMCx8ToXXzf7PT/Wa8lM3VL/LsLaGu1H8aJc8/Weh2SlZXjFed4J6/BJSrYQA/ tgGvcDwHVDOC0cyyVrd7RsHW7Qroub65VFf0l1ww7uyMpWuMC+sw1S/Wty6uJqF3d0Mb SnaLFUgo4xuw18QQoEF+etcVyIxajGJOEJqhMTwvkFVAh+X+N4/RtuGhh/06lNbo+ybO 8QAzeoiICPEBcb5NdCqY3hhbwKIAV2/8kFdJt8GhuZS+Ty1JD8VkviR48HaUy51WZtb9 SiAbCeSflyAfFSop7iotSPL2Rt6yzQHkSW1UGki9nzudMW25qPOXw3MyFrnQV9m4zQkV qL2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=04euknF6hiqA68aLuG0ENQyvrvDpr8jpqKbpqudmzQg=; fh=VwaCX7udfecFJRCCfDJILJbxRRdCzThaa1bWgu6/gTU=; b=Ti+YuqX8rPCvIuLwSa8a9INHZvAHyy9J0axxtrBmU3HHWlV45cJ2NnjtBRfVFn24zK rCe8CL2vEMCfodS2TXcR4Ud8VPHW3urjt3MUAtHUY94Fn2lW+6WAyeflt1XIrebCcQAQ giJewp+WFsm7jFGwPqgZzeoOa4uOvvHHgH/p0v8AaYCKXOd8qnusE0B9BlpGkBdYgnie r7VGkEpJHtMmRnXPCCafut3LE6Uv+p/662/JbzjLTr5b2M3RfOTJTkvw7kKyEM2F5WK5 S1yDDgBt7ZQpSoUQY86DLX9bsSqURNLZaT5Pw2DmcPtNwomzr+9XM+Y9qO94aNLT6foA 3TSw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=EyuQzSy6; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-48b98e0b7f5si118870301cf.596.2025.05.06.05.57.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 05:57:35 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=EyuQzSy6; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrR-0003OI-EP; Tue, 06 May 2025 08:57:25 -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 1uCHrO-0003Lf-Nt for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:22 -0400 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrL-0003ov-1k for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:22 -0400 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-acb2faa9f55so746801266b.3 for ; Tue, 06 May 2025 05:57:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536236; x=1747141036; 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=04euknF6hiqA68aLuG0ENQyvrvDpr8jpqKbpqudmzQg=; b=EyuQzSy6XqSFcBaBycfUQ7/1FCXDjdAySxnbj44O/VhgF5bKEeXxnEKL+3wvVOE3KQ SzyeExeCIRWM8wrBuwHejde6VhU2yQT47+dC6fAJXqT7sT0dSN4/WPPenKLS1WFcay5b pOsttJnJjIdWLWdAP2SSQ8Mcxis5YIz3MF/7+pYpJXnYop69Wbj3OPgIp+LsFMyZPZH6 TWgaMrbxWsoKdopDgSKiEh70U//pRQ622FtJJOUq1mBaPrX88A83sPph5fiZ2mDzy3vW 3ROnzM6f1+aMRr9eSokpM9Y+8kzWBl7watxDKCyYd17P8dtLPs/K73XEntWokrUI1pRO 7YhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536236; x=1747141036; 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=04euknF6hiqA68aLuG0ENQyvrvDpr8jpqKbpqudmzQg=; b=Cc90VbF2HLNqkPJVZtiaaMV0JxtvXcJ9w9qhGliKWyEiJY652L9ZpYTdMpVVwPGRV3 ogI4g2zAOhG8ZCV1WJ9PUhuIeePo8Tz2C9pHhL2xCoiDkBRtuQ/31WY79onO14i+35ky IoIQQUAK46AQeLlL/oUdasKPjxAiADMpqoGJpvTHNl1Lin56WzCVpJkO/IWWin/tK0hg SrdHTPWEBmYnmzSRy/SlxFHgRb6DCkN+YsEZHDZtCsHjKUSyGR57s2TDhiGfGXEWST35 P4S/UPSgUUvcxhZ6TP2+Reg3yMBwMOzCeA+TgBdUBCaswMk05e2I4HY9mmhy5v9dMcG6 omYw== X-Gm-Message-State: AOJu0YwtMwXaGPuPCW+id5eTt0JZf8WeMRaF8uIQJicVwPNXn6NbLAoA h2wllTtokmpIaOL1vIlkXQvOSE5rPyqcdZIJ8z6+WTqCEBGkyAphn3LcN4clkR4= X-Gm-Gg: ASbGnctsQlO9cDlAI3y/18q691ArL/qiBtPiupGUlDrxJdTXomViR+LJm38XQ6mqYj6 luKlJr4sfOmdumXWZiq9fpFjz8UbA4HEPoAgy78Xy+csBcNjsAAzZrlWuzB2l4auXOd4jeZpiML xjhpWj6G+Tj9rhg8jTVNV72fcz+ASNtX3ES8W0FtILs5+Oa8iYo85TetkVif8xle6Rl8Oo+VO5G ULu0eQ8j8XJ4r9cwdRUqXKcGMz8O25g3ioKvFyep9lodX/agT8fW4GA7Y7W5u0cyOwY+AMkmTcC V84LL45C07RBpz7ilUbVtHilqQ2GMdE+rIZlbLAxrT4= X-Received: by 2002:a17:906:564a:b0:ad1:8e78:3d79 with SMTP id a640c23a62f3a-ad1d3466a76mr236444966b.1.1746536236541; Tue, 06 May 2025 05:57:16 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5fa777c8b12sm7766567a12.24.2025.05.06.05.57.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:16 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 32BA35F947; Tue, 6 May 2025 13:57:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss Subject: [PATCH v2 01/14] tests/docker: expose $HOME/.cache/qemu as docker volume Date: Tue, 6 May 2025 13:57:02 +0100 Message-Id: <20250506125715.232872-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::632; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x632.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org If you want to run functional tests we should share .cache/qemu so we don't force containers to continually re-download images. Signed-off-by: Alex Bennée --- v2 - Share a whole .cache/qemu path. --- tests/docker/Makefile.include | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index fa1cbb6726..3959d8a028 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -185,8 +185,10 @@ docker: docker-help: docker +# Where QEMU caches build artefacts +DOCKER_QEMU_CACHE_DIR := $$HOME/.cache/qemu # Use a global constant ccache directory to speed up repetitive builds -DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache +DOCKER_QEMU_CCACHE_DIR := DOCKER_QEMU_CACHE_DIR/docker-ccache # This rule if for directly running against an arbitrary docker target. # It is called by the expanded docker targets (e.g. make @@ -195,7 +197,7 @@ DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache # For example: make docker-run TEST="test-quick" IMAGE="debian:arm64" EXECUTABLE=./aarch64-linux-user/qemu-aarch64 # docker-run: docker-qemu-src - @mkdir -p "$(DOCKER_CCACHE_DIR)" + @mkdir -p "$(DOCKER_QEMU_CCACHE_DIR)" @if test -z "$(IMAGE)" || test -z "$(TEST)"; \ then echo "Invalid target $(IMAGE)/$(TEST)"; exit 1; \ fi @@ -222,8 +224,8 @@ docker-run: docker-qemu-src -e V=$V -e J=$J -e DEBUG=$(DEBUG) \ -e SHOW_ENV=$(SHOW_ENV) \ $(if $(NOUSER),, \ - -e CCACHE_DIR=/var/tmp/ccache \ - -v $(DOCKER_CCACHE_DIR):/var/tmp/ccache:z \ + -v $(DOCKER_QEMU_CACHE_DIR):$(DOCKER_QEMU_CACHE_DIR) \ + -e CCACHE_DIR=$(DOCKER_QEMU_CCACHE_DIR) \ ) \ -v $$(readlink -e $(DOCKER_SRC_COPY)):/var/tmp/qemu:z$(COMMA)ro \ $(IMAGE) \ From patchwork Tue May 6 12:57:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887765 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2531674wrq; Tue, 6 May 2025 06:02:24 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWZX1DYOXePLLJnrKLylEWKdKZdrp4fbrTcqMGwOuj5xPyiT1FQzpn+RwqZvjh0mmkgloyNDA==@linaro.org X-Google-Smtp-Source: AGHT+IE6UWRMB91qA741/URC90Ggef9KsSmIICqPrr27XA5q0mNbxfQ0uF9ZoYhH0DgkNo17ftlR X-Received: by 2002:a05:620a:25ce:b0:7c5:3b3b:c9d8 with SMTP id af79cd13be357-7caf09b9504mr443280885a.45.1746536543769; Tue, 06 May 2025 06:02:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536543; cv=none; d=google.com; s=arc-20240605; b=KgzlagiVVIYh2NmiikMzjmecCXd5YOHfKf25HS0Bb5ueky3NyZ3CbVtM2h+3uX0CRz 7titwsPpXgmlN3P736q90E0nRODmy8p9o+n31SF9pahiSl01iq/nqrQ9hrwVNXYZWtXg 0g05hvFjlKJW1mYklyxJ/OU+Zn2n20NIDcrtY7uqTOHiS1b33D5Nuy6588IdWjC7c4Cu bTgq+JdO/rwjKXw+zOG5h5TUJaooTJG67hreNN0O8srHYX4a7QmwHMsOGEvlIfbmpyAp o49SYICs5x2zXbpwdnGvG1akSJjBCWS+RaG7gSUhRMQddVsmjYjsz4vXG63mAy3knv6C GHJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=xmmx2H+LdPuwPpPfTDalf+G1CH5iRie4jXtiEjHdkxA=; fh=VwaCX7udfecFJRCCfDJILJbxRRdCzThaa1bWgu6/gTU=; b=YvGJJI4EJFRYI+sChfWbdE9OYlceIRX/YNWkJDUFXGzsAfTbeqdR+GHPDcKmsTKCVP G5xRZvOTqSpV5HyGej9n4yh5/R6PBfQWzsKkrEl8a1N16V0FsA5KN2klKeOdN6KorHcq 3CtzMrdXvjxBgsG17GDZbslzsHdmFTBSsC8uq2tfCpQCd3SilAohhFxhhbTsd7I0cyDq 1+Mo06Hv1y9cVFAKDS4Ik4nITDRKdTx//Id2AeO4d9MMO/aDnmExtXYmLKY1WfUNhSL8 JNOLO00C0OXHCMAH+Dr9tHCat68zKZu8YkOByiEfbXE/zLPo0gCxwEycsQQgDPyM3vCD UVEg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tZs78Evo; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cad23c9208si1106372985a.145.2025.05.06.06.02.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 06:02:23 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tZs78Evo; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrT-0003QV-Sq; Tue, 06 May 2025 08:57: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 1uCHrO-0003Lj-RV for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:22 -0400 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrL-0003p3-Bn for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:22 -0400 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-5e5e0caa151so353663a12.0 for ; Tue, 06 May 2025 05:57:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536237; x=1747141037; 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=xmmx2H+LdPuwPpPfTDalf+G1CH5iRie4jXtiEjHdkxA=; b=tZs78EvooNHtfPJJaxiTgJ5RqoeQqYKoKTtycd9a2f/6oBMzU+YS0GDD7Fuetl2AUz HYKkfGUHb1G/om+gIplMBx+e2SzxfI3NRoL5xjG6V5OQiheJOJdlgT6swdIEI+3XNzPE 8ocLKvxJXWAAXPeIMP//FHa1NRaxfh52GliRYgmA58hRkuHPUtFHbkLuPWdhxaeJaJDV CPhXXk2w0P0aJHQXenwyzpeHT4qnbFoor83dFLW8OeN/Kve8tkS4prg3JKStZVOtBjJa e6tZssy5w2Ou9o88eLBSghXkwg0C8+R5C4J2+YQLBFa4gZH/JUFaY5gixIBkm7t1COoJ i4gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536237; x=1747141037; 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=xmmx2H+LdPuwPpPfTDalf+G1CH5iRie4jXtiEjHdkxA=; b=ZNG/GwifBWtlUkPUP7HDAtVvZCG3Cb0le3X2ADMASLqqgY/w1K5/5Piym/XjzAFxPN TeP/r0iMTVDxaNtUFjD5Zf2IHivkdoyrFCkzgEzNaWUPRSJxHeBm6CmH6VET6qSXw0IV 3cYxgu/Khgm177JrOwFMV40HDUqsv3PU2FZh7NU6rTnbubMpCl7y4lRNGdJtB6aoTzR+ UGMpvGBRaOLBke8R25IBpgLnxNDdLVyz5fCU1NaHy86Es058vyBhRRJnrpTqvQRX7nqa XU5skIQ7QseYfbpfBuzuIbsIDfq+L3SR82F6iPEVQoqKVZFfMXn4NLmD0yP3NF5E0hOT lwtw== X-Gm-Message-State: AOJu0YwXRUcDOcT2YCGdoJXmekpaKCqXc+uT1Qyx3wjdDfIgLR4AJvt0 tqG97L9FiFv8L3HtLWzQKlv6nR+g96mVb5UFiI5F+tuzcJ8AUSOwU4tNW1ymBXw= X-Gm-Gg: ASbGnct4xxHEvdgbv9YOK8EDZzwHWpi2ltgKlb71+pb9L98ZVa95U/laTISHgwcZ7TJ 07HJ7/fe9We06R01DK1vT7Sl4NkTOxjuX2Pi9QCK5FDpdSlbnPyz7hpqTje1rZCehfbuZlBTuyX upCjRK7z4oLVmxfFfgeRkH7B923/C176lRWeRUhNFvku5oaGYch+vj1z/BRf6KkIuKVk6c1DdZK WyZv8/Y/wEtJi2Un/izNV+PqQBf7N2CldM6FmBF82mpETFLmB30tKw2M6SjXDGpdTWrIgalXdSW tRtIS9Luk1fGxpCWVlZD0gMAiZd3TFpUvVvyc1mFw2I= X-Received: by 2002:a05:6402:13ca:b0:5e5:b388:2a0d with SMTP id 4fb4d7f45d1cf-5fab057ac43mr8713854a12.15.1746536237215; Tue, 06 May 2025 05:57:17 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5fa777c5c3asm7512193a12.21.2025.05.06.05.57.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:16 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 478CF5F9E0; Tue, 6 May 2025 13:57:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss Subject: [PATCH v2 02/14] gitlab: disable debug info on CI builds Date: Tue, 6 May 2025 13:57:03 +0100 Message-Id: <20250506125715.232872-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::52c; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52c.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Our default build enables debug info which adds hugely to the size of the builds as well as the size of cached objects. Disable debug info across the board to save space and reduce pressure on the CI system. We still have a number of builds which explicitly enable debug and related extra asserts like --enable-debug-tcg. Signed-off-by: Alex Bennée Reviewed-by: Thomas Huth --- .gitlab-ci.d/buildtest-template.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml index d4f145fdb5..d9e69c3237 100644 --- a/.gitlab-ci.d/buildtest-template.yml +++ b/.gitlab-ci.d/buildtest-template.yml @@ -24,6 +24,7 @@ - ccache --zero-stats - section_start configure "Running configure" - ../configure --enable-werror --disable-docs --enable-fdt=system + --disable-debug-info ${TARGETS:+--target-list="$TARGETS"} $CONFIGURE_ARGS || { cat config.log meson-logs/meson-log.txt && exit 1; } From patchwork Tue May 6 12:57:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887757 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2529244wrq; Tue, 6 May 2025 05:57:54 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU+McAz/frNBhtIQyk/s/1xfVM7CGp861mrksk45fzVycH1aXFDbSpTuVV/RHh+OBJpJRwZ8Q==@linaro.org X-Google-Smtp-Source: AGHT+IE1tDoO9ELt+idn2zwiFfR8J4nx/y0naBH0S9p+rTz81ss9nphNf7lIwYPasLHwmrI9taPn X-Received: by 2002:a05:622a:1249:b0:476:add4:d2b8 with SMTP id d75a77b69052e-48c32ac7e14mr328717811cf.32.1746536273906; Tue, 06 May 2025 05:57:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536273; cv=none; d=google.com; s=arc-20240605; b=V2I6XCXZvgszFyHFLm7RV4d1OQm1EuXms87oW6uAg/HugAgE+HswFuwfJ3vUvyXIk0 dm7zHnVnthwraf+41rS3e1tO3n5f3RbCQps2Vc81y6HXG2yy45zNggy1rEVO4F48sohu COnOnrMQ3LMHyOjVN6Ge08y05JqwMSGjjZXRsNUA6tHFvOjopkoDl2vvceEZi4NaAEKC wgp2rFLFq55v6TWWVIJY+3Wm7zZ+vOXZFPSVATK3vCpfLqxhiRwB+HwZVjtSxYP/hxa1 4BE+uPSTWe66PI7o3EMcFADOKRzqYNq47To6ku1FRA395qHmdXYm0hU5tMWp1xoDuSUi jQ6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ndqF6zudXDapLEz8EejCHGTTdD17XbLc4AuhJOdW34o=; fh=nPPUnt04rsc6uo7lz2ijP7TRn0JggR2Fi+Yj7K72Euw=; b=HV2D+UyEGN5Uzjn/52Gusl2arLCWu6bAVfI/xhWeWoc5DmegYvMHv46lB3Nlgovkjk 05vAkr49z6Zs47VILEh0+GpmrPLDjSsCq69EmF4XaDlLGI3Z594Fem6zowf3/Gph/SAo +Zd5XGhZuMCQhlCsgr5CtXbHtH++6vRUa9wgLBY7bA6AtN01p7NCo2YbyUgpGSZQAyTK juL9SDiNJdxAmcyL/OFwgYyr0kYbCZcwx5PRpuY61wGSuJFNaOlVoCbOaf2nvbEpv7qU w4OxXF0ziMz7dVz06XKRglq+Trv7xuZGOAsxGRpyNyRMLzO6kfz9eJFBKgwZhIyCp34p UxMg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ovGS0wQU; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-48b960cf6c4si120631371cf.3.2025.05.06.05.57.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 05:57:53 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ovGS0wQU; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrR-0003Ns-94; Tue, 06 May 2025 08:57:25 -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 1uCHrP-0003M7-2r for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:23 -0400 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrM-0003pf-3J for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:22 -0400 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-ac2a81e41e3so1046507666b.1 for ; Tue, 06 May 2025 05:57:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536238; x=1747141038; 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=ndqF6zudXDapLEz8EejCHGTTdD17XbLc4AuhJOdW34o=; b=ovGS0wQUfYtXJnI/64IYIRcTspFX338MgnnTZD/67IQ75MShg7jQCYCPIIdYUdQFuL 8JiBGDj4ne28//LZQcU3LNCPh5DYGy5ZGBdpfHU14Lk+jry96/9IzWTQRMCKVW7an1N1 vB+y643rksVpb7h+fzw35x9HKweXK6Sdk2IA543EIcULC2ggx6zvboJIHD4clS+WE2yA su5zTjM7E9g7T7RKsCL2sz3QBDaXJwyEKhrL5HvgoKIPdiza1Hr0XBXyKJnCY/hVMFF3 2CHzGgDNMLs0HBSufxANx84zc9/sPIxo8m9kkDvce+QgUl2Mh4NwgisorIC5t0rFmouj IjgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536238; x=1747141038; 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=ndqF6zudXDapLEz8EejCHGTTdD17XbLc4AuhJOdW34o=; b=D7q1sB6rLPsq0ZmnZ7F6Xks7i7zOvlsvpdRhPgp1ZtDpK0Qp/lrAnWr/Wrpn2Vb3+m 5A/L/QpwcM6YUZUa7BlxcVY358shRrWX6C1VtSqd0hVrl8GlaH/fEcFwKABjjeDSZNbP 0Ej9D9W1UNUZMOz/CbWbvp5CL7XV4KYnNPgbGWJAxF46Fo1tjnhKTVYbm/wHC69cgS97 TEeMKXDTq/QkxoX09g6fJViv9zjGlrJJm6+FbVLUY+HOYxBdXVhvXnGRoAkjB8qglBve TdPuNNsEZx4vRM6e/5QIx0a92J8gg+6g4YJzE7nrVLk3G8sHsOeKZUDzoV1OifcE/bwi THaQ== X-Gm-Message-State: AOJu0YwHYEKh309b4TnOrkG+Py//NvOys6zmhONkTvVM7fiosgRJfXeH XJ0/SnK9gOamAI4UoWbqhsBqEi2G4pna+eUyKe0dXzsZ6bnnRIYyykLza8DoRmI= X-Gm-Gg: ASbGnctVJ6xaJTk+S0Tpxj6Ai5IF5F5dfv9e0BVexTOZy7pODldIRvpQ81fDocJHZr/ GJ64pa4pUuT3k5dOHUht9q/AzFQNSqad8G82A26UMcSYws8BIzK1YXQPQAqE5XLRemU1FlphnmJ rjK6nPnB48tf7DVopZPchmz0Lw64G0c/UFrljVSEBZxT4CHfi4m2Zq/xDK6GVM6qU0YSDrbSFCP MQDNV/NN+pQkgwOB4A8t4iKF9j2NHwrXJDdBf+ycghsRno8aqxxUHwzY2NCCH2bH8cFxdneoZPc BbS3wp8hBj8+bYwJARTMuKo3vjDz9/jjmhaWBK3FDYQ= X-Received: by 2002:a17:907:160b:b0:aca:96a5:9861 with SMTP id a640c23a62f3a-ad1d4532a7emr296011766b.20.1746536238341; Tue, 06 May 2025 05:57:18 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad1e26fa7e2sm43978666b.97.2025.05.06.05.57.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:16 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 60F095FA34; Tue, 6 May 2025 13:57:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss , Julian Armistead , Jim MacArthur Subject: [PATCH v2 03/14] tests/tcg: make aarch64 boot.S handle different starting modes Date: Tue, 6 May 2025 13:57:04 +0100 Message-Id: <20250506125715.232872-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::632; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x632.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Currently the boot.S code assumes everything starts at EL1. This will break things like the memory test which will barf on unaligned memory access when run at a higher level. Adapt the boot code to do some basic verification of the starting mode and the minimal configuration to move to the lower exception levels. With this we can run the memory test with: -M virt,secure=on -M virt,secure=on,virtualization=on -M virt,virtualisation=on If a test needs to be at a particular EL it can use the semihosting command line to indicate the level we should execute in. Cc: Julian Armistead Cc: Jim MacArthur Signed-off-by: Alex Bennée --- v2 - allow tests to control the final EL we end up at - use tabs consistently - validate command line arg is between 1 and 3 --- tests/tcg/aarch64/Makefile.softmmu-target | 3 +- tests/tcg/aarch64/system/boot.S | 135 +++++++++++++++++++++- 2 files changed, 136 insertions(+), 2 deletions(-) diff --git a/tests/tcg/aarch64/Makefile.softmmu-target b/tests/tcg/aarch64/Makefile.softmmu-target index 9c52475b7a..f7a7d2b800 100644 --- a/tests/tcg/aarch64/Makefile.softmmu-target +++ b/tests/tcg/aarch64/Makefile.softmmu-target @@ -68,7 +68,8 @@ run-plugin-semiconsole-with-%: semiconsole # vtimer test needs EL2 QEMU_EL2_MACHINE=-machine virt,virtualization=on,gic-version=2 -cpu cortex-a57 -smp 4 -run-vtimer: QEMU_OPTS=$(QEMU_EL2_MACHINE) $(QEMU_BASE_ARGS) -kernel +QEMU_EL2_BASE_ARGS=-semihosting-config enable=on,target=native,chardev=output,arg="2" +run-vtimer: QEMU_OPTS=$(QEMU_EL2_MACHINE) $(QEMU_EL2_BASE_ARGS) -kernel # Simple Record/Replay Test .PHONY: memory-record diff --git a/tests/tcg/aarch64/system/boot.S b/tests/tcg/aarch64/system/boot.S index a5df9c173d..a52d28c881 100644 --- a/tests/tcg/aarch64/system/boot.S +++ b/tests/tcg/aarch64/system/boot.S @@ -16,6 +16,7 @@ #define semihosting_call hlt 0xf000 #define SYS_WRITEC 0x03 /* character to debug channel */ #define SYS_WRITE0 0x04 /* string to debug channel */ +#define SYS_GET_CMDLINE 0x15 /* get command line */ #define SYS_EXIT 0x18 .align 12 @@ -81,10 +82,137 @@ lower_a32_serror: .error: .string "Terminated by exception.\n" + .align 8 +.get_cmd: + .quad cmdline + .quad 128 + .text .align 4 .global __start __start: + /* + * The test can set the semihosting command line to the target + * EL needed for the test. Keep that in w11. + */ + mov x0, SYS_GET_CMDLINE + adr x1, .get_cmd + semihosting_call + adrp x10, cmdline + add x10, x10, :lo12:cmdline + ldrb w11, [x10] + cbz w11, 2f + + /* sanity check, clamp to 1 if invalid */ + cmp w11, #'0' + b.lt 1f + cmp w11, #'4' + b.ge 1f + sub w11, w11, #'0' + b 2f +1: mov w11, #1 + +2: + /* Determine current Exception Level */ + mrs x0, CurrentEL + lsr x0, x0, #2 /* CurrentEL[3:2] contains the current EL */ + + /* Branch based on current EL */ + cmp x0, #3 + b.eq setup_el3 + cmp x0, #2 + b.eq setup_el2 + cmp x0, #1 + b.eq at_testel /* Already at EL1, skip transition */ + /* Should not be at EL0 - error out */ + b curr_sp0_sync + +setup_el3: + /* Ensure we trap if we get anything wrong */ + adr x0, vector_table + msr vbar_el3, x0 + + /* Does the test want to be at EL3? */ + cmp w11, #3 + beq at_testel + + /* Configure EL3 to for lower states (EL2 or EL1) */ + mrs x0, scr_el3 + orr x0, x0, #(1 << 10) /* RW = 1: EL2/EL1 execution state is AArch64 */ + orr x0, x0, #(1 << 0) /* NS = 1: Non-secure state */ + msr scr_el3, x0 + + /* + * We need to check if EL2 is actually enabled via ID_AA64PFR0_EL1, + * otherwise we should just jump straight to EL1. + */ + mrs x0, id_aa64pfr0_el1 + ubfx x0, x0, #8, #4 /* Extract EL2 field (bits 11:8) */ + cbz x0, el2_not_present /* If field is 0 no EL2 */ + + + /* Prepare SPSR for exception return to EL2 */ + mov x0, #0x3c9 /* DAIF bits and EL2h mode (9) */ + msr spsr_el3, x0 + + /* Set EL2 entry point */ + adr x0, setup_el2 + msr elr_el3, x0 + + /* Return to EL2 */ + eret + nop + +el2_not_present: + /* Initialize SCTLR_EL1 with reset value */ + msr sctlr_el1, xzr + + /* Set EL1 entry point */ + adr x0, at_testel + msr elr_el3, x0 + + /* Prepare SPSR for exception return to EL1h with interrupts masked */ + mov x0, #0x3c5 /* DAIF bits and EL1h mode (5) */ + msr spsr_el3, x0 + + isb /* Synchronization barrier */ + eret /* Jump to EL1 */ + +setup_el2: + /* Ensure we trap if we get anything wrong */ + adr x0, vector_table + msr vbar_el2, x0 + + /* Does the test want to be at EL2? */ + cmp w11, #2 + beq at_testel + + /* Configure EL2 to allow transition to EL1 */ + mrs x0, hcr_el2 + orr x0, x0, #(1 << 31) /* RW = 1: EL1 execution state is AArch64 */ + msr hcr_el2, x0 + + /* Initialize SCTLR_EL1 with reset value */ + msr sctlr_el1, xzr + + /* Set EL1 entry point */ + adr x0, at_testel + msr elr_el2, x0 + + /* Prepare SPSR for exception return to EL1 */ + mov x0, #(0x5 << 0) /* EL1h (SPx), with interrupts disabled */ + msr spsr_el2, x0 + + /* Return to EL1 */ + eret + + nop + + /* + * At the target EL for the test, usually EL1. Note we still + * set everything up as if we were at EL1. + */ +at_testel: /* Installs a table of exception vectors to catch and handle all exceptions by terminating the process with a diagnostic. */ adr x0, vector_table @@ -100,7 +228,7 @@ __start: * maps RAM to the first Gb. The stage2 tables have two 2mb * translation block entries covering a series of adjacent * 4k pages. - */ + */ /* Stage 1 entry: indexed by IA[38:30] */ adr x1, . /* phys address */ @@ -233,6 +361,11 @@ __sys_outc: ret .data + + .align 8 +cmdline: + .space 128, 0 + .align 12 /* Translation table From patchwork Tue May 6 12:57:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887754 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2529072wrq; Tue, 6 May 2025 05:57:30 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUn7yffbkPMeutxEsbNnTUvIjnHcGQPgOkNETeokioyYs+OMKWObQWysAsMOu1eCJusb8F6zg==@linaro.org X-Google-Smtp-Source: AGHT+IHoIv8OaPjIY8VqbCqszGawYIi2z2FvhjV8ZY2VwACRV4uSQV9moB5tYl47UqRCd4unTomk X-Received: by 2002:a05:620a:2586:b0:7ca:c9cb:ab1 with SMTP id af79cd13be357-7caf110ca7amr369339785a.7.1746536250549; Tue, 06 May 2025 05:57:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536250; cv=none; d=google.com; s=arc-20240605; b=Nj+Ub1aEYBdpuSMo/epvRVPuA2W9iBtCwEqcVVapN3P9XuihmzBCDPfWIKQH8cixoY GdWtSzmDwJD28AxCHrpAxZtkkFr8cYliasoJOrMMHG7ERxURJUI9ywW928i6+zMM6NZG ssxxK1Pgsr8bM/T/M94940JqLeBPtobA9ScH4rX/L6qAMZXJdrmGlksfWQnvumnPhBb6 1kpuYXuqZzjw8ichbGSSX3vyF92eBYZY7a7CAiyRY1w5IG1fhswdKdhQY4LI/v4RqnDd H+3LKSBNf2FLl5GflB5pO/ezXZFk/5Rrvaa+hHc6QvKRZ+hi+pwzhmHyeUox+Fc0O/Mf Y2SA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=qji5LRZL3vUhQI65hD0nE6G02ZiXW1fOZnaFdsDm4Mo=; fh=iEbm889TVBUAXHuDDRcHRxVO1Y1+GdXUv3j4rAAL9/4=; b=c02GotCdObdDIlMngZYq9htvlhz3ZpRPAKpzRlqok4d8rX283shasGfPRQJ2IReub2 1Su4CHZ9Ds3IuKMRwYH0kh2K+E+OOUW6jlwpWVtYTExFMYLIXCtW4DLFU3oD/d0QvXcU GRjo+J4dKYmE9nRJNFn11jF1oy4sbCZ5W6VcHnAVzh/j26OpApTV3BFkKAo6pzylQpwn 25ztNwIzVnGnMkmjMw6XvvCmbt5awIXpRtuRO33T6+UFouEWp/2F1VZLIkq0cGKWaM11 yfHhon7dwm88aVYludMroCSieFdT34ojEh7sFlscH5yzfvP/izRSbNadtAQDBZo33oAw r4xA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=mVxlHsl0; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cad24326f9si1188392985a.374.2025.05.06.05.57.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 05:57:30 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=mVxlHsl0; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrO-0003LY-AS; Tue, 06 May 2025 08:57:22 -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 1uCHrM-0003LA-UX for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:20 -0400 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrL-0003oy-21 for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:20 -0400 Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-ac2aeada833so1085759966b.0 for ; Tue, 06 May 2025 05:57:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536237; x=1747141037; 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=qji5LRZL3vUhQI65hD0nE6G02ZiXW1fOZnaFdsDm4Mo=; b=mVxlHsl0YWFWlvISnqvrjxXsHG7Lj1VGw0UGlwEFMQMBfB7ZB//8Viw7Br4iYUO6m9 VnpWyfNPJaumRbAx3gVHtgGbnLAawOrb2whJdYGku/+/vOBgWby5qQAWZ2H0FSEoj663 cOZVziAIqhPtubWUkhwmQLgxPB0+gN0X85oaG7uxEhtYQmLmkfKUz6cZl9YBPY/XoUjD CPxsiYn0vmv17LJSmVUgBENCg865s+DnalLk8U/43wAZfS3ytcSv3gsJ/VQfZDsnWuOE gZeTgS3wbtVKz2kNoD6POypoKIP4tQ9cInG+iiNJaLEUpWwif5vCEhloIIhsNWvNbo5v 9myw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536237; x=1747141037; 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=qji5LRZL3vUhQI65hD0nE6G02ZiXW1fOZnaFdsDm4Mo=; b=DKs6cMcEOBHSzP0rFeBVGVRrQ0M57OIAfIB7UjpOiSmfA9IEjU7c14bBzYvAtK598R 7TOS/SRN+WeCx6bsJo3ehi9M+PUlBI6O059EnUg32+yUfSroeyNvG8gscpQI404EHQ6n h/wNhvNFDiyK036pE/FNriscagQdntWwoMP9HZ9DRXmE9gr/ov8vSoZTdwmh9YKHYazU VtCcwIUFi8cYDR/mxQ/TxoXGWVE6mYb2Oalv9mbq3ZO6EAYLpAV3va7HsF3De8TmcZXO LBv/OK+GKUiEmQetK3y1AXWp0viNge3Ra0WLen7k/K199R9tmDrdYeotoPqMnySUhbJ+ Gjdg== X-Gm-Message-State: AOJu0YwPMcgvGAR16tLsFqtoMMLRUrse4AIoJHA/qMrxOmcrj0U7e74b UurlAWsF+0AF7UVkG4Cj4M9ZWXme7zOs7ZjkXk8iQvdp6zc+CqRU0vhc+c9kbnQ= X-Gm-Gg: ASbGncvQ8j6oEd6L25sDNFvFfrC3uAbJ6wsKPg2gHAK0dlusAspcxL+IeYVdsMBn3sV 14MGqi1jVhQMoC757klEZmL+56mtyf28LLIMoyskNFIRIYZAnF1WWTShgpkWmvU73+hflz3yb+Z v8h/hoSxmDK1f8JFlZjNVsTlnlWlym3HwxOxhhjAc1qmDldTjzMtl3muLuOQxHxBHnRBrfZlhpP CAqADqaKwoBF/mg3qXKhvSDocclS23CMaMS8FliPhoMdaK+AW1D3l76Hcv1OxEB6a6tQfU5HkLh denXr7LPU0vTFGglb5NT5rupr3SrrkT5rfB4FtZxEEhrlFljiDIbow== X-Received: by 2002:a17:907:3da7:b0:ace:be7c:11df with SMTP id a640c23a62f3a-ad1d2e9747dmr343258966b.6.1746536236868; Tue, 06 May 2025 05:57:16 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad189146fb4sm708483366b.10.2025.05.06.05.57.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:16 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 761AE5FAAC; Tue, 6 May 2025 13:57:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss , Nabih Estefan , Richard Henderson Subject: [PATCH v2 04/14] Running with --enable-ubsan leads to a qtest failure Date: Tue, 6 May 2025 13:57:05 +0100 Message-Id: <20250506125715.232872-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::62d; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62d.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Nabih Estefan ../tests/qtest/libqos/igb.c:106:5: runtime error: load of misaligned address 0x562040be8e33 for type 'uint32_t', which requires 4 byte alignment Instead of straight casting the uint8_t array, we use use ldl_le_p and lduw_l_p to assure alignment is correct against uint32_t and uint16_t. Signed-off-by: Nabih Estefan Reviewed-by: Laurent Vivier Tested-by: Laurent Vivier Reviewed-by: Richard Henderson Message-Id: <20250429155621.2028198-1-nabihestefan@google.com> [AJB: fix commit message, remove unneeded casts] Signed-off-by: Alex Bennée --- tests/qtest/libqos/igb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/qtest/libqos/igb.c b/tests/qtest/libqos/igb.c index f40c4ec4cd..7df9272069 100644 --- a/tests/qtest/libqos/igb.c +++ b/tests/qtest/libqos/igb.c @@ -104,10 +104,10 @@ static void igb_pci_start_hw(QOSGraphObject *obj) e1000e_macreg_write(&d->e1000e, E1000_RDT(0), 0); e1000e_macreg_write(&d->e1000e, E1000_RDH(0), 0); e1000e_macreg_write(&d->e1000e, E1000_RA, - le32_to_cpu(*(uint32_t *)address)); + ldl_le_p(address)); e1000e_macreg_write(&d->e1000e, E1000_RA + 4, E1000_RAH_AV | E1000_RAH_POOL_1 | - le16_to_cpu(*(uint16_t *)(address + 4))); + lduw_le_p((address + 4))); /* Set supported receive descriptor mode */ e1000e_macreg_write(&d->e1000e, From patchwork Tue May 6 12:57:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887755 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2529100wrq; Tue, 6 May 2025 05:57:33 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXkMofLvr0G3nepNjIfEGtPY9Fb2ZH3tRn5k3zVx0j8xlsO+/Tou/VTkELj072wd3uguPaj/Q==@linaro.org X-Google-Smtp-Source: AGHT+IHbOqWk8pLJ8w40U6DEPPIWuMqx3u+PXdz5wcC8qm5jbHjhJs1wPRKwff2tdBWsfIMwqXAX X-Received: by 2002:a05:622a:1303:b0:476:75d0:dbed with SMTP id d75a77b69052e-48e01839fc2mr174115641cf.44.1746536253038; Tue, 06 May 2025 05:57:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536253; cv=none; d=google.com; s=arc-20240605; b=a3EoIlMbWOIC/Rzf0gLPpVyn5jwOULCsg1esd9E/X0fUNA511eEFOkj+KUvafrxqVG VryyIec+ZMJFKIFEZeky64UcGpBoYpOb0vRxFFuPxBbMpNa5yz97/mfGriOgSMh5FlJG KGXJegat4GPKL+4kfOgy6BT+QtB7Qbx5853WA9fdtdv7Zr+pK5ovXrvOHChyNsPmDoLA 5HlfHHC7z/DrkGbjZ313fAd8Su9eH/AHR3jfd6qJ6OGBQPLmLtJMJU4fWsnfamJ+y7Rf eZUO5Wzcw622cF+jaq81B8ZUGzHvMYo/x3iyFzmtUw9+B+26o61pdp/UTBlbpBvS8HeO +EWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=iZ7ZcEntGPm6gGVefEyriA5YLtZ/h9pxvxLBafrRxrE=; fh=VwaCX7udfecFJRCCfDJILJbxRRdCzThaa1bWgu6/gTU=; b=hcnJoKhYJF56KxSMJb0hEFGFBRjZjpXqriToje7GShi/o2XvGGXV+VMW+R8DQEQCk4 FyQzJZRPUg5oczBEnCpQWWjc8QBmiCiGMTDO8/OsaieYCF4UzPuwJVf+CxSEfV5tYkxL tA8smsr+0qeb/QtcxBnAgc3+iusmOodO/xQrk2x9u3vPzf8EbbIDefDJsOXecacal36g y8Lo+DWieRoc3hDZdC5X4JH7uLfJSqAq50f9RKFOqQLWIOXlyGY6xiX4RnzKIfJbBLKL 8KfClblerEHeSMRZArFwgKhBXswKxe2SeyzFZNC4oNQXoV6CJupKPmYRdsck9i3HZMlU bgIg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=DHz9IenC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-48b988328f2si109335871cf.453.2025.05.06.05.57.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 05:57:33 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=DHz9IenC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrV-0003T0-JO; Tue, 06 May 2025 08:57:29 -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 1uCHrR-0003Ox-Tg for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:26 -0400 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrN-0003q7-NF for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:25 -0400 Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-5eb92df4fcbso10851604a12.0 for ; Tue, 06 May 2025 05:57:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536240; x=1747141040; 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=iZ7ZcEntGPm6gGVefEyriA5YLtZ/h9pxvxLBafrRxrE=; b=DHz9IenC26s6aHkYTsX6PNWZf4BQ/qprEX1qf1vK7G2qRgRPrys8hSbUWy9Lu8sFFv 26Vsrc8AD3slWLgKNE3OLIQgB5azHIvxCQs5r4WtrkscdrQ1EWE/5jRfzjUEwgPWzpqK iS6ZyoyyH442YkSEpSzIyLC6RUXoQFEBPtoYyEM1dZ8VSLidf2fM43Tkfy3iNNDGGtpR 1mWtB3k49Z0ShFf63jH9D8Iks1dJSfkuodEa5CHRSPRHuHdBk02PIEPqdwlPglDob3eq Ll+37URJg8HidcgjosTTHQqS5fISMq7DoxbOum59M/vZewtTGE9pH0bCTExF3UujMtOX r2Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536240; x=1747141040; 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=iZ7ZcEntGPm6gGVefEyriA5YLtZ/h9pxvxLBafrRxrE=; b=e8MSJTMogXvRMvKkoa7/8OjR2AhgdUKaAufWv9zBn9e1XOPB7Gsvgov6sxH7GsQKAH dXF2PQ0G7PGSPnfvQYAr7/b9wbl2joRVoPPJG2LyFdj/G3tFX03rWxvIriD8oVg23w/g gs6H6w9p1AH0sCwb0Qsyak2tUhSOviNghAJB6QcKv9tG1PKrD2ZiLSZ39HlqGLmc9nIr jRXzelYLq79LJqbnildYNXK+eKFHtfe3Q9P2Xnr/4NdgR0xlTin23ypWszAOvbTpWbHh D9h6lqRvnEyr3+KFosyoFi/jEJocJo7CJEzHvPgPEpfiafGrmApclAcVyr1cInBYUXpc RyKQ== X-Gm-Message-State: AOJu0YxGmInBT9RdxARSmikN4oGvyKEv2U8SVcSIKtyDRRAclDg+FHof /+fAhtySY6zh4YfAEJi86xO4CBRGq7Ep0kV40K8LWceSG01Rcns2SWPwKocFZ58= X-Gm-Gg: ASbGncscBixwxKy7YazaV/bNkfZKmFflkvE9fTk5MWGWtlcDysJLMOjjxKlsM4ajtqm OIy6oLJm4gTRVy+yYZSFitNurRCk1GTZYwBsCESsz36AMiUCXC016nvuGMEvqmsIHojJZGvIqY3 sUN5fV/kmGTIS4+xgMQaRp0gMgqaJ6fGieOYLz6AdLZJhw/u42JhBxYBax8SmkcfIf4T6WOKEp7 b7rcgNs2OZIA2l4Bg9idqk63K5ghaG/dNl/QpABKlM1A+0KaA4iRdC8uvHeB1E0uSSJcNs8Wjz/ coXsdwmNrZ3Gw9bQZZt95i6/cr09HdHgoW3SNIFJkuw= X-Received: by 2002:a17:907:7f8b:b0:ad1:8d47:f5a1 with SMTP id a640c23a62f3a-ad1d327b0c8mr332156966b.0.1746536240089; Tue, 06 May 2025 05:57:20 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad18e2d7a88sm642870066b.36.2025.05.06.05.57.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:18 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 8B8AB5FAAE; Tue, 6 May 2025 13:57:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss Subject: [PATCH v2 05/14] contrib/plugins: add a scaling factor to the ips arg Date: Tue, 6 May 2025 13:57:06 +0100 Message-Id: <20250506125715.232872-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::52d; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52d.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org It's easy to get lost in zeros while setting the numbers of instructions per second. Add a scaling suffix to make things simpler. Signed-off-by: Alex Bennée Reviewed-by: Pierrick Bouvier --- v2 - normalise the suffix before a full strcmp0 - check endptr actually set - fix checkpatch --- contrib/plugins/ips.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/contrib/plugins/ips.c b/contrib/plugins/ips.c index e5297dbb01..9b166a7d6c 100644 --- a/contrib/plugins/ips.c +++ b/contrib/plugins/ips.c @@ -20,6 +20,8 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_version = QEMU_PLUGIN_VERSION; +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) + /* how many times do we update time per sec */ #define NUM_TIME_UPDATE_PER_SEC 10 #define NSEC_IN_ONE_SEC (1000 * 1000 * 1000) @@ -129,6 +131,18 @@ static void plugin_exit(qemu_plugin_id_t id, void *udata) qemu_plugin_scoreboard_free(vcpus); } +typedef struct { + const char *suffix; + unsigned long multipler; +} scale_entry; + +/* a bit like units.h but not binary */ +static scale_entry scales[] = { + { "khz", 1000 }, + { "mhz", 1000 * 1000 }, + { "ghz", 1000 * 1000 * 1000 }, +}; + QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id, const qemu_info_t *info, int argc, char **argv) @@ -137,12 +151,32 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id, char *opt = argv[i]; g_auto(GStrv) tokens = g_strsplit(opt, "=", 2); if (g_strcmp0(tokens[0], "ips") == 0) { - max_insn_per_second = g_ascii_strtoull(tokens[1], NULL, 10); + char *endptr = NULL; + max_insn_per_second = g_ascii_strtoull(tokens[1], &endptr, 10); if (!max_insn_per_second && errno) { fprintf(stderr, "%s: couldn't parse %s (%s)\n", __func__, tokens[1], g_strerror(errno)); return -1; } + + if (endptr && *endptr != 0) { + g_autofree gchar *lower = g_utf8_strdown(endptr, -1); + unsigned long scale = 0; + + for (int j = 0; j < ARRAY_SIZE(scales); j++) { + if (g_strcmp0(lower, scales[j].suffix) == 0) { + scale = scales[j].multipler; + break; + } + } + + if (scale) { + max_insn_per_second *= scale; + } else { + fprintf(stderr, "bad suffix: %s\n", endptr); + return -1; + } + } } else { fprintf(stderr, "option parsing failed: %s\n", opt); return -1; From patchwork Tue May 6 12:57:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887758 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2529681wrq; Tue, 6 May 2025 05:59:09 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV6Hmv9ztj5rtvvCSSDurxlKXvt73RBTFWGGOwtzM6RPuvK4ShE8Y4ccdtk9xjm5+YKRijbSA==@linaro.org X-Google-Smtp-Source: AGHT+IG5RF8IO1OAEnl0m7mc9/VkOCxAV8D4cPUmpXP932ixIiSNVVIMbtKPgIQcX2CIZTNpZTeP X-Received: by 2002:a05:6214:130d:b0:6e8:9b52:7a1d with SMTP id 6a1803df08f44-6f51573039cmr291186426d6.8.1746536349191; Tue, 06 May 2025 05:59:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536349; cv=none; d=google.com; s=arc-20240605; b=JDBaChmc0RFFf9cagsNeZVbFrlZFeoNB2U7NgATHOdlEb5kORa688g48NxROJk9Rtn fxfbwlnZxqJ+w2cET4osuMelypTnU/tMqjcZmwiWgS7jTYlt1b22ttJemBgzzKtWayyk hvk88bHJTZD4wbIPXama00EA7Dt6VkS1/IUgh9dAYRIUzXUeUnZveK2Dcl1qlDwBj2P3 gnExHt+d2WuyVvhzgQKgGyKxCq+jml20E7DYeJnGwARA+FqT72KC4+IjMQCzcQsxUAW5 ehVD9maCOMJB8Q9LRpzmkf9Jjm2BZiQRfv0kkqA492r0g+krizVqkMjRAqCaoD4mCrxi e09w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=nQXjIARbCIkupLYqHmy+1qVS0rGy139+5xHnakSfpw4=; fh=VwaCX7udfecFJRCCfDJILJbxRRdCzThaa1bWgu6/gTU=; b=csmQ9JGrN9nXthNuokhKZKRAzlMxshuL3GIRx9vRNhsO3IFrBYn1dPYYCW5d9KKPWr xbt9C0idh8lQWpuAqdQm4uTMpL2tm22UoBCI8EMHTRFFlnyu43A7eCkgK99OFQXgZqCp kK+yinpg/4cfgOhFCeo5iyTn/WJCLE7IvgwQwktWTWNPczXTwFhmA/D4UfVwt4QtGC6G 2EI1viAoUVjCuFsJWPrk5vihl3OwxGAxhclOia8859IZ5fKGgl7P+Mdj5LiH+EEYQOpJ 25yhs8yx4XnHE3r3KSly5c56Fcd3XgVKuEKGqV2eCzH7x0jQ6tvv1+mmbSHw9G1FbN3i +kLg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FSe+5agb; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6f50f4775e3si111754696d6.242.2025.05.06.05.59.09 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 05:59:09 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FSe+5agb; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrf-0003da-Jh; Tue, 06 May 2025 08:57:39 -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 1uCHrS-0003Py-VY for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:27 -0400 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrO-0003qb-Qj for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:26 -0400 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-5e8be1bdb7bso8618511a12.0 for ; Tue, 06 May 2025 05:57:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536241; x=1747141041; 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=nQXjIARbCIkupLYqHmy+1qVS0rGy139+5xHnakSfpw4=; b=FSe+5agbujLgVLnqDbPN1XIWqvMZ2t9VeZwm4Ke9mQ6VKk+3O1Vv2e+Sm7RXzZE7g2 lmsp1tEZ4rLI1CKCXq/1o6q09D9sbT9FeGngNN7AWsEdRoL8QcUWEjONTLrzKLPwmCKD EN7VUP/yolQpbd5p+/uDS/lx35vpmDgai/qcThIzvDqfZyQs/CmJJH6qcOd8Wf8sKuWy QdS9RDeqE2YhXnrDLHYj3syNSRfdg63pBscT3pUpBLcsNyzq///K1XOlQM8fn7omJh2y XF38t3azK2wsQmWmcyjhRs2Wfx3Yrn+cVoWOxXJgCcYt16QItC+mmSrWZS2dxsGuNcZe lmtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536241; x=1747141041; 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=nQXjIARbCIkupLYqHmy+1qVS0rGy139+5xHnakSfpw4=; b=kleXJdn5m/h4OZOoysmp6eIvcC18UKBzSwHYuSpQQopUTGGB7VzQ/kT1DocO7x4Ipa a0jGgY5VsTv5ko8ye3vxzyTkk/04zhJiB8X+AGttVyi5EVLjZF61yk3BLW71HNB4p0ux M2FFV3Y/ijgeFtYKaX5coI+DaxnfzUJWQPbubJ9akpqt1EjzyclovZT3obZ4IeMtuHf1 Xqm8N0XO3IwMS2AtA8oeICR7ZxPHgEDozbCxwiGf1DrkGiJ43xgNlVG01yzyPWDyF8SP QuwnR2zAV5Lsq+GK+Q9Bd7GtC1DPdAY2YVAJW5QbjT0cFldXttI4DMdCb6c5Y0ggl0dT gjbw== X-Gm-Message-State: AOJu0Yyw9jEcbC0TOkXCrWqFnffSBtjepaBVHk+V9GNuiVWLr0p5x/ws DCSwY7H9QmhK8zbSY4OOydUm1MRBYfd4ui0baqBMcLT2lLgT6VGt8yeSUbSfEug= X-Gm-Gg: ASbGnculDimL3sRh53xVy5sk53DQpl+tZtD3U0SIIrpFXuBdJifkgLlC6qhnKwc7stX 2xC0Ehp0aHbJjXAUBQcnVjBo8H95IziZmucUmGq+5tM8aG1is1gE0Lprgv8umeeugIlx4S3f5t0 jqRiuLS7DB19SKMVTd6VFbs82MAyoqXkYo2t/r5+fPf97ryykaaDhDMsD24f7b/b25iEdCElH87 0yQer77HF4FX2aCSOP2WKjqBWL3SU2+RmQmGcJKKsPMmIjdHHSzzRyKh7US1jLnJLD1lkmX8D6I uSMTZE0htjwL2QOY+TdOFdwtGrp8ipUmlHSi3slS598UXvwqFWlVZA== X-Received: by 2002:a17:907:9722:b0:ace:4197:9ac5 with SMTP id a640c23a62f3a-ad1d45abbcbmr290531066b.27.1746536240744; Tue, 06 May 2025 05:57:20 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad189508c83sm702095866b.139.2025.05.06.05.57.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:18 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id A30485FAAF; Tue, 6 May 2025 13:57:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss Subject: [PATCH v2 06/14] contrib/plugins: allow setting of instructions per quantum Date: Tue, 6 May 2025 13:57:07 +0100 Message-Id: <20250506125715.232872-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::52b; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52b.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org The default is we update time every 1/10th of a second or so. However for some cases we might want to update time more frequently. Allow this to be set via the command line through the ipq argument. Signed-off-by: Alex Bennée Reviewed-by: Pierrick Bouvier --- v2 - checkpatch fixes. --- docs/about/emulation.rst | 4 ++++ contrib/plugins/ips.c | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/about/emulation.rst b/docs/about/emulation.rst index a72591ee4d..456d01d5b0 100644 --- a/docs/about/emulation.rst +++ b/docs/about/emulation.rst @@ -811,6 +811,10 @@ This plugin can limit the number of Instructions Per Second that are executed:: * - ips=N - Maximum number of instructions per cpu that can be executed in one second. The plugin will sleep when the given number of instructions is reached. + * - ipq=N + - Instructions per quantum. How many instructions before we re-calculate time. + The lower the number the more accurate time will be, but the less efficient the plugin. + Defaults to ips/10 Other emulation features ------------------------ diff --git a/contrib/plugins/ips.c b/contrib/plugins/ips.c index 9b166a7d6c..62ed8ddd08 100644 --- a/contrib/plugins/ips.c +++ b/contrib/plugins/ips.c @@ -147,6 +147,8 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id, const qemu_info_t *info, int argc, char **argv) { + bool ipq_set = false; + for (int i = 0; i < argc; i++) { char *opt = argv[i]; g_auto(GStrv) tokens = g_strsplit(opt, "=", 2); @@ -177,6 +179,9 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id, return -1; } } + } else if (g_strcmp0(tokens[0], "ipq") == 0) { + max_insn_per_quantum = g_ascii_strtoull(tokens[1], NULL, 10); + ipq_set = true; } else { fprintf(stderr, "option parsing failed: %s\n", opt); return -1; @@ -184,7 +189,10 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id, } vcpus = qemu_plugin_scoreboard_new(sizeof(vCPUTime)); - max_insn_per_quantum = max_insn_per_second / NUM_TIME_UPDATE_PER_SEC; + + if (!ipq_set) { + max_insn_per_quantum = max_insn_per_second / NUM_TIME_UPDATE_PER_SEC; + } if (max_insn_per_quantum == 0) { fprintf(stderr, "minimum of %d instructions per second needed\n", From patchwork Tue May 6 12:57:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887761 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2529992wrq; Tue, 6 May 2025 05:59:54 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX5RNJ4Ch57iP/7vpAsXSKlGCJ08MhNBVbY+FPruJSed/dUuLVeZPzqZB2VwU+X1gb7sDmzew==@linaro.org X-Google-Smtp-Source: AGHT+IEwHiPKSEGNt9LiZlPaLsFEgIG6Lg60Uw6oN4dxMKDcI/NCPJ1nH+bafZGcGvoCb0Lz4LLp X-Received: by 2002:a05:620a:6403:b0:7c5:4194:bbcc with SMTP id af79cd13be357-7caf11395famr402678985a.29.1746536394691; Tue, 06 May 2025 05:59:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536394; cv=none; d=google.com; s=arc-20240605; b=joErgp/aJf6pwyS3KRe/hYF3YPQMPCF07cBQ3aPtZ7Nah8/FJe0pMOv+w21tkr7rN1 4a6mkc5q+GDY0qqb+SExwH7xm23xaOLxQ5tVo4SIX8h66x0TNcAJN6BLoGiJBRwc+RJV IKDgDNNXLBzmCbQljcARPOxKNrEYSPQnQHZKHei4dZt03E5D9o18lqb2JeeeaT5Rp85l Hq2aRxBTydrF0FldbvA/hLnTrk9WLOYpnsOMsZpsO0bPSCuWe3AHQK/vvjWRtfM05yXz sMXtXHBCkDjZBRftdM+ZfWwXKoTvc4EfU6bvBOK9fZ3Mt9j50jqiHcenl4WWHWdWH/cm Fl1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=mrjj3Vr6gOoPCa7cX1AnD90niEKE+Tpmh8nhs9K2Ooc=; fh=VwaCX7udfecFJRCCfDJILJbxRRdCzThaa1bWgu6/gTU=; b=BLDYHyFbM/ObBNDQhTk1aDAAQK4VNnka6Oy5CF3RaRIuSfOCZik2Yfoy/BF/kGiuBE 6uhRGSIFF6xyCepJTwaaXMSrMwlH4HsDelGTYpCpRs0cK0aw+1PYVpTG9rKrQVHcnm8J ZHahD5DnNtiG0kLMxEYZfCpYPICr2mDg3N9PrU860X91HG4VqDVQxWNwVv//nHPRQ0uM 8ZblW2KDY5bB9aBSBAxRcMIPF8mQeux5+5bHInpfEaTnnl8+BtE65dbEPmXmym/crn85 e6ktp6nxSmE7DajnSQtmxYQaOpbbn/Kmfqan7oZ1cJA2M6Kiml2yAJwYmp5uA9pFbUce BYVA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=r6ddQtZQ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cad241feaasi1100090985a.314.2025.05.06.05.59.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 05:59:54 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=r6ddQtZQ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrr-00041F-E5; Tue, 06 May 2025 08:57:51 -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 1uCHrU-0003SH-Q4 for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:28 -0400 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrQ-0003rB-Hk for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:28 -0400 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-ace98258d4dso816661866b.2 for ; Tue, 06 May 2025 05:57:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536242; x=1747141042; 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=mrjj3Vr6gOoPCa7cX1AnD90niEKE+Tpmh8nhs9K2Ooc=; b=r6ddQtZQi1xG5GF1vJaRa5mYn1XLjoVhMke5QvTS02g5TgF2snznSPcEJeeLlojs3l PcRbtYhVzFzsxlq+JTj2djTWXD6pV8ZSdyC96gNHHq5lkrNoeci6bVi/qwrK5NQOVxAA DXQx6Vqw0TFRgGEK0EI2QOUddKA/lpoDXARdkTQW7z+YZrvwt7rXf422bzQmUuky7POq 401hJmzsohEOhKjC+wC4hyQzlo5+hr9BsiNGUsEL8UF1XbFQDzXfhzXxAHfOJQ9rvn4H A4eWCvQ9uvbN2RSWJJB9WinChzbq4dCLuJFNp2IO0TbB3JNVFGkEdifRYfUvNvVsogLL /C0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536242; x=1747141042; 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=mrjj3Vr6gOoPCa7cX1AnD90niEKE+Tpmh8nhs9K2Ooc=; b=ta/E+/84zZU/wbQGAPUlqBhno/g1dQbaE+RBJA8Tk/V7CevgnDkVwP5SA64PnufRoz lOTHmoSs2kvw+zYlySQh/OyF1ahijxGvR0PL6P2ShJc8ef9j5rly/0/xMvCOiERGzGMb C6JvotwpTpwawXW+xfwsdTWyUGe6zbYRauL1XqaaXQTHxAC9gH2WRtfHn1oBpG0XEVtU qlun4aIiaXu+Mot/JMwo//TSRIk+X9UV+QT3VOCl+p1ulJgDNtu7nxJUTsMd6je6Q32R hWOJ0FlUJus48e7ztAGYsNp5Rzp5FkXZpkhJx87aj26NTLo1JnriNczbCtdeZzJ7H5EB jn3g== X-Gm-Message-State: AOJu0YwsmHadshgRfTi0q4zw5tAIa4TiJp8/2lC8fpzgI3/i++HAVzVd rqSyFDPX+hkOu7mAryGs0NXnHXQ7mvnAH0q6Gsur7lH8X0hOOGH1Z775T+x851U= X-Gm-Gg: ASbGncsJBMcoUqlj6hd5Ds2guwlhdSttEhhePcmScqhDEZgQpuy119IRaf7vePLN53w 5UzRiHZMpjnfgrscy29E0P9jLk2WqbiolR9qxe4YNIgdUaRB+oix7OiS2R1kB89H+9narmmd4gE idxQtLmToI+A2lWOGhTw/f78ognGWyA/UevlF/D1veaTabi7C6cULNv0fMJhg/GYKK8xrSAnLl2 pozbUAySBqJausLM2WIBGLo4JhoUZs7vPP3JfQH5ei9bsvkJKqjWHZZp6KSkgrtt/oeqNV6TPy1 fP/H5rPzaZusFG/wigQ53zeS4tOk7kXtG9OxSohTbOs= X-Received: by 2002:a17:907:c789:b0:ace:3ef4:2964 with SMTP id a640c23a62f3a-ad1d46dd5cbmr251389266b.49.1746536241926; Tue, 06 May 2025 05:57:21 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5fa99f321ffsm6857154a12.49.2025.05.06.05.57.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:18 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id B86895FABD; Tue, 6 May 2025 13:57:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss Subject: [PATCH v2 07/14] MAINTAINERS: add myself to virtio-gpu for Odd Fixes Date: Tue, 6 May 2025 13:57:08 +0100 Message-Id: <20250506125715.232872-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::630; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x630.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Seeing as I've taken a few patches to here now I might as well put myself forward to maintain virtio-gpu. I've marked it as Odd Fixes as it is not my core focus. If someone with more GPU experience comes forward we can always update again. Signed-off-by: Alex Bennée --- v2 - s/M:/S:/ for the maintainer entry --- MAINTAINERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index b3f9f2680b..d11f8ac18c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2644,7 +2644,8 @@ F: hw/display/ramfb*.c F: include/hw/display/ramfb.h virtio-gpu -S: Orphan +M: Alex Bennée +S: Odd Fixes F: hw/display/virtio-gpu* F: hw/display/virtio-vga.* F: include/hw/virtio/virtio-gpu.h From patchwork Tue May 6 12:57:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887760 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2529838wrq; Tue, 6 May 2025 05:59:34 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVEb+rLO5EvcM9GJBo2RsLqz4U7zn/hSPl23tyrO2IKiwZWRcNxIxdRFxiY+583w7oADeXIcg==@linaro.org X-Google-Smtp-Source: AGHT+IF9kLYPqv4MuEyk36fZos4Rz55s61OsvRdQlzQyq55ZTc5AtLOCY5SoTC98Pd/Z4QQvLUwY X-Received: by 2002:a05:622a:5913:b0:476:8d3d:adb6 with SMTP id d75a77b69052e-48dffdbf5dbmr203180841cf.23.1746536374320; Tue, 06 May 2025 05:59:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536374; cv=none; d=google.com; s=arc-20240605; b=k8vhsC3Wa05L7O2z6+FzTux4wQerOpYzxOfOu9JQIyoKABcZ4R0W5lmor4TQQ9yrX4 TBbGl2tNRm2+eaSabOK/+iYcZg76Btwo7pmC8Usvst7tvUpV3rntsYKihfSNu9sATPz5 1CKny5sLglTTOlSD30CVR5+H7/XydHW2gP+R1LT0kg7j48StmxBEcVtaQ5MMgh7nw3H6 mYCp2djytYOU8C+qghosDnezFwLj95Lz1NotILSA90whDk+8YO2wpOplSkvyzxS5Lzge dN4seEW4gwg5TUYUdXiU2JSRTVL2TUDuLSp02bjQMYoCejDSa+zwgCq9w9ESNiOBCeb+ SHgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=elY/IXRnQQgsjOfPo4J8YHl+Bpt9unCMzIzNNjW7sw4=; fh=VwaCX7udfecFJRCCfDJILJbxRRdCzThaa1bWgu6/gTU=; b=g4SakSP/GsYw+/38A0Q9hZz1iyv2nWrNxHtma2Pt8+6cPIdr+vqL5v2AgEdHW+XOOu b/ZcX6Ol1Iw0SFhvoFtXfdVU7lInwaZt2FP/PFYSEo8HZ4zheIxhwExwKPABR/hWyHRB 1chwvg0mKTeWX4HXzkaZ7KlE1RfUdIXJ65Rr7bmB29FkHdNi8ewd4cDnfT52fs/RwQJ7 hHC5XiEbSUOfh8cZ0wdQtWDsvsKPehkm+Mvkw8bBx1u+P/gAU3T+CX/USkomnka15pyq 9KSEboXFjgvFUszLpzQqTsim9nQq6hR0GsmSMSZ709ZY6KWT1xMvuJbsdpz53G8Ol1K3 6Biw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Sp0VoX+V; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-48b960cff77si114207381cf.96.2025.05.06.05.59.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 05:59:34 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Sp0VoX+V; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrU-0003Rd-Ll; Tue, 06 May 2025 08:57: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 1uCHrS-0003P2-2G for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:26 -0400 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrO-0003qQ-QR for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:25 -0400 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-5f63ac6ef0fso7906144a12.1 for ; Tue, 06 May 2025 05:57:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536240; x=1747141040; 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=elY/IXRnQQgsjOfPo4J8YHl+Bpt9unCMzIzNNjW7sw4=; b=Sp0VoX+VAzNE+wndinF3z2amtQoaDpnwvg5t2i+uDyHmaBlwAvKAbwg1mtpg+hI/FA Xy6rPY9GMpMTx5h4Va9iD0uJMllHA57rhDM4S+5Jau3y0/EVuYP+15e+hSMbap7uGOOw RA+zib1bEQwMtPS/dlEF5SXKCzr4SkKsvFh5e5wE+RSA9PFQk02t93Pe0mW+LrV3GKYp Hl+zbyqFQJVsHRxBhcVtBjYmzJDUsCqgACGBwTEW/ttqynuB3osHe8u50GARzXFaD3jk 5mvT09gyvpboDLD05mSLRQ3R7m/B9vtB16QlLZ7N2KqyATqZX7NLQWMcFD3UT/P2bN2W GOag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536240; x=1747141040; 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=elY/IXRnQQgsjOfPo4J8YHl+Bpt9unCMzIzNNjW7sw4=; b=bUy4iwUO607kFACYBdUcvvPHX2atmDkzo+P2dsYhaPJLVhmwtfe3ZSjgC03nwYNo02 AL5o/M/JooYDJ9Y/K7zEUyjmdLKT3N1cdodItgQGuRV4FGL8RFXGMrFbHcgqQTEjron9 xbDQuZw0n1rEVaJcJH1ly7aLvPM1t08BzqiZcImG4wMHwBbJ6CsRLxU/Ufydoo3SxrH9 ngik8NAfIkEoODfS2bmvcoEtI8S17M8Rd24o2p0dRUmCVgmunRinIPrDsF6NBpF6RrZN Wlg899By+B0d0y5caC5Sa+oVFNpM3k8S78sFqajVWZyPwHaJxM3sEwFRmfHbdRfLId7p A/eg== X-Gm-Message-State: AOJu0Yw19Ga5TbQFBktyCtKbUB2O3Wswrt0ktWYEsw3oCcZj+G3nrAtC uKFeBtYmBVqGTjEeBUgfSdEoM4uFma2yFKCNKL1r85u7V2aJIu2YSACsPJ7tNqw= X-Gm-Gg: ASbGncsKxNr9EdE32m+ZoGZdQHF4ZRdHWp3Ws8XxgwcP/2zXSLhYOVV9GIZdUBMxVd9 b+KQEiPXV3sbVkNDLwm5LpHR9uSozpZQ4kI/n+oyVcPpX4lBqvnr1aOzmeKgWILszoujUAighQU GSaOx3D4T2AXBbU8amlfOvjKfoe/vPlga8+yvxiNzK5wwbzzwkac+OEKc3m8EDLcX2QPYbjzoA8 bVTbd01XlI9zTJA4KUCuJ8ZYWV7kyfj3nHUhgeSIzl7+makP2jS5dcbbZrEE1bWM3+R9h0B4LYI gAz6/oXc1TkJbuf+SRhdoQlX9zXBvV0CWWmDa2dTrY4= X-Received: by 2002:a05:6402:1288:b0:5fb:181c:232b with SMTP id 4fb4d7f45d1cf-5fb615240c1mr2390371a12.6.1746536240418; Tue, 06 May 2025 05:57:20 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5fa77bf3f01sm7499100a12.70.2025.05.06.05.57.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:18 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id CF7165FAC7; Tue, 6 May 2025 13:57:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss Subject: [PATCH v2 08/14] MAINTAINERS: add Akihiko and Dmitry as reviewers Date: Tue, 6 May 2025 13:57:09 +0100 Message-Id: <20250506125715.232872-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::532; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x532.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Thanks for volunteering to help. Cc: Akihiko Odaki Cc: Dmitry Osipenko Signed-off-by: Alex Bennée --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index d11f8ac18c..2df6c09894 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2645,6 +2645,8 @@ F: include/hw/display/ramfb.h virtio-gpu M: Alex Bennée +R: Akihiko Odaki +R: Dmitry Osipenko S: Odd Fixes F: hw/display/virtio-gpu* F: hw/display/virtio-vga.* From patchwork Tue May 6 12:57:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887768 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2532312wrq; Tue, 6 May 2025 06:03:13 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVqMSLjdvnslELDEcNdkTrmMtQaAy1+M3AnxcM8751hd7sDD+iIKBsaOl0XiSIeKanpv3e4SA==@linaro.org X-Google-Smtp-Source: AGHT+IH3PgIAR6ywWMaKmWBKGZqSED85fAhMyiudjYLLOhnsLFeSVSDoYvXdztJykmvtMn0vJMVI X-Received: by 2002:a05:6102:1501:b0:4bb:9b46:3f92 with SMTP id ada2fe7eead31-4db1478a004mr5802336137.1.1746536593280; Tue, 06 May 2025 06:03:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536593; cv=none; d=google.com; s=arc-20240605; b=WLOXsi0AwAKFIB9a6wsW+NIirQV/31dVs5iC0xARntBG1PFDGNxMxprXX93tOeCqQJ LU18IrX/7l79Y/NWQLDIkzt+PrHmHQBTvu4pIZUZ/Btl4jN5WOXyuD4DmaJLDvcJ4dlH aD8Wkf1aEaSST4tRCtXIEx9GkZsiI6vrSTlx0NazVvZIAt4GW0ljswsGH5EdLggjAggD T5dJIhC34OgzuofeBpOTRy/4JmQb8cWNXQhM4bf9nnrRhieCSX1hTLAM5tF4vPERDBbH sFQgv61uVs1jTWqQalKhiQau+9BNbXhpAvy1GHrydl9UIsG1gpDjv3ODK8djqjSD7zhv qDcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=prKtOm6WcF+MO/JIEf9B+KJu4Pq11tFhYp9uWEc/J/U=; fh=pBkY2umQwbyxemKEwlnphCieFL04bfu8q3GqBAwbzX0=; b=O8aIpxQJq5/ZEbb24hgYxBuo35Xz590fKwlmqr8Ynpx6DWpIYU0zTo9mQA4QNTQGme Pw4eJHsSTgdGEtNVHhm351ik/aXT2j7KEi/7RaF6uzNZf5dzyoiZ0C/3zJ5LBHrG15mp CpgoCbMsHKBSHfbpa7bZfGPeMEEC/Vqifp3hitMRpjxkVmumMe5bWci8OXIVPikHJbqU pfAWizvX6pDV+RIKiKrgJTeQ9Sn76AHmJaLbs1GlVHyiujdzBrJ71cneTM2+n9pIINlO jyqYnasMxMA5tgg9FeOswWMyG/r7q6xzHfsjpGJXWQ80qjpW2LFqBhjmRHyYr1hIG2cd dgcg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ChFyE9um; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ada2fe7eead31-4daf230f040si2390258137.201.2025.05.06.06.03.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 06:03:13 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ChFyE9um; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrt-00049c-NT; Tue, 06 May 2025 08:57: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 1uCHrV-0003T8-Jw for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:29 -0400 Received: from mail-ej1-x62f.google.com ([2a00:1450:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrQ-0003rV-TZ for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:29 -0400 Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-ace333d5f7bso1060081866b.3 for ; Tue, 06 May 2025 05:57:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536242; x=1747141042; 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=prKtOm6WcF+MO/JIEf9B+KJu4Pq11tFhYp9uWEc/J/U=; b=ChFyE9umoV2/RMMO5e5uN3BwMLVfJUGFg1+xGHOiKWjdpFxzvIazCGXmINXquySt37 2DiTfPGGBFkCdYZjcsyG987y6TBnEF5S8ZcPfEA0RB5X5IpeCvvdtpJYSgci1szK6eFb oPU/DPIJGSVnm7wdVO+Ot552SLQOrXcjS64siRCbaF1eUA0ElDdgUkzKdSeSX7HWXz5T Buv1j5jrCGf2BdEvyhd70jHIDTbg0RbHOIF3kNwe6lk8H+j/UW8vU6z3CT6ZPZ7Ojsyk sikgpn7MpSAaj6Pk/mnyP2TDoEVq5OUTVKNJBofPSHThZ/Gh7uAhHX36jJoJohxAhZcI XSyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536242; x=1747141042; 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=prKtOm6WcF+MO/JIEf9B+KJu4Pq11tFhYp9uWEc/J/U=; b=ga8XLuV97DFPLv6mzhA48sRtprKarIjUcjoiX/S5vRWYV1ka2jP0L39BYKNE+pxX+E RH5kdPd3VrhKDDlGMs1m51UKAm7SxxatRSd7+Q1IoyAL8tvW6H/hhqmcp+mE0grHgUxB ILfvC3vQX+NWqqQjKYf9FJwuuaG7RFrP87XegGjvBTCHc7f2fFeEqoSmTNj0lMzQjPWz a0X0YR2oFOfpzJ+KWH7E2fpNQYInCHqhAGH4pC1dxO5BD0fJYrkMAjy9RVeIrcFbxF41 Y6/IM2tX4ghjCxfk8CA0/jXJsENAt9N4scYZixeC2uE0AWEDWJXah904GaDd4XjiKBob a1RQ== X-Gm-Message-State: AOJu0YwDHlrBBjxKZZOuGEMM+TNIYyN9RtG2rUSt2V/oWRZV4tBUXH2y H7oS2U3YZbfNtaFDVA2H29HE9f40XbGJtxh9iwcSTdcggNvRx3GZncI2R3M+n04= X-Gm-Gg: ASbGnctzZpROUAkf5KfAc1NeVH4RKQY280RRrHT/6EkmyQ3Sx1MgwEvCgDMw2e8fQ9g +yBaqV25rnl7qzyNHpkjahV34TtSC79x2B2F8WnmS2YzJyAbpHJbtgMfOpKOLeiFy6ORqHHaiOT CEMdX9YFGu/nQ4NW4g00fnTf3zLnXISKP6etpl0zfjVj5NpXhcHGXF4BHk9nkkrvwjMm6aptof1 +F3GDE4padXWxLA6FdZ3Wxp4rV40h1p2tKRQIeAvJByGrM2xu2yZW3WSftJXh2Ag7CngVd3UdwJ GqUIlDZ7AdmGV9kyjV5E3W1d3GhNQSXWj+99LJPG0ak= X-Received: by 2002:a17:907:9628:b0:ac7:391b:e689 with SMTP id a640c23a62f3a-ad1a4b7ec83mr940574766b.59.1746536242621; Tue, 06 May 2025 05:57:22 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5fa77b8ffcfsm7678656a12.64.2025.05.06.05.57.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:18 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id E7F485FAD2; Tue, 6 May 2025 13:57:15 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH v2 09/14] hw/display: re-arrange memory region tracking Date: Tue, 6 May 2025 13:57:10 +0100 Message-Id: <20250506125715.232872-10-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::62f; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62f.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org 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é Signed-off-by: Alex Bennée Message-Id: <20250410122643.1747913-2-manos.pitsidianakis@linaro.org> Cc: qemu-stable@nongnu.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 fbbf4cf911..b3cef1acb5 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -783,6 +783,7 @@ struct MemoryRegion { DeviceState *dev; 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 145a0b3879..71a7500de9 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) #if VIRGL_VERSION_MAJOR >= 1 struct virtio_gpu_virgl_hostmem_region { - MemoryRegion mr; + MemoryRegion *mr; struct VirtIOGPU *g; bool finish_unmapping; }; -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 = opaque; @@ -73,14 +67,12 @@ static void virtio_gpu_virgl_resume_cmdq_bh(void *opaque) static void virtio_gpu_virgl_hostmem_region_free(void *obj) { MemoryRegion *mr = MEMORY_REGION(obj); - struct virtio_gpu_virgl_hostmem_region *vmr; + struct virtio_gpu_virgl_hostmem_region *vmr = mr->opaque; VirtIOGPUBase *b; VirtIOGPUGL *gl; - vmr = to_hostmem_region(mr); - vmr->finish_unmapping = true; - b = VIRTIO_GPU_BASE(vmr->g); + vmr->finish_unmapping = true; b->renderer_blocked--; /* @@ -118,8 +110,8 @@ virtio_gpu_virgl_map_resource_blob(VirtIOGPU *g, vmr = g_new0(struct virtio_gpu_virgl_hostmem_region, 1); vmr->g = g; + mr = g_new0(MemoryRegion, 1); - mr = &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 = virtio_gpu_virgl_hostmem_region_free; + mr->opaque = vmr; + vmr->mr = mr; res->mr = mr; return 0; @@ -142,16 +136,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 = VIRTIO_GPU_BASE(g); MemoryRegion *mr = res->mr; + struct virtio_gpu_virgl_hostmem_region *vmr; int ret; if (!mr) { return 0; } - - vmr = to_hostmem_region(res->mr); + vmr = mr->opaque; /* * Perform async unmapping in 3 steps: From patchwork Tue May 6 12:57:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887764 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2531466wrq; Tue, 6 May 2025 06:02:05 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVHbrfLIftFpGVoqRgppjuNWWRLhDc73sIJ3wVEc0WIzswiST1M4mo6uI9U3JLYvo/NnDWIjw==@linaro.org X-Google-Smtp-Source: AGHT+IEnnPxo67jLftgKSvbkj55v7nCLKLRJeLQqXZPcCUBhnbPKt5MyLreUR+cIQG/T/Xo5utZs X-Received: by 2002:ad4:5c4c:0:b0:6f4:c237:9709 with SMTP id 6a1803df08f44-6f528c9ca62mr227498906d6.25.1746536525171; Tue, 06 May 2025 06:02:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536525; cv=none; d=google.com; s=arc-20240605; b=GEDc50FBkVUMcWP6FFG0l/iG08fnk1vQDG33dYbF/phxv0fcot/SLoECeUGcQnADKt 7nT1cB7J3kJsqAnn+YXsGajSbazV7b3NkEcKnkcuin1sCq6RaWfyarOqE71Uwz31vS99 PO7k/Ebm42q6bjgY4cfqQMCqKk4ahE0VY80DBiIOMOgEqDJwP4CkmNomirVRiBnBDmqF Fal5D/8JrgHn3qD1GZmKns1kNnzicAt5WOgrJSWS1e7SaqNBAowLIMrgAh0v0D9+c7yk ox+CfYMG+MmlYVvC4J9fQVtZ66fnkspTv9fqFXAq3aWUFRx3NS0n5d5x+imkG/uhMCna yAmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=vC8n191P5j8mUKL+6H7GfxpWwzkXlFDtmwixiEivZfA=; fh=pBkY2umQwbyxemKEwlnphCieFL04bfu8q3GqBAwbzX0=; b=ZDadd4fnhlAqXWurdshh6TVoGoGQgLCOurgYOr2cTpRGbo2L3Ff7FH465dUmeVjgOm XHR9c0EXeyQo2NBsSuuf1jdn9+1HAfeFzCNiG6pucagvehpO3wBlhw8fV0fewarkWNHr 1ugXLggYIOA02qvDd9tB9IVfYCSwS8XYPwbN2TrBIl+Vg1+ScCYQjS7bYMVvFSBM3su3 5fmTyQolH37vkPAKBXI8ulKx4wv7I2LOw0FCDdlFdDfakOpkEjG/k+aM0leStXtDfhHv fLpRls+npQjnrsgEb1vlWXyfJ7MWW/B4FMrKXQoCyovdW8wOu6j/f7lPGigbtDQQz1Yc h8XA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=O9bX+vmQ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6f50f4c2e00si113562406d6.505.2025.05.06.06.02.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 06:02:05 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=O9bX+vmQ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHri-0003j3-89; Tue, 06 May 2025 08:57:43 -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 1uCHrT-0003Qr-Ps for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:27 -0400 Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrQ-0003rO-Aw for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:27 -0400 Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-ac2dfdf3c38so1019526966b.3 for ; Tue, 06 May 2025 05:57:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536242; x=1747141042; 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=vC8n191P5j8mUKL+6H7GfxpWwzkXlFDtmwixiEivZfA=; b=O9bX+vmQ7gmoTKDTsai+semI13YbChAKizm11M0oKduL4B0mCx2e0BTdCXX2T/v64a 3JyYWChF/tEenkHnnZGB9ZEk8nv65yC76NH5WHsvcrDPMMuZgdPr5pcx55dFlIXrNJRY SjmmDAQQoOzoK2dbPSe7gi89N3wQvXYYQ43E9gQyEY45DosUvO7K+LeYawWZ7oIjhwpM yBuY7Hnq/5PPwHVevYCTsI8YNDbb4/ry99tzDc6HswSgGdzH1JucWJcoY4iVnyiXCSXF w3ysd6u8USGYuMJdDSBghI7ct0D+NwjWxjKHqVd6oNbJct+jVstQ0hOi3Lfui4N5S5Dq r6Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536242; x=1747141042; 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=vC8n191P5j8mUKL+6H7GfxpWwzkXlFDtmwixiEivZfA=; b=iE31u25n9yJLYV03LQGylWrSUCFd0HhomiWhyfXI2Zo6muP6U+EfGxMYAU7y3uYic9 gXhW2T5Nl3rCTy5Dr55BbC5G55pW/NuW2sMxmyJGKSkzBnpfJAM8IXoz8sCUmm2zCqV8 wcjwXRmSTIVX9JM+MJzK36qEam4E4gb4k2uWDEogBQLRcKuRu6zOmoCyxHHvM87OXpjx DfwStrvzz1KZKVBaKZvC0xa9fDuxha7Kvpx7PsGu1nIOsuWUxFyON9dP2PtE0zKfPRml qkjiph7+1Eu8yxVUmTdJq5HlZqqXLD7uhzoEXkYcWYcZP6ol8cfwBBvwT4PXpbYhqtET KWWQ== X-Gm-Message-State: AOJu0YzDByWO62jKj+UJJ86xI16ScR0PIBsrYBTK5e39orTPmA+yWAwh McDJCVvVmuvNvT42WwXcyFFWoHc7aYnozEO8fd27Ir6oeFv8WJYHfpLwXmIhFDk= X-Gm-Gg: ASbGncvmta6lx3QZrQeXNyLpymE5tXkTwJ+mQEl3Mcafa7jjF5ib0ladKGG8+mfjTvX /5M38RUAUhY2oztjYWtDku/3Js1HOP1hUe7dqEuda3nlaclsMsBwuW9pvyDzJUqggBi2szPnGw7 6Zyz3jfhKHKFTkYA7LRXOzyPt/e6ovgWQdZE2UbagLwbBX7WWKejJPh9iW2vfuWyUkgXZayFGlb rD06PSCCwYVjlYID3aDwFAp57xrOqrETXEdwdfLvron7rbCcXZ5hfKYLqG02G59dSfQtCMgx+1F IgXRR1h/gsOnBHhS6qR/Zy5CzeRzcncebtPMWFcwn3k= X-Received: by 2002:a17:906:40d1:b0:acf:c:22ca with SMTP id a640c23a62f3a-ad1d346eb02mr234030866b.1.1746536242292; Tue, 06 May 2025 05:57:22 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad1895410b2sm687743266b.181.2025.05.06.05.57.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:18 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 0ED035FAD9; Tue, 6 May 2025 13:57:16 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH v2 10/14] virtio-gpu: fix hang under TCG when unmapping blob Date: Tue, 6 May 2025 13:57:11 +0100 Message-Id: <20250506125715.232872-11-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::634; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x634.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org 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’s unmapped: 1. From the main context, the region’s field finish_unmapping is false 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’s 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’s 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ée Tested-by: Alex Bennée 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 71a7500de9..8fbe4e70cc 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 = g; mr = g_new0(MemoryRegion, 1); - 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); From patchwork Tue May 6 12:57:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887763 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2531465wrq; Tue, 6 May 2025 06:02:05 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV3vZrRHBEzfnF+hRwYXKY9Ozmpp5NqEBxKavO0DntaNHP4H9XCNutxRCe6y1VJbNJ51j6PKg==@linaro.org X-Google-Smtp-Source: AGHT+IGflY1xzMdEMf41CUIVJVWkhclAM2I9TnabwusoqzAqeHku/yVeQwI2fp0b2/zbEoZDzT6r X-Received: by 2002:a05:620a:4082:b0:7c5:50cc:51b3 with SMTP id af79cd13be357-7cae3ab473dmr1412402285a.33.1746536525077; Tue, 06 May 2025 06:02:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536525; cv=none; d=google.com; s=arc-20240605; b=LLLRw+IgiYgRSzIW4ItjqFeSOFFy48/tZzvX0Smq/w0FiiK5a1WejFcqtJRP6n7rxN TM79oGOszLZGbREPANRz/Xzt+oeDiG6TET78i6OYZKRjMM5QLrWDdwd5mS5TmEJye76A JYcp9eeJl9mxfZnZXlDPiYDg5l0zI2Fhbs9w6bZmKqU4dyDEvGs9QHHjwibFZLvew99c L3StDJn8bl51/9m+1SawdKdNahAEIYpv94hb1xsXw9y5FzaGHcZw70BAZ7eYE3USwql+ WmdNA/TQh9WXpOr6BgfLEbP7bZQPtOKhJqpZEeDncaBAsAeT5VHJek3bHRUSuvMy/yz9 yCFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ZKjH7CjiJYzujGe3Nf/k6lUsudRskeBEN8uYYCNZGto=; fh=pBkY2umQwbyxemKEwlnphCieFL04bfu8q3GqBAwbzX0=; b=aQP5RFHtEM731Qb/2mykM3qHOJQ6N4DZdEE9c9KoFnm758RQL3SB8dTQm9TGzDQ3OH RuvWvVofJJPEZalyRdyRslbnOC81eyqp+ER4lRPThJO6XhSovXShI1CVTuaGyxNq5Dmu 7ATMNgX3agSNOlIcOl0V1DCfljdEpacUDfB3paPyIAm6JE1BVlzq4q37viENgHDINB6V J2Tt5A1u8Yn6P0bLtO8lBrjrgNs+LflmAOPwDcjqZdcwvj7vxOITuRReGdoyCtcpqOl5 xZn9vjWVSqcAEtvzLtkWi1CFsE/f0uBej9bPRuHLRmNlgsc+zUjl5irmPNi2BHRwjv3A UQLw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=owVp5fRV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7caed401386si338973385a.504.2025.05.06.06.02.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 06:02:05 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=owVp5fRV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrr-000415-Dv; Tue, 06 May 2025 08:57:51 -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 1uCHrW-0003Vj-HS for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:31 -0400 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrR-0003s5-IG for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:29 -0400 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-ac2a81e41e3so1046532066b.1 for ; Tue, 06 May 2025 05:57:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536244; x=1747141044; 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=ZKjH7CjiJYzujGe3Nf/k6lUsudRskeBEN8uYYCNZGto=; b=owVp5fRVuSINMBQFWHvzQsHz1+HZEKIMZpc9qwVCGMpdMsOfKAGO5BKvAsE+QCZl3/ jxWzeY3xaqX1BQHFPlIgHfAtY2tMb5qPqTZ4EnrrzJuZ9a+n5zxxy1i8NMGG09CGQRpR gGIMuPczdaFyCm+3LgYzjqZWMkQfkLy6qvgjcKXE9S4l+Mfu9sChPtHO1l+l75ELW0nl 5AmsWwAYfaqkbGnffBrfbTLYs1HQpbfL6Rnjd2j0LgU1b1s1mJDctXSFJ1/z4uwAG+Jm y42JIyT5QTfLIk/EQghkGzmP6J4DTpbhKgtApVDEV3rxsnUtQPb7oQC7N1B8ETlogQOm y2pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536244; x=1747141044; 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=ZKjH7CjiJYzujGe3Nf/k6lUsudRskeBEN8uYYCNZGto=; b=oJGGoNWVTC8LVQx4z7GLXiWx3iK5Op2aJ2o3Orbv1qK/wXRVJd5G66qRoecoOG4BIL kZuh8k8qd0mI0UqdAMSFNmrDpkWAl9rRKd7YR5QTYq0hDNiPmL47KW0n/w9511JQ1+uP GPw38T3eP2JeNA/RdVO5U2Ul3rZU1sZVOZ8CEQ+C91YOujktW5st1YcIG6sZ4XzHf4B7 ck36imintd2c2Gm7jQXnpV68E2DtfiD1mo2ytGaN4lbAkAP8yTW2qNcE91rJZM+TZhXw G/CCQ3xfdoIRnPSHq+YGpx0doVgFBTkvoJOwUjQ/m1+grI0RTBBGfCQVZ+ej0V8axiz5 ipAw== X-Gm-Message-State: AOJu0YxBIE+a/UW6Lwuq8cRvgN2yHnM7Cgfbtraq7JtS+Ur+cMM5n7sN FZ5HEn/0hTcfTtPEcdigU3PBvtofjXDK2lczbkBnyYP0Eat/UIZ06bKg9uv5cc0= X-Gm-Gg: ASbGncswqDXsb+VQOA33t2Vebk9BaESbEkFghsrr5woDl8gLP54yyw1Qr1tvbZkTtVc 1W1z9vxsPXtm+fbdLd1SsB/bsQTxnFHxGS1tUwBVHjs8MHjPz9wB25l/ZGpDNJOzwTeo2PTkBAu Cn6JUXEuow6AT/el2vzixLCEja6o3aayu1/kZOshyS3aW5KGbt5NJdJ/h5E6YqwiAASVzeF8KJ3 B974ivbRVMeW3iSl/Al2sbVVD7j4V3Gd0NpzOOGw9egpRtHLu2/eIgIUT3lD1iMigQub9xXZDJQ diQl0CnS4hOq4gv+pwXH/jaX0Mcx/Mr0hNvs31V7SXY= X-Received: by 2002:a17:907:7d8d:b0:ace:4ed9:a8c1 with SMTP id a640c23a62f3a-ad1d459a590mr261451066b.30.1746536243741; Tue, 06 May 2025 05:57:23 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad18914d067sm700737666b.3.2025.05.06.05.57.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:22 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 275705FADA; Tue, 6 May 2025 13:57:16 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH v2 11/14] virtio-gpu: refactor async blob unmapping Date: Tue, 6 May 2025 13:57:12 +0100 Message-Id: <20250506125715.232872-12-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::62b; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62b.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org 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é Message-Id: <20250410122643.1747913-4-manos.pitsidianakis@linaro.org> Cc: qemu-stable@nongnu.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 8fbe4e70cc..32a32879f7 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -155,7 +155,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 freed */ + 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 one + * else held a reference to the MR; if yes, we can skip suspending the + * command and unmap the resource right away. + */ + *cmd_suspended = !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 = NULL; g_free(vmr); @@ -166,16 +191,6 @@ virtio_gpu_virgl_unmap_resource_blob(VirtIOGPU *g, __func__, strerror(-ret)); return ret; } - } else { - *cmd_suspended = 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)); } return 0; From patchwork Tue May 6 12:57:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887767 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2532145wrq; Tue, 6 May 2025 06:03:01 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWeVTbPVVTbdKSgri7W8FOR655N1eG/laedFS0cBbrxoQQ+w+cXzLShbJVKCT2Hsq1zPnY4dQ==@linaro.org X-Google-Smtp-Source: AGHT+IGsAH0+aenzcEi6RM7NHnrmcrxSfPz3LYh5R3wNWWbmo3jPX3d24LtliUJ5tTlLvKVCpTOt X-Received: by 2002:a05:6122:3181:b0:52a:bf74:7e43 with SMTP id 71dfb90a1353d-52b06668fb0mr4728889e0c.0.1746536580913; Tue, 06 May 2025 06:03:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536580; cv=none; d=google.com; s=arc-20240605; b=MbaNHPWPocj70zH/rAK+N2Fh7PdLgWfzZ88zcV2Ky24MhtSUWVDN4JwXr0nvGTSooe uyVeU3LaeaOOg4C0MkujVOX/qTIhWyx8DoVkKdEdXu3Yl9y1Jc51hF21O6nekzT4AMwg Z08vJd4Q1sSRA2ZD0TsZMUI1GG7LOmqYiOknVW6MPiziBdMlreka2JVuTMUNfyGkBaOw d0RT79/EgrE8Jp0nQY9nYimK5XSXmVtSfCDmaz9uSxBXXhC3esRmY5e7BqiZSG6giE0q CYXhJfwG4BFtsAmomV7wKJHidWle8Pa/N4KpOFfgzLcVM3x36m8O+KPocnuzOKgjAFiH 74Zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=EQgFawT5s/msfN0Ty0yYdLDwFLO4xopk0Jf5DyIhBiU=; fh=S2o+fCk3l/gY4fAPMZHpG+liFqodIM8cU1n0Cx40tZ4=; b=gErik8nVciifKzvt7S0DFXqkTfSz09nmhkS7VGVfWAqtGeFib6LmAddOpad12QR94b cfj3xJea90GxJ1OcB/iLDUELNKbPGIZ8Ur6ZjJmfMvVp2oiJFwIFf/fni8Mwx7VH1N0D PidprIZS7FcX+oed+jX0EkFSc1QnNyQtvZcbirfvWz3mchSE8+MczdLz97e2Tmll4NkS /HGdwdy9hZ35ko0yERBPWxdjvIsJ5ikVV8jyb07CSDInRsLYJksDfLhJYlAo8dyDq3Id 7RVXkvokezNhsl5tf5m0NtDdKQMvksU5VzL64mt8hM6cYl/nHCNUeYgzxCPkexHTtFr+ mRrw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gTsdj5Ji; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 71dfb90a1353d-52ae4001f83si2795688e0c.15.2025.05.06.06.03.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 06:03:00 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gTsdj5Ji; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrt-000491-Fa; Tue, 06 May 2025 08:57: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 1uCHrW-0003Vl-Ow for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:31 -0400 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrR-0003sL-Rc for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:30 -0400 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-ace333d5f7bso1060087266b.3 for ; Tue, 06 May 2025 05:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536244; x=1747141044; 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=EQgFawT5s/msfN0Ty0yYdLDwFLO4xopk0Jf5DyIhBiU=; b=gTsdj5Ji21JeIrkpz3igLeZPhMUSE/GoGKz5jMo7uPGIGr0N+efOTzf1akyihKG8X6 2RV++LnRpSsZB5jgNFUOTSR4LWqN/kZemzUHnLlIpO+YgRBJshoRUoNaomnFDEf+Kd66 z+w9s1kAIgDZJuZh7wr03/Aq+EfRtAH6j5IuV+YVAxutcoJyuVv4lze1Pz+byOUQntf+ ANROAQMy8KZBhgSeH9BYQOe0DHH9tqPHvCqqTl2h1CqcvFg2IOhdyYK/6WBpDXV3U1RP cEXDPjxtzau07KJCjJXMlwR5Bu/XGTgcUMeZKCdRE7NlQ92KpJ1QXTStp4/Nmuxm//aw NiJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536244; x=1747141044; 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=EQgFawT5s/msfN0Ty0yYdLDwFLO4xopk0Jf5DyIhBiU=; b=cRM43wVJTHJICXsDwioTlv893GknWU15jESrJePLSLcMUx2OI0sWD7qnTh8JN5Rdjo T2CwlqZY2VoButqrOTfyWlKp9ZAfZ2HJqQmVnYLFAWEp5pRxwhmiO2bX7wlyA+6I7Xas slLeJiiEK5mtf1YWGZEsAfFIIZEk9r1gizU8qMhV+6GSAOuqtiO4UpuWzDQp6xfw67vr vqs8CO8wLmu8UFfVNBCTUZmqefRNaKfGoUnt8YSFIMvRBV9F5i9OVDWFhgW4pVMNFuvX Q4CuOrJ6RqAGFAkch2gNmwdHYUqhrHNf/SfgE8F9iA/+IOCIdlXjz1FhQNj+FMY9lxIZ 136Q== X-Gm-Message-State: AOJu0YxScQtBV8Jo2hhfOJED9YXnSkMoMGpOYGA5rtsdskBxQpQtpvdR ziBAqyBgOYB7s7LE2Tvehr+KnG0Z41uaduye/dez1sZpC7hbMSKLv8IR+f36nZU= X-Gm-Gg: ASbGnctie7a5ayyHoDFoMkzGt+oFY0+vDr66Vvzbv9JLlMB+DDm7/dahwvd82geyoAS ZfAGtubgkldPgwKcOKDhikhOge3fg5mGoITP3zNCScA3EPDD95m4YTnEspGkROjLdFopK8Ec8A5 adlM4zv7scui7oBxkUqenjQIueT8XTT9efV1DtWJZW+lKP9VKxmOBSTgRBqFXes9LFb9CyoPgyM oL3XXbZQQmI9zCWbCs8/gAFfm8GzuxeQ3MEyWFEoqKSoRLIZ4TRCHdtGweCGH5cXVjEhpI8jPnb +cAf6rG1EPqHYqbsEzRAfO1V+WxCF8LhqCEz/MszyLc= X-Received: by 2002:a17:907:2d25:b0:ac7:391b:e688 with SMTP id a640c23a62f3a-ad1a4b7c2e9mr1079826866b.58.1746536244060; Tue, 06 May 2025 05:57:24 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad18950b5c3sm696344566b.159.2025.05.06.05.57.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:22 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 3F95E5FADB; Tue, 6 May 2025 13:57:16 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss , Dongwon Kim , Vivek Kasireddy Subject: [PATCH v2 12/14] ui/gtk-gl-area: Remove extra draw call in refresh Date: Tue, 6 May 2025 13:57:13 +0100 Message-Id: <20250506125715.232872-13-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::62c; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62c.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org 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ée Tested-by: Alex Bennée Tested-by: Dmitry Osipenko Reviewed-by: Alex Bennée Reviewed-by: Dmitry Osipenko Cc: Marc-André Lureau Cc: Vivek Kasireddy Signed-off-by: Dongwon Kim Message-Id: <20250214170813.2234754-1-dongwon.kim@intel.com> Signed-off-by: Alex Bennée --- 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 2c9a0db425..9f7dc697f2 100644 --- a/ui/gtk-gl-area.c +++ b/ui/gtk-gl-area.c @@ -129,7 +129,6 @@ void gd_gl_area_refresh(DisplayChangeListener *dcl) if (vc->gfx.guest_fb.dmabuf && qemu_dmabuf_get_draw_submitted(vc->gfx.guest_fb.dmabuf)) { - gd_gl_area_draw(vc); return; } From patchwork Tue May 6 12:57:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887766 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2531956wrq; Tue, 6 May 2025 06:02:46 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUCL2nw8oT8lQMI4HHMsP9kPpIXK96yARuWbFPOZdsraRULrsJJcaEnUPB6W6wDU3l7hZrP+w==@linaro.org X-Google-Smtp-Source: AGHT+IGEf//0rsGse/h6JDyfGpH0vDUuOZuBi0Cz8yab5S4YY8AQP/V/0xJR5VFGE4uwEt6SZ+pe X-Received: by 2002:ac8:5806:0:b0:47a:e49c:dc05 with SMTP id d75a77b69052e-490f149dd48mr51164991cf.11.1746536566392; Tue, 06 May 2025 06:02:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536566; cv=none; d=google.com; s=arc-20240605; b=YmRRI/ReZI5bEqfRRkE3xrOj6s5GMFv2SFZa/QQP01zftF5orL1N+jg8towUiumgwe 6X/N4kgmfi2z4QHpS21IiN3uz79hOkuRsAqpDzD4MMALZh9N6AtLawfHnea1YSR0eY6A 2qWxHVk3vClsxcL3ogSTGh+SbADvJxFqYWRIcSaihnhieL5wcqtsP0O0/mqdnazfh+pu Mr8g1SHBcL4SBquKyFbQ8ak6jnVAbk6hl7A47339s4GOEZa7+LZ1xZI6sckMO/57ocIB sVf/AcC8nod+Op6VOecafcPlKrPBE5TW4eOSVJtT/UMNNW2ZqOMFs+SIbcV0bixx5U1x y9Fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=uuMngEWgGAO0nBl3buL5NTmX355UjBOo6woNVhHbqxY=; fh=VwaCX7udfecFJRCCfDJILJbxRRdCzThaa1bWgu6/gTU=; b=APOMECGVNoKA4gHmqsdnfCRhmIcVg5ZxDTeWmhI+MKC3ctWkNjBRREP2kS+809HZpg bUo/PuUmFsiXTBfHj6NZEbJeFfN4/tqOMZUTqKmsbijnFvjhK9J68itwijp1MpN277uG gzHBEkWtYYbB3rcYZtKKni4Yl2URyuGXLx/KgxthGNm68McNwZZXvzWqnK/yjGArQT5z gAeoBJOpI3QNWpYo/CNJ18E0l1PSMOtLCblGvh5XPyNSI490DRsRRXYeA/P5+iuYc1KN m70Ya2hSghwLP5Z7K+E87xHfpqTVOd3RhRzHU6VoTd6u9uDzU26zA5KOMya7yIdMUuui i6bw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=opVi1yZQ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-48b990fba85si115195161cf.622.2025.05.06.06.02.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 06:02:46 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=opVi1yZQ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHru-0004DT-JT; Tue, 06 May 2025 08:57: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 1uCHrY-0003XP-QP for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:34 -0400 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrS-0003sX-8C for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:31 -0400 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-acb2faa9f55so746822266b.3 for ; Tue, 06 May 2025 05:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536244; x=1747141044; 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=uuMngEWgGAO0nBl3buL5NTmX355UjBOo6woNVhHbqxY=; b=opVi1yZQLAMAQoHaOtTH3WSahSVMQaH6z0upy+2mjcMSwAoVmds9CfMm3Mc1+oMu/t E61dAdY88SaCX9JVIOptzVDH5u0GlZ1KZ/wixAJb5KTkbVpvTc1l0puYCrWx49+sGBxv 7gTw/p9TsBL4//D+Vhy3pMqmYd+XPqYBa+nMjEZC/2N0L4lSqMkzAB28yBhhvNLd0tVV mb2vhJDHVgB0s3sCTEwy6dsdENv/XrUloMqjWsqbQgrlzTD2cSiueQy/J1QmistLuNHq Om2b1J4iI8dsB5x0WqQlbH1XO63TAH+oIO9o6j1fLoyk7pmQfzuYmJdAuzKwV+rak9Zj pOpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536244; x=1747141044; 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=uuMngEWgGAO0nBl3buL5NTmX355UjBOo6woNVhHbqxY=; b=bfjElUQHtcYDdx47+9LWlKRMSqJ6pQschShKKVOlXHjlENrMSBYPYptNA6P6daQiKI oPT+rNtxmklBZ8ZJwW74h2/+uLASEXFeGpPSGeFkmkz7l18iYeK/hHmw3NK7n7DXHBM2 XaJ1ByD/NAQ0Ig5iEdV4BpwJaPeh3qxv5dVXqa0h78LUL/cML7zQ/TzJxFihpptt/ITz LPYzrXRJieLE02b59MxRaCFZvP5c5Xwbu6HrVoE5RoQ+q3+XCf43eefA6lEab0hCoRfv +6f5ebLGth8nwIoYJKWFZkYg/ihu6y+w5xQpgPCf6nCWD3a8kA3JbP4Jk14WqTbYvowk rELA== X-Gm-Message-State: AOJu0Ywo9znt44aYOyCJWIoX8AOX4ZGuLuySpAYdmwQPitKqPTXUisFr lg0aM07ECuRvWQT4f/ghQFDrGgxaoRcsFW5iaKl8mXoeK0vOL83sKnHNFDvQcKM= X-Gm-Gg: ASbGncs4jtTnfz5ZFHadax5xBz+3ucT+0mhrzVcycFqCGlkcey1jLhKwkGrdm4yrT8P UJRhh9hqvbB/XcVUhBlXKHtW6BRR6f2+5Idyiu5N37DHDjp3fJWP5A9Z0p/1dUba4VuhXZ1XWGJ 2aa5imba2gIpZ7eAeUvnx9YjKJEjmFolOp9bugMeMXxPou0/qlhjjzpajX3cGHv6shl4tg3xUv1 BdxxhFGxKT89sTJA/tChUB3mrDCZVdp2xcR1DZ5BiDosApmC85zPoHHTXm1Y0htnnENENDT2rj3 TJiS3oKTNZWxSePayzCYBVZZlbnYKRSUEezCIom5T1g= X-Received: by 2002:a17:907:a2c8:b0:ac1:e6bd:a568 with SMTP id a640c23a62f3a-ad1d355c7fcmr285773166b.37.1746536244393; Tue, 06 May 2025 05:57:24 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad1895095d7sm697433266b.151.2025.05.06.05.57.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:22 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 598C25FADE; Tue, 6 May 2025 13:57:16 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss Subject: [PATCH v2 13/14] docs: Create a uniquelabel Sphinx extension Date: Tue, 6 May 2025 13:57:14 +0100 Message-Id: <20250506125715.232872-14-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::630; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x630.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell Sphinx requires that labels within documents are unique across the whole manual. This is because the "create a hyperlink" directive specifies only the name of the label, not a filename+label. Some Sphinx versions will warn about duplicate labels, but even if there is no warning there is still an ambiguity and no guarantee that the hyperlink will be created to the right target. For QEMU this is awkward, because we have various .rst.inc fragments which we include into multiple .rst files. If you define a label in the .rst.inc file then it will be a duplicate label. We have mostly worked around this by not putting labels into those .rst.inc files, or by adding "insert a label" functionality into the hxtool extension (see commit 1eeb432a953b0 "doc/sphinx/hxtool.py: add optional label argument to SRST directive"). This Sphinx extension adds a "uniquelabel" directive, which creates a label which is made unique by adding the name of the document to the label. The name of the generated label is "dir/file-labelname"; this is patterned on the generated label names that the hxtool SRST(label) directive creates. Signed-off-by: Peter Maydell Message-Id: <20250429163212.618953-2-peter.maydell@linaro.org> Signed-off-by: Alex Bennée --- docs/conf.py | 1 + docs/sphinx/uniquelabel.py | 74 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 docs/sphinx/uniquelabel.py diff --git a/docs/conf.py b/docs/conf.py index 7b5712e122..562db95bbf 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -67,6 +67,7 @@ 'qapi_domain', 'qapidoc', 'qmp_lexer', + 'uniquelabel', ] if sphinx.version_info[:3] > (4, 0, 0): diff --git a/docs/sphinx/uniquelabel.py b/docs/sphinx/uniquelabel.py new file mode 100644 index 0000000000..cc4ab7f31c --- /dev/null +++ b/docs/sphinx/uniquelabel.py @@ -0,0 +1,74 @@ +# coding=utf-8 +# +# Copyright (c) 2025 Linaro +# +# SPDX-License-Identifier: GPL-2.0-or-later +# +# Sphinx extension to create a unique label by concatenating +# the name of the origin document with the label text. +# +# Sphinx requires that labels within documents are unique across +# the whole manual. This is because the "create a hyperlink" directive +# specifies only the name of the label, not a filename+label. +# Some Sphinx versions will warn about duplicate labels, but +# even if there is no warning there is still an ambiguity and no +# guarantee that the hyperlink will be created to the right target. +# +# For QEMU this is awkward, because we have various .rst.inc fragments +# which we include into multiple .rst files. If you define a label in +# the .rst.inc file then it will be a duplicate label. +# +# The uniquelabel directive is our fix for this: it creates a label +# whose name includes the name of the top level .rst file. This is then +# unique even if the .rst.inc file is included in multiple places, and +# when we create a hyperlink we can explicitly specify which label we +# are targeting. +# +# Concretely, if you have a foo/bar.rst and a foo/baz.rst that +# both include wat.rst.inc, then in wat.rst.inc you can write +# .. uniquelabel:: mylabel +# and it will be as if you had written a reference label: +# .. _foo/bar-mylabel +# or +# .. _foo/baz-mylabel +# depending on which file included wat.rst.inc, and you can link to +# whichever one you intend via any of the usual markup, e.g. +# `documentation of the thing in bar `. + +"""uniquelabel is a Sphinx extension that implements the uniquelabel directive""" + +from docutils import nodes +from docutils.statemachine import ViewList +from docutils.parsers.rst import directives, Directive +import sphinx + +__version__ = '1.0' + +class UniqueLabelDocDirective(Directive): + """Create a unique label by including the docname""" + required_arguments = 1 + optional_arguments = 0 + has_content = False + + def run(self): + env = self.state.document.settings.env + label = self.arguments[0] + + refline = ".. _" + env.docname + "-" + label + ":" + + rstlist = ViewList() + rstlist.append(refline, "generated text", 0) + + node = nodes.paragraph() + self.state.nested_parse(rstlist, 0, node) + return node.children + +def setup(app): + """ Register uniquelabel directive with Sphinx""" + app.add_directive('uniquelabel', UniqueLabelDocDirective) + + return dict( + version = __version__, + parallel_read_safe = True, + parallel_write_safe = True + ) From patchwork Tue May 6 12:57:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 887762 Delivered-To: patch@linaro.org Received: by 2002:a5d:430f:0:b0:38f:210b:807b with SMTP id h15csp2530678wrq; Tue, 6 May 2025 06:01:03 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVQpM4+mC0/anij/VBThV85kwlukfC56eyeLWa4eJkFRR9jMnX/Ym8FrdNcHxAf46aiIVOHXA==@linaro.org X-Google-Smtp-Source: AGHT+IG1FOfTfszE0CR+QcJRIE/iRFTP/251jIC3p8PtsP96Fath14umLyavFX+j4vsfJVAyke2y X-Received: by 2002:a05:6102:149e:b0:4bb:d394:46cd with SMTP id ada2fe7eead31-4dc638faa31mr2274641137.18.1746536462724; Tue, 06 May 2025 06:01:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1746536462; cv=none; d=google.com; s=arc-20240605; b=MtGZ1KHQLsxvkuvDO+qnPl/hjS8TLTRpttH/xI89w1SbVdTc11Y9Ewvkuq7JIVPDkY YyoJnCiEtrNbK2o2YB/tyEWmNINDUrmqvEQGpWJRXghVfKIhCmuUkGM4wmuGPkgN2gdg AdgoJYvrBO4w9H8vz2jrGzZ26Cw0BkfZyGrn5Dzf/lsd6eym6Co0LhCZgEThWhq5FbBt +7MWN/NIaNLzBJhzmHvZSmaulKsHPayel+tBeR9vZvq28cZa7GKdE4zz+264rbJ+PB1j urPdX+ZDLNcIQMX4kejZrN9d3oNmPPzW92ZbiI+msx98yNjxYmvL+V2qZNER3bvs2PMh bTaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ujckOaXBqgzpxCAXY4NOb0Hx2Mey25Y6RSr4J9VJVFc=; fh=VwaCX7udfecFJRCCfDJILJbxRRdCzThaa1bWgu6/gTU=; b=PzvOXHmsdiK0DWI13AvArQoSm7kRwvfzhrGGGp8bReBnuGAVo0MTJFm/x2M3h5wL5U x4PMez71jkwoMqb3kZ7J/aSQ8lQAxL/ZnuKBhyw74Y9Di9Pin0fSXx0+5lNTe5voZGYY Gm+YFY022tNqoCwPuzOpMyLdc2Jw6H3yLOha8dpN18CwhEgButKYB0TS/94uLjloRaEU 2wNKrR8ivARK7U4xXIEgJnzw/gHIITBTdftpiDck+gWyNlK2q8v6rORYdUNVCtOupGC2 lLJWSW3imk3ol7T9YfjS3Y5PkgmV+gOUjqsgcqJLkg4XFge+WyRd228QGzTjRhPAw5Bz 6yxQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=VRfnFiQd; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id a1e0cc1a2514c-8780b2a6b5fsi1697477241.130.2025.05.06.06.01.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 May 2025 06:01:01 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=VRfnFiQd; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uCHrv-0004GZ-Ge; Tue, 06 May 2025 08:57: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 1uCHrZ-0003YO-FJ for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:34 -0400 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uCHrT-0003t7-8K for qemu-devel@nongnu.org; Tue, 06 May 2025 08:57:33 -0400 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-ace333d5f7bso1060092366b.3 for ; Tue, 06 May 2025 05:57:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746536245; x=1747141045; 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=ujckOaXBqgzpxCAXY4NOb0Hx2Mey25Y6RSr4J9VJVFc=; b=VRfnFiQdqtU1lGpJuxcuEQNKGdhMTl3jo821lfJtwmi9L8gB8TuEcFgfETD13Im2vi xL+bQFctl1CA2RwSH/70VFIvDT+VlpEyuzr0/oGySMiPgWvZpHeA/xmTCw9k/pXDu91C 6rOHylfCGiWpoWl3t+Pb1wHuFmn4sXmxp0tgL8kyfvK7pucwYqJ7Dt8bz1eVUmsB78L0 ORmBIdn9HbqC8OJYIdZ0q9yw9q5odzQII+OAxU/9flpP9dVAae8Kw4xTLfetA7e4Gw/e hxvEVil+xEhkmTSfSQvNuEMoKzmRMmjCR6jR/X6DjX+N06dPeRBpOJGGznzbgSKjTHTo MX4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746536245; x=1747141045; 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=ujckOaXBqgzpxCAXY4NOb0Hx2Mey25Y6RSr4J9VJVFc=; b=qu6cexOozTYLxO26BHTdYTVlbd9bcMBzruLpbfAQtzbeZYbNlAbmj2de2FRvokoq0X EvCbryhPjQFs3epOWrlt1FKp2xchXI0QshBoqEq9UnmHqtoRVcqrIR49gCwa4U1/e1Ec 2EbI4zeG5HEg5v8BhQOCaFmwOTitlKpJQfuyQsD/cF6Psf1vcwfov+FgfMNABl7dGa/D wRo4P/RxEuI2q+UwTvO+6gIHXfJ0iGI3N01Tly1rdld9GNK3SmvLSbTBqC0euMtKe7Al nU57EfAj4BGRnBeD3BoxXzIP0QnI9M/nF+i5CTObzFV5GsjC8uA4xQejC5RFGHOv3Kyz uaKw== X-Gm-Message-State: AOJu0YzJfAWW8qR3pI6Nfsd2fDkw+oPPLwBfjvE0IoljEDtWwp71n7EZ YU/Ya0HvxVVBsFi1bzYkdSLrklJfXUyamFGpESeGwJsPCBKTZMB1qPpPOXQo6jE= X-Gm-Gg: ASbGncuM1zX8yNxD+saJQelpe5hD+5/02zWTnMRRmDgQSS2IM5kMpUpijt61pQRLFnh Q7te8u6bcqnI4Yh7Ro/6IKLiFt6qgLfdfQ6yUoVrFLR8qtYOIIKLxufa9niTtIqUOcouXqgszCX H+wxUikSXRFFxSgx6y+MAo9o5FwHMXiSH9WgjpaNDI0R9rZHuZHUWOsKwgybiON+Bjuy/M411zj Sx2zp5np28+P/ySQwYQETk/B5gXa8kxT56fupwN8MhWN7US5rDJI3VUFjCu5DMPLBHg72pP3ouh UVlMOST9oKYIGSMvMpkedkxYT5OX0AIezcqQTDVlMWw= X-Received: by 2002:a17:906:d542:b0:ace:d7af:15e1 with SMTP id a640c23a62f3a-ad1a49afd2dmr1026164966b.28.1746536245263; Tue, 06 May 2025 05:57:25 -0700 (PDT) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad1891e980bsm692494666b.76.2025.05.06.05.57.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 05:57:22 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 727145FAE0; Tue, 6 May 2025 13:57:16 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Hildenbrand , Akihiko Odaki , Dmitry Osipenko , Laurent Vivier , qemu-arm@nongnu.org, Mahmoud Mandour , Markus Armbruster , Pierrick Bouvier , Paolo Bonzini , Sriram Yagnaraman , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Peter Xu , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , John Snow , "Michael S. Tsirkin" , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Fabiano Rosas , Peter Maydell , Alexandre Iooss Subject: [PATCH v2 14/14] docs: Use uniquelabel in qemu-block-drivers.rst.inc Date: Tue, 6 May 2025 13:57:15 +0100 Message-Id: <20250506125715.232872-15-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250506125715.232872-1-alex.bennee@linaro.org> References: <20250506125715.232872-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::633; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x633.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 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, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell Use the uniquelabel directive for the 'nbd' label in qemu-block-drivers.rst.inc. This avoids a complaint from some Sphinx versions about it being a duplicate label, and means that we can reliably ensure that the link in codebase.rst goes to the document file that we intend (i.e. the section of the HTML manual on disk images, not the HTML copy of the qemu-block-drivers manpage). Signed-off-by: Peter Maydell Message-Id: <20250429163212.618953-3-peter.maydell@linaro.org> Signed-off-by: Alex Bennée --- docs/devel/codebase.rst | 2 +- docs/system/qemu-block-drivers.rst.inc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/devel/codebase.rst b/docs/devel/codebase.rst index 40273e7d31..f3f133e9ad 100644 --- a/docs/devel/codebase.rst +++ b/docs/devel/codebase.rst @@ -116,7 +116,7 @@ yet, so sometimes the source code is all you have. * `monitor `_: `Monitor ` implementation (HMP & QMP). * `nbd `_: - QEMU `NBD (Network Block Device) ` server. + QEMU `NBD (Network Block Device) ` server. * `net `_: Network (host) support. * `pc-bios `_: diff --git a/docs/system/qemu-block-drivers.rst.inc b/docs/system/qemu-block-drivers.rst.inc index cfe1acb78a..1a405e4782 100644 --- a/docs/system/qemu-block-drivers.rst.inc +++ b/docs/system/qemu-block-drivers.rst.inc @@ -500,7 +500,7 @@ What you should *never* do: - expect it to work when loadvm'ing - write to the FAT directory on the host system while accessing it with the guest system -.. _nbd: +.. uniquelabel:: nbd NBD access ~~~~~~~~~~