From patchwork Wed May 21 16:42:31 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: 891536 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221044wrm; Wed, 21 May 2025 09:46:04 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCViYatbO9UZaybLne1bhbS96PjUKCMnr1fE+ZmQaOedRX1dAg8DWQ1RpyzSYzoqYkPGNe9Pog==@linaro.org X-Google-Smtp-Source: AGHT+IHvpCQc9NLgIqS9lBct7NEGoZRS9ju/5bmOCr/e4qL/lLX40RTD7RXDTuFufHY9jfr9Tawh X-Received: by 2002:a05:6e02:2164:b0:3d0:4e57:bbda with SMTP id e9e14a558f8ab-3db85723a71mr203372395ab.1.1747845963733; Wed, 21 May 2025 09:46:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845963; cv=none; d=google.com; s=arc-20240605; b=CAnQUP/bwFbMNFxVcw5LWVHsM6awQFVKADv16HBVmE0Urx+BA+0XPPkd94jh93j49U 3NzJpfgntiskWUY6OGEwmSaL4+4cF/IqYmlFpVhtsdxkRj4IxTTqBsFnP6BBfCxduUuH LX0+eMWBhEcY/x29CFx//LPSB7jAt1eR4AZec2WnPnx372tKm7VBz2jiAuCqES9srLdx e5uAer8OTuZS/7pGuqz2JASh7BIOh4LrIytuhBy4ruDAJHSohikCLZmsm6ZuBbIOR6EU aQ6RBm4b7B7004y/OErIcboSJ/m0TLAARfl9Zh6on09lvSrLQakklyyVT4JoduV5D/Dj nTPw== 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=bRO1MF9VSOWVIGjbYXUTHO3COe2aRRAcNw1LSvnzoWs=; b=eSkBGZ5Y2K+dYbu0fTxLnY/kmZrOZa2I+hwoqBi82YquxZJ+0tFZqaCvk6Gq/qwAq6 6Cj6OWw2GpmO+4ubZCYccmELRxRbHtT8bNzQMLX9TGhW/tygB/44CcnPVS2qp0sgqvrW 1lttWambzwtA3lz4B3r/ApC6vGpVbBbnER8Tbn29qWcaHXWdeZfn7Kkz1x46p0THvsmf n9svenHIwmzNM9GH7DaR7vOYcDy16DbqZ/g06spMeofiKy4A0sIlZsy8qXwqMRyoozjf zA7dlpk2zYOAg4ospFz88BOsfMAdc7JEsh2sIIfzhbvD73Eg4HAnbDRyLJppV8dKIStF E/bQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="d/q3okzG"; 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 e9e14a558f8ab-3dc6522fbd0si94685425ab.81.2025.05.21.09.46.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:03 -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="d/q3okzG"; 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 1uHmX3-0000Rl-8r; Wed, 21 May 2025 12:43:05 -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 1uHmWx-0000NV-Rk for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:00 -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 1uHmWu-00068A-HZ for qemu-devel@nongnu.org; Wed, 21 May 2025 12:42:58 -0400 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-ad55d6aeb07so352181266b.0 for ; Wed, 21 May 2025 09:42:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845772; x=1748450572; 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=d/q3okzGMqhqPNOXMU4iLp6hsqwnFsrNu5wszs3D64jHOg8kN5hI27Tg0wBOe1T9es xXa9L5z285ut2ebSMvqSkG2et5Z02E0fXtUBO5yEm4317fuxPuuHE3LA2TtCUmJ1MFtU eeuZ1iUUgpSq9g2MAZ4zocGPqUJ2rI+0Tfyob2GZ8q7LW7kBB4LOHUqtS/2EFeYi+V0U FTAlrmW+8ZgIITKe5hJHEmt4aippMMRj9nnGAiVrthfiE0EqZw2x9py/g485dkDai856 f4uJxDcR2XsrTHjB0yfKgOvSBCtZ5EExreopyuoBQhAzKhyanKTjMaYh2DzuseUFAejs gQxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845772; x=1748450572; 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=NziqReBRNy2rchRlNem4n/c+v0fqtoE1NpMyYj5SMgchWBgL4KufiEShksklnARcLW QJLfAVnJjBaOb1irVgi+k/LRSQnx8bIa27+0ivR3WNHqikK9wdaSsUbDEzVt8T+JTgAS 8zLTBJB39rriHq/E0bwHQ8oFRQ0G7GghJH1wSGjvVbJ1FAjFyFVPE6VnlnSnlvswZUTk cNXjUGJMwPjcj9MicrSsCGrCT7eoFS+ZDqrOW3WrqW0UcnLoxTgwnlMggl4ce++uryWv oyxP7nNRNnvjkq8YyQB8+IpK8LxmUbgyEemNILA5deQ9T7oh361mYvnR6I3GXjQcHJ1A vAMg== X-Gm-Message-State: AOJu0YzwdfcSMyeC7i5Hw8OWGAxbTaCSlGLO05a11w8Ck2fAU+i3IbsD GBTxJyt5DMhZ8cWuoNzxobqfjv0g6T/mjcYjxjIovSKrn0anmqzCqp5y1Oo7x9bgxPw= X-Gm-Gg: ASbGncsrvPzDhpJViWSTkI6rm+isyhnq3LV6rOL6bwIuVweoH8VHFliYjlpq2J3rCX5 hOrohTvqNXNCq8xpi8HP+hiRgiLQcQBqw6BjlY3sqtPd7tlpppAMnT5u77IetDw3JVJpga18fZ3 c569q/uWhFafyvXDMPmRM9dGyXt4fVTujpNNw4iiafFop/1jLn6L+/nFq8VNwCBZ/WRR6BtaDut Xb400vhANS22Rg9hyEBsioIPNhTocxDhblPQMPVGkEl7WmC0+tuco3PRNAHroOJul9fCLiJNHzq 2ttx5T44i4t3U9nZm+1MH0tqvgzUnLjuBZkSJQzmslZOzkopGs62 X-Received: by 2002:a17:906:1306:b0:ad4:d9b2:6ee4 with SMTP id a640c23a62f3a-ad536f2816fmr1546499766b.49.1747845771659; Wed, 21 May 2025 09:42:51 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d43770fsm941924866b.91.2025.05.21.09.42.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:50 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 444965F8AD; Wed, 21 May 2025 17:42:50 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" Subject: [PATCH v3 01/20] tests/docker: expose $HOME/.cache/qemu as docker volume Date: Wed, 21 May 2025 17:42:31 +0100 Message-Id: <20250521164250.135776-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-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 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 Reviewed-by: Thomas Huth --- 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 Wed May 21 16:42:32 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: 891534 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221011wrm; Wed, 21 May 2025 09:46:00 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV//NG68Na5jK2eorgzaX05e0rxCVx/utnkI+n6t6UO9IArsfgPiGziUlfHdsnd21ekMtb7IQ==@linaro.org X-Google-Smtp-Source: AGHT+IGTEwDtkNzWAoAaeqLYaWVJ/e0PUfcZJyLU0CC1NOD+1ryrIqe7OOuGnP1zRNk9D7HxpQCb X-Received: by 2002:a05:6e02:1946:b0:3dc:8797:a8bf with SMTP id e9e14a558f8ab-3dc8797a960mr24067755ab.0.1747845959981; Wed, 21 May 2025 09:45:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845959; cv=none; d=google.com; s=arc-20240605; b=fV+oikFULL6iLCmt2s+g7idcp7bQxDnT4QXu+Hs5QgObsRxlpaf/wtubH/Fak3EyeG xeb/fFGJxacVyMUB97VXnQBZkHxLNYlBgjI/fHbS50S78u7Gm6t+Mu/TK6sudEdWJLNR Y2fABV6RaDeVqpKP//+CY/CX29CPAlfoqqkV29aBZRuXGgDCMNObJN7m9szYDTbVz/Lx sAO0yZF/4nx6tRfJVNPSKn0Tum50cjTbn1Ygi6k0DTDaX4sxldqj5odVMtWqHaBwLr7n dIzask87Mg4hGwriIU6Amr8oiYZBeq4thOhlW6Z6M6vzL13/L3j1YLQHVEh++Fsse7LO yWBQ== 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=0a25YJ3ujuVaK6grnr7RFfFKuFN6alJEkh1/pjC8mIg=; fh=bRO1MF9VSOWVIGjbYXUTHO3COe2aRRAcNw1LSvnzoWs=; b=EtZPOvk/Iv4ZzpG43J+T2Qfhil0fQcWPAIz/A7q1hd57r/bgVNCkiMFc0kfH7AfOGo NSo2zloUeKY3PO0N91meCA5vM+gTqkozHQ7N8BamorujcoM1IRBV+A483fdNzrieHifR ifhjwb3Fc558iGfIfe6jH5onCfHBfGTI5p28hJLt15zOADxGnFI2UuK6wAmZlp/HVopX nsJVrHuXi1pskeolAaxJrt4T/2gV/AZIJhB2g4JPWknDGIdIuSUdHNU0Iu+61kaons6x xqpF6F05aVx/rHQfy7KLhhSyevUTj+7BXsidRkxlepSX5szkhJXBWhulOLKQ6iwvllE8 9eXg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=zO80YuY5; 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 e9e14a558f8ab-3dc826595d2si27235125ab.20.2025.05.21.09.45.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:45:59 -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=zO80YuY5; 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 1uHmWy-0000O7-KJ; Wed, 21 May 2025 12:43:00 -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 1uHmWw-0000NR-Ps for qemu-devel@nongnu.org; Wed, 21 May 2025 12:42:58 -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 1uHmWu-00068U-Ha for qemu-devel@nongnu.org; Wed, 21 May 2025 12:42:58 -0400 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-ad545e74f60so825983966b.2 for ; Wed, 21 May 2025 09:42:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845774; x=1748450574; 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=0a25YJ3ujuVaK6grnr7RFfFKuFN6alJEkh1/pjC8mIg=; b=zO80YuY5i2gUGpY6nODPriKVXDLVuu3DOfRuxv+pMlme+aGlVvC7g/DKS9j6Y51aGZ 2aZWrFJxzMEG6jH7/70dfizjufpLnTaZFfEKOX1aKizL8WHbpl+xdPBWdggdRyINKPI3 Vy05JkDC4N92tfhFgu8byGsaUtcBr4PgMhK0v3egCpYJxOxG4A2m9OwuUjDvuN2sDTIN Cr7NsiWB42yoi4K+L2/8brjpktkA7V4nflZc7La4ewVSoxshiEAJG6WnUwKnNODeGkvx w86qc01MLK20Gu8T+yXgHUDW60MlQvRi+f+/O0R8i7DYh/Hu9Bhe31calDhcB6VWxTYx l4qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845774; x=1748450574; 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=0a25YJ3ujuVaK6grnr7RFfFKuFN6alJEkh1/pjC8mIg=; b=lRGYGE0UgydxPsZGAFOTi7oppgwh8gFLQJbijA7euaBvpcLCTr1EVOlcQBkKlpt4j5 E0sn1VyBkBxZ7Dvr285BMAh65yWBwTl7GrUjNNHtOcxS5gqDtelGjsNOSn6ysJMlDoml 8pRCR2hnpurHUpSrDEkM3CCCRHH73IIOca5baEJ4DqVC4q8M8gueb+FKgyX+P49+ZyuJ vRYoZ6kQAfXb16sMRpJ3ogcEvcQLTGXhAz35XITeLrFiDxKMgBvnRHFCoTB7cZICsrSc ZgBFF8qMw4tJ1HWLela+8ul7y4DSBXNnUTwcaywomsWPB4WtvKLIl7m/ZfPSTG4mCkNC sCZg== X-Gm-Message-State: AOJu0YzZvFQmxLIClRTw5udosN3soNijnvMRPYPJKBK168UZ2Zs0g9mj 1dGHcrmsxzXsCg/wiz4Pe+Lkpw9vcpf8KTZxprm5DvLF3M243fUzZawrRk0NDCbGxUk= X-Gm-Gg: ASbGncutV4Q0l7u0P2Uleq1yZ/6dEMoxDQCOhqA8JADdzTulkXrEZDEL/BZZR86h1an AnJj5rueKrRycbg0ctO2MLI8dcnD7Og6uTP9DNwkB+sWOD1sWS1PzIfIprFl7N4U+wT6Svr6Ofb O27VSXlzgkkZI7FiOnAFDvabcDG5oSs5UgryR0lRwctaoJVesqVjQEz4YQXjfD5j/0ktGJClUAt Ic6lbTvihG6CUFSH5DDIYN8Qv5TXXEyxy+bDjrbjim28jck89YI6Az34sj9U4QTuH1zblRX+uSB xUxNOPDbeOAzTCL2cGEIm/8Ur45hEDyzkclicNNHUANjowH84Mh8 X-Received: by 2002:a17:907:1b0d:b0:acb:88ac:e30f with SMTP id a640c23a62f3a-ad52d48d9d3mr1977975966b.20.1747845773535; Wed, 21 May 2025 09:42:53 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d06cc3asm929413566b.39.2025.05.21.09.42.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:50 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 571845F9DD; Wed, 21 May 2025 17:42:50 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" Subject: [PATCH v3 02/20] gitlab: disable debug info on CI builds Date: Wed, 21 May 2025 17:42:32 +0100 Message-Id: <20250521164250.135776-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-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 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 118371e377..19663126ca 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 Wed May 21 16:42:33 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: 891542 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221253wrm; Wed, 21 May 2025 09:46:27 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXF9gEjR8pxNaWFXK0vwubpwjr59ooV2VuL3FJ5OxPcY2WVymHtDtvH+F3ywIvBcfnrsJ+c/Q==@linaro.org X-Google-Smtp-Source: AGHT+IGBjdzUps7SHa8XiuICbctq73Z5iFF7mzRhOVroF4JLiUfWyEgu+ekNTWxljAqYLf02tToG X-Received: by 2002:a05:6602:4192:b0:864:4b3a:9e3a with SMTP id ca18e2360f4ac-86a2324e6afmr2702044639f.13.1747845986855; Wed, 21 May 2025 09:46:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845986; cv=none; d=google.com; s=arc-20240605; b=KkhHyd+YRNK/ILZ0Bqa2cXQZQYOXh00ml0/iCrDTNwpE5+Xveb2gSobEo+HSBMB1vR m0FIH3qFKnQG9uVhKccxCq9vkLhpUk2K0TBSYGj3Oj+GVMt6zH7ShbT4BQM7YVwk4+lJ d4cdVbjO6LYa3ykqwrGRaFE7fgnsxScc8XoTbkmfbKPQRgHH0b4orsFmakpXJnKoTbpr QvgfcX9vBUkmQ6HYAng3fmXPSdMF6ZCNam3xz7y7mYnpO0sLo9NG5BclCWhA9ojxeEcN 0Qyfb65sgZYf3a9rZjmDWuRoqK15oKzXQdVrMRjqLFGAcHNwBkN0VPwZRjflO5Djr9xj tNOg== 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=0EeJt2/IHQl/YQCaB+UF88NGaWdjcKiX03wFO+hAP/s=; fh=nhMAWYHOEJT9IS2g3zgFGV5bcr7sIb0QBojlH94QDkU=; b=RwJCfUDbUwbeHIIBjSGxKKaU2uSVP8DpKdYGKaxj/a+NRgt2KAKWmkwofFPTHIo/VT yJCMee6+A5fYmvo5dkn91yS1vS0KYTogSBZ0zsDgb6rrSWKi+y0AljneIoPU2/a+V/Mt Dm300OsBFqTGoO+SKjwyCnp6hO1fKIF3duOMkYx3dyRQq6+0DO6beywgazsxGblosPxk fvMkcm1FYyVd0CVpNan6EsRxMGfLwqAH6xcSUl0uZDgED3Gle4kqdlNLHB6QJib2SLUR CzI5PpG6+22k8UNEGNzVcdsG38PKSOuBn9N4jdh4XEMqz1Ak1djOywtl6TOUczI/a+Tz ViIg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Er53yrV3; 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 ca18e2360f4ac-86a235b969dsi1301181239f.14.2025.05.21.09.46.26 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:26 -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=Er53yrV3; 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 1uHmX3-0000Rx-Cs; Wed, 21 May 2025 12:43:05 -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 1uHmX1-0000Qh-Ns for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:03 -0400 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uHmWv-00068p-V9 for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:03 -0400 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-601d66f8cafso5760463a12.3 for ; Wed, 21 May 2025 09:42:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845775; x=1748450575; 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=0EeJt2/IHQl/YQCaB+UF88NGaWdjcKiX03wFO+hAP/s=; b=Er53yrV3/JavUEcsKQT0aT47SpZ2QPNwrDqg6+qf8fHzXtF/lTjsIWU30QYuCO4rbm uvY9HzNJUzkP3v3pwxN0R1DfBZF7i220Ewck01fsngEwZCS1R8WWuyV/dSjgWmiyKTk0 fqzC6bKy/N1Q4xFq3WgGTNjtnOo5dgieuRzZ4p7npHjCjhnmJgV5AFz/0Q/4nJ3TX8dr ZKyonIiF95687G8u7p7oe1VW7jdXXYTkp16mh8cPzs/tb3r8soERjDwVgnARo45EQ3Fz od3IE3NgNImamsnMy6jhfpqaGhIuXUkEaoRBCzGQL/LWv2DNnMQwVZldAfRyvMHHQMmG XO7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845775; x=1748450575; 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=0EeJt2/IHQl/YQCaB+UF88NGaWdjcKiX03wFO+hAP/s=; b=jjjIqo0F3a5w4ttfwXqRRxznFQ+9iDINvh3QKsrsorzOyYdDTb/XEmTwB4XMt/rnCF +wFoSM5mKnMSKBU26RUg60E8kpg1XGJBvirsJKc0D2wuUYTt1A5Up4SWQUN1pk0+JJoA RMWq2j4RByQMAN8h9II8MVOdB/yq9LeAmJmqGS3NBT1tGFXoeJRDwKT/HwrvPpb1ZW72 MvT+IMhuGmy4G/Xpyqo/NKRGuVqJUjJtGRbtCSKFcpXKoHLg7TPVDJA+TyesM57KY7ZE P0OhwmKqZKTbNWd1CwzDpkpUJyJK9Asj6sf0+Ct6OF8WBEZw/R4VcrDPaJGQUZrbS/Gy 3/Iw== X-Gm-Message-State: AOJu0YwI/RTujqHLquDx5oLks/B+IgBTqKOAi4Ti7lVJV2X/p4Ikj1bE WsZ7lKVj3fsVUjGYLi+lGVr9wvNrgBwL2DuWVpVEnvylgMpOwHWpMu6ueqVfgLH8fRo= X-Gm-Gg: ASbGncsH6djsMuQVRAKjZjRGxIBs9VxvtTkyGtArErguX0u1I4Q9MJdHoj5HdStkEEM /bctPhI7gQOERLsMIh1EQsLkTAE+Ku68t9g+N98WpLo7D05uCK9g7HHptiSrgUoMBMou1PnuPQu thLCeJFdZuwuorpijpQeILjTcw8g1SsdyHPcC2ObN4176FwukvWamgfbhnxHOH8mQr1FgZp5Dn8 STESNo/uzIgZJULdRSuH75GzjP0yzuUgZQy2tACCLN00kuIyzWSQd5Kb2h2AcN4gdFOK6dvJEdQ 0XoRju97L75GXzJs4XgAIheFKK2EHuokfZGBnrED8NhGyUu9ldKi X-Received: by 2002:a17:907:9803:b0:ad5:3156:2c06 with SMTP id a640c23a62f3a-ad536bdf940mr1711196366b.28.1747845774935; Wed, 21 May 2025 09:42:54 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d047754sm918511066b.7.2025.05.21.09.42.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:51 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 6B9A15F9E3; Wed, 21 May 2025 17:42:50 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Julian Armistead , Jim MacArthur Subject: [PATCH v3 03/20] tests/tcg: make aarch64 boot.S handle different starting modes Date: Wed, 21 May 2025 17:42:33 +0100 Message-Id: <20250521164250.135776-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::536; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x536.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 --- v3 - create system stack so we _exit cleanly - normalise EL string before compares - catch when we start in a lower EL than we asked for - default to EL1 when arg unclear 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 | 171 +++++++++++++++++++++- 2 files changed, 168 insertions(+), 6 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..78380a6f75 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 @@ -70,21 +71,171 @@ lower_a32_sync: lower_a32_irq: lower_a32_fiq: lower_a32_serror: + adr x1, .unexp_excp +exit_msg: mov x0, SYS_WRITE0 - adr x1, .error semihosting_call mov x0, 1 /* EXIT_FAILURE */ bl _exit /* never returns */ .section .rodata -.error: - .string "Terminated by exception.\n" +.unexp_excp: + .string "Unexpected exception.\n" +.high_el_msg: + .string "Started in lower EL than requested.\n" + + .align 8 +.get_cmd: + .quad cmdline + .quad 128 .text .align 4 .global __start __start: + /* + * Initialise the stack for whatever EL we are in before + * anything else, we need it to be able to _exit cleanly. + * It's smaller than the stack we pass to the C code but we + * don't need much. + */ + adrp x0, system_stack_end + add x0, x0, :lo12:system_stack_end + mov sp, x0 + + /* + * The test can set the semihosting command line to the target + * EL needed for the test. However if no semihosting args are set we will + * end up with -kernel/-append data (see semihosting_arg_fallback). + * Keep the normalised target in w11. + */ + mov x0, SYS_GET_CMDLINE + adr x1, .get_cmd + semihosting_call + adrp x10, cmdline + add x10, x10, :lo12:cmdline + ldrb w11, [x10] + + /* sanity check, normalise char to EL, clamp to 1 if outside range */ + subs w11, w11, #'0' + b.lt el_default + cmp w11, #3 + b.gt el_default + b 1f + +el_high: + adr x1, .high_el_msg + b exit_msg + +el_default: + mov w11, #1 + +1: + /* Determine current Exception Level */ + mrs x0, CurrentEL + lsr x0, x0, #2 /* CurrentEL[3:2] contains the current EL */ + + /* Are we already in a lower EL than we want? */ + cmp w11, w0 + bgt el_high + + /* 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 +251,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 */ @@ -198,7 +349,8 @@ __start: orr x0, x0, #(3 << 16) msr cpacr_el1, x0 - /* Setup some stack space and enter the test code. + /* + * Setup some stack space before we enter the test code. * Assume everything except the return value is garbage when we * return, we won't need it. */ @@ -233,6 +385,11 @@ __sys_outc: ret .data + + .align 8 +cmdline: + .space 128, 0 + .align 12 /* Translation table @@ -246,6 +403,10 @@ ttb_stage2: .space 4096, 0 .align 12 +system_stack: + .space 4096, 0 +system_stack_end: + stack: .space 65536, 0 stack_end: From patchwork Wed May 21 16:42:34 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: 891530 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2220519wrm; Wed, 21 May 2025 09:44:56 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVay8j1Iw+ZGSDCro1tTQHUXKOoavCc9rJPdpmiKnD8s2QRq7WTHsPWl0Tnq8coCSimMUSMJg==@linaro.org X-Google-Smtp-Source: AGHT+IFoT0LfQeijAd4tA2yGSLhG6Ve8JG3MPZpdTl/jdl/otF39P2T3H0y3/E6Kc2oF2UT2Iljc X-Received: by 2002:a05:6e02:3784:b0:3d9:6cb5:3be4 with SMTP id e9e14a558f8ab-3db84322dfamr233053625ab.15.1747845896714; Wed, 21 May 2025 09:44:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845896; cv=none; d=google.com; s=arc-20240605; b=Jo4vFUvYFKjESnLTZ8J5JsN0/DJIumd1QAvxiliNpWK3Itjt855RgIvNfjCW0BcUeN VlBmIBH3TA2cYSoJb5ltXCno0DiBI9+JRJwgARfze/fy2b2VBRO8nZe4iJLHtmozFI/o yqWHiyPuxjcorK5ad/5hdiTOw+98JVILFzDVJT4zscwoeLABnruoM+T8ZA2Fl+fkm/UY N+NNHdUcqxv2mwv50ELVXrquI58KDeEB3RYkBSvTOtpEAaeoKgOlyb17Kv3/9j85Sb2l IQs5dF/94jGOcKs6I3Z98YpugcK7/x1RHN8aBQreASbQM8Ad87qJHj5ISeBZXGuhFItP BMCQ== 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=NmqDsIQ60Ty23DxSPxeo+hGIPXJEhGzvguIi1HmtE4I=; fh=gkpMxQO2TEsFqaK/Zc4PLl9YebjhXOf3nNFMnTrXF9k=; b=PZu+VF2QXBDZhhHr+A+caNtQiun7tc7jjCip8DdBnQuwBjpvg94wZ4RrC0yXWfor5c MLmNh7YsuF1RCefGYLVnCag9eC2UoD9pV9rAUFFRYslO6E4Mp+xvc1C6vbL+hmwkrU7B UWUNcN7zqtksmifZVxCuACWwyx76QvgXFqBrqNyq4VVjbg4lDjFxXLZBXY7Y35Iyd1Zu jE989Yo2Zf3ZQEmKBQH3+qCMKyXEsBHxAYH/XCPNbYCYrIFGj+DsvR2+oIWadR3P1y/2 kEQC9E4WUwrJGh1+7Q+G6ycaDl4qm746GG0oMroC+ZcBtNZlvmPeL78GG7JOGuNoTSOB Qy1w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FYvsQBGq; 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 e9e14a558f8ab-3db84395affsi95676045ab.15.2025.05.21.09.44.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:44:56 -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=FYvsQBGq; 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 1uHmX9-0000VZ-4G; Wed, 21 May 2025 12:43:11 -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 1uHmX3-0000S8-Cf for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:05 -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 1uHmWx-00068z-5j for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:05 -0400 Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-ad54e5389cdso684430066b.1 for ; Wed, 21 May 2025 09:42:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845775; x=1748450575; 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=NmqDsIQ60Ty23DxSPxeo+hGIPXJEhGzvguIi1HmtE4I=; b=FYvsQBGqqBRlIL6rgHMwfo46iWHr699aQOkiv4ow56a0nShNEMbYCd0nD9A7Tf9rdq npow9D/Zu0+3JUwj52DfEjQy0BHHqZP5butNSDw6AT4DCXa1k89h5YGnuecPAmFUcL4Z DCekOEytqvl3h3H3cqAYDmNkVqfhmUlW2MuJiaqv/ASar3zod8JailkpmoQBGYd75jFy toBs2DulYVlnrVkUfiRbsqioq6CWR+Oi7Ns4fd4aBGahcpefZmszA84uRrz4TanjGzOn b5mOoSMVB8imGa/Y1+uPVlezmuqk9bHbui1aE2QqWl9/wNg7xvBl7Cuw5t+/m65Bm6on zAWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845775; x=1748450575; 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=NmqDsIQ60Ty23DxSPxeo+hGIPXJEhGzvguIi1HmtE4I=; b=gNUR4BjO0SgzKXgM1rrKn53ee/LJojPW6y3tbOlaWXey67vsSDUXdRpC07PPHaEd2H dCWk4K9ygC2ask30IcpnB99kgXen21tvDBTfqHZtVP0yKoc14wBLGQMzeVmpNbZz1p4T D9hkNOvVdbQ6Ea3TNChgsb/AjezAdqML4/pFSTyyOBuX2tHTZ14kx8o90KuQ267CEZnt W5EO3TWskLrsz5bzkfw8bStm5MXFA/uXWrHnVmaPTlyU7PKLbpQQPse079xQy4tF3Zr4 T4AbdOfHTA6o/h72tCoX9uEpdnzQDhBn628OqOhipPidUiMkH54ugIeo2X8TJjg97dZI 4CCg== X-Gm-Message-State: AOJu0YxbMlKCbF37hLL5Fh3jzUjnkNEHC55XUsET1cYdcJIV7/kjNM4v z8w6k0VPKLSxxDQTg5+fNCEUIsp3OpV0+uoiSFFImTpbAGX0cmGWekBBGa8MuMWk5S8= X-Gm-Gg: ASbGnctaHn7pabDhTxWQHpqNXNS75cQxXXLZoJ4QG5X05xIghN3Df4zu6wdFhjhxGAx IFN4M6u6Qpqeculipl6fddhHZSp3aepKIAEfwGs4AqcoqS/Aso8zYuPAeT51g/sHwFdNFize0xC ZKzyKPyXA9uuSrsP4TAPQgsKx01+yzwUqrb+DLrxCyv+8VPunlWvBpNjn7/DB/xi9tvWH1sXaqa sj3IFdmoqGfwkeQx6QRPPdIyQyYdoazmDLZXa0romQh/9W0lXG8wPAqrIjINNwbxoIEnbINrehg xVwKfWJQqI50yG+ygvPc+qY+8E57XuMdbZHMe0ST67LToGjpjtHOQT0b2O2UdVs= X-Received: by 2002:a17:907:7f21:b0:ac3:17bb:34fc with SMTP id a640c23a62f3a-ad52d5e1a9dmr1611527266b.52.1747845775415; Wed, 21 May 2025 09:42:55 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d04b08bsm935707866b.13.2025.05.21.09.42.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:51 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 7DCDD5F9EB; Wed, 21 May 2025 17:42:50 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Nabih Estefan , Richard Henderson Subject: [PATCH v3 04/20] tests/qtest: fix igb test failure under --enable-ubsan Date: Wed, 21 May 2025 17:42:34 +0100 Message-Id: <20250521164250.135776-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-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: 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 can use ldl_le_p and lduw_l_p to assure the unaligned access working properly 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 --- v2 - change title to reflect test that failed - re-phrase ldl functions to assure unaligned works - remove excess ()'s --- 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..ab3ef6f0c3 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 Wed May 21 16:42:35 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: 891529 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2220517wrm; Wed, 21 May 2025 09:44:56 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXda3aePlHsFFIAsMpQyWHKdjDkzjUQu0M72GpxI5B3HzoGKecRKseMaczxKP26gYKgY7dCAQ==@linaro.org X-Google-Smtp-Source: AGHT+IFmam2kLJILUwnJNORu9MNqAQeWNslTsdXDdwvLpKQxcAyy1QtAqGNnEmMSROXR08cQr9ad X-Received: by 2002:a05:6e02:3181:b0:3d8:1d0e:5308 with SMTP id e9e14a558f8ab-3db85737862mr215594615ab.6.1747845896619; Wed, 21 May 2025 09:44:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845896; cv=none; d=google.com; s=arc-20240605; b=ChMF1YtvozUV2f4iurfUaI+bMxQqfYrol6nJGCOCQdWqAwgVG/CUj2TuFPfyixCD1i N6ZdHCO7PfUmLOCmFHpM2Td3CMzi2TTajwp7oSMMR3xL3yJgvBWA2typqcqx/nBdw0ve DMAL5clO+unP3fLC4EaxUD6VhY9CjqgMB4Izjn7K556kcFsTeK1dEhxIf/g8jiKCF1Pp h6wxmrn2hRrzj6534wly8dy6J6xJfEdCBHrmkZmesr4BOoqxFcJ89bCuE6wW5gEZ/V4C WYFdqS4pe3/ZPFUvAzL5qeOXRzAzJmbJPM2bxyTbOFKBTqNwDVCkNbUJLVkqPNVv0ETT 5Z1w== 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=3Zy7bHoTjVWIOBbr2AD55ceZ3kB03o6gn1A+C8POtkw=; fh=bRO1MF9VSOWVIGjbYXUTHO3COe2aRRAcNw1LSvnzoWs=; b=R9l1OORTCv/i/tFLF6w5CuTbK6iMRLXduRgS1Ujz6t5/SsV4jJTMa+FTecTQNLLQc/ QbFFCSP4VbBvYoq/QdHWrrfBvStXzinW8adnS19mFes9tUH/GftYTu1rNQv2XCGCM/tl hskzy1c1TDOBL4gfUhUSX0RSQfG8wBp2aHF4sfW7+gxbdRc2OM2aq5albBW7czI+nG8T 70hUl8n1ZyaujGcgojQUJcAr/NUGpoI8mEVEa5ZuyMNRT10f0r0d0i1lhDnGlGCxNU0d Ume4xKJcMrwWQy4/XT7QYP5EEsoBc91RDPVkP5m/pKkaSRa5HgysxPBzgklCwzJR71LK 0x2Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OA4faqZa; 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 8926c6da1cb9f-4fbcc4eef60si13495813173.158.2025.05.21.09.44.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:44:56 -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=OA4faqZa; 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 1uHmXD-0000Yu-EQ; Wed, 21 May 2025 12:43:15 -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 1uHmX8-0000Vd-6q for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:10 -0400 Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uHmWz-0006AB-Gk for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:09 -0400 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-ad52dfe06ceso602158466b.3 for ; Wed, 21 May 2025 09:43:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845779; x=1748450579; 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=3Zy7bHoTjVWIOBbr2AD55ceZ3kB03o6gn1A+C8POtkw=; b=OA4faqZaKcNIDjzY7RPVS7yStyhZY/OX1pS5g1II9SiDNVJM/Cy57EDrVj90tZpVuW 56alPqkTSMt1rc42DyFB3asJTGuftLr0/yHyQpL1gleSDFsO6pJ1qOyTt0dNwhZ+xF26 T9as1XL9LoH0f4aH5X06dKdXSwWMAJTG7r4OVvmPaQ2JJaSTIzsbVIZk3mWIQ4mNTw2b wwzpr8cMGtAbMyWbCQyqWiLR8pycLg8DEnkeHj0r2/RUcdCoaXUz/mcqgjXImmEG7kZj z7MrAO2CRdlqJcLSr+ApLz0Se8BXW8cD4HRtoQBQ7d1AcMedkaMZH/Mer13HdKiXJTXJ NnKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845779; x=1748450579; 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=3Zy7bHoTjVWIOBbr2AD55ceZ3kB03o6gn1A+C8POtkw=; b=TgtOWl/iG0OgH8I4V9MwgTOOdHNINRR1TvCNWkG2O9t2qG1ApYqEsZcMIas/zQoglH PQm/G98ys3QL0ZJX6GTZkUS5ATnJEcMQgTwMpiS//XuU4iZHDjCipCgTC7JOCuJ530NO 1hWQsGdrNx3mtV/8+E/qczPVKHdu0bCajXofbsZDTV064mDCxeEy22ptvW1mY4ZRxfEF 3rZpSV7wU9y7bhvQhNSX6DmR6IOFfDpa9CEQ5mtVXIU7hqWxH7/ncun/WmdbVm+DQvsS cLPrKox0/j89Pede7itoYBXUQY//v6wzWPvD+gaUTnKgwN5OGnbXwRDt0o5Az7Ca2NZA dQEg== X-Gm-Message-State: AOJu0Yx//iGP4jpUQfA5JgPmvAd2GcitL3dLt7/x/vflqbkG6996KbhN bYj65kQyaXoE436lMKQCgmZWxVfr8cGQpbWPcyQ2wlIjkJlPE2/uqB9CbDpWo4WFb2w= X-Gm-Gg: ASbGncurMyvjpQ6mmqkIXtRB6tlfhJenlsGwr6w/7zLt9dXHBTv0KArHcuU1XPoepW7 PTLNeTCju+ENDsxqICKbqKD2VJgb2eHEexJ5Xk+fKO59m1jnaJgQ5mG1WhZhwT3B8y22TPzmzaz vtGzXEFf/trEHgR0v3rsPfnWC9rJnKmzRGMQU88iSbfol4GfGLQ8FWMmtHEDsJ3DtAaGobZitVD CXknT7eqeTkTgRVE1GVZirxA7Dw2VvzaDfz44kc/4UjgxJxcb0LMuE43xENVm7c8rRQPHClxOGM dvwRdIuyraeAPXZTxOBdILXsUCt+lwoHExklWcrgLOi5zzsvWDAk X-Received: by 2002:a17:906:6a19:b0:ad4:d069:324a with SMTP id a640c23a62f3a-ad52d26e41dmr1761043666b.0.1747845779079; Wed, 21 May 2025 09:42:59 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d278290sm919281166b.78.2025.05.21.09.42.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 906E55F9EC; Wed, 21 May 2025 17:42:50 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" Subject: [PATCH v3 05/20] tests/Makefile: include test-plugins in per-arch build deps Date: Wed, 21 May 2025 17:42:35 +0100 Message-Id: <20250521164250.135776-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::629; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x629.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_SBL_CSS=3.335, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 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 user can run a subset of the tcg tests directly, e.g.: make run-tcg-tests-hexagon-linux-user but in this case we fail if there has not been a full build to ensure all the test-plugins are there. Fix the dependency to ensure we always will build them before running tests. Signed-off-by: Alex Bennée --- tests/Makefile.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Makefile.include b/tests/Makefile.include index 23fb722d42..7f7f62cbf6 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -46,7 +46,7 @@ $(foreach TARGET,$(TCG_TESTS_TARGETS), \ $(eval $(BUILD_DIR)/tests/tcg/config-$(TARGET).mak: config-host.mak)) .PHONY: $(TCG_TESTS_TARGETS:%=build-tcg-tests-%) -$(TCG_TESTS_TARGETS:%=build-tcg-tests-%): build-tcg-tests-%: $(BUILD_DIR)/tests/tcg/config-%.mak +$(TCG_TESTS_TARGETS:%=build-tcg-tests-%): build-tcg-tests-%: $(BUILD_DIR)/tests/tcg/config-%.mak test-plugins $(call quiet-command, \ $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS), \ "BUILD","$* guest-tests") From patchwork Wed May 21 16:42:36 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: 891540 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221182wrm; Wed, 21 May 2025 09:46:19 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUfdBWBAWAB81OBjQ0W9JsNjDn/VI8d8EAwBLSU4varHfcZVij4qIFEmLY8CDvmCUn21DlzzA==@linaro.org X-Google-Smtp-Source: AGHT+IHuPAYVlqlmJrBMyJEu2CdTwzLmatX9dCkU1zJIXOo/zfk/ElhfNaHfobD7GsWi/sDU//7v X-Received: by 2002:a05:6602:4012:b0:864:8761:8219 with SMTP id ca18e2360f4ac-86a2322982cmr2591601139f.10.1747845978931; Wed, 21 May 2025 09:46:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845978; cv=none; d=google.com; s=arc-20240605; b=ZAJXKb5GuuCG243YBYagDpywk4OYT9XTUZ4lpvHFw4V+R0pt6SovP3mXVaIE+JE60a 7OShnlPGX41ibgDejUWPK7BE2ffBTwjsxdTZf+HTEW6WZr/An57YKglkSjRs+HzoD1FO oruM04KW8s9Q+y3Mj8V1d2n2/n+AibI1YOkVYa5d+Zjde3uXryma43i60/koZMJYF2vR Ihgkf7yG1afzvsuwbIR2hp0V/QF6LioqSA1NcMJzKQaOepvzceGaWaCSAJr+SmNGQ/Rf Y+MMCrXEJi4lw7shQ6IRtfT1FF4Q7ltS0rZ9SrEhxD9PHs6gc82smtPXgVUwArKlCjSN NCow== 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=XSaW7EPhU0xD/RI/rQjLR4sQyzmwUKCWSad6bmNOlRE=; fh=n8n4ZOouvJPGKyhPzYbRbAv3WQ3VfBu7CHa502r5QDY=; b=NEXt1rDZbGok8yXeHExyoqXdgM037B9jbneVXFnPA2jkya+VGiwHMibmTbTlufBJED vjroH3XDAaOp342HziyXTY5HcgzTwWYuy5zGhUiVCAjRfA1Ngq/ZvOu91uTnHfgTkFSX MrQtZPBwEU47lLl8jefGejp7gMZLkBwy6kOy/XwrDxeSiw89vXA5xUTGngTK23MnlRBb bF5gTEZzc9CTwTK1yi4JXbCNSTmkYlOerxyzkQ5D0bHLdNh2RdA+GgorrHbG0oqLmah0 Xt1FbHAEVvjsmF0yE4WNkTcxbw65pRRfuF3G39m6yE0qq0d/DRDc3KJOUcHdGtEm9PTH djHQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=sq3GLCWu; 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 8926c6da1cb9f-4fbcfac9c77si9214395173.61.2025.05.21.09.46.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:18 -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=sq3GLCWu; 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 1uHmX4-0000Sj-EV; Wed, 21 May 2025 12:43:06 -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 1uHmX3-0000Rf-0s for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:05 -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 1uHmWy-00069G-GD for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:04 -0400 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-ad5a11c2942so288673266b.3 for ; Wed, 21 May 2025 09:42:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845777; x=1748450577; 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=XSaW7EPhU0xD/RI/rQjLR4sQyzmwUKCWSad6bmNOlRE=; b=sq3GLCWuTQmqwuC+hqOXawrF1Yy00Etf7/QfAokCiLs/QVcofvg/XEhTdEz+mnCnCW QFVFnM7mHxPl6C3BbC7YeUlQfoyXK7Vh4yCNqgw4KqieWHJydrH/CxIRHYutUh0PP6lC 9rrCVN0IYnCQitmVzbBJEPDlSnnwmfa1Ir+JLQpG7vCbIxbvXurP/JmZ+XNvrVaYOEgp /fwk12UKrUirtp+NH1QhB+YOIiIss3k4RZhMwFIRe2WrEEiFmicOMppyiY7eVFgxtLsS BraDcvz6lF5XWIPyLOejYZ3UZOCK8+K4OsvpGVa8iBNIEe4P2KC2PxRyf2ZGggJshDcu 07fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845777; x=1748450577; 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=XSaW7EPhU0xD/RI/rQjLR4sQyzmwUKCWSad6bmNOlRE=; b=ji337QKzx2+L68Ol5TGZlAhaeWaBnxQhP9nUq0julZxbvI6/4RaKCAVQnViGDCHwl7 Rq8hXDz5Q/C2CnHWVw8kwrJuJ6TxtpF846qA0TrRVdCZul6oMIkvI3bmzhuiNTOyB4bz lXjnxW/xjsHdCnNKXUECCmhjhQt3Wik4WOkhS/nlrxGDhpKOyiLOv8D6a/Iv4FS0aO9c 6gksJvjq8PxYjqMo1TyVbObInmsTYB2LvcEc3/6SwZjwE7kTQ1LaZWH7bOl7xsq2OCPh 8EDxQSmma7lzaWjaKpqKYbC9BNF7X1NCX+G5KNfpl4QFIJUgfMUw6yh9VNBE9jOxpnAt G0GQ== X-Gm-Message-State: AOJu0YwRw+0P+pYrLdBZFapQEd0Q9i/FJtP43RfWsrpSh1kAzH70z1Mj lI9FW+31SSi3PcxLHfAN1gKJmlePe32S1zVnGevAv1irc/gEp3HQyaH25/RFzJ5Lbdo= X-Gm-Gg: ASbGncvXN3kx0ItiO+QihTRNJg4w7ZSr9JCy3s3uZ49oyGyXkU5auTv/XfiNVtJUcwK 3fSJWdNqnh2VSJxiufFzQP0xJOxrnTPG1FPKUeQ3x1l26SHHVmI8UtmUgj0hcexmXPHviuo8z4R IoUSGq29fnlkhaGjTgUeFduhKtyQxzpuIFunjCmeg1/+6rzKSKk9PTnvhL2zl0Fl1OvxkjwZ8SS uz/EQ4lI7aFRJs+XDJ7ZwUBwsl9KS1xRCrWllcz8mNN9/4sHsyj7mbMnMBqryxVUzDzcMj+MgCp 2kLXnVFUiQNVDiCK9hn/kSfDZFL1N81PMCp0ZADyHzamrDACcVVe X-Received: by 2002:a17:907:7205:b0:ad2:2dc9:e3d3 with SMTP id a640c23a62f3a-ad536ffc80dmr2466608366b.57.1747845776846; Wed, 21 May 2025 09:42:56 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4967e2sm919240766b.128.2025.05.21.09.42.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id A7C2C5F9F5; Wed, 21 May 2025 17:42:50 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Eric Auger Subject: [PATCH v3 06/20] tests/functional: Add PCI hotplug test for aarch64 Date: Wed, 21 May 2025 17:42:36 +0100 Message-Id: <20250521164250.135776-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-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: Gustavo Romero Add a functional test, aarch64_hotplug_pci, to exercise PCI hotplug and hot-unplug on arm64. Signed-off-by: Gustavo Romero Reviewed-by: Daniel P. Berrangé Reviewed-by: Eric Auger Message-Id: <20250512144629.182340-1-gustavo.romero@linaro.org> [AJB: add qemu-arm link] Signed-off-by: Alex Bennée --- v2 - add qemu-arm link to MAINTAINERS --- MAINTAINERS | 6 ++ tests/functional/meson.build | 1 + tests/functional/test_aarch64_hotplug_pci.py | 74 ++++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100755 tests/functional/test_aarch64_hotplug_pci.py diff --git a/MAINTAINERS b/MAINTAINERS index 7060cf49b9..818d7b9d5f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2078,6 +2078,12 @@ S: Supported F: include/hw/pci/pcie_doe.h F: hw/pci/pcie_doe.c +ARM PCI Hotplug +M: Gustavo Romero +L: qemu-arm@nongnu.org +S: Supported +F: tests/functional/test_aarch64_hotplug_pci.py + ACPI/SMBIOS M: Michael S. Tsirkin M: Igor Mammedov diff --git a/tests/functional/meson.build b/tests/functional/meson.build index 52b4706cfe..2d68840fa2 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -83,6 +83,7 @@ tests_aarch64_system_quick = [ tests_aarch64_system_thorough = [ 'aarch64_aspeed_ast2700', 'aarch64_aspeed_ast2700fc', + 'aarch64_hotplug_pci', 'aarch64_imx8mp_evk', 'aarch64_raspi3', 'aarch64_raspi4', diff --git a/tests/functional/test_aarch64_hotplug_pci.py b/tests/functional/test_aarch64_hotplug_pci.py new file mode 100755 index 0000000000..fa1bb62c8f --- /dev/null +++ b/tests/functional/test_aarch64_hotplug_pci.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +# +# SPDX-License-Identifier: GPL-2.0-or-later +# +# The test hotplugs a PCI device and checks it on a Linux guest. +# +# Copyright (c) 2025 Linaro Ltd. +# +# Author: +# Gustavo Romero +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +from qemu_test import LinuxKernelTest, Asset, exec_command_and_wait_for_pattern +from qemu_test import BUILD_DIR + +class HotplugPCI(LinuxKernelTest): + + ASSET_KERNEL = Asset( + ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/' + 'current/images/netboot/debian-installer/arm64/linux'), + '3821d4db56d42c6a4eac62f31846e35465940afd87746b4cfcdf5c9eca3117b2') + + ASSET_INITRD = Asset( + ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/' + 'current/images/netboot/debian-installer/arm64/initrd.gz'), + '2583ec22b45265ad69e82f198674f53d4cd85be124fe012eedc2fd91156bc4b4') + + def test_hotplug_pci(self): + + self.set_machine('virt') + self.vm.add_args('-m', '512M') + self.vm.add_args('-cpu', 'cortex-a57') + self.vm.add_args('-append', + 'console=ttyAMA0,115200 init=/bin/sh') + self.vm.add_args('-device', + 'pcie-root-port,bus=pcie.0,chassis=1,slot=1,id=pcie.1') + self.vm.add_args('-bios', self.build_file('pc-bios', + 'edk2-aarch64-code.fd')) + + # BusyBox prompt + prompt = "~ #" + self.launch_kernel(self.ASSET_KERNEL.fetch(), + self.ASSET_INITRD.fetch(), + wait_for=prompt) + + # Check for initial state: 2 network adapters, lo and enp0s1. + exec_command_and_wait_for_pattern(self, + 'ls -l /sys/class/net | wc -l', + '2') + + # Hotplug one network adapter to the root port, i.e. pcie.1 bus. + self.vm.cmd('device_add', + driver='virtio-net-pci', + bus='pcie.1', + addr=0, + id='na') + # Wait for the kernel to recognize the new device. + self.wait_for_console_pattern('virtio-pci') + self.wait_for_console_pattern('virtio_net') + + # Check if there is a new network adapter. + exec_command_and_wait_for_pattern(self, + 'ls -l /sys/class/net | wc -l', + '3') + + self.vm.cmd('device_del', id='na') + exec_command_and_wait_for_pattern(self, + 'ls -l /sys/class/net | wc -l', + '2') + +if __name__ == '__main__': + LinuxKernelTest.main() From patchwork Wed May 21 16:42:37 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: 891545 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221458wrm; Wed, 21 May 2025 09:46:55 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUoSCgaRsGxT6cf0UMFz3xmWKVYQDQiDbV1GcG8FkX4euzTtRbt3rxWLsDTx/zXB5xMV6N7ZA==@linaro.org X-Google-Smtp-Source: AGHT+IEXm5Wq0S76hOdt31WUoe5Fl8juoDUDOGW4IY9w8YUEI6WqGtpH4ZyDCB5usLWYovAyJxN3 X-Received: by 2002:a05:6e02:3307:b0:3dc:8a53:c9c4 with SMTP id e9e14a558f8ab-3dc8a53ca8fmr15646835ab.6.1747846015471; Wed, 21 May 2025 09:46:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747846015; cv=none; d=google.com; s=arc-20240605; b=EhX0MfT3kQysmojs3ohrkZq5ismq8u51a7XX/zcuMZBAnYlL4sNfHlIS4Zdd80UXYS M1hTlfQjT83CC6caPVERRYlTygs96UYhILSVYNPb+dogL7qo0ajp4hU/rCYP7uwDKGOu Z1lge8VMlf9YcFHwbOGDkWBZ4syKMo5yNaul4WzpbLOZ9DJ3n+veRwPhNZadnXHmynuZ RY9cO6/sqtWbH0BecvSqEjO9SWO+MjewZ4XW1QnCYEg5R2GiY5EKbYTpgrC3jQUiWBeM rGCmXownfqMg0uT/m1hdUfTX6mXNC/Ms86QnHMPezYcEDM9EfmVKxExSEiJa1dlk0qQQ 0iiA== 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=Bk8FpSTvxiM/NAT/RHs0cdgY5o8m/myin/sCjff0MlQ=; fh=bRO1MF9VSOWVIGjbYXUTHO3COe2aRRAcNw1LSvnzoWs=; b=NtAJ2PF5f3QgJjonSUlCdy6JUV9YY3wXr3IC5+hNKOI8Nc2dmRnSS0HU8Uzo0fJdhy ugStPqg0SVEsUMYD0/lcv8iX0Oa3mi1+gh2oYifrSYGgWhHQfOyHyoACSDK3RgWl1//f rSFg1H0vww30NRnY3IEKc2sCge1L/wNAdMXV1SIp18QInelOCKUg7J+vBLN7g36kNFZG /hLtLB0YBsURzsDmMlvXxiGtwI+CUgbRArCHN5oGloaiaAIvXNMNEQGOj8PNReg31DeA C25xC9YkRROFo7gJvUatL4FsoYTNE6iUkRCqDvg61SptvMJrW2F+9g1Br3KNOhC5z1B4 ghwg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ai4Z0MBN; 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 e9e14a558f8ab-3dc76de918bsi62184415ab.153.2025.05.21.09.46.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:55 -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=ai4Z0MBN; 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 1uHmXE-0000Z5-Bj; Wed, 21 May 2025 12:43:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHmX8-0000Vj-IC for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:11 -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 1uHmX0-0006Ad-MY for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:10 -0400 Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-601ed5e97e9so6523314a12.2 for ; Wed, 21 May 2025 09:43:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845780; x=1748450580; 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=Bk8FpSTvxiM/NAT/RHs0cdgY5o8m/myin/sCjff0MlQ=; b=ai4Z0MBNkOIQqVT6FHvgQGC2NVvmlBMDuQsfUe4PWehb6CUWBnRIbZ6S+YUC8aV9Jj h2Q0Pez48xv4fFZypspXmSNvZQK7izoBHNMMiOj+l2kNHa3e9VHT8D6/WtLBwecaQ+iw iniedxKYXO/1bWVj1t9G9pIBnSS4VAXro10uhX0BssNpkvU7nMg3+uwYfPOULnz23vUY t5X7M0c6i1L/PWOrXIGQmvhQq0DBWi0s1y18KvGapsNwV6/jr6bRgUr9n6HHQJ+QwxdR wziMHjXrqNZ///C2V+Y/ezVEultboy2+W/FoC4PPq6s/hnuu/21RT6TNAzMXH7VneBPQ BVyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845780; x=1748450580; 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=Bk8FpSTvxiM/NAT/RHs0cdgY5o8m/myin/sCjff0MlQ=; b=jX6GpA71VcmyddYOUk4gQvLq9cuegbYnuV8tAHZl8CkJ9xmNyZ3nxSKeCztIEM1Eag OP8q0jfMSAllAmxLy2YUGU97VLkG/038v2RdG3bzdwf16PyiLly1S3UR8lhcRrDs3eA9 G6K6K5sJIHST1ALbTIy1vbYod4UzgkeZlzT8XCldP1g3X1gRFNknrMVC4nwcga4rF1kd JSxQ3ItTGMp2FOa/iyj52bjFpn0Qwc0w7bvoolpiexDcwS6lk2kQFwk8/2TAxm//4W7z BOycB3jnd9BcS4npMiBYk86vI9mM0mGedoyhIdKigPwUT5ejv5GxjjiW7BmiYxh0SwWt Zlag== X-Gm-Message-State: AOJu0YwR2Qu5ucwk/kmfhSedQdoe7XT2us4TErDmfCZDFq1Fv8oGnpDs dcVjMRyLG3WKmV3FKTVqSQfQ/k2ssHkY1Qh1VGcmgQJcFSVHFRmNpuwDCDyiYYVUPXk= X-Gm-Gg: ASbGncvaA0vRB+A1QDeBiFs++ge/2GgEqDjjeEYkonBLsiyPLHKVLRyL2sKEi1BTb5M VEzoYnoAvS6YAquKs3eYJvYYXYjEWB0NdWBRsFqSCDnYZ4LibTN9yR09F0dbwc8qoEM2PgnLEZT ijSatisGUBdWPc5Nk5104D9+ceJlgByD1Bg+9LqIiNiEENjHTDjCHHhccbIPAcGRm+Iza4pxzkX +NElp79cvx09oDvybsqcXbQv/6T3t6kWcU2g+wylvehWdAzLO+z5VEz4d/YacyLT+IpsSmh5/VM TX69MLdMC8hHggzSQ6Y9LcgHIRycptsE9fRQ0KIhaS8lpL7E83lT X-Received: by 2002:a17:907:2d1f:b0:ad2:23b6:149c with SMTP id a640c23a62f3a-ad536dcd710mr1664944866b.43.1747845779769; Wed, 21 May 2025 09:42:59 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d490910sm929266466b.135.2025.05.21.09.42.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id BB1FA5F9FA; Wed, 21 May 2025 17:42:50 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" Subject: [PATCH v3 07/20] contrib/plugins: add a scaling factor to the ips arg Date: Wed, 21 May 2025 17:42:37 +0100 Message-Id: <20250521164250.135776-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-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 - scale_entry -> ScaleEntry - drop hz from suffix --- contrib/plugins/ips.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/contrib/plugins/ips.c b/contrib/plugins/ips.c index e5297dbb01..eb4418c25b 100644 --- a/contrib/plugins/ips.c +++ b/contrib/plugins/ips.c @@ -129,6 +129,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; +} ScaleEntry; + +/* a bit like units.h but not binary */ +static ScaleEntry scales[] = { + { "k", 1000 }, + { "m", 1000 * 1000 }, + { "g", 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 +149,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 < G_N_ELEMENTS(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 Wed May 21 16:42:38 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: 891528 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2220481wrm; Wed, 21 May 2025 09:44:52 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXNcyysSi3S5SBb0AwISwMzS9s8aRKpwLIW3fqHn28PqN/Bqz25wBWpQFlr9FEAJ2NHlpQWOQ==@linaro.org X-Google-Smtp-Source: AGHT+IF5inp5HZK6YbYj72Fb2ONvtUAb4dPckqPYG132Ygvl0M+FQfbEe88+LJH+wed7InQHHDzy X-Received: by 2002:a05:6e02:5e07:b0:3dc:757b:3fab with SMTP id e9e14a558f8ab-3dc757b4338mr75907505ab.6.1747845892090; Wed, 21 May 2025 09:44:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845892; cv=none; d=google.com; s=arc-20240605; b=F9OZCjCpXexE0DGrabXk0PNE8+CVEl+CTs0GmYxU3WZeEdpYRik9uQK4phuMhl/UIN Azzb3h2QMssWWXSXwl3LOKLdd6BJFf2/qWhLBwuoK9wHw0RHtTkAjuVPss7eGFyDNan4 fVn4mmuwSOhHL1tmuu4MVK6J8wm2nykSElJTMsM2feIheKqB6qjf6xlENgaZU5FatOpG cpOOmqYnPMN29aEiQqegoZZALzGeNIlNp09TfYL1sG9g5/RnNe3DgcmrsCEIfMd/hVUL H/hZax7DmIAi8H2r4m4i/NMfvJz0nYUQc5wocsGps3I77kqAGNIsFq5ryylhs9qv1u0D N8ag== 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=VmQzX3BIbzz94t4XQwCRdZczcmOoQ3nURihzXuER/EE=; fh=bRO1MF9VSOWVIGjbYXUTHO3COe2aRRAcNw1LSvnzoWs=; b=cDtzkvW9xGNpYQoOus++jM0xIkXM4dLSXhaJbg7j+1pIBfUwYkMT7dSyFGjT1clZKo QbhzqrhAMUeaeQfM480TMyxZzBOQPZ2RMuhMMLlJNbeDdGwpoxquAUlclnzG5luO6pCP XTTa4r/97nnxFxDXiAUJzR4Dntsls4oWXpzzXC64HneyZvwezgGkmn1q+RitbjRUlCE4 zLEk7ArkEwbkghPfOMaIDmtV1EqnlX4KgQBXFUmHBcFd0AuhjDNOuPtjn65KvNPaozGM jYCnpbOl2niyu16PCJl+hUatkh84S1zZnoAmqwASja8VfvvlSo2/US9YqTFLAZX4yPqd GwDQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="tp6oX/IF"; 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 e9e14a558f8ab-3dc83ae25c8si21505425ab.102.2025.05.21.09.44.51 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:44:52 -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="tp6oX/IF"; 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 1uHmX6-0000Ty-LZ; Wed, 21 May 2025 12:43:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHmX0-0000Q8-PF for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:02 -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 1uHmWx-00069P-M2 for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:02 -0400 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-601968db16bso3399537a12.3 for ; Wed, 21 May 2025 09:42:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845777; x=1748450577; 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=VmQzX3BIbzz94t4XQwCRdZczcmOoQ3nURihzXuER/EE=; b=tp6oX/IF50czhCVvMvomGZBReVdcfK9rD5PXconXD3aKYX7x9XQqM6DavESJxZLSYx NtMxoGNpEcZdPWSwVhvNOrlsjB6qUq5HZ6qNUzr0TIW2IjGxn98biTSIeJ7ClAWxMJcR GoAJieCEcp5zcQZwBvInisTxsnvUBRyXlBH5BcYy2MqNMweFygj8kTAHrXXX4Z8rf+1M kFRnUgBm9EaypiQq6wjLju/Gx0DWgi3CsKi/A7ft5GjGzO5quCNabnuQGTAqvV3YzHZJ Z57xNooP6xdVzlODOqpYydtfgxZociVkrkRwAN9XM9c+hva4lqHeu1PhRGeryIU6jWz8 5sWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845777; x=1748450577; 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=VmQzX3BIbzz94t4XQwCRdZczcmOoQ3nURihzXuER/EE=; b=iBDr+sWkDq1+iZGJRG9CLqbERw7XWcvWrh75goVuRH/iY5h+3FN9lSTZ2nx5Myn6Up AvZbEt/XUtOZpqD5xwH/gobmGbjp2MhxOe5SUVRsfzLj0C5P0vbIMY9tJxY8nLN5Tzbm GeOeZfKLqJ1Qyj6SsZ2T8ZbxCmeR+yStbFOxtZFRRu5jAWKXKzntx3QHkv3LKAJ2zdrY 8rQeuKG6WB6UMSH/SOiQUKrylXLIvYffilFXYIhE1XzAtON/Su/bjp4uNgYRP472qkkJ Gv4A1PA7jjFOMGM9OYqdLZXGULtNIKrVzFssuPgNBGpKR2XC2hfF+m7LIgKkux+mbqE7 MTdA== X-Gm-Message-State: AOJu0YxgPfPE8eFS/fghh+55+Z9xoNUoXgxnNIj49bnMOf4bAvVL6ewg 5XPhjak4+PG3g02Swllcrwk4rGW6Hj4rItaGT0lWH+v5v4NrbeLdZ0yahut+r9tqqTw= X-Gm-Gg: ASbGnctdnwF8UJ1od4Fw8CsVCT2ZT2mcSzDprA9YSdfVd8+nBkgCMv7arOz5SFQkdcg ygnQFg4if2SI/v+oSragOpfXeaDEoLWXcssxujvxB/rxD2yQDQcVWi70cBOUgywdjxS/Jg6NI6v 5/ZGAeygh7yIWmZn0t/lgl31MxvQg3SS9JUvpdqeZCYAuVmvwSX8f/hjboM2WqDNZKsvmSmOuT8 rPWDQd9fkm4EokJ+KOu7PrtwEdEqSdI9Q2kp+V/Zz9BCCxV6Rqas7wYJVQgZw+txJl6qyfIZ9bR qUAkBECxhjdg8PmNsA0eo1FnpQfRbNKucQYiNwtWiu+m9Mgya2Nb X-Received: by 2002:a05:6402:5248:b0:5fb:f4a5:7871 with SMTP id 4fb4d7f45d1cf-60090076e17mr19948396a12.16.1747845777355; Wed, 21 May 2025 09:42:57 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6005ae3918esm9074721a12.68.2025.05.21.09.42.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id CF02B5F9FC; Wed, 21 May 2025 17:42:50 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" Subject: [PATCH v3 08/20] contrib/plugins: allow setting of instructions per quantum Date: Wed, 21 May 2025 17:42:38 +0100 Message-Id: <20250521164250.135776-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-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 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 --- v3 - error checking for ipq v2 - checkpatch fixes. --- docs/about/emulation.rst | 4 ++++ contrib/plugins/ips.c | 15 ++++++++++++++- 2 files changed, 18 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 eb4418c25b..f1523cbee3 100644 --- a/contrib/plugins/ips.c +++ b/contrib/plugins/ips.c @@ -145,6 +145,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); @@ -175,6 +177,14 @@ 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); + + if (max_insn_per_quantum == 0 || max_insn_per_quantum == G_MAXUINT64) { + fprintf(stderr, "bad ipq value: %s\n", g_strerror(errno)); + return -1; + } + ipq_set = true; } else { fprintf(stderr, "option parsing failed: %s\n", opt); return -1; @@ -182,7 +192,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 Wed May 21 16:42:39 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: 891541 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221226wrm; Wed, 21 May 2025 09:46:24 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVb7kruguCuoKHdFVRyyYoByMg0tvoO+KYlgljwNLA3itaCSV+uJeZnqrOn6TiUUvVLxr6O7g==@linaro.org X-Google-Smtp-Source: AGHT+IHwbqpJMBGKdLLEZ4A8q1CoRt7YrZPjIjjKP352ag0uIsq2ltW3DByEdXlPGPm/uCqFy35X X-Received: by 2002:a05:6e02:3c8a:b0:3dc:7b3d:6a45 with SMTP id e9e14a558f8ab-3dc7b3d7108mr63401445ab.0.1747845984087; Wed, 21 May 2025 09:46:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845984; cv=none; d=google.com; s=arc-20240605; b=AEQv6+R/pme1qj00ukZ4eeSoxLD01+taa/f3nqAUoXjI31BFs4u2jQh44vQ3kpl9pt FseR3VjIqGQICBrlGVAlONC/pdBPHJCmq5Zf8s5zZk7OM4Ep/mTY2cSSuhB/lY9Mdnyn QRvRJUfLvMPB1sW+UM8Ka3ijTJUdq+593EoCzZpI6JSGazFASWUXwWswrj6K453vpndq 1n/AHmGhzI8N6wB3P2bjRmFir5xmnMlg0lTsYYg3U1b5Oe4oPAC1f6vagJ9V5KhiShj/ p1asg8yGW1deWY/3NMMdc6ujoK8WTjIZ8ZYqf2RxgIotu09ODiOK1SbfBlKDcsTuO7UO ABag== 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=OyeYYqMYC8X2+dV5gz2/MugVkO2QuYgUium08NisyJE=; fh=bRO1MF9VSOWVIGjbYXUTHO3COe2aRRAcNw1LSvnzoWs=; b=h94b8M7I3pKZ75viESjeTUBSNNWUaI2G2R8ae5i/xdS7+qgJiYQ0oHoY/5Jyq6RoS0 UWvzb5lXK/OpqDFbRxmt68ArMQ2twe39KMWMZ6pObKYOgSHvo1Te3w3k4ByGDHAKWC4C 24WzQkfy4tY60bSJGFjI9TGPNzcr+jPYF3qsx9OhjyP5DT3GdBAmrz3nCRNDBx1Ralnk UwH7ZyTtarUPrbOQJi3OBsML+qYgCMv4QKWe8cZsEebrk/3HoZ/Q31pTjg8WYiXGn1gt rlOOBfxMcZiItj/vjcvK+ZA6VQklm6InDuzhGPwknjZqYlFwXXfn1sgO8jnoN8UPRSVW Qeqg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="X8/C0O13"; 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 e9e14a558f8ab-3dc8298d908si31407375ab.148.2025.05.21.09.46.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:24 -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="X8/C0O13"; 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 1uHmXA-0000X8-RS; Wed, 21 May 2025 12:43:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHmX7-0000Va-Vh for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:10 -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 1uHmWz-0006AM-Iw for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:09 -0400 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-acbb85ce788so1368890266b.3 for ; Wed, 21 May 2025 09:43:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845779; x=1748450579; 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=OyeYYqMYC8X2+dV5gz2/MugVkO2QuYgUium08NisyJE=; b=X8/C0O13FYVTGPatTF/DKYGtCRbMUxFs3eGBLSztER3le8zgVu9O2pcmSISqc4F/BL fyIUuINp0lHxFfg4K8WFe3Ri/zZ6hwEfiZyY/RUgrJZtnTVMD1OIsJ2GHrZ8JgUl+Gef cBxo9P+G28lLKEkj9cqwKEO+FUFksubf8T25J6P47NvxyiEOSIL+DuVHX1dU5YvqcmDQ Iz0vpxw9aYnhq/sm1fumiiSamUSG2mEG2ezfgcW3bvoQod2WuycqrYYXSJoo4nJ5nGq8 BwZM2Z++68aB1Yj+O7nZvQbqmZclqUjDHJeD0PoIt12hMKt0tY8QPfSii3BXg/EZAXb8 5QzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845779; x=1748450579; 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=OyeYYqMYC8X2+dV5gz2/MugVkO2QuYgUium08NisyJE=; b=JsNYciuXTC6+9nb5EXwdOTZu5BIT1MVat0h9q3ZsZtB2OPHoDn+WnwvMjxea7dPv0r HjBpuzRtdVrzzXpcm1ufQtnDLKdjt3PX21zr7r7Q7Xz/PB4ry54v0Kl30kGUwEGqlb61 EUdq1Vpzl6ckkVegNCuO+sXAGppDIYKPRdzmoelep7Tpfalh/3WnND5I4uHLCNtWyWGk Jz30p48lOT89Axt+QibuMpWt391rhb+AJVhZP8RD7HHMtHp1BGUStxKdqUUwW0zzsLUb fTdNhgbs7pb5HLUu6lN8AaCR7Vu5bkYd0XOIpuWTjQcMfcDfwg47FIk1RkU2ndyPcJ1T h4Gg== X-Gm-Message-State: AOJu0YxuxcmYgz/jS+sNZmz0280nZSlIr/edbI+ihPQy3Feq8VPN7PIG 4GnY9BipwnW3/z9Pj5kchDMnVV/vMNlE3uB7+5Uu75JPEltiec/7JYV7qr9M1esWouc= X-Gm-Gg: ASbGncsrqrPNesbGsvbB2es+wpuNlaVhGORxaq0CIy0jLEsbmLn1X/mEMnR2BCtxgri GBszmwjsEb2026yuRNeT3TuO1SrsMGIyK2+YsQDAcrkaLzzLEG6R/OHH6atcHZkypJiaOaRU3Ht 3bri9e3nPEoPWGsO1ugj8VgoSl4KNi1l0ZFykrPcv+oPMd7PlkC70YVA8vayejpgFb6Dt3NmXeC bLteeTkkyXwRqThWUYuKobznwn9xgs8TIOgaUSbz2sbaoVxEjzKkJ4CqAY1O/wSGgVYUNuuYj+3 kv5pvSC0uYAhJ5h3x3SDD+dnD4iTYNdQ0H08w6cfWN12i2g5gyVtZanM/ws1uDo= X-Received: by 2002:a17:907:97d2:b0:ad2:59c4:83 with SMTP id a640c23a62f3a-ad52d5badb3mr2011067666b.42.1747845779413; Wed, 21 May 2025 09:42:59 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4967c9sm924730066b.129.2025.05.21.09.42.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id E1C565F9FD; Wed, 21 May 2025 17:42:50 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" Subject: [PATCH v3 09/20] MAINTAINERS: add myself to virtio-gpu for Odd Fixes Date: Wed, 21 May 2025 17:42:39 +0100 Message-Id: <20250521164250.135776-10-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-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, T_SPF_TEMPERROR=0.01 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 Reviewed-by: Markus Armbruster --- v2 - s/M:/S:/ for the maintainer entry --- MAINTAINERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 818d7b9d5f..8dfb393c06 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2673,7 +2673,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 Wed May 21 16:42:40 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: 891539 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221133wrm; Wed, 21 May 2025 09:46:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVIepseBGgxzvth01WCmJRv7nz7aoS5Ps6pg9Egb0QXqSgycWbfY5uq7x8CDcbQGr6uq5iEHQ==@linaro.org X-Google-Smtp-Source: AGHT+IGkA61tpW2kbjOnrzQhQCkayB1As3XNy9zOEzysvK6NQ7/OYSHyFmgOsY3lAGjkYzhDXYOk X-Received: by 2002:a05:6e02:3e06:b0:3d5:893a:93ea with SMTP id e9e14a558f8ab-3db843046c6mr202808115ab.13.1747845972503; Wed, 21 May 2025 09:46:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845972; cv=none; d=google.com; s=arc-20240605; b=GrWP09LM/KtCw76lE90/y4KbI90m92tSNxgdC8QSqOPy27rHnS0emHT2kvJT0zgPPK LnogACfL8+hnkOChZeyOPx7phIeFtF6UjPCP4wJF9D7b59BUuAX1DLo5QBbxfnb8heAO Sw9rJlYFRLbmvuf1jfAh0uCu7ip6nI0if2uBSikoy03WLzgiO5otD0cF9J8OeNB9NkWg WkHIqU/tXlEEl02bzmsqmEvrMh1VaoVvRO4zkvID0+BpLPdOOyS8/DOlf+n8BmvBGMGe FOgnEuq7h49iehJuDiTpeAO/m4XLI6UU6AYoQ3ttyLnVvksaImdgMdPK2cAbZ/c2/uAz xOMA== 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=eBksJDjYxbj/jrleCQdl2ev5L2gMtbczqXLkNWvLosk=; fh=bRO1MF9VSOWVIGjbYXUTHO3COe2aRRAcNw1LSvnzoWs=; b=gqcE4jQ9dvEFsXTZ5xXCBcHmIN+5w7njF2eVITD6LCi66ZkLh4Wl6NeRcyPEOXlZIO oOnogFf8FH6kdkAxID3tne6P7YLKJSQ/GXfCcgCuN7/5eTFis1pZrGSaaMjg2+UrB7SU NqXGNBDdQTagPwpS1VoowfsDF4PGAVOaFZ0StNAeEGwsvr+tsnmt7wUoa3QtkI3bJUFS cVKYmK+wTalTfjFbWI8RVbsP5bihXpDQVqnlUbd02jaVafHhuvU7oS7uJnNAT8UE1bFI N35m+oDiXJtNJVZpu9u+Drc/jMQwvbusk01iiK9CPa9u1VJYwnE8Fq5B+gSVKAGnpTsW 9zMQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=AKNuvGKW; 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 e9e14a558f8ab-3dc875f44c6si17747015ab.1.2025.05.21.09.46.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:12 -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=AKNuvGKW; 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 1uHmXD-0000Z2-VN; Wed, 21 May 2025 12:43:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHmXA-0000Wb-8r for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:12 -0400 Received: from mail-ed1-x533.google.com ([2a00:1450:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uHmWz-0006AA-PJ for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:11 -0400 Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-6015f8d4b7dso3388144a12.1 for ; Wed, 21 May 2025 09:43:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845779; x=1748450579; 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=eBksJDjYxbj/jrleCQdl2ev5L2gMtbczqXLkNWvLosk=; b=AKNuvGKWCAH32dDrdVldQoZZw8l2dC6OtoPWvv6mfFrRk0EZo3VnQaEQS1d8nEWF8g TPOz750rb1tOXiL5HuZA91rvXjjk+1W17aSglLgvxKDHero+V/aKBRUmOJKCh4f0kweg 6leZ++AS78Q4fj0heW5jmPb4G84mt9uPZNt6Eyoq+8g4ILJg26XOj6MW3Dv+N/b7GmIk ayUjcQVZdK2bdy/ImykWoOoYIUoXeBQrrCKZPTor2mGUnFNgMaMYW3OklNZeR+0wunFH zThC+hFebJo+zaUA2cDJiL0H8iEtCbFDAN958NMhV9ulT7x9iM0XZ92uQAJeNNxyW5AO Jodg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845779; x=1748450579; 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=eBksJDjYxbj/jrleCQdl2ev5L2gMtbczqXLkNWvLosk=; b=HVIY57SdAGOpC1Tc2XzBuAlLphROAXAZwn0JW0yYKqhwHHLkh04L6+eoEPmUCq2hTI KVgwOUh/ZIQ2MrIhfy3vdYJAfIanWQwHcdjwxfFlmnN9E0WdD1o0rbzRYdrY/uFvYJ6l 6gCJAQE0XWf8VSh17qo057mBa6rCGPPr7xXExCesuqafXZ/pfrnb6i/hlvKOhojoJegP e8Y7TETY8btbSPebU0EoUUxUv1Choc2clWs46nk9meiznm0hquiq1eWX479qq/NXb3HH E76OpC+uV0F5NhcgruPreQEiZ5C2CroA47RAnwOkQeh+UqlB59AvO+fzIv6gpaOoe0Pu zZpw== X-Gm-Message-State: AOJu0YzoCMe1qWPiODt6saGw8vsKy6pfxmGqZib7KxY7kY5d92R9+AEO e0+1GCoSkLk6Z2g36nw1p9tRMC5/ydolgeSqVUKp/lYX2uCC1oVKcGS1lVuM4UWFr9c= X-Gm-Gg: ASbGnct1vWTBvbipVbj4FeI8AqSah7ILosBFrtJb5x74vISAZnEyHCfoomOOQFfhYyH NWHiq0eC5kZOk1Y4w7V9ujpMpWz6TPMptbFwhMKnITnjRWsrUbimTzV/o3BdT6FQXf9S2/+3NWT Sb5BbfVPl0tqFWYN096cmT38SYDaG+lLWuRWbyYFAVo4ia2EibEV1idx69pxOmxJzKhOCQ6/ejA /1uXezinvF6hNbKkAlnp/LReXl63us9FKozUN+45YusFL7+HBJGIxxYPLb46Masuyuan9/cd2dD MHKpvboSWUMhF4Wr3OJUG+suUgas44FEvM1P8TfE8dYHtJ/vCHF9 X-Received: by 2002:a17:906:6a14:b0:ad2:2e5c:89c5 with SMTP id a640c23a62f3a-ad52d4c511cmr1980220966b.20.1747845778636; Wed, 21 May 2025 09:42:58 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d271916sm934897566b.69.2025.05.21.09.42.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id F34C15FA14; Wed, 21 May 2025 17:42:50 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" Subject: [PATCH v3 10/20] MAINTAINERS: add Akihiko and Dmitry as reviewers Date: Wed, 21 May 2025 17:42:40 +0100 Message-Id: <20250521164250.135776-11-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::533; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x533.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 Reviewed-by: Markus Armbruster --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 8dfb393c06..a14e2796e0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2674,6 +2674,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 Wed May 21 16:42:41 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: 891537 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221060wrm; Wed, 21 May 2025 09:46:05 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVNJO+M39/8vTG36YV2w5/JgCdMRIPxP/MZ/5aFwVD5/hP8gI/UsvLCYl37I+asF88AAfh5Vg==@linaro.org X-Google-Smtp-Source: AGHT+IEWEjI0yvuTI2Jaidak0YQDk7S+xUM74lth0NrXoe1rtpTNGx5pvIipZEYTNkSXkxdpwc4v X-Received: by 2002:a05:6e02:330c:b0:3dc:811c:db86 with SMTP id e9e14a558f8ab-3dc811cde50mr41089575ab.8.1747845964999; Wed, 21 May 2025 09:46:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845964; cv=none; d=google.com; s=arc-20240605; b=avuzBVWt/9Kmx2BhJlKLdte6biL2V15Q9m25LY5HjbVzl9sVpokJcFDVTWID1wZoyR d7tXlKA0/xXPeauGnU9NGd9oOFhYNPnBNdalG5g/0ngzz+kcruZvNvIIgqYQTZit+EPO WsUUPychu/yd+qHE3dWDuQZbkXd1t5qxyt+bQlo7YbmzyYhOdj7xLU5UaPEqiPqf0pNK g5zvg/h37bTUSzrVyP2upSnBbyX/h74n8dxKI4c6g9LhUrUm/wdWIXeERd9jFOGH4fTh cyEG1jGpaCBwSEG8+W0/IeKRprxTwT+C9AVjluJrU3s3pPSandhNlPW2Zk1WjUB1NQqW j6/A== 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=W/JYKmD+pmnbH2gleOusgGC32dHAVNHW+0qdI7u18S8=; b=M/xRVj2IT+Dv8l0aSNKM+G5469cycBFKDuQ4cgeJfkX+fdReIs2jsAT1+hcymP+XLn UruVN0pjPnDoozpLeFS3sRgJA7JfGA4KbCCi2xCAjE9BuO1EdNaCAdgoK02U5HvPagUT 1ixsDKUwsRa3rTTUK7JVHGGRXn4ykVi5VqM0Vu4bwO5gypEFQRef8PTDVZkm3bFukLLU 4EB77KX9JG3DTzhAIES49nRvvgjZCdTTDEQAbAcUjc/nQ0hVRIZoZ/+EYeaLoDoEptar 0coGmOJ77VnU5KCsTc8Bt8bE8gYQtzAMVxDJgojYxAQbU5DaSfoWCmhh0x6KBdRvE1l/ gGog==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=X7gUsF4C; 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 e9e14a558f8ab-3dc8a63fbe0si11446465ab.9.2025.05.21.09.46.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:04 -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=X7gUsF4C; 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 1uHmXG-0000al-Dc; Wed, 21 May 2025 12:43:18 -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 1uHmXC-0000Y2-3F for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:14 -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 1uHmX2-0006Bc-U3 for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:13 -0400 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-ad51ba0af48so1115092766b.0 for ; Wed, 21 May 2025 09:43:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845781; x=1748450581; 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=X7gUsF4CDCkkn6R3Vk7QC7i1o4rOXnjuV8BfJngu6r98QEN3Jza7vsVwdlxwcwCe4G UATWs7uyZ+Ku0zOB6yzrqg9JcOZwneUBIi483O7XjMkH2JAdE2ZV7Qne4QA8ohlayNBO oUJdSATe3Z1ULtzSy54ApdHNvpQgWKt8DqQHR5L6/Tf7qkhUwYr+wzixpDZ4w0T7Zo5V pYqllZysPxxe5EYL5ZmnztVA2BoZeHzXAvtbye+cxtCOVFwpl3YK2UdJiGCuT7KQkm7F TE6eIFAA3LPTFoPhrPNlnAFJmBafE3X2y6Gs0gB8rIytfVKQ8StmfeILzdRnMDvxiweR V+dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845781; x=1748450581; 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=orxtfismlq12eUfQc3DOzosAjThsD2ostXehPmDUOOnz8KqJ7zQFFf7W67bEj9GmZm e4dfJGXhQYY0ASlibIPJNaUYGz0ytiUEP+jIHQYZL8q3f8dlHxi7sd4Sk9HdhKeFYAsp R2mWY20zGQdqyGWxHifGZtO2pB6oClD9CfzM9FByKecKSv7FeYwYQf2EdFBUDjaRrfCH j+Gu3bvlqbQO/JB8yLjDDP2meviWgJJBl/SMMbU5HD8PycxjQn2S3CNgTIZo1braYgIQ sMbFs7UAE31WbAxcX2dWEqirgLZ84MYn7plBSCrIUCNEA8NkHLUe+IinGE4FRcxPzPnw iWAA== X-Gm-Message-State: AOJu0YwuiBw/L5K/5ABA11teVn7GbjqiqqtzqgTFWdwegGZOiWP84l9X cOdxjmaKqp7bEXNyxVdBgwK/6bz6mAdYiKda3vLGZghme+yyK3ggeo2UONf8LyBDu1A= X-Gm-Gg: ASbGncuKFOKPMUNdaadTscYmTBjufxvokMTQhqwrkHGkchbYfLUz066+urlPuFSvUdy mRyRFVUQ9AXvg0uXuwCAjOpsQthtxg8pYv7xiYiV1lw36dYq6xq8+d/winbYnonbtzIs7/WnHZf tyZY6aMa4iN+elb5YWvyMczCjln40Pg4B1vhsPAKjVNBxRMsrtJWYvGxJpFn9qWS4VlwD8Tqcm0 Yc11r/EEeZ5BtZ8l4CRwnJEOLA9zKE54LmioQdcZ89kA+md7EZ3Qd37cj2q/r1GxIxWbaW3Xtij ALekRLwJl2MR+Jnr48x3DEuPDpZqKu6s1m5Yw+OsKwnEpTJSmsXBtEaFORAj1/o= X-Received: by 2002:a17:907:60d2:b0:ad5:54ec:6b3c with SMTP id a640c23a62f3a-ad554ec711bmr1487849966b.27.1747845781208; Wed, 21 May 2025 09:43:01 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d06dcafsm945245966b.54.2025.05.21.09.42.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 139A15FA16; Wed, 21 May 2025 17:42:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH v3 11/20] hw/display: re-arrange memory region tracking Date: Wed, 21 May 2025 17:42:41 +0100 Message-Id: <20250521164250.135776-12-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-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 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 Wed May 21 16:42:42 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: 891531 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2220529wrm; Wed, 21 May 2025 09:44:57 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXv30XSDd8gFIKd98JxDDyMg95fRFivBct2uQpzY27k1xZR/uSr9JzwRfziWfO1zLGLKvPQVQ==@linaro.org X-Google-Smtp-Source: AGHT+IEV3Wk6bZft9SxdCC4in7QyUX9+Z+Pr0NX0HBJW8SrsYqbxbSM58NGgIhoOuyxkJQm+8j8X X-Received: by 2002:a05:6e02:1a6c:b0:3dc:8273:8c81 with SMTP id e9e14a558f8ab-3dc82738eadmr47472395ab.22.1747845897292; Wed, 21 May 2025 09:44:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845897; cv=none; d=google.com; s=arc-20240605; b=NobRmQj45T/UPD9HSI42iEDtZ5CDNYprfY2MZjXav42nWUQlgev9N5wwRX3A6LL9Wh XDeoOvW6TKrpyV0OVSi4k0srsesAA7hyIJQdZ8ViwpTVYjVqQYzVjug+gwwq88jORM9a d8n/G8LviuGm1s0RJTor/RjDq9GySoqkEYEKLwKlz+DEFRGHOF6zy/GdfJlsscMKuv9p jYLAYX2zEavQIVSP+qaugBr8HtrABeCu/tnyI1ytQCl2j9jr4JNPEK9ADZBHgeMJXk7W 5igwOZvqIGbDXAKWhci4LYLvt8Yi2KyVg2gKSDJTSZIiCZN5s/CMZHfjOoM2tS6wOBbC 6Vrg== 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=W/JYKmD+pmnbH2gleOusgGC32dHAVNHW+0qdI7u18S8=; b=KqGPGkIWm5NdlkWuPip6f9h12Vw1TeVjApfyWbkijYLi5lxoqML8ad3kZS8/abw5Gz Q6chEvayhPDitK38tnAfEG4tEcmHl+PVY9p/Qgzw6OZpfToei5q/jdkZTQRvyla0ocrH ljCUIUK3ChAAezHGR4oBI34iXz4NiEmCLqPZ5TMxrU6ihFIuJSnXfO3Nab47NJVxkjzh akbDnSASkjAc/CqmFdeMRrrmUDn3de8a0BaL4t8hyBOIgTC0ga4kjMVX5U84w1eyv+eD TsFrg/pZ2RDa+HbahOvntt2qZI0sD/hXcoREFhSIlAFI78rsky1pxoM4MGpE3HE8rgKi ADQQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=u1lvnxS1; 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 e9e14a558f8ab-3dc77e27e09si73376495ab.43.2025.05.21.09.44.57 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:44:57 -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=u1lvnxS1; 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 1uHmXJ-0000cS-J8; Wed, 21 May 2025 12:43:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHmXF-0000aC-TY for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:17 -0400 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uHmX2-0006BS-4W for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:17 -0400 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-6015f8d4b7dso3388236a12.1 for ; Wed, 21 May 2025 09:43:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845782; x=1748450582; 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=u1lvnxS1kpOSzb7442aCudfJDJQV2821zKY9A5+WGXnzdqESwkbIOy0/MBAQAMiGs1 nAVy6uCR88MWS5xetgEhinOhbF5vzHblXxMqhiSShITf3keC3WjqeJ7uouhkyxLLqmrC ZPaLhAUVV+8YVGDokm27vVRyQ7TGZZM094LdwPzBGUmI0Ye+NNm0dyRqGjo/aX/JOHUm PFxfPoxJnNewA+ljuYnbEKA6Yt9ttIFHz1iwCH3AOcWHAgr7bYQT1Plh7xb2MeXmSUhy mnPEWcIUyFFbG9oty60I3hpJMHtJ6u+r7XdKqJINSzo+YROMeVbjkZBKWxipSMxlUGXJ Tyxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845782; x=1748450582; 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=orzdn7U79CpkCC5JET/6qsaz7b6Q1yojB8Yz1qQIU35pWCiEUyl6kLDnYlG1lkgaSP D5VA31YvSmzPUwXG2mRb6ge+EFsVvSQp95wVjIPuK10nNyTyOr7r/+rMLP6i/XlC1Ztt R76bvsN7wH8sHXtSy6NFIjphazsIBuFtpX2aJf16TZ8xdU86Im8cFnY+MMwSYqzKXIJ6 14cHE8t4LagKIeCg1AXgH39kdegbreNtb/+AbKZaEdGvLkfHZ0Q4SmzmZ5sXGSqjieEb JW1aLA/gFLKEqY8wNuuoB8bZU9tde3xbqe9P+Vn/gg9WU9PHZJOulOv5m9gk1fyb3DUb SDiQ== X-Gm-Message-State: AOJu0YzvkLTy4EKfH3mQ/B8JJWCZzs766ohkyG2i+3PVkMGcYhUtXYvs jz4zyinHpx6lzmckk7VbaN1fiG6VhUb22A402H1sHMqonzuhWEQYcCzRikL8KAr3+MY= X-Gm-Gg: ASbGnctUSyjXNTYDOY0Wn89EODfE5e+BZKkiKxVQzbaYzjGXG7dz0iVxS4vpr+OpE+Y ppF4+KPGwQcwp6CkvLG+hob7td9eIx7sRTipWQPslbQk+ijSkUoVWQBqehWvaZvQfInogmBstNq yVTrJYmxbmrm1fCcsbL+b2zobQbE5C9/ATvYFCrzXkextKI2WIF2mjbGjPiEjl7MByS5QRn4ucY V1npB5CGXsjRP6ErDiVhYGdFLkh62zvjYu67VyP/uAEAE/8GghLI2QuSMtv06MxHoGRmg39dP93 uTmo9XazXiUgde0VEYVnU06/JV50n1VVOVr7K7SctSo7h7ZTO8Qa X-Received: by 2002:a05:6402:4309:b0:601:a35e:6dee with SMTP id 4fb4d7f45d1cf-601a35e715cmr15229857a12.33.1747845781896; Wed, 21 May 2025 09:43:01 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6005ac32b53sm9207614a12.64.2025.05.21.09.42.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:42:56 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 265AC5FA1B; Wed, 21 May 2025 17:42:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH v3 12/20] virtio-gpu: fix hang under TCG when unmapping blob Date: Wed, 21 May 2025 17:42:42 +0100 Message-Id: <20250521164250.135776-13-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::530; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x530.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, T_SPF_TEMPERROR=0.01 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 Wed May 21 16:42:43 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: 891538 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221090wrm; Wed, 21 May 2025 09:46:08 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUTFbYYi63k/XDebkh0mXXSAOo3BS0a+wX4CC9AlVRycSgEQhOr9XMKoc+OJZWaAoMZI3m1QQ==@linaro.org X-Google-Smtp-Source: AGHT+IFILmZ3c+d3FTalmyE/0NADCnACl9P3ZxIbVsZdmMymmq3+Cb8NrWfpIpNmBP018ZfBrA1v X-Received: by 2002:a05:6e02:1489:b0:3d8:1d7c:e197 with SMTP id e9e14a558f8ab-3db842fe965mr228296315ab.7.1747845968551; Wed, 21 May 2025 09:46:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845968; cv=none; d=google.com; s=arc-20240605; b=G5NmtyIa/X0Cv2OzAHY3JJINm2HRt7AgqgG1HQ+cIYUMSuM5E0GqJ1tMx22y1hRyCB DhH4pVlunkNsXrkhjZ8PXCbK3E3IHrmjaAY18glaYwqg6F3ImBBEUAFs2IK8JRbY2KMA x41bPJIP1G5MjzBJckeT4siy9XcdvGNmrAhAUmL12kdWir3+BZ72vXefhTE858Ennisk ipxuTEL5z7Ipw/HcxS5z1gab3FulVdL/z6dw1ZZWpDb2w4oWJc8uVVjP5HKK3IgJcMdK 2Yj37IoBK/38jcWTjDQGdrjsYC2yFZMS1dL4Nk7ibQQP3yVGl5cAHYUVKeLQuETGn7wD Rm2w== 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=W/JYKmD+pmnbH2gleOusgGC32dHAVNHW+0qdI7u18S8=; b=J/80B9dIORF24yWQTQ2UgUGWLMAoC1is5GScQ6fiXpbdBbGpgvEMuiDzdYiq1gVAWJ kGVegNH90f0uDNdC+empBDNp8o24FD1CehExVYijzSv9ZMSzB7Qe5HOUpBYPcnlKnIYU 0zcgWdEbMoaLgnmrCpXsS1mwYQPnJCrrBUOmLcPDlXLi1psKf51smM3Uu0gCFdQZfDsw JKwWHyFBRHS7ySvlvfL2gdQuw0O+gIubna6/w2WZF0hegYteRy0dZ8tAY//uohbEwFs9 NIn++PoSJAqlwmJehhbr52Y25hoGS76Mgq+t1ZBjFe8irbjnu5NegeRWkVLWnz8pm7PY VMXQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=hS7saKN+; 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 e9e14a558f8ab-3dc88d69478si12564275ab.80.2025.05.21.09.46.08 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:08 -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=hS7saKN+; 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 1uHmXH-0000bW-IV; Wed, 21 May 2025 12:43:19 -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 1uHmXE-0000Z6-FN for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:16 -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 1uHmX3-0006CC-TU for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:16 -0400 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-ad572ba1347so503235166b.1 for ; Wed, 21 May 2025 09:43:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845783; x=1748450583; 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=hS7saKN+TKifPLGgSQIyS5jGUcFyW1+wkl4bTu3T4dkPqQ58Qd/8QbBn6RKr2RMp2B FludBUFPBS1bk/QJZWLWHqyfr6dFBktPap3Eir2R8WVJJ4j6mKqfzVUcB9VSvJQAoPug l9y6vnwobqSYZCbTgEJODgeiYkIV8zPQLtaVTlOm36ZxUcU/hskc0JNkbOvFIEUQLzq0 k8krPrIFw6l5HUnbPriWsAFTuO14hOwuEZCgvWEHEWVEQ5nbNc0CIMYfYMaFHfHuCVfo jLHQNKValezHMhN4HiKEPhd6Pt8YQQgoM5+sss0aHBcStfGMFGMHmyy6d+Ql8ugArUMf +fKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845783; x=1748450583; 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=GTy6dG2UkpQAzjY4WfXOxqjJ8/XoUUDLZiHtNjUXHezXHor/ZPD6256pjsuQIDQPLV HIkWoYlErCS7EnQ/McOI9FFYaZTRXP8W4WwsDqGsXQRrObIU1cDEwLtA4r86G8uazSRd 0SqIxP5GqoeuCPftog8iWjlCveD1uo/ok3xtCSlSwBga8bD3RfWxmMGdnmmjewscKAlb 3HWCPwMFxaeQJa++2oQ6mBHzRozQNe3oBIFloyIkMC5kq79vbmGk8KPike/Pd0MPm6yF 88eNbG/PeIahxL9GKCRMHpDbnwKtVEikCmLUq1h3gaz7mbNUwPNqK4/kCz8a5perHZLE FN5Q== X-Gm-Message-State: AOJu0YypaXMNSpuxjFcIL60I2YiH1NKL++IlZpwABXVlJJ8iYLkbIWDb pwKZVSGJxMWoO4qcBIFSVk+bIscxI6VSiq+gkrSr0sKXN91viww3hHT4B5BzTIKdKjk= X-Gm-Gg: ASbGncuwdeQEMP3SwsAHZRBlFAALMgsyz1JYWk0mljqz00RdbRgukLMqGAWI6jeiCTI zt0fO1frKRUlUf7gBWIGmzJZRL0gUQDV+sFsf/lEmdiJ7mcFXj5DMUG7tx6LQD4i7OmEkaY7w6f O8JXMz8sUZ9qmIBXhDVkjeFdXIAq5UePW2d36YgBdAEl2MimXaqP3QT+gYjf623b+sx2gPc7i/s DPTg+b9yQa1cZTVPnCUnm+07Z7WyyJYfE2KoEm37j06KeE9Gomc+7xX4UVtZQnJXt5DYk4Y9yda tTaQtcrqhBBHL+59uyty72IMdiF0oWFTEZBpACWpzbCqlepLB5X8bswGjZU6+B8= X-Received: by 2002:a17:907:d9f:b0:ad5:8414:497 with SMTP id a640c23a62f3a-ad58414049cmr949162266b.16.1747845783333; Wed, 21 May 2025 09:43:03 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-601e657a0b1sm5073214a12.45.2025.05.21.09.42.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:43:01 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 389BB5FA36; Wed, 21 May 2025 17:42:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH v3 13/20] virtio-gpu: refactor async blob unmapping Date: Wed, 21 May 2025 17:42:43 +0100 Message-Id: <20250521164250.135776-14-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-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: 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 Wed May 21 16:42:44 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: 891543 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221319wrm; Wed, 21 May 2025 09:46:37 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUjcKLuliulAJifNJ/l+qEqX5V2SrxI9Zk8oZxoloJJGDQWKCAhNctfLAnh0yxqX4gOns+uVw==@linaro.org X-Google-Smtp-Source: AGHT+IHGxe1uQ7ycDo4fCaAYE7GA8b4Z3LDB1kfhnY8hbxhU8/UHp5at3rX9eEkteIaLFkxeIgUM X-Received: by 2002:a05:6e02:19cb:b0:3dc:80e6:3819 with SMTP id e9e14a558f8ab-3dc80e638edmr61369265ab.22.1747845997121; Wed, 21 May 2025 09:46:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845997; cv=none; d=google.com; s=arc-20240605; b=ebqqIL7ZP6390c2myUqWgrDtvaZvETuh4umU6/dZG3JAx6xB2xXEctHqIC+p/R2JT1 5fzQOJvGwf4x9oLWUmuDiJ856vvh/hBvkW0U6wyT1EM8HX3nlshWuQXXehVO/elR396R 7/iSk5cikatS8w0LzEj93gao42uBCqXoCY/MwtKj4GxmPLEUPs6SkRbUAAsNBq75aqwZ KXcrfTTt6CLSnxvyqjGKlWu9lhl6qycpf3ZFfpsVmuw0jyOT6X4rfRkI+nnX5Z52CKWp CZo2ITR3C0m1EVzWXacoJMYDuDzHPNCcK2qmhOiCDBG09b1CZxPswXi87u0U49sH7Sys rowg== 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=cN50/r2+8n1qPq9DLzFHJZ4/gbvqaD1sVl2dxIGCMyY=; b=HXgeGuB6sVweCjVR9RvZPToF7mzkpBV/AiVYW6ZTX91jWCEmqZVf9Um5tQlC9/te6c xs34ukXwbTQ7G8no8Aj6sL+a1w9MsJvzXWcmtAvMTYOmSaKNcq5WwfS1JmRmRRwqm3jV ja7hmYI5xR4UxI7rOvYHUGM76na1YlD/kx0CPeWFExLUmSQvjd2ROequIXTto9G2GZ2q khKaGxwglj5FiAstrrkK+ZCmxKxUXA2WOHmNJAr1kb6BDSpuE3RPA+mWm7LZrkUeXee1 FGfzqtpLat9oM9lSMY7C4rTAcPqRhxmkonWii0ApTCiCuOMRTgjPwkNAZha3rySYM8Qd ajOg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=n2t4qLno; 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 8926c6da1cb9f-4fbcc3bc443si9632646173.60.2025.05.21.09.46.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:37 -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=n2t4qLno; 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 1uHmXO-0000fK-V3; Wed, 21 May 2025 12:43:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHmXM-0000dx-1S for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:24 -0400 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uHmX7-0006DL-Dk for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:23 -0400 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-601d10de7e1so6025075a12.1 for ; Wed, 21 May 2025 09:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845786; x=1748450586; 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=n2t4qLno/iiN6p9mhzlmQmrUPn7H1XBvcMzdgxH1sSyzqZAKjTV4f28Ze2ozfr3gsp 52fDvUY7NoI7yQqWbXmE/aiwfhvilCGT00BNok6kp4kLGc5KyXGV+lgV8mCJOR8A8OQF rJ0BaBgzWYxOfsrbmA4l/5wU5M97+nNIANax7EVUGmWCvtK3B9M250ucz4s2+P2jvjnY KOHw7Y+Ej3kUC+F7CgWBuKXwETtGg8DZJr3pH7mifH0rsS/AyvVVTxeZrgFpYdnZcM0b S5Mx0xlqE/gASNaWUWAXllE2EIoLafJxGejr3IG8dKnxb1t9D8MZvdF9xDAkdrScZbuO u42Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845786; x=1748450586; 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=FykHdUZ9KJnNbVim5h/lcQYGYuX3imCr+sXH5LDnmD+9iW8UTHY+Jpytr4QU/lNkaL 15DnIszByRALgh2SoM9qU6LnJVnF9K+9fArc13ZWFnGxvwXJtVfeWjuTScBIGQfheCpI X7H1lMuBs3Ca09rpSAMgCCNkOXP94yg9uQ8mhb1oJBAumoxiH+/RBMTYFe14Iwb9YMPQ RChXZ36fIe7t62DE0ZTFFHvk9kDcqCFzPhhQPJd3TObao8ruNgJaL7VJFOEMplFjdp7G kpFLE8ePgQOg3m+43DTbFEKJcg2ACRWwvtX35QV14QY5YWlqgSQPKXdGT1cU6k6svytQ kT7A== X-Gm-Message-State: AOJu0YwHDDI7lgVsMZ1YlgsL/bzpTN64OvqktQ8BrtYX2XPXtaprq0Fj bSeIC4m2oOY10xPSL/DOwmnsiBkVnRP0NcKXB2rAefYnEkEuKxyD7xV9fVBb0yvlhxM= X-Gm-Gg: ASbGncswQKt1UTpTHiczW08yPV1bUBEH8N/Av9U3T8dzEgiNRiLatCPXjsFze+BdycI 6Ojjqj2Us2t4pJVIZOzfVMSySN/y7+WWrNPrPBzVlaasUUwP9OnjfhDP0ZaSb6cudNu/bwNaiF/ Hv83ERfZ4F5N9kVTTFgoo6QWeMpfmvhvMWqDLNNCZJmA8cQs7VoS/OITVHKE7inyiBMguxf1Qkk a1h+elOXvBTlb0nsR0Mid7PJP/OSRIaPnPPO0XR8jkginveZvSiMngkPUyBDjwqnsHQAd2R373B loy/t7A4Zr24HHIj4f6TnkIu6qJHjSuGQGeBd1C/6WGU0hrXWEEu X-Received: by 2002:a17:907:7da2:b0:ad2:39a9:f1b2 with SMTP id a640c23a62f3a-ad536fa5966mr1921937666b.59.1747845785703; Wed, 21 May 2025 09:43:05 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d497214sm929070366b.146.2025.05.21.09.42.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:43:01 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 4AD235FA53; Wed, 21 May 2025 17:42:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Dongwon Kim , Vivek Kasireddy Subject: [PATCH v3 14/20] ui/gtk-gl-area: Remove extra draw call in refresh Date: Wed, 21 May 2025 17:42:44 +0100 Message-Id: <20250521164250.135776-15-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::535; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x535.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 Wed May 21 16:42:45 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: 891533 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2220889wrm; Wed, 21 May 2025 09:45:43 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX2LGGJ16a50yMZU6uZxieWKv8Fig3kvl351XgI7J7HEko54isXV1LNN5o5it9BRjByDaQXJg==@linaro.org X-Google-Smtp-Source: AGHT+IFq/YHX70V0iAIrfHJqDwMVQuIvTqDSjiwiP7NXBK4u4mt5DGQENSrjASrNVHaE76837Qqt X-Received: by 2002:a05:6602:380d:b0:864:4aa2:d796 with SMTP id ca18e2360f4ac-86a231e19e9mr2851529439f.8.1747845943173; Wed, 21 May 2025 09:45:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845943; cv=none; d=google.com; s=arc-20240605; b=YUqxWl98pk8ZF1iTdMnYS0gsYyXfv8FdHjoC5Wm51H2AteRdQVzMwxZMEj+YzXq4bq VxiuuVEWzDwoAJTweF9zJdNbUCNdjSvxODEsL5DpXKXRVxogLAg/O8ne0n0BJQqhtLR1 lzFbdR0KQTXBpI12BEdoZd97ostqpd88cRNST8++stBqj0F1n448aUHvpbIMd156cpl4 WCx/x9ODwSr9Cg9wGjXHAeQe35hmPjVlHSj4vWwKpuSbNrRtfVh0MKZvA5X6uAgs0uS8 UVqTwv+fmTyXVtaZqsdqks131fJVe4Vdqo4fc5f1TGr0Spk5NH7oeDmoMg6POSRsgq3r 7lyw== 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=pG9XWhKCR2jO9+YNKPkqKviUCLU54wRtte2g15lS7XE=; fh=9dXdp1N/Zv6Tsk/dt5NdOUo246y9Evj9pnzPq91JbJ8=; b=H+7ISQkgUyubLahZYDhGSMcZqd5yKgSjhsPp5JtobeLaMmQBr5uiFZrc6N0okuUutz exxQUUr8s3A1zbxrKNxdPIY4eGimxLafKtCtURs68D4v5wssIHGnL8M+hz58PF5w2xe+ rBTo2cvosmjooOJrCYrm9EpuqagtCkaMqGpWttcDsX6fdFFTRr8p5l/jKLFLeNCiwIpG VBCvsE/bm72MA4YN6ezyRmu9yB49ptROBzl8CQvmmhEp8N8TgMXg1rWdTuHuHXQRlDQd +L/ZI8JjmRwLyR4uFYhjmnj0T5twFPS0jwz+uB025uKQutjfYeqi4zbaQjdzAD0jHecz Q/jw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=uDDC6gqt; 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 ca18e2360f4ac-86a236f9e1dsi915271639f.94.2025.05.21.09.45.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:45:43 -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=uDDC6gqt; 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 1uHmXM-0000ds-4U; Wed, 21 May 2025 12:43:24 -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 1uHmXK-0000dA-Ep for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:22 -0400 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uHmX5-0006Cx-2s for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:22 -0400 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-60179d8e65fso3079192a12.0 for ; Wed, 21 May 2025 09:43:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845785; x=1748450585; 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=pG9XWhKCR2jO9+YNKPkqKviUCLU54wRtte2g15lS7XE=; b=uDDC6gqt5VqdPPoeT9rac3eD+fyLahsBYGPSkWQ8aYrJXCXEsbLLYWyU38bc/ulf7X llMYX9OTiD40FXL2xYs90lOVzYAbhCHPnaW41ZuiGB7YiIf8yoKIoXXMyZemlgqi9szP f31kVl3VW9SUR3Cmzv2XE1XFqnDzOugFDRSKWkWsRWsaQ9Jh4xTNke5MKZaJXFJ+XWFa JLXfgzJk5SqVrR0MeCGJb3wxhFKomwK6qwLRo2ux1wTDaTh9696d+n0lAYifWjcwBirI mSVi045HNa4mIPLBERaq8BM5tjtV7DIitmZtjAYycuay9nRu4udgmVaDKVsH5HhHyo7U vUBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845785; x=1748450585; 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=pG9XWhKCR2jO9+YNKPkqKviUCLU54wRtte2g15lS7XE=; b=KJnSIZrMPenv5VT0KxK7tx8hDEjykksefG19Uu/ZQR3ShAcwpopIZfzg7xVIWUPPzn mNU+xR8HFaJjuacixHP23Vb9rKRPnuw3cltdGYcqo0odsX0uwU1AGew120I/ZCBEzyXk Mu5uvOPS229SJpvRwOOXTGYalez4m72yuUhe+JBXc2P3dQDJaMTJ21G23A41QHyLb5Ee TJgWs1N0CuTA9BNfaDqYvOzFIojbpuNE7oS2cEPbjSNf1SDrLT2F5n4+VnWNtWYxG36e 00xw6KDUB/NdNqnVA31LLIPXhiGnf5/ONgBsYobJFqb0NkfbrzZTF4c+OLLUcAXxhVRz 3QMw== X-Gm-Message-State: AOJu0Yw8ZlZwHzAhdy9cboYnHh5PcMrle6uIWAegeI7agQ3akBQ2IvFP EQO/NPe/BVH9RYiabuQwoozdCo7U4bTQrWsZ4Rmf0scmMs28YzlqKxKhxLAGUFeSHDs= X-Gm-Gg: ASbGncvnV6flVUaXH8WphI9BjUBNB+axpTnKh8xPwKgryWDYDmAmMpVkffxdxTN6ero 8d+A8M0aAYJmsOFpyBmxalreerYVDTCIF/UMoWGALqpP8WGYewBKukuDA+dWkXATwPJIJfMcVKv ++aJrOerJhD5rRuTy+qe8uOtMAQE+vvaW37JHHjHEwdzOSOqFr92XHKvz07fG1bzpcfFdK/NTtP EJthHauZEWQj8JIDBuBY+Q9a5wdDwKqvaj7zLqCuVf/L0GthsGI8kQPc/LQNp4N3yaGyKhEYojw 0Ez5lH5tr34dnEIAjSkhnQ4MI+oAx7k8drBrAq9Q/Z5dl9ym8/Td X-Received: by 2002:a05:6402:2793:b0:602:1b8b:290c with SMTP id 4fb4d7f45d1cf-6021b8b2c65mr5564251a12.4.1747845784826; Wed, 21 May 2025 09:43:04 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6005a6e5383sm9093212a12.37.2025.05.21.09.42.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:43:01 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 5D98E5FAF9; Wed, 21 May 2025 17:42:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Yiwei Zhang , qemu-stable@nongnu.org Subject: [PATCH v3 15/20] virtio-gpu: support context init multiple timeline Date: Wed, 21 May 2025 17:42:45 +0100 Message-Id: <20250521164250.135776-16-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::529; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x529.google.com X-Spam_score_int: 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: Yiwei Zhang Venus and later native contexts have their own fence context along with multiple timelines within. Fences wtih VIRTIO_GPU_FLAG_INFO_RING_IDX in the flags must be dispatched to be created on the target context. Fence signaling also has to be handled on the specific timeline within that target context. Before this change, venus fencing is completely broken if the host driver doesn't support implicit fencing with external memory objects. Frames can go backwards along with random artifacts on screen if the host driver doesn't attach an implicit fence to the render target. The symptom could be hidden by certain guest wsi backend that waits on a venus native VkFence object for the actual payload with limited present modes or under special configs. e.g. x11 mailbox or xwayland. After this change, everything related to venus fencing starts making sense. Confirmed this via guest and host side perfetto tracing. Cc: Fixes: 94d0ea1c1928 ("virtio-gpu: Support Venus context") Signed-off-by: Yiwei Zhang Reviewed-by: Dmitry Osipenko Message-Id: <20250518152651.334115-1-zzyiwei@gmail.com> [AJB: remove version history from commit message] Signed-off-by: Alex Bennée --- hw/display/virtio-gpu-virgl.c | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c index 32a32879f7..900577a38c 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -978,6 +978,15 @@ void virtio_gpu_virgl_process_cmd(VirtIOGPU *g, } trace_virtio_gpu_fence_ctrl(cmd->cmd_hdr.fence_id, cmd->cmd_hdr.type); +#if VIRGL_VERSION_MAJOR >= 1 + if (cmd->cmd_hdr.flags & VIRTIO_GPU_FLAG_INFO_RING_IDX) { + virgl_renderer_context_create_fence(cmd->cmd_hdr.ctx_id, + VIRGL_RENDERER_FENCE_FLAG_MERGEABLE, + cmd->cmd_hdr.ring_idx, + cmd->cmd_hdr.fence_id); + return; + } +#endif virgl_renderer_create_fence(cmd->cmd_hdr.fence_id, cmd->cmd_hdr.type); } @@ -991,6 +1000,11 @@ static void virgl_write_fence(void *opaque, uint32_t fence) * the guest can end up emitting fences out of order * so we should check all fenced cmds not just the first one. */ +#if VIRGL_VERSION_MAJOR >= 1 + if (cmd->cmd_hdr.flags & VIRTIO_GPU_FLAG_INFO_RING_IDX) { + continue; + } +#endif if (cmd->cmd_hdr.fence_id > fence) { continue; } @@ -1005,6 +1019,29 @@ static void virgl_write_fence(void *opaque, uint32_t fence) } } +#if VIRGL_VERSION_MAJOR >= 1 +static void virgl_write_context_fence(void *opaque, uint32_t ctx_id, + uint32_t ring_idx, uint64_t fence_id) { + VirtIOGPU *g = opaque; + struct virtio_gpu_ctrl_command *cmd, *tmp; + + QTAILQ_FOREACH_SAFE(cmd, &g->fenceq, next, tmp) { + if (cmd->cmd_hdr.flags & VIRTIO_GPU_FLAG_INFO_RING_IDX && + cmd->cmd_hdr.ctx_id == ctx_id && cmd->cmd_hdr.ring_idx == ring_idx && + cmd->cmd_hdr.fence_id <= fence_id) { + trace_virtio_gpu_fence_resp(cmd->cmd_hdr.fence_id); + virtio_gpu_ctrl_response_nodata(g, cmd, VIRTIO_GPU_RESP_OK_NODATA); + QTAILQ_REMOVE(&g->fenceq, cmd, next); + g_free(cmd); + g->inflight--; + if (virtio_gpu_stats_enabled(g->parent_obj.conf)) { + trace_virtio_gpu_dec_inflight_fences(g->inflight); + } + } + } +} +#endif + static virgl_renderer_gl_context virgl_create_context(void *opaque, int scanout_idx, struct virgl_renderer_gl_ctx_param *params) @@ -1039,11 +1076,18 @@ static int virgl_make_context_current(void *opaque, int scanout_idx, } static struct virgl_renderer_callbacks virtio_gpu_3d_cbs = { +#if VIRGL_VERSION_MAJOR >= 1 + .version = 3, +#else .version = 1, +#endif .write_fence = virgl_write_fence, .create_gl_context = virgl_create_context, .destroy_gl_context = virgl_destroy_context, .make_current = virgl_make_context_current, +#if VIRGL_VERSION_MAJOR >= 1 + .write_context_fence = virgl_write_context_fence, +#endif }; static void virtio_gpu_print_stats(void *opaque) From patchwork Wed May 21 16:42:46 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: 891535 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221030wrm; Wed, 21 May 2025 09:46:02 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUCLdRijapFZYhOq3bupHaambWdkfUO3DUKJ2m8iB7IYvdaXwaUi9ESA3adi9v8aAt6rFLDEA==@linaro.org X-Google-Smtp-Source: AGHT+IEssUT+hBlj87xnovuUwud9rDZ3LEDd6UofpABQC05Yz+J1agLP+bVhUfRp8tLff00GYcS4 X-Received: by 2002:a05:6e02:1fc6:b0:3dc:8b57:b770 with SMTP id e9e14a558f8ab-3dc8b57b864mr2341255ab.11.1747845962328; Wed, 21 May 2025 09:46:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747845962; cv=none; d=google.com; s=arc-20240605; b=bGGrOZApQGoHR31cwvLOJ8Rdn8NXZfM2ne8tM2tnJYodnDHDlLnFngUWVGuiNfGaDO B5x8Gfu42VdihKnMyqYSILY+F4a90jbr2Q0CnxpRXgkSCwZH0rXhEPwWxkwNeiU9PHmz /mnGihZQCckHwuvHMqO0alR5f5uMhXRscWqowFeYGXYctMBNYl5OhHzreFYviYCMTwVj H9imMkIWmSVY2eIRer78Ev+n7txn2WRzfMJlizuV5HhZxAu7raZEy0cgIzb5aSm+N7Zu eu9AQXUojlmf5XQkmqHLhzbWVRm3IyeJbKk7nZ4hy0NVVg3wDttKWOAqPvtPHT3+wx/H Bb4w== 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=zLCQ0JmwftO2eWLG55kfspY4mRvxcs+3bUMWqjXAcvc=; fh=CsZdpSNSHNVjXiv41WMQl4TocwlLs380IblZy2JyfoU=; b=N2+kZKMQHjzj8TU1DXKLd2QwrKjLZiY7xvRcP3g6Xt79vTSPfDs66lyMXn8w3Ec9MM umIdM7whQH/5vjxnf9mYVNlC456bdzohnEVA2oTMzRWhjYVS105cHr/ClGbPqQtkCCkR SB4B6V4phPKWxEuaHiCiLS4xwxKMTgqx4u1RCf5qNBWqaaMiHYeM7H/6swojMEO4unUG CMCu1Q4w8AauUk1+O9XEn8944YxEjnJ8sXygT6U3wJF/MU0dsIFFCejig0Bfin4QBOM0 n5EUB3L6Q5k8y9PNklRpXfZyhpHqufN5QSv0EXjX3DfiMYhOObDOz5/dNPeywZk6YRct FyDQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=KeQrPv48; 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 e9e14a558f8ab-3dc857a7200si20871405ab.164.2025.05.21.09.46.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:02 -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=KeQrPv48; 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 1uHmXH-0000bX-JE; Wed, 21 May 2025 12:43:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHmXF-0000aD-UD for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:18 -0400 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uHmX4-0006CV-2R for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:17 -0400 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-6019b564d0bso9250516a12.2 for ; Wed, 21 May 2025 09:43:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845784; x=1748450584; 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=zLCQ0JmwftO2eWLG55kfspY4mRvxcs+3bUMWqjXAcvc=; b=KeQrPv48dMQ3uVHSQpfCc6wUPSzYy03HN9nRTJpt/sToz/IG7LKL49ZmBVVGzXTBhf icK+oFwbSoWYkjh9l3VpP1neJXF0yfctzgzMKyy1EX4GIhl0GcdlyIlTlWMvi3e7IzcW cYpIBTJiIua0bkBgbcmnlyvC1vIpXsbJyuckpFycl3IUZjbD7oymmIClOF0PwTtiHt2D 4yeQLTt2BYBw4RTbg4llf/2h4Vm7dgBWSlP1PO1BJYwqokFecVlc/FPri8vvRj8S5Haj U196j9bn8sCmWZB5Hk1xHcE3b/EUqw5h14VD7j21Car6nLY+bfieNmhjZk0/Sc2vp7Ji 7RkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845784; x=1748450584; 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=zLCQ0JmwftO2eWLG55kfspY4mRvxcs+3bUMWqjXAcvc=; b=fzrnnreP3nJuc2oR7k14nPvXoocuC91FzcluN9YrbEgSpN2steNXiMEpnMMAa79OZJ UYZ4Nj4g9GUc90Hd/ShcDRgbujIKL5kw3Y9Yg3EY7J7/4hTdEqyK2lKcavqQqxA2tnG5 mVIRrR2r97B25J5x/FH9cSc7peHfN8ousW8aawtZrxHDXky+0WMCspjAsovqMlDSMhNg 2GhETr/lTHTPzPo/7RDOOgtLU0FIlOf4kxXE8dE/xKLTDJSOuZ6R2bzvm6X/u2Pi2M7w 5gv1XABchsTGdPtOuSE54yGYo85T+K9OEgk84rm7AtMM9HkBg63gjIALMHsMOmW/d9RF JNYg== X-Gm-Message-State: AOJu0YwLg64dBrEnps890tWw6A7XZVtxQBxdpEH6TBVy/wYS7CRnEHEd P4umd1jflvzfVAGiRnGb/MSmWRFcwgNgJzgnfNSD0JDVLgbRwz3mEBCTAhvJyFT5DGA= X-Gm-Gg: ASbGncvFHo1BD1r2N9Bs08njgJk69M634NJJN5q87zRQdJo58npAR5pfkVWv8t9xcWX EnDe4dnQXTavM1GeXfLBedWJMSCwotqeHvskHo/ofL0k3mgGzOkGVL5fbaGgfsg1/VoDQNQn6Fx 1wAC1KwCl2jgqNkih68oQ19D/4X6IqDaW865l8H92wDvobY8aeRYVw5KaMyOufMF4loX6P5uCmV OD9pRAVz7n2eYY1acZab8nk9or8urG1iQ9bhs2iQnKFPpfKeKFKh41dBrtcazVc8uxsAG17wc8w c0ypFmZFq6qq6qV5auNLGNROmY1GKiAHx2TRwIU4VAv3AD4VHjvT X-Received: by 2002:a05:6402:13d1:b0:601:9853:5471 with SMTP id 4fb4d7f45d1cf-6019862aabemr16241216a12.31.1747845784002; Wed, 21 May 2025 09:43:04 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6005ae38870sm9236811a12.66.2025.05.21.09.42.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:43:02 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 7055F5FAFA; Wed, 21 May 2025 17:42:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Richard Henderson Subject: [PATCH v3 16/20] include/exec: fix assert in size_memop Date: Wed, 21 May 2025 17:42:46 +0100 Message-Id: <20250521164250.135776-17-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::530; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x530.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 We can handle larger sized memops now, expand the range of the assert. Fixes: 4b473e0c60 (tcg: Expand MO_SIZE to 3 bits) Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson --- v2 - instead of 128 use 1 << MO_SIZE for future proofing v3 - fix comment, 1 << MO_SIZE goes to 1024 --- include/exec/memop.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/exec/memop.h b/include/exec/memop.h index 407a47d82c..e934bde809 100644 --- a/include/exec/memop.h +++ b/include/exec/memop.h @@ -162,8 +162,8 @@ static inline unsigned memop_size(MemOp op) static inline MemOp size_memop(unsigned size) { #ifdef CONFIG_DEBUG_TCG - /* Power of 2 up to 8. */ - assert((size & (size - 1)) == 0 && size >= 1 && size <= 8); + /* Power of 2 up to 1024 */ + assert((size & (size - 1)) == 0 && size >= 1 && size <= (1 << MO_SIZE)); #endif return (MemOp)ctz32(size); } From patchwork Wed May 21 16:42:47 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: 891547 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2223363wrm; Wed, 21 May 2025 09:52:02 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWIROUz/A+94d2UP5CBTCAl2nBmqXbDTTyNQI32sMje7w1t98Y39F7Q8SbHAy2fT8oDpRsH5Q==@linaro.org X-Google-Smtp-Source: AGHT+IGE+0mH2A2duqdRfdKPcYcq3sz1em2jVVlR5YMqSg5JfxoF/7maWZYUM+skCoeTc/LH7+in X-Received: by 2002:a05:620a:994:b0:7cd:4804:f150 with SMTP id af79cd13be357-7cd4804f1efmr2700690185a.52.1747846322136; Wed, 21 May 2025 09:52:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747846322; cv=none; d=google.com; s=arc-20240605; b=BnAgXlTd4USjAvq5Lfk3LGh7KcKBG1DUXmajDZ1ixCNasb7hJSx1E+dKdLGFnj5v0O rPA6o1wZLgX166BO4vLA/6ufEA6MXhBk6bN96V9JBKZ40+/VpKaQEHoklUp7PMAiX+1+ d/NFr53T/j+SxsGnQ7iqke5I5DJpVehYvrzoLnRsIefNciid+jqTrd5cNWLmGevQUgPe Y6HqNFyhR/tRJZEDEm2ycyjtZ5hUYkKbMgK+xkCkokijHRmt9u6EG1MJtFIdjqxjq1ng FY4PYQbKLrY4TEl58M1OfE3Xvj75hfDbkFQmaLmHlujoTuHIN1IbzuMU4w7O6l85dzNL ug1w== 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=VZF6S8L3UqVuJFuyJwFnFTJvE8XTZ2YC1W6E4Xyum+w=; fh=bRO1MF9VSOWVIGjbYXUTHO3COe2aRRAcNw1LSvnzoWs=; b=UWoC+LZHM/GARAFmT/wdHsPCxMmqH6QlcAuDdG4IO6tZkHOjKAZKBnf26sen724KgP QlnFGLiUmQxl7tDbfnMlnUG15byo41frPqz4nFX9pkwEhynKLiuQGk/8d5FMgEpbQLdD 14wM5P3MMM5gRt3D+/bn92+KyA2TtPalB7h5Vhx2eWbTVVpI7lW4nV/AGNlo7UhrIyGV /8VW5Mkfmb8QfskSfhsD1GnMaSm0TyA3ElUDymfiLyvFF4ZhLE6TVzMi4ispLcwKbf9d Abm9Bh4PiVDe8tFELoUJ+BuzLLQusjBwh49ZHSshyDW3yIL6r+CAK2CNzggX7xT1wR/s Vgng==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="rghLNE/j"; 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-7cd468d2a00si1333418685a.557.2025.05.21.09.52.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:52:02 -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="rghLNE/j"; 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 1uHmf4-0004eV-R9; Wed, 21 May 2025 12:51: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 1uHmf0-0004dw-AP for qemu-devel@nongnu.org; Wed, 21 May 2025 12:51:19 -0400 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uHmex-0007Kh-3N for qemu-devel@nongnu.org; Wed, 21 May 2025 12:51:17 -0400 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-601ad859ec0so8302647a12.0 for ; Wed, 21 May 2025 09:51:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747846270; x=1748451070; 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=VZF6S8L3UqVuJFuyJwFnFTJvE8XTZ2YC1W6E4Xyum+w=; b=rghLNE/jIBABQ+SY4At6vaINrD0R3VB4M1IelF6SPusHGf0Ck2Vkyi/Ssg/x8Q6cYO ZOUsHwjWOpcRf95hXUXyrqRwFRlwq0NjYy9WFZN7H6tF60xrrlzZkpeAmmtgSmN/ru+/ oH7A9eqCGnNm8F9sKRFLuciUpP9UxoaJOqnUdDG3YwO3/yfzMTCfOCTjAMLKNv74tQXN vr2/s2DWhgc91NDBrxM7Eqjlps7+hojxmPQEQtbisLh2lQB6jIa4BjJdyOfO04+KxbS7 ePK97eEWEozkCofjpbpUffLJWgiwf+pVIfV87812x43KRSbQoG2bXNwqZgCC48fh3Tz0 eR+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747846270; x=1748451070; 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=VZF6S8L3UqVuJFuyJwFnFTJvE8XTZ2YC1W6E4Xyum+w=; b=BitB3dWfkugxn/lgSaLhV2g7DutvTKBLF99XRfnKB1pVP12CUEMvZV3K6qNURDqWgE 683ySPlt0u51EkF9JcGqtusBXqTsIO/VXHTBKNZ5PC6JgftB/IYYee3PnO9+5Fbx2Gyz KD2tFOrs/II9aZwbVKnHWhOoogsXjUGJxbbiai+CvJos0emBlIzwQ+R95f030Ntl437d ZdNP+epj2Ia4x7yiTXNHrk9Z/h5rlw9jE0eAYlQl9xJIarC4Fw6IYQaZHJJ1UzhhuCLD jmTcnHMaANVb0jEdsUViffiA2r74E8X9qvssulKwWA+2JONUVMwa0jpaBqZMgvkQ5tyw X63g== X-Gm-Message-State: AOJu0Ywgewldo/gIS6iGKKIDyKMwh8VrMgiS0gjNEw39MMl0WXzDj0I5 0RkAlAOj4CSUTOV2sDhugPqaPbz1vM8qWETWUM92uSjM0MvpYxKR57Q6Bcn3dbo05pY= X-Gm-Gg: ASbGncs+kEpnlexGSWCB4Kimxi3GVktxZH6XowMfFJR066t9e/qIjADJ+E0MnlqNfBi 9nhNfyikmmGHvIgusi4yqB5iKIxTcyzIGLIpZZe3+Occ2F47EAsQWA9Faqa8wsbODV/p9gZGqxx hsMjwO0YoBU5fgeq2zonXN3hSB6DDknHqUqHGkf3Qe8c+R7fv+ngi/16vtyiHuOFWepAOrdHw4u sWo+lSGWoz1xaOW8XHOESBvteTNfx3UcSfXDVU97jZIQDX4nkofIacLo2Qh/B5ro7tijg+N0gaB 8mvUnCVebYfekKRsl4BEvf7FLO7OfDXSnKXdx/tfCB3absX0f0tG X-Received: by 2002:a17:907:3d10:b0:ad5:21cd:b75e with SMTP id a640c23a62f3a-ad52d5d3608mr1965724666b.46.1747846270392; Wed, 21 May 2025 09:51:10 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d04e990sm923827966b.35.2025.05.21.09.51.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:51:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 820225FAFB; Wed, 21 May 2025 17:42:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" Subject: [PATCH v3 17/20] include/gdbstub: fix include guard in commands.h Date: Wed, 21 May 2025 17:42:47 +0100 Message-Id: <20250521164250.135776-18-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::534; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x534.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 Reviewed-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- include/gdbstub/commands.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/gdbstub/commands.h b/include/gdbstub/commands.h index 40f0514fe9..bff3674872 100644 --- a/include/gdbstub/commands.h +++ b/include/gdbstub/commands.h @@ -1,5 +1,5 @@ #ifndef GDBSTUB_COMMANDS_H -#define GDBSTUB +#define GDBSTUB_COMMANDS_H typedef void (*GdbCmdHandler)(GArray *params, void *user_ctx); From patchwork Wed May 21 16:42:48 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: 891546 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2223338wrm; Wed, 21 May 2025 09:51:58 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUj36VHYqx2ZQiqqogSr++IjxMItLOWiS3wJRNZ4POOweESFcqkry2084doADj+YipPD6fhxw==@linaro.org X-Google-Smtp-Source: AGHT+IHrSf1wTRLGIQiKdQvLPLtvFDHDdIwK8+TQ0zIqR8WYPi4WDzNY/YhWXjp8X05RaGW04fLh X-Received: by 2002:a05:6214:1303:b0:6e8:f1b6:a122 with SMTP id 6a1803df08f44-6f8b08ab97emr321242536d6.29.1747846317887; Wed, 21 May 2025 09:51:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747846317; cv=none; d=google.com; s=arc-20240605; b=huPUuPByucMcGiBM4wAiIHWhGIgpiUxUZEB3nkiLFIQywYc7crkiD7Kcb7NGM+PUtA +JdVPy69STvAcPjcNPEu7xknZgQcdE5SAttMSjZ/iJifOk2n+fCpRfJOtZM1XlIndSKh cycWJSxGeRADwIU6DTCI6YdZ8CstSFv6pauvCZzMHkqVIpJIYV2F8MMHHmmkCOv5uT5Q qQdt8z74b/84degvjvyBxEhpsWiCE0Az4KtwzMZXTrU3A9NYut1tz6J4/e+McFyGHMo0 yIpQISlCGnrbBoYQ7y6IJVuISE/pNug9zxbOfuidOYllWM7DdX9XfL9q+s7GIsoQBzfD vCwQ== 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=sGcCBogciGYCcQtD2ipd63qJym+pfIRLPkHANZ4+71E=; fh=bRO1MF9VSOWVIGjbYXUTHO3COe2aRRAcNw1LSvnzoWs=; b=XhcusA28Thlh6DuUKE6Y/DCCRQc2oSF+8xM9WfPYHHQRXqYekGpzo7CgV63L+nMGn0 2GABsJU3vpgqXT8GrtKDCH32cWPdb5CpWTmnOMNXo4gNwRfsyOkadSiFIuUYq2gDTAkG mUQ6/8x6JG4+sBp2/c9ZZuPgrjcSFVrQpFnHgqkWI3BR1fq1Di9B5dvLqop5KDREnalb eu/KOAfpB2MVclN4QZO7kks7+4pW2DnLP9/BmVajyfYxxfPnVahrW9sQT1lbDLPzwzo5 DovKcw2nd3VPrOzHKCnIXJZNCtNEyNsR813nEACwKIzUeVJhNfa9XJo6NBi6ATPy4tih bm7Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vZcp78R7; 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-6f8b09d1fddsi141581346d6.476.2025.05.21.09.51.57 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:51:57 -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=vZcp78R7; 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 1uHmey-0004dI-Ed; Wed, 21 May 2025 12:51:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHmev-0004d5-IJ for qemu-devel@nongnu.org; Wed, 21 May 2025 12:51:14 -0400 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uHmet-0007KO-K9 for qemu-devel@nongnu.org; Wed, 21 May 2025 12:51:13 -0400 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-ad1b94382b8so1262470966b.0 for ; Wed, 21 May 2025 09:51:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747846269; x=1748451069; 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=sGcCBogciGYCcQtD2ipd63qJym+pfIRLPkHANZ4+71E=; b=vZcp78R77W8Vb9qYq1z0EOZyQXpiez9qvAPTNZe9u3I7+a4pUEHyZdNklqKyHCArf9 fWMunRIqvhpsz4K9SDTFan6QHaLWQIck/hnsQz5A3Y2J3r1CZAoIP48rG8SXToa2jzsd E/KAIrERkBgdnqPBrWAthDljQEUoeAiiRk3rrwyJKXo4gzCWHMkIPGQzrQI+8+TXMjSG OkF5TNg88ODA2RJknYWO7zQdLRrtoE0kDMxCpp9A58Z1EYivfsQ7si+fXf9VZ+nSlVpA SAWUzsOIgmm/2gacORx8M4PzusDWQOGPyan12xxN38s26NOAp2aJKqEAt5LgMQBDN2ix eI3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747846269; x=1748451069; 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=sGcCBogciGYCcQtD2ipd63qJym+pfIRLPkHANZ4+71E=; b=Ox0PvBVWTGnfkv5CyJSWiaYJGz9Ii83F1J90R7IVezAQTQQsmXKus9rfW0HPivzeS3 y5pSo8p+Fz8tIS4PgxKaH41ZA4gmWqY/tjlf0FHoFfZUuqcp8NjVP/LTpExKWdHuzjJM t3/CZEhtu0BSNeqf0v3Hgjx5BYreT+FEuOlGFJezXmWxMl/XI5sfJnDrsbMGkWQIENrY g2Yjja53l3Wdl3cv7BYATY4kbVVenwCyJQ5nYC1aL8cMzAUDU8WICYh2kl9CvsAcUvHe tiMcAWAsjt1qh6VRuoVv8A9QZfA20PMaNQsARnix9CzrLt9yZwPdleXp2PQj2q3E9inz RMQw== X-Gm-Message-State: AOJu0YzNTKJ1dGyPso6nJUjTAMHBbCrwHR+xchofSwOcfZF+G+zvJkrM qU3+SHHZPkMmNJLarHdeozjKdCqEXxEwQQuQRQ5miMZRpyPmCB22i+DLaGTd7xkuS7I= X-Gm-Gg: ASbGncslvqwvGvjSaTct6br6usR7/LpFxEt+OqXQJSAvCQMoodmHLBRLQYQlbN4RbJ+ eJ+x7LaaUtws9OybwpJLTnyfh+j4tDq+GsSWjHWiGshWwHFx0FG9pC0972+1sikTgBVYeipPv6z n+RSVjqakZYPGY1dI9xAkZBP1pIBCyfxFKVv77MI7BlyVHeaUvdlZGOyzzQdKiGlL7KBAaidWrb eU8tCBSB4Hki8FRNibuGUEVh3QI63USmgWghPUCGE+cr6qd1FmqEwPzHDtnl/tB126xF7OleLue foBA7XSl2daIWcn7S2ZxiB0zcN9jArAvkPNHOyMq2onqCyI7lwA0 X-Received: by 2002:a17:906:730a:b0:ad5:112:48e4 with SMTP id a640c23a62f3a-ad52d49e918mr2028702666b.18.1747846268911; Wed, 21 May 2025 09:51:08 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4382e2sm932518866b.107.2025.05.21.09.51.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:51:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 951A25FAFC; Wed, 21 May 2025 17:42:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" Subject: [PATCH v3 18/20] gdbstub: assert earlier in handle_read_all_regs Date: Wed, 21 May 2025 17:42:48 +0100 Message-Id: <20250521164250.135776-19-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::635; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x635.google.com X-Spam_score_int: 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 When things go wrong we want to assert on the register that failed to be able to figure out what went wrong. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée --- gdbstub/gdbstub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c index 565f6b33a9..6023c80d25 100644 --- a/gdbstub/gdbstub.c +++ b/gdbstub/gdbstub.c @@ -1343,8 +1343,8 @@ static void handle_read_all_regs(GArray *params, void *user_ctx) len += gdb_read_register(gdbserver_state.g_cpu, gdbserver_state.mem_buf, reg_id); + g_assert(len == gdbserver_state.mem_buf->len); } - g_assert(len == gdbserver_state.mem_buf->len); gdb_memtohex(gdbserver_state.str_buf, gdbserver_state.mem_buf->data, len); gdb_put_strbuf(); From patchwork Wed May 21 16:42:49 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: 891544 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2221395wrm; Wed, 21 May 2025 09:46:45 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWRbDYpAOSxVObv8wq2r4cnxwwrbDRnyJhWG4QFuy05x532gDZCXyuo1b8GS8HIkzTRWMEETg==@linaro.org X-Google-Smtp-Source: AGHT+IF1Nif1hBlpEai1ghd5EVxRwA3pcAr76CftqjUaRErefvkTbSZG4bX3mqIpGIBs1eUeDYeZ X-Received: by 2002:a05:6602:3e82:b0:867:6c90:4867 with SMTP id ca18e2360f4ac-86a23256cadmr3436527339f.14.1747846005510; Wed, 21 May 2025 09:46:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747846005; cv=none; d=google.com; s=arc-20240605; b=K+ZE2lItwn/vqg2j1yDNbp7HJlNLYsIV0iZqX5XjDEtZ8K5W2fZqrG6M0BRKgzBbut iO79XuPQOZwceDKRjjUglkQsH6ejC9Z8eLSq7nJpcHqfZGH+9LNqV3cEFUM0Hb5bdiJb QUCr+WhPmkYUmWvMxW1mfQ6X+QkhfZvE2PfATI6mjcGVhI9aBctP5hh0B9Rok1nCakOY ZrI7vZLsvlrqdZYdrljehVi3TInWd+3AF+zHvMAo1/b/2/Y0ar3HnbIRj2XODyx+o/fR maa+1LX6qWlz0vjnt3gCaoPZByCRnYXpxWutcH2RUF/YJySEv+jCYXsrmu5SIoUKfs5R 7Mrg== 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=IR1BW0V6NZfur5cS1FGWmpSotNouca/s3x/m5RfYwqA=; fh=zI/TkHJzKG/RGn11/3lhBPr+jU8myMOiMiZctnQNwoM=; b=eYszB0YTzre+lKZkLZqV/1eQrL33puAxaGWZ3hOkHTjBEAlwOvZ/yd2bR2S46wEGfn Fn6ZtmDBYm/YjUcEGahwLxTo+dJ14NQjy+ZvOEmIxlAK4DmMeB20PPX3gjErBcqKGvTH nbXIykCvbHh91skebdXsDSWF/xSUnA4EiWEwk7F2EQ7SSw+D2Z52pliGAZKAiBqDVF9E PQwYA7pz2f3zFjifO0DJIhdjfGjZKE7rkjNN3ATQgZmuNeN+RVIeYKrjwmtvO0lyEQhu 3Ieznl7t0rIrcIC7NvPSaNUlDb3h7cAsndXHU61NpPCu5JS815jYWzCtM4N3DaZNAIpW qV1A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XZxqylnm; 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 ca18e2360f4ac-86a235b930fsi921685339f.25.2025.05.21.09.46.45 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:46:45 -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=XZxqylnm; 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 1uHmXP-0000gP-Ct; Wed, 21 May 2025 12:43:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHmXM-0000eO-U8 for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:25 -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 1uHmX6-0006Da-HE for qemu-devel@nongnu.org; Wed, 21 May 2025 12:43:24 -0400 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-ace94273f0dso1211128366b.3 for ; Wed, 21 May 2025 09:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747845786; x=1748450586; 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=IR1BW0V6NZfur5cS1FGWmpSotNouca/s3x/m5RfYwqA=; b=XZxqylnm1gMGHum887YEEz4yYhNNd3zePMrBbjccnv1MKdrPqHWdBnn45lwXS2vwCq h5IHqgybflSSdJblLdWnezfDgbfZW0etwfkysGpSgJP4G2q/aThL//Kg41cyScBtbX5s T7f8RU/MGUYqRsQ8iCMT3p1ZfOzmd9eDYp8uCHjzL5hOM5I32vx9hqtAt05cebp1VFrK i1TrBKM42Quv74P3hlu19iPBWD9vOGwIvgTdzc26QwsIsSoDBNr30naktV3mjCRkz/hj bUdQx9RV0nARaB31eqN7FPknsHZ6ZXiev6wNin4zpLWE36QugpFj0aOG3LELvToyhIlm gIkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747845786; x=1748450586; 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=IR1BW0V6NZfur5cS1FGWmpSotNouca/s3x/m5RfYwqA=; b=mL0zEWyfu60UAZSfAt9wkm2ccBEsueNBeYF/38XVRhVIHzA9rS9LrETvgI3u7Nx5pJ aDD1ModTov4RbGqgVp02XhvbPLp130DKoppW2Z2eZgxsTggRHLu015IGjkn4VxbH3/jF RevbSM4f5ZTuhsgwnXft/WX74BwpvMxZTY6Ma4MOExab8NCfXd8YADGv62eZ902sktXk VxFdUWQ8J6+smctoQCB+4ny8BP9e3/GxUCJPCTYNIAJlmokziZjUfzw/rtKfuKQ9tiEA qv3weZwBpIleR1tM8x89AgkIuIN1NPZ91yhDwZTHdJJ1QjyXF/n2bUitDcB6YMncGfKO C7ow== X-Gm-Message-State: AOJu0YwLRMbPg3IJhXlLcSIH6ZnYUu4/EkMot0lMLCj17lgnvSp8h71D bwWnJuGXWmdezBRErWQML+uj3OkNqXrgqVvsNLycFnXWCbdDW5SzF/L375CRdmFyjV4= X-Gm-Gg: ASbGncvYibWSc6pOSnmjHDMHq8hqI1i5jHdUIJj7BhoAez62yCmT1dfXANjgwBXbH4Y KztiqfiBEkL749B2dvJ3PLcG6xSVJLL6Wx1r8e4k9HsXqt7GOZpnw5zKNpRN/1ZOzz/K5ZByiRu 3CdqhnxPCTNqDS4qmqGilBWapRlnt/vDsdRlHFmIc2sfDt97m+XK/px/pEr0JNxfE4BnuuIebrB tIL6AefnStq/TytOoC+WzbOMUeOtKK5q1vqMyhXiAu4LOM2y6smCPxl2AzfHP6adzcV1w8sogG/ rDVIhDtosoHMNQuPFv0BTT1gSNKkkQi8VIFgCNFWQd1myHykZU3F X-Received: by 2002:a17:907:6d11:b0:ad2:1cd7:cefc with SMTP id a640c23a62f3a-ad52d496b58mr1813848966b.13.1747845786411; Wed, 21 May 2025 09:43:06 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad5572f6436sm674593966b.182.2025.05.21.09.42.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:43:03 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id A7BC15FAFD; Wed, 21 May 2025 17:42:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Dominik 'Disconnect3d' Czarnota , Patryk 'patryk4815' Sondej Subject: [PATCH v3 19/20] gdbstub: Implement qGDBServerVersion packet Date: Wed, 21 May 2025 17:42:49 +0100 Message-Id: <20250521164250.135776-20-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-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: Dominik 'Disconnect3d' Czarnota This commit adds support for the `qGDBServerVersion` packet to the qemu gdbstub which could be used by clients to detect the QEMU version (and, e.g., use a workaround for known bugs). This packet is not documented/standarized by GDB but it was implemented by LLDB gdbstub [0] and is helpful for projects like Pwndbg [1]. This has been implemented by Patryk, who I included in Co-authored-by and who asked me to send the patch. [0] https://lldb.llvm.org/resources/lldbgdbremote.html#qgdbserverversion [1] https://github.com/pwndbg/pwndbg/issues/2648 Co-authored-by: Patryk 'patryk4815' Sondej Signed-off-by: Dominik 'Disconnect3d' Czarnota Message-Id: <20250403191340.53343-1-dominik.b.czarnota@gmail.com> [AJB: fix include, checkpatch linewrap] Signed-off-by: Alex Bennée --- gdbstub/gdbstub.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c index 6023c80d25..def0b7e877 100644 --- a/gdbstub/gdbstub.c +++ b/gdbstub/gdbstub.c @@ -28,6 +28,7 @@ #include "qemu/cutils.h" #include "qemu/module.h" #include "qemu/error-report.h" +#include "qemu/target-info.h" #include "trace.h" #include "exec/gdbstub.h" #include "gdbstub/commands.h" @@ -1597,6 +1598,18 @@ static void handle_query_threads(GArray *params, void *user_ctx) gdbserver_state.query_cpu = gdb_next_attached_cpu(gdbserver_state.query_cpu); } +static void handle_query_gdb_server_version(GArray *params, void *user_ctx) +{ +#if defined(CONFIG_USER_ONLY) + g_string_printf(gdbserver_state.str_buf, "name:qemu-%s;version:%s;", + target_name(), QEMU_VERSION); +#else + g_string_printf(gdbserver_state.str_buf, "name:qemu-system-%s;version:%s;", + target_name(), QEMU_VERSION); +#endif + gdb_put_strbuf(); +} + static void handle_query_first_threads(GArray *params, void *user_ctx) { gdbserver_state.query_cpu = gdb_first_attached_cpu(); @@ -1842,6 +1855,10 @@ static const GdbCmdParseEntry gdb_gen_query_table[] = { .handler = handle_query_threads, .cmd = "sThreadInfo", }, + { + .handler = handle_query_gdb_server_version, + .cmd = "GDBServerVersion", + }, { .handler = handle_query_first_threads, .cmd = "fThreadInfo", From patchwork Wed May 21 16:42:50 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: 891548 Delivered-To: patch@linaro.org Received: by 2002:adf:e88a:0:b0:3a3:61c9:c5d4 with SMTP id d10csp2223409wrm; Wed, 21 May 2025 09:52:10 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUPjMrv6s0HW41NE+4pSCTNnA4VJV2xywqjqucI60Cp4TDfsAB4XgvVNexqiXyLzJeM36jdNA==@linaro.org X-Google-Smtp-Source: AGHT+IEPDMgWOfDOC/BKSqZHhTuMbDF6zTOmISa+fHvfYuud6rQ4SF6HHpGHdxMu0xGv1z4kn3RI X-Received: by 2002:a05:622a:53c9:b0:476:a713:f783 with SMTP id d75a77b69052e-494b096c631mr384359771cf.47.1747846329971; Wed, 21 May 2025 09:52:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747846329; cv=none; d=google.com; s=arc-20240605; b=Ti+TXH9gtLEV6AD25hkAd4CZMJK6RLRVZgxJJeUU4g5xnNgRJUqTELlJDdF/Dm1FR4 quGyo2PCDRVJxq5USH+jENL3ArTh/AkAHljJNu8W91Qcaf4E+0bfIxxvJptNFsjGFt8N sQEDoNHkaOF9fIDHR9y53NcbavFvWsNldjrvRNoWkIcmp+pI9uc5pjhqUl80G2NwL/p2 NPVfOwPTFZkCNi//YabPDONNQLUq6ieTCPOHNj3G7yOv17/HV7DL4iwdR5UvswMUk+4i +QdIpZuS7ZD+vlAmWluWDz2h7ApqTGoF8A+R4cBrc1KMgc84NqqDO4MtRNQ7rq/+iuhf lgcQ== 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=WhBb26SjuKAOlwKxBTTGkr+A9vckx7GIaP4zLYV5QOo=; fh=pPgBmwcQ0eQ+JkZGJK8l1+KIbw+VjHVfb+jAtLcEPYU=; b=SJZpag/EQPFjNxS8WCrIUUJvBhhltBQAkDANGu3a0VXLjXCMlADzs6r3cHcPJgIrKP KOXw/MQ7VufmbTTmaA/jfVOGOaXKLrCV51QLz3S2XZ4Kr/18VsVJqR2kEpasL75QFs0o 93adb5nNN1LzltbQ8ehNT3Lk1+mx/BRJzy09ZEzGHQxiPovkfjwprCjNXZcou4/+hz8v aobyXX8SoXN5STQDEcHthI0U+Sm/qiZwpXv/KGapAdogAtLn0DSTLff5utCWEUjqCNf3 3m8HF8pZ9/gco9HqEyzjxRs8SJC52+B4F3OPJwJo992j92icCDIVy42K3dOntan0yNUn NusA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=wm4PC9Dh; 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-494ae57bbe7si132822301cf.453.2025.05.21.09.52.09 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 May 2025 09:52: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=wm4PC9Dh; 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 1uHmf5-0004fC-RW; Wed, 21 May 2025 12:51:23 -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 1uHmf0-0004dv-AT for qemu-devel@nongnu.org; Wed, 21 May 2025 12:51:20 -0400 Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uHmeu-0007KT-GN for qemu-devel@nongnu.org; Wed, 21 May 2025 12:51:17 -0400 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-ad1a87d93f7so1124835866b.0 for ; Wed, 21 May 2025 09:51:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1747846269; x=1748451069; 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=WhBb26SjuKAOlwKxBTTGkr+A9vckx7GIaP4zLYV5QOo=; b=wm4PC9DhbpSbIYXYfbv4vkZqiyQi9b2Qm+MN29qQ4DWnhYB1AJtWwJXP7VgDWueGrB AckAAxQxRUJ5h2t7i1A0KMFspEltPzJQmlcsY6go6PxMr4Y5LFCRHzLYCQhm/y18G/OA I2aOVdZc2E61uOzW6jIG+MdrY2bktAwHSlnJ//KDVqhXBAEMK39ksv0jC3OspD3hVkPB qfuX8zOACFGmlws1O6phbayLGIIFLG4I4n9SPuxijVzvs7/JmnwHfx7Ovvv5f7cQE1hB /hgv42bKhJydtqnjCd1GIqei7P8doRk+zwXJn0plXdEoBDH3kUpbDGcINz52uWX1Xubc GLlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747846269; x=1748451069; 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=WhBb26SjuKAOlwKxBTTGkr+A9vckx7GIaP4zLYV5QOo=; b=TjzNQzu1nw7GquDG0Ph04iawF8HtIXxI7ZiXlxkOG31D+4N7xh9NbddMQPmGK1sVDQ EigLZayxp2IRAvOV/YB3JSZ4VWtzQlcjFjuxkZNDpmi9+eR591m5Igq2xzMdmWlv+Fud afzoI9GLdH/IT9HezvY8rq7Eb9YWkGCTPfaDB1XBfsOf6DtZKEQjAoI0+F7byRGk8yZB W2w5zrj+qxTiR7zvhQ82UCtvYJ4a5jCd/Uxn4mhBAVmvZV5U/s8oSbJJpaLuV8A4L0bL s4qItDo4r62ECOx3C34nV6EJb1HjdNWX20JTz8lqxJFWcdykcasW6/l8OsJOA6ie2ZMp VzpQ== X-Gm-Message-State: AOJu0Yxqscz0bFiXPvxcv554FvGtft8DjM/w1iahdIK1daS1H0A61HaY 6SRXSIXnknSKaurcN/2qXb7azK93OlDlYOSXwS6wCfgP4Pkc3ZeosJL1PXUaVZfWjAo= X-Gm-Gg: ASbGncuO8QPOtntwiL2lPQ0BMOQuwEDlj/lYRxEoG49gr7aWzbpbXjRu56yhRs0YFLa yeeYKbcZSE9krHJCIFRueqM0xZoJz1Cgq1uCKKFN2Qtvbzc4yRHnRlN4GmfpeOqK0zMi2oz6jFt 7fYXS+NgRBXnIVdnAgQmkQo8lRRc63TtZI9I1J0Uc4767MfyH09L61K0YRBTIVhSO7Sbe6mWX3D /Q6uor4aGcNULL1OUMQfOgUhZPykKqFcm4FM1evL1b+am8T8Nd/VQkrau5xLM47pgt0cq33SU0N RMDNXMzpqJtMkhYX4hNiCBWkFkncW28JrmzUpczMN7pYKv1nXMOJ X-Received: by 2002:a17:907:7b86:b0:ad5:b09:115f with SMTP id a640c23a62f3a-ad536bca50dmr2020799366b.29.1747846269406; Wed, 21 May 2025 09:51:09 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d498b4bsm940451766b.148.2025.05.21.09.51.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 09:51:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id BA1615F8AD; Wed, 21 May 2025 17:42:51 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , Thomas Huth , Paolo Bonzini , Akihiko Odaki , John Snow , Fabiano Rosas , Peter Xu , =?utf-8?q?Ma?= =?utf-8?q?rc-Andr=C3=A9_Lureau?= , Alexandre Iooss , Markus Armbruster , David Hildenbrand , Laurent Vivier , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Peter Maydell , qemu-arm@nongnu.org, =?utf-8?q?Ph?= =?utf-8?q?ilippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Sriram Yagnaraman , Dmitry Osipenko , Gustavo Romero , "Michael S. Tsirkin" , Manos Pitsidianakis Subject: [PATCH v3 20/20] gdbstub: update aarch64-core.xml Date: Wed, 21 May 2025 17:42:50 +0100 Message-Id: <20250521164250.135776-21-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521164250.135776-1-alex.bennee@linaro.org> References: <20250521164250.135776-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::629; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x629.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 Update aarch64-core.xml to include field definitions for PSTATE, which in gdb is modelled in the cpsr (current program status register) pseudo-register, named after the actual cpsr register in armv7. Defining the fields layout of the register allows easy inspection of for example, the current exception level (EL): For example. Before booting a Linux guest, EL=2, but after booting and Ctrl-C'ing in gdb, we get EL=0: (gdb) info registers $cpsr cpsr 0x20402009 [ SP EL=2 BTYPE=0 PAN C ] (gdb) cont Continuing. ^C Thread 2 received signal SIGINT, Interrupt. 0x0000ffffaaff286c in ?? () (gdb) info registers $cpsr cpsr 0x20001000 [ EL=0 BTYPE=0 SSBS C ] The aarch64-core.xml has been updated to match exactly the version retrieved from upstream gdb, retrieved in 2025-05-19 from HEAD commit 9f4dc0b137c86f6ff2098cb1ab69442c69d6023d. Link: https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gdb/features/aarch64-core.xml;h=b8046510b9a085d30463d37b3ecc8d435f5fb7a4;hb=HEAD Signed-off-by: Manos Pitsidianakis Message-Id: <20250519-gdbstub-aarch64-pstate-xml-v1-1-b4dbe87fe7c6@linaro.org> [AJB: expanded upstream link] Signed-off-by: Alex Bennée --- gdb-xml/aarch64-core.xml | 52 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/gdb-xml/aarch64-core.xml b/gdb-xml/aarch64-core.xml index e1e9dc3f91..b8046510b9 100644 --- a/gdb-xml/aarch64-core.xml +++ b/gdb-xml/aarch64-core.xml @@ -1,5 +1,5 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +