From patchwork Tue Jun 3 11:01: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: 893858 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp238823wra; Tue, 3 Jun 2025 04:05:55 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWLjeqL/1ZdDsPb8vodwRtO5OBR5SeS59Lu5ztKdm/c+hgdZT1C89NniOVxKZNB+uzdvwDI0A==@linaro.org X-Google-Smtp-Source: AGHT+IHD6LtEeyhFBGd5K7BwYFNIzoAfOd6Fi2x7tQI1ZbcOvuaRgYjDI4AduIeJJtFlp7DIBIc0 X-Received: by 2002:a05:6122:168e:b0:530:6dc2:ba90 with SMTP id 71dfb90a1353d-530936886f5mr8939966e0c.2.1748948754983; Tue, 03 Jun 2025 04:05:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948754; cv=none; d=google.com; s=arc-20240605; b=kKlCfLM4xbh9Itk4PNcVoxC/D4FN/Hb3Et1NN+W6B1LQQNl+3wb4c5o3zVIMsvbeUg Gc8InNg1qgsK/o3ChgFyAe4lvwm3lSjsnVwjl9Hf+s8Z8tDkMrH2zThDhzzXGQxRjtaa BtkpZjC2i1hLysyQT79FRhF10KNM/Cjc97MiHSuSIIl5fhw80sxbPo9RsIqufQdeRrCr 8io6JsxRCmeGt0iUIyDEVoeHGQ9swUn3T8PwmBxg5A+PdvRr5b+2+tkOmHepC/4iO7BQ 2NM/Ql7l8PCmjFxLqqTYTydcLxicvxluNn8Y1Gba69fci37wZamgFFYL7v9UsX2U04D0 iorQ== 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=qDImHvyM+O+Vef4oVOgEwt3nOLQwPNOaNlg1VossPhA=; fh=FeRN/VlT8nZO9je/Eo+cW7q2digEBCbI6cdF04U10h0=; b=emicpuzG9Z3SkO+qoL0y1l/dk2/JdHQqvXdZ9Ea7Y4FP5v2W0i1VYsE6vxepY1ZONC xJfcaHy9EJuNUI/FjGqPAxswvyFXoUXBaKOmbLtC4o1YXHi7mt6necCSBJoLThgzo79d 1DGIlBEAupY3z0h0PBnK8E31DLanN/NEwxNBHn7vJTvctzB7rKCy3cR0jT2prjA1l99D dB/d7mtQa0tReL7LBxlkj6RWMgx8n+7aL/BSNu4VbOg/a6GUYJQJgtjEZWx3txrH0kz4 kyk7oYRzU2lhcA51QZonyTncdO+RW4BDHZIKBg9kWGUJVnf88VwLD4P+uAzbn/36Rlkx 0IFg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=pH8nznyr; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 71dfb90a1353d-53074bf55efsi3740972e0c.264.2025.06.03.04.05.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:05:54 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=pH8nznyr; 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 1uMPPR-000856-EW; Tue, 03 Jun 2025 07:02: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 1uMPPI-0007vb-SO for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:13 -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 1uMPPE-00029s-EU for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:12 -0400 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-ad89c32a7b5so885354966b.2 for ; Tue, 03 Jun 2025 04:02:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948527; x=1749553327; 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=qDImHvyM+O+Vef4oVOgEwt3nOLQwPNOaNlg1VossPhA=; b=pH8nznyrVJVTvxoNLVCEr0IuuIpgGkah2f7cE2eIxWU371kJnMlIOp4rruVvg6TBGe yIV01mvuDRVnh6c1o/wY2PTe1OCtvfU2Q9hNHL0Ywh1gEaWpnSo3T52EeHZu+QNvyk5G WgzJ1SzzBVQK46yUugfr8FuLL5cz8lTcW0mHmdaBfJ1bjKCJYMtVeb/r9hocLGJoJYjb gqgRkqrXUvWfBuYSdmxQAxIusYtSeL6ef2iq81LZyhrEqI4LeUL8djbXtEJDu5yRva6y Ui7FCpWADlq+kNXtMkimRKF/QST53TMzsTwdw+9eWH6KWrI61xbDBp4f5TMYDvEeUyaE 0TvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948527; x=1749553327; 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=qDImHvyM+O+Vef4oVOgEwt3nOLQwPNOaNlg1VossPhA=; b=RxWk7smWur+4QU/mNHE74tw4yUWAc9P2dMeg6lGcDEXhXCqEqXCZVAMdjT7r/0GUzN 9dN1wz60AkDvpFzWGi7cSiU5n1q3Wh6npDlz1Nbv3lFvGIUktct5pJQ+WUQsWZf4pYoO z8n2Mf6GlU8Jfos0gBc8KtOq1julf4zbhT1gvWqzQ0wC4L6TK2iFcBsd+QHZkvMmfUH7 VEV6660FIBp2SChKafAqhiFQg2O+57pYoov27jsv5hQ4fpIUX23q2EFSvjtq99379MJz +ANlXHnF/pLFeV9g2yelfYT7yL6sFqfaDHY44EiEucD1g1PqTJ2v5/VGR0JjpsX2iwat QEGQ== X-Gm-Message-State: AOJu0YxdOOUAVItFBM986sBuA7FL5bTOIphw+ipHoi/kvhfKIf7kju5S RF27s3uGbHWPC1Lx4AbTPSu65kssMJGeu2/u5oya+LlcnXS0C2bIfJvbK2FD/nweUQ8= X-Gm-Gg: ASbGnctGlgB8CmzIH/W2BPFyYPNJ9VxSgByPX+gTUR2yXE/dhnCxVHZwcHCrPXmE1fj ZnCOHf2DSxb+XEEervykDe8YZFRk6Jitua2jLIbXe7qPaudDyxodpbHHvV7/aHBsxyRsPvn/DHe 1oybfQ1oZWVNwKn2FywrFGB5X81p9hm6nNkdrrHwcA2MA15h2sMhYpp1SAwADmqkqAaJMvHnXgR qDPIHBh0+gJG9m2F2cIMgYZeo/JyvnR/SX236YgRittD7Ca0xi0nKVpVc3dMVdV3WpgSrGXwtFb 5mTiKy8dEgv2HQDuLgM598ik4mwLA96FAfFYx9gNyF4ITG8Hfg1c X-Received: by 2002:a17:907:d7c2:b0:ad8:8efe:31fa with SMTP id a640c23a62f3a-adb32599e63mr1653947966b.58.1748948526429; Tue, 03 Jun 2025 04:02:06 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adb35af4456sm733280266b.182.2025.06.03.04.02.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:05 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id EC66B5F9CC; Tue, 03 Jun 2025 12:02:04 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour Subject: [PATCH v4 01/17] tests/docker: expose $HOME/.cache/qemu as docker volume Date: Tue, 3 Jun 2025 12:01:48 +0100 Message-ID: <20250603110204.838117-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-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 If you want to run functional tests we should share .cache/qemu so we don't force containers to continually re-download images. We also move ccache to use this shared area. Signed-off-by: Alex Bennée Reviewed-by: Thomas Huth --- v3 - mention ccache v2 - Share a whole .cache/qemu path. --- tests/docker/Makefile.include | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index fa1cbb6726..3959d8a028 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -185,8 +185,10 @@ docker: docker-help: docker +# Where QEMU caches build artefacts +DOCKER_QEMU_CACHE_DIR := $$HOME/.cache/qemu # Use a global constant ccache directory to speed up repetitive builds -DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache +DOCKER_QEMU_CCACHE_DIR := DOCKER_QEMU_CACHE_DIR/docker-ccache # This rule if for directly running against an arbitrary docker target. # It is called by the expanded docker targets (e.g. make @@ -195,7 +197,7 @@ DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache # For example: make docker-run TEST="test-quick" IMAGE="debian:arm64" EXECUTABLE=./aarch64-linux-user/qemu-aarch64 # docker-run: docker-qemu-src - @mkdir -p "$(DOCKER_CCACHE_DIR)" + @mkdir -p "$(DOCKER_QEMU_CCACHE_DIR)" @if test -z "$(IMAGE)" || test -z "$(TEST)"; \ then echo "Invalid target $(IMAGE)/$(TEST)"; exit 1; \ fi @@ -222,8 +224,8 @@ docker-run: docker-qemu-src -e V=$V -e J=$J -e DEBUG=$(DEBUG) \ -e SHOW_ENV=$(SHOW_ENV) \ $(if $(NOUSER),, \ - -e CCACHE_DIR=/var/tmp/ccache \ - -v $(DOCKER_CCACHE_DIR):/var/tmp/ccache:z \ + -v $(DOCKER_QEMU_CACHE_DIR):$(DOCKER_QEMU_CACHE_DIR) \ + -e CCACHE_DIR=$(DOCKER_QEMU_CCACHE_DIR) \ ) \ -v $$(readlink -e $(DOCKER_SRC_COPY)):/var/tmp/qemu:z$(COMMA)ro \ $(IMAGE) \ From patchwork Tue Jun 3 11:01: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: 893855 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp238573wra; Tue, 3 Jun 2025 04:05:21 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUOgK/rVNfW/5QqsoQjwy4lDok6oMG1u6H1wBO6HQ5MqUWnN6uTOzcaJeGDaQxZWTlAIqePQw==@linaro.org X-Google-Smtp-Source: AGHT+IFLsjo+ci8DMs+iUbI0SLV1SVpZV8Zti280kTjMp9Qi7EUYCmU7xfEewu2yqC8mQm16iqt7 X-Received: by 2002:a05:6214:2461:b0:6fa:ce87:230c with SMTP id 6a1803df08f44-6fad913ac01mr228077476d6.25.1748948720991; Tue, 03 Jun 2025 04:05:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948720; cv=none; d=google.com; s=arc-20240605; b=Y3KsRN3k7uDNCJENGEK8TkzZcJnw6Q4bkfC+ELOWRNO/1yWx6pWHaSP3TOcZCWfVz4 9J3g76x0wxD0S/Q+gC0XrBGbEkB9iY5fp23QW6SmaCgtS4+zORLn+jk19y/xFM0CIwrV 0v30pKAw6uXJcljNnUdPUWL8MkMCczogdHIZ7BhITCB2+VU8xN+PyXf/eFTq90EtpRFM iVd/63BEU2wL/WRn1kWrxUTeWHxL9b6vaHQCvoAW4wH8Gwwtwvm6fM3moQYS8LHfZbNb mWtwBxcsf3ad/fTqpowDfJile5wSf9INSz6cPvylo7q9HJYx8K4tfmNa6GjGoIjrU3Ys W/kA== 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=iZTP38b1AWptwD4sVw7xjWUpbGhEyHUBDnJO6tIxuSQ=; fh=FeRN/VlT8nZO9je/Eo+cW7q2digEBCbI6cdF04U10h0=; b=TasWBPFu2TBQelVxORx4f56FrPndihd7Ph/YVATjhjdkCWmTZNbh1XWiqMF4U4jhug 7tLyhPWz5LAvSv/JWtd3PSevc87lEJFWudjl5fFchVuZ2cH6K/Py9Xgh5PrXaGyVKb1q 6h+DgSZMUmPlJUx9UytXHBHYxRffSz26P/7AnZskvgqe7+PerNAsQimKWUnIa+tNtfbD rlydPoBPv4rA+zRRn1BxJjbWcawYNX948y2BeH8QSuYdtuipD41Y8k8NSlhPier2nEiH sItWdKIbkibrVhC6P7TD0q/2xMAhmf7hlhsKygevfgdHOIHbRfchEcqTarYa2cWpNBzb BOOw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=pLxV3GQp; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 71dfb90a1353d-53074ab0e1fsi3944885e0c.60.2025.06.03.04.05.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:05:20 -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=pLxV3GQp; 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 1uMPPO-00083C-RM; Tue, 03 Jun 2025 07:02: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 1uMPPH-0007vV-OI for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:13 -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 1uMPPE-00029y-J6 for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:11 -0400 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-604e2a2f200so10600476a12.1 for ; Tue, 03 Jun 2025 04:02:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948527; x=1749553327; 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=iZTP38b1AWptwD4sVw7xjWUpbGhEyHUBDnJO6tIxuSQ=; b=pLxV3GQpROR9w4qIiw/0C6OfnH16FSmKk2LQZQKMQyXjp75gGLluB8j+hoaA+Cu0AX 6Z3oVYg5+vyVmuK54C5/TuOUr6A1AQZ6TX7rxyk/CjXKDYYFKzDf1IdQ1hHmRGzjiIpo lEoMcPaQLQ9J78a2Eva5ZoECWzT9Qz50dMmsW86x/IBwwd06ooYBSaXvkrFb+ahSrYNB AAM1YA/ZWyaGIcDhu9BgIDrHqcBcxOYoihYOmZ4/MmVSh5PJUBF6lTJKE48mAEGVKfiS wqHk9/qTEYqk93Xpdzb8FLH4y9GObkwaX9LeJ86pcsVZhti++Fwf54b5WUpLxXJFCYuJ uHyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948527; x=1749553327; 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=iZTP38b1AWptwD4sVw7xjWUpbGhEyHUBDnJO6tIxuSQ=; b=qjUz4CiNdhgLHjK4oxWJUPDrU0f9y2nXK3+KH6xwkHRBee49myHFutHanj0Osie+Rc ys3OzWt14qbzE11LQNeCb0FXjGevrXKkTmdR95Pn1tMnck8Cyc+IoArp5/Q0XX21MEZM khfONe8yRaKfkA6qs0ylcIHkh+MixCATxfRTHPNvxD1ks6+9MeI18RGgH77r1Y2z6i3g YjfNLdFyRVFcUpHw6EX5F2JkF0gtg9HBrfw5LAWLMH703AWu7q7WIv1KeG9KkGQVBD3Z hoB5z6cjl9wkeXSHusDIDNCE0VVp4ZnbkoI+lSB67yXdhF/DKThAz2QYeIgT+cSnBdWl 5VKw== X-Gm-Message-State: AOJu0YyCk+GYogDUiJnOHj9iTglHFX5nAjSA0GQZHLBpcTpRra5KqBt5 x9rCqPpTegD4JdCUTI7eF1ttWxEpZWHYfehaSjLCYRnr+mOk0DuM9FuMbG3nVdhQo4Q= X-Gm-Gg: ASbGncvA2ArShqOnsyqbDVZ3zHvykQawtM1wInQiS2YWDbk8Oqx10vbE8iSbXGGS0RF SyB9Tav6UR/WfLh0SP0Msfxu/hpX6qv3qjyixIG0GGsx0MlgzGQL14KhT1FMexJwoMuDGodFMti QwapeiVGxtmqWLdHEvnjkVQmUgll6JdOuVaMVjLoc/0P11+x6y+3S1fZW5jcPwxkV5XesPbs8l2 ixLzJagR1XVrs2S1y7tO9VgUZatAMm5h7RMUF5MYch60k6rVEgeWl/jvq0Q1vRch9Poc46sqqFn rg06UZINlrD7yY4BwsDmWDmtu29wWbYBKrQ04ouHcL+Xq48ejdXCLwo+/pF3Xlo= X-Received: by 2002:a05:6402:5205:b0:604:abcd:b176 with SMTP id 4fb4d7f45d1cf-605b793e26emr11879813a12.25.1748948526720; Tue, 03 Jun 2025 04:02:06 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-606b128c0acsm826516a12.1.2025.06.03.04.02.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:05 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 0F9D85F9CD; Tue, 03 Jun 2025 12:02:05 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour Subject: [PATCH v4 02/17] gitlab: disable debug info on CI builds Date: Tue, 3 Jun 2025 12:01:49 +0100 Message-ID: <20250603110204.838117-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-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 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 Tue Jun 3 11:01: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: 893867 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp239253wra; Tue, 3 Jun 2025 04:06:50 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV2Rufd35yjsGHjX6mzSLZSZJZOdcMiwZq9pHFVWxEYQSuV/lRzkQbmT+L1xObq1nDTMMC/TA==@linaro.org X-Google-Smtp-Source: AGHT+IGUjgxGaqiULDMOa2VdpsqFlsuDiB5sbvfytk5g2N8iDsHJlJo5zjmFFwcrAF9KBGZh7Mii X-Received: by 2002:a05:6122:1d0c:b0:520:af9c:c058 with SMTP id 71dfb90a1353d-53080fb1937mr13877028e0c.5.1748948810137; Tue, 03 Jun 2025 04:06:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948810; cv=none; d=google.com; s=arc-20240605; b=DIV0RO0QDPAqSDSC96UGfAVhdQWqtGrmzt6R+AFWMaNVL8NPc+GjFX3y3Tng6xMMsf s3chdxxdQ6/TcdEYksN0ADSv3hzxzTZBtOmoRrWSGYiaVeSwI6NQ1gaF2tB5M4EAn4r6 bwdJjs2ZMorIgY+YHIWc6GgimVwgCBkyPYQ19YOqZJOZ61L9O6dvb3D93qaX2y9+7ESM PwRkrf8fkv7D6DHxe77kQitZKrOIAX7XKuPpwKtPMRSv8y6P3seYgLmexjpZBHF//iEH SXN+AGz/0+A+SI6BZWAsyym0QYQ8+MdsCeo22A656DMVDiLdGuL8IMshkDQ6rics1f4/ ZzNw== 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=pPb8RRj9ZOs+lc3c2fT/refPNPIMxJmufi2jgYHy/Zg=; fh=7/z8AFKyNnLWrE8pqx0m42BgT1veXSoTawGinzQSkXo=; b=OIIOwfiHtWM6t3SDHxB+ERe4yYvwAtiF0R23+Qm7cGwSPQJiZp4YFiV8wUl8suDHEn f4PQSntURxMlrmSy41RvMifsskOnFXR5CNCKNTZvL79p+eHKXeYTPaUpZVWU9ZFeXoAs br+UYLaB8s5WTAbObs+erhetPgHDRK9Uz4gZ9MR3Xqfr+3Nmd/m+FzVtCaUC6MIwrzSK GivsfRF/TZHvIkXhi6XbbCYd4H3HKLXSGRaifG1hqb7Z9XykkiLk56hM/XkI+d6PBF0w hwwZxKKMbT9zOOnEN5elBsbr0fxou8ZmcxX823SKCirTI9s6TxHBE5A6K2Q1e0pckypU 3Q6w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=G3xf6FDE; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 71dfb90a1353d-53074ba60b7si3937446e0c.163.2025.06.03.04.06.49 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:06:50 -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=G3xf6FDE; 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 1uMPPN-00081L-Gg; Tue, 03 Jun 2025 07:02:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMPPJ-0007ve-Hr for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:13 -0400 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMPPE-0002A3-RF for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:13 -0400 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-ad8826c05f2so970928866b.3 for ; Tue, 03 Jun 2025 04:02:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948527; x=1749553327; 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=pPb8RRj9ZOs+lc3c2fT/refPNPIMxJmufi2jgYHy/Zg=; b=G3xf6FDE2ISkvYXC6INDHxs95mEBkDqcKTqcOGe3JJnl2mNWnAZ0Iw7UXPmLNZNDhz nqs0KLhD3aYVfETSRQUwDs4hXKx3brko6iOj4azX51U8rzqwa93w8Ef09bcRhRS/hiHm Owo3iP4Trl5slDrDx9TX0U/DIzuqx+q4s3tUrhM9CJDu/PpMef6czSI4OLrdQsluDzoU qfzxFOsitrVfHKTiZrMp+EgGxFQ3r0PRNEI6k+SPFfvMgsYeVWnnHi0kIsmpklprfDLo Vf6f8m12FKQZpJTut91hCmlDZpfFXGrFtVVKcIeNVk50ZoruV34cg60HFlI4VJcqUcxT mJ9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948527; x=1749553327; 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=pPb8RRj9ZOs+lc3c2fT/refPNPIMxJmufi2jgYHy/Zg=; b=gsiWz+4q8dREZTz3fxj8+KF/7BDIjjxEx3xdlmvEvGPS6FvbET67nE+q2yPe6LjR74 lu+nl3L3brH1psEW6HJYtgt1ZHf/quNdorYRm5anElQ/wx/PSd7TvX7dMMRXQiCbX7Uj Vu2AIty6en3YVPSNOAjffnW5nR06W93Z1Eb8ZIX56yp5VsD6R23qkmCoXVI9+K6ARqDO t/YZ3z2mmZGYvIrfH3f3Rj2vejcPSRfomktdbhJmJUpgjWHrV5HYI5Lo8r9cMRKiEDfa 7GSD5z5+34S5p/ZeHEQ81/MpXurmoU40H90LnVOZ24oudMrEiR+a735rYT3khOP42XXH FpWA== X-Gm-Message-State: AOJu0YzQSRAKp6eDdAi1csQ4AqBY0mIJHi2dJOQeROrkh3LetFxRcL1G uF0QqU1H/ww4L/wSojrHdFO/LuP0gYC7njdbdIOVF6HA9vwBZ18v3KXUp3VvZNVU5Us= X-Gm-Gg: ASbGnct7zDxNDtFdMMRhtb+Ufpolga2O7tlQgNodNaEXZTethYrlhCJIYMvAu2ebGZ+ y8HShEz+hCI5s6AAE6x/Hr1Y0RAMwogQymFudkWNs22R1F4hElxs94UJJlLi03qa46pGJdwI1xe kTaxWvH/Pi5IdoIbheUx2J8M5lApEDECdeMOLxxWNXAb/unCK5SCg4WF/jT+/8chR+Ne609oPUY Bj3B4anX5mY2t73GrgMMfll5yUUflBF6ubtmeA0madQQc+nHQ68/e0pYfCrXF+wNqakDlLqUNNE kFRbGRkpM6H8jMmEhEfsmApHdYa6apkmpOkxp+QJkLDYwA598usovXCoiNbEDCs= X-Received: by 2002:a17:907:97c9:b0:acb:b267:436b with SMTP id a640c23a62f3a-adb36b4af87mr1558526566b.25.1748948527059; Tue, 03 Jun 2025 04:02:07 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adb390f09d7sm698366866b.148.2025.06.03.04.02.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:06 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 2A4D15F9CE; Tue, 03 Jun 2025 12:02:05 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Julian Armistead , Jim MacArthur Subject: [PATCH v4 03/17] tests/tcg: make aarch64 boot.S handle different starting modes Date: Tue, 3 Jun 2025 12:01:50 +0100 Message-ID: <20250603110204.838117-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::636; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x636.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 --- v4 - drop post eret nops - proper error string for EL0 error case - clamp any invalid target EL value to 1 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 | 172 +++++++++++++++++++++- 2 files changed, 169 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..8bfa4e4efc 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,172 @@ 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" +.unexp_el0: + .string "Started in invalid EL.\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 */ + adr x1, .unexp_el0 + b exit_msg + +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 + +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 + + /* + * 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 +252,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 +350,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 +386,11 @@ __sys_outc: ret .data + + .align 8 +cmdline: + .space 128, 0 + .align 12 /* Translation table @@ -246,6 +404,10 @@ ttb_stage2: .space 4096, 0 .align 12 +system_stack: + .space 4096, 0 +system_stack_end: + stack: .space 65536, 0 stack_end: From patchwork Tue Jun 3 11:01:51 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: 893863 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp239011wra; Tue, 3 Jun 2025 04:06:21 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXcFH+usQhaoUFf3rn1WdQxOnKkDqTC3MnQMvwWfPt+9MzrmtOxGt2Nk4ur41bNkX8tIZPnNg==@linaro.org X-Google-Smtp-Source: AGHT+IEu7nCquHUXcpPaJX7zTzRts6H7x8XQtke0VheebLRb4cuAlxnHI4BhcDf2KZXYHUKiTmbW X-Received: by 2002:a05:6214:c48:b0:6f5:117c:76cf with SMTP id 6a1803df08f44-6facec2109emr263099266d6.40.1748948770975; Tue, 03 Jun 2025 04:06:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948770; cv=none; d=google.com; s=arc-20240605; b=b2i3prZxoLTpOXmgKvAsiRTD5sEJ19lM2Y3fc+hnWUoBYlmpdkvpUXOXyc0QwGw6vK MatS4Zbafgp3DHxClK3ghNILb9PqpDVhzNpM2Vy3rk0uvMCuO3zM4RyW/2sCEzmyWJ3L UaRvVu8w9/QJR/nzYownHxIz8vN4/+Q9CxmrLrUhh8IBl6w1nfjgCHJ/NFOaipNwvp0y U9umGaImq3jM8HuPJFn5jNmFBAzbCwh1nHYeF9X1XESWTuxfE+0ogvC8DKcn+BdhAOWA Mda9fQ1kZCelVHDR2UMHUCwX2yURDEPS4IXig7wNUkfDAB73trwkr7hWzORq2tomISWA ai6A== 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=9w35SL38CEz4mwyf3n+L8B+bqiImcbrsN6OkNuFmyxY=; fh=oM9L0Myn+JXBMq5+s2bvn3+gYuVEXj7CnlZBXhL4xrs=; b=gtwvWpojLiVBVSAQGWbmAnHQi4jVjKUt09r+au7rOQ2Xa1VQexmcgkY262aII2BqN2 PAHKlB+5HsBaHDEqOw6Kb7C/6sJzNY03SAzpHpQffmxE5W0QJD+GKSBrIPTREP1wttZB HAjlA4t5oFXnu05CkGhW3MaejqO8ZGoQn7AO0Fc5XgtTqplKmUoeITKWtJLI2y88iS+b +UGmaOXCcUCR+SfGCCv5o3ZXgTJG0/ZxPy3BvfjuyFDcPIfwJmMe7TQSx+za74dxuHYn +qym9/XJ7S5l48NwGcuIhYxoeiIHPAIJD2wZWCwghfzCAxbBDEKuAbM7K8w3WPlrC2LC BbKg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Heh5sHAs; 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-6fac6ec81d9si121655536d6.410.2025.06.03.04.06.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:06:10 -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=Heh5sHAs; 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 1uMPPR-000851-Dz; Tue, 03 Jun 2025 07:02: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 1uMPPJ-0007vc-7c for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:13 -0400 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMPPG-0002AO-BL for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:12 -0400 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-60477f1a044so9281247a12.0 for ; Tue, 03 Jun 2025 04:02:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948529; x=1749553329; 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=9w35SL38CEz4mwyf3n+L8B+bqiImcbrsN6OkNuFmyxY=; b=Heh5sHAsFcalKjNZHPZrLqNMeiV7YqLqLvI034ne+rwP6i5Jek7gwN+XZ4O+FrcGuJ FMnD4hBkoK89y5NUF3Ile6UPpJSXlfvX+dBtUBz9TXJ/X7SHYa4XfKtmtvqbbeUBYIdj s+0WtHn9QLSwvo+ANpsy8EAP+cTcfytjY0I/GnajgbXOjRuObJNwkO2y+4GYS0yp9p0Q Ncjn4luTyUdRAQ1RJR8+hUGDVecy0BfX7LqnbebXReE1OcKyzlgQEzZhRXH4Z8WXHXfe zAsRkn4h/svNclA0BJ7AoS/SZ6o166HfBBIzaWftNzJnVhGfGlYoA6aAupxZAYlDGxGO oTsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948529; x=1749553329; 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=9w35SL38CEz4mwyf3n+L8B+bqiImcbrsN6OkNuFmyxY=; b=nU3BOZIJSxcFh0rPcxD19JUYyjUB1rVz/qXXSjil32JEC/XEef9LYWQzZI8kzwYRYp wNnvg5brAE2hSQnpVdjzzx230DVAOjdCSeYrPyZz1iKD1GgzXEIc2glYoA4zvqEMgDar BnTMzpQN+RZQT2tUg0h/7TcCVITw+KNMUkkBkd35f/nkyIULV4JHqEhY8fmEApvd2smM 02nKXR/gBB+9IurKT1wxvPg9y+DkYSt3kDCNlAlHq3GDdvYf6GbuSgbSfHo1cTYE0WKo W6+zpmpkNQY05LZABUDn6q/2ZJD9Y6o20B/YrhfYWCEqqWX1ZOYGA7bVRCFKU9HTFbAK XbPQ== X-Gm-Message-State: AOJu0YxOzwJiXGZGo6C7Lw9rBBEwJtFqry0fDgXxuA3bK5j218jzDo7l +FDbHlsn5wOGczLBwAED69LFJzj/zZRo0Ggr3ehAuBanqzz3TIBSDy3nkm8EqyfRTzE= X-Gm-Gg: ASbGncth3i5PWN7t/448+FcBmQhUjgTu+CdQk0Rn8KKFPh/A8ciFQzvraBdpf7ygtZc QgC4mfdgQNviPRCqTBJHy9v+M3w5kqNYe7Ei0hvVdsiTJdLl5Oe8abpzoOYX/3RywWcb19LJ7Fc etCtTlJf8R9OV4DU0YkE2HQ87HwZcJeXSlF/puT11ZNDyb+RNOHW/Vkqb2blBcRT5gyypQ+7Bkp AVKfx+cYKBd1ytEM+FjVHaBcK0/7jj6NmhFCFw/0PcgU42NJjQd5IdUtt6GrntHuRsfr5HS5YsV FGpXJdw+9E0g8L7E+jrXSV3SjtEoU003T1VzB6BgNtLwAc2zRwBS X-Received: by 2002:a17:907:6092:b0:ad9:982f:9206 with SMTP id a640c23a62f3a-adb49606242mr1105047766b.61.1748948528529; Tue, 03 Jun 2025 04:02:08 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5d84f389sm925857166b.82.2025.06.03.04.02.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:06 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 419AF5F9D1; Tue, 03 Jun 2025 12:02:05 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Nabih Estefan , Richard Henderson Subject: [PATCH v4 04/17] tests/qtest: Avoid unaligned access in IGB test Date: Tue, 3 Jun 2025 12:01:51 +0100 Message-ID: <20250603110204.838117-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::52b; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52b.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org 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 works 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 Reviewed-by: Philippe Mathieu-Daudé --- v3 - update commit title to Philippe's suggestion 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 Tue Jun 3 11:01:52 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: 893866 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp239100wra; Tue, 3 Jun 2025 04:06:33 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU0xqG6esFS7X3qM85OJsXuDGjKatu06R4F/aQ9fUEk3nEwwXMbxIhKFq18nX3/ZXxtbxMdaQ==@linaro.org X-Google-Smtp-Source: AGHT+IG3kVSO8BmDKc7xTEvEGfN3wgQvsymcXCqThUUfGFMsdj3ucsaApNvf1+ayvg2QNJIEBBfj X-Received: by 2002:a05:6102:2ad0:b0:4e5:a93b:1d76 with SMTP id ada2fe7eead31-4e6ece543c3mr11872299137.21.1748948793084; Tue, 03 Jun 2025 04:06:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948793; cv=none; d=google.com; s=arc-20240605; b=fcMTF8CrXDCPj1pmto5FU0UGHaHEyy5FZRVaCTetE7/bdWU5t5EuJ4Co8Ki3ECwUSG RCP4/AuVCyCoe8zTZ96V4SdrDlj9pkidDZPLnRxywRhNSEZMB9dHzQKVQrZNM/ItTWHk y3EyOwgo6Tvou5k9/MVuezmfOU8587/jm9ggHF5aVHLMUCfBBoVWR57ELWK3t8wJ+bfw 1SiaZKNSUudxa12iqBR9QjQECpApyiK4ySFr3Sl5lpa7vB+I8yGWyG+fmI6kRIrntfKE yYxXmHJKowZv8aJ87v/a5PPZCt9/XLzbJn0vE9dCzewZAUOJg23MqrHt4OFp3GrpSFIl QmdA== 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=08HuXk3jkIVLfkToiAYT1EQvKRHMi0bIkqfvgQp9dJ8=; fh=FeRN/VlT8nZO9je/Eo+cW7q2digEBCbI6cdF04U10h0=; b=ETthTQBw7ssyHAFjCW295fyPDOiDfLxwLZepOlSl7krckXT4yfQYMmxmm7o1mT7mIG QprrBJQFBuFEZo0U+1bWqVlIRQaQQnMhvgoXOK5KqOyDb1ZdBRv67vRNiL66XvCZanpo bVCPB/M/EHnxIsUcCJuQaJsi7gf523WN8vCJiTDy8Tzx7gcmjjBm3C0yoPDaAYt8/yop on9P1sDMbS4eXZIs8Ll+ePqhUbFX8M5YywZCvD6gTnCNru5dwZnpbW00ndJNQ54S5TK+ z8jP404RUAg0uZDf0ukiCR1U1+RUGG/6gqAK/WhMdGg1wC1SjhAqCpJMLTGvlQ2j59gI BrnA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OuuHSUie; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ada2fe7eead31-4e644421860si3756308137.5.2025.06.03.04.06.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:06:33 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OuuHSUie; 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 1uMPPV-00088v-6c; Tue, 03 Jun 2025 07:02:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMPPK-0007xF-OL for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:15 -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 1uMPPH-0002Aj-9M for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:14 -0400 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-ad56829fabdso845095566b.1 for ; Tue, 03 Jun 2025 04:02:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948529; x=1749553329; 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=08HuXk3jkIVLfkToiAYT1EQvKRHMi0bIkqfvgQp9dJ8=; b=OuuHSUieAI+1UZLrI6rJPpcp5e60lrMGMlAbBzZgJuMjNEENP/gRBiaWRSrXv+Y70t XZ4pUKnXr/Y2Gg3cogY+uaKEyFQVKFTIYY6JaUZFBOHj7XHamqqqDT8s4JBlWgnuclg5 YUrMEffieZHOashrIrW6d5yvL3xMukFRN9Nn7nEvgprFcaT9t0o3quc3aPi2xFLfhqjO qIpMYzNihB5TQDLvgQWbUShWzLuA604iryXHOSNMETe5PQndy3l/BnfijqmaUlpVAkZL olnXkY+YamXs9aGShGPpJUNOyas5bEBWxxgduorBXbKQf01jd/MFNK9Cnl5gMim3EXCQ I4AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948529; x=1749553329; 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=08HuXk3jkIVLfkToiAYT1EQvKRHMi0bIkqfvgQp9dJ8=; b=wb/rRNkjv7kWsqTRBDuZFzT1YEIxAKi9XCHydGQUx3JTHjtadzbmGBrD6qk9h1m6Hb 2uegMnBBr0vGlf7OT1x/4xaD1YLlSPvN1IYwHpYRqW7vWH6M+4Qp7aslzK/8SAOKHC97 un6umpdMmqGeGITLlu5lRxPp+D43MHczCXy1q3rzBYGL2KUdv44yIxxIveis40XKoTjC 3+VLqU8b3g33b0fEJd3Z7FoqaCLFhOrqjJZBrm9pXOV5mdbzJYTcLVoFYonwDDt0KS5L eWbme33rJb9We6Y9Rd4m82chOdPvJvcOh806cPXhqRSWMYcxghHKTna7ts3frJzqnLxR ydaQ== X-Gm-Message-State: AOJu0YwTZu1y0O33chAOaZ5UX655BnPon7IFNfKrCiESDBc2/uPgjJEr AtU9Zk/hVxiIIer3aw6RU9JRhApN4OA+0BCpMkeqkQxK77keTuxZz6yPA3w8lFbAUtk= X-Gm-Gg: ASbGncvP5LGUcRI/Qqanpo80NcXtLLVhLjOTuplvZ0TnNPF6AqU8pq830eBeh66cAYV 85xq207qt3xP3L3I9sn6CTQiihXxLycnPgdnljAuh7Sr1YDpO7ayv2maZc/bN6mMRypNrmXwDLB kq4BRgtHx6048bkB5WnOtZ3NgCoVm0/v4/KoO/beUC29XQkaGDQbS+dRhAExv/2ahIzax94Mn3d atUJqwv6kTzf4/+xtrkdWgVA0HdPIgtfyKccfc+ywVfTXxEYU4JZXe8uycuOvWgAY66ctFWxMtL /gVxOTNBL95PiC5sVAoNEmilJiSCbDCmyyli7TKN4daU2EM2T9A4 X-Received: by 2002:a17:907:9488:b0:ad8:99e7:171 with SMTP id a640c23a62f3a-adb493e28f3mr1175212366b.21.1748948529161; Tue, 03 Jun 2025 04:02:09 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5d7fec86sm933025666b.7.2025.06.03.04.02.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 59A5B5F9D2; Tue, 03 Jun 2025 12:02:05 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour Subject: [PATCH v4 05/17] contrib/plugins: add a scaling factor to the ips arg Date: Tue, 3 Jun 2025 12:01:52 +0100 Message-ID: <20250603110204.838117-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-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 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 Tue Jun 3 11:01:53 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: 893853 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp237384wra; Tue, 3 Jun 2025 04:03:13 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXHF8ZMgOYE6Fe8FRnYcOi7d55Vth1O8DT8Tx8V89zcCyTdYCWEQxe0buFBrXIxa4kSHDle2Q==@linaro.org X-Google-Smtp-Source: AGHT+IE5PvEqObqWrFhQzXDMA7/Z/jNz4sKnprgZzUY6bCdNWNVB3sY1XuRgqaA9b24yiuwpKha0 X-Received: by 2002:a05:6102:158a:b0:4e6:d629:ed41 with SMTP id ada2fe7eead31-4e6ecbde888mr14091028137.0.1748948593495; Tue, 03 Jun 2025 04:03:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948593; cv=none; d=google.com; s=arc-20240605; b=hm1NxWN6X4s7nt5SKEM1Hnk2VMOiytJfuxwzN5RWdIy2f7f8ix8gLSUyBThd1Lfpmr OjuCeR0l2e+ic8bb9u988dhdpSjaJKnwYQYLHATDXm99/7jqR4/YInpiyJ53YdXpexkl xfbGD90CVKt0uyYHARHP5Jaqr3GnCwJvqZajHpjcqgFf/Dy/gEKFIuBwnTe3Ckx6zt1U IdvXW0xLwk0n9QDYMum3Htr7Jx6hCiEMK+y0HcsljAN3OpswkMcjIOmOplGkoacivKM8 6KfkbtKPVXDmrMRZxii13eATEDhQbEvqOpZAU2xygk/6cIQ7m0IgE0PYI9sFjaLkZbv4 bx4w== 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=HSHJXxc1UhfcVCxdzAUK0Y/TOr5iYPq2Hpx36H607ZU=; fh=FeRN/VlT8nZO9je/Eo+cW7q2digEBCbI6cdF04U10h0=; b=CeitWkaMmQm9t4LMRWNRiIBgJrLxH0XM3pd8l1AA6eVK7vWNlAalrX24rPNbhOPdYv T/gqtZ9Zwl0uBuxPfMiYeAiYhHBIzZwEcX77PV8J/Eep2qh0pFoLZ7/1688GmWkTuQJ3 M24D9yDIZOOHoiWI4MYTGalKtEv6RPbWnw4IX2R448YU9AQXXkwBTmT1E8yIHOTKccgD HgJY/+UBhOWLKuCnPI3iYYKb/aWSp2y/n1Fy6k4TGyzEsOQGkKNwzuCqCMFwVwBRU8Fp C3guzvPCf+LVTqZ32OHwV7w2+f9+2FZZaQOCCjkktL9JFryHnDfKSsI72DSZ5APPbkTZ y5jQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ga7fwdEJ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ada2fe7eead31-4e64ea571bcsi3601548137.529.2025.06.03.04.03.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:03:13 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ga7fwdEJ; 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 1uMPPS-00086B-Go; Tue, 03 Jun 2025 07:02: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 1uMPPL-0007xm-OW for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:15 -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 1uMPPH-0002As-Rz for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:15 -0400 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-ad56829fabdso845097566b.1 for ; Tue, 03 Jun 2025 04:02:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948530; x=1749553330; 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=HSHJXxc1UhfcVCxdzAUK0Y/TOr5iYPq2Hpx36H607ZU=; b=ga7fwdEJnRbs3Lu7Sng99OVV3gxLC3xh88cOr9Rk07Amc2yXS+zB151c1PnQdfAkCU /kjDTB2XTMX5iAYkPRXfv2MHjgsQDtIXRqd3JbTZgELxhZ8zJokzAjZ5Gg5q4rpAGC0A 7eM5GxVz6vDfdCZRHJAQyvfVqHywZpn+lNLO0kRSGXaquLMZ+M49ZdNLqxvWmFD/gsKh HpApt4+rPcDho64P6ALaCVGpZcLzWGqioqiSqIKXP1TJLD3v/WDa8U0lYg0kd9sNA521 ExkEgNpHyC3r5qGZmoDTB/iPrenNUTYCB0wivQEN1rN69qenZ2/gMwAd8MzT7IxDMqUo TPOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948530; x=1749553330; 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=HSHJXxc1UhfcVCxdzAUK0Y/TOr5iYPq2Hpx36H607ZU=; b=inpTxzKTdOFGirlZKRmxX6aSOZM5NjbAKhmy4kx10nboeA1RYyQ8o1FIRs1hH38TY+ iMU2kEm6FdgNKXKGAShAfP4Y2D4lYXKmGSm9Og9uCPLt0AcGBKnlYF/wdZpYrLPD3ZLk lYGqexJ9dsRc5Fi5WrAHlEmggHAYEpnEbtpaxLKCDdljbF9WDTFFkitoY0VDSGpXd+Me ko1WqVYXGBEpRNpo/5ujaiPyGwg3tzsKCn58ilrt8bSfPRs3GXldW6d8mAnrppcfI5aO wuHp0X1UmK/8h5erulFPpKaLMKes/8/VgOvqkgk/sHkoNJR8hw9wRBLLvYezSOuto7pm carw== X-Gm-Message-State: AOJu0Yx1FaBfRhZQt5r4bKOQhS3PdrXl+BM2Uygw0MTh6FWnfMkMLzjt cIOGEDIXQxf/ZNfE+DzVlkzeqBYolSoJMXbSLcSaGquQoa9+LgMSakhaLHFLrX453qU= X-Gm-Gg: ASbGncsRCwU7A0cQHCqC8RPTd4RdtxTBQpSz4fkWjSH/8kWPRMl0JcXCbzyWVS4GmB7 U97hDT1jOgbDB3/el/DcQqOCLuA4u/HO1aeGTy7EpeJj+v7sdOMNyBuiKl6VbZhnBVW4pQtFZhm HY/0yndjvWKeWZPIrXRGBCvvkQ3bSw6qvVtdk4L0BtsREVnXh9NydX9XeQnfRmOUrLd9sDDlEPP OkqT/zIzXohrJldwTScJtuHphk4A9FdeErr4O4R5BOdzWqt83AJhO0spE7Da4ZgJ87FMZerAMbo rcEegVIJ5/UsBsZyQCZBF4B15HOXzYPdFaEfDn+2TqRR+HOvBkz1 X-Received: by 2002:a17:906:dc8d:b0:ad2:3f1f:7974 with SMTP id a640c23a62f3a-adb493aba1dmr1213434366b.10.1748948530095; Tue, 03 Jun 2025 04:02:10 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5d82d95bsm948177666b.57.2025.06.03.04.02.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 720B85F9DA; Tue, 03 Jun 2025 12:02:05 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour Subject: [PATCH v4 06/17] contrib/plugins: allow setting of instructions per quantum Date: Tue, 3 Jun 2025 12:01:53 +0100 Message-ID: <20250603110204.838117-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-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 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 --- v4 - simplify error checking, don't bother with errno 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..c9948976f6 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) { + fprintf(stderr, "bad ipq value: %s\n", tokens[0]); + 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 Tue Jun 3 11:01:54 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: 893862 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp238953wra; Tue, 3 Jun 2025 04:06:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVuETm+KxInl5Zr0hf4+wuxg24R1XQb23YCR7/HJskZJFpddMjLXn9qJmgTBEUQ9+i2nsbjyw==@linaro.org X-Google-Smtp-Source: AGHT+IEYDusl/Hi7E8AmTLiRX2Hdu8Mp5ARdv6pXn1Bs4AFl8UZ9GhM3Nq+wnv5b5b9Gt8mWrLoK X-Received: by 2002:a05:6214:1d24:b0:6f5:4711:289b with SMTP id 6a1803df08f44-6fad915fd05mr190382946d6.38.1748948772557; Tue, 03 Jun 2025 04:06:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948772; cv=none; d=google.com; s=arc-20240605; b=SdZhdnUZ8IhvJkr1FobMHKmb9QFzYP7LptdC9D+WU+2IUPmp1ITnTVJ731keELdNLs BVn+OhfhycrXmBmMc/qadRPxN0/MQ69S+tso/yQWbq5HhfqZhUjk6g6I8R7BN+wMEdJ8 dcGVUVQ+AY2n8cJBbvFSIjh/oZhSzztX8d7t5PVp+WAX9tEvvjtoROWmLUkQxwZnRneq BXNnnggU4DL7qyHtwstF7u94pg2qdaz7laGUxU++Nc/m0BzJVpd8TqwuplS0HNYvR9l2 3Y2LqYT9Z8TfGZRofE4IScw8z6FJ2tQvjS+7zzUxNwFgcvDRyZQQ6cfVJZmzmZ4QCFhQ G7Rw== 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=LHjlw3RJVi6RLH6QmbsZL6K4pJM81iE3Xqr5dcHcjDQ=; fh=FeRN/VlT8nZO9je/Eo+cW7q2digEBCbI6cdF04U10h0=; b=X9/iDjQs4pxo2Jv2mgjb8yeR0mh3aZnH8r67eEzDrnMPrYcDSFgCKEPRMT5ieIiwf0 netvBwRBie2XySOwFuGoj661R2mtUWyK574YFP+4HHWzVxcBDIiQLxp/xSUr7s/VzP5t /VdIMwatnCeHT++tjk2CTg1BcLKJDxpgqlC+0ijjCNXwanQmgedYrieBnQlbI/3gw3K1 kkQdhIuxklA1XGTEpHX8tXV/KMu1Bb8nHoggofJDShiyWWC5hn+B90RTU5UBRjIFUBuG pSkjmUHkSXnzPR5v4N2QDPO6L5LjnNg6hoaTIknI7kcvxu4s9pbBoqguHhzqGQihybmA 5UgQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Ou4/uhG6"; 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-6fac6ec88e7si120839896d6.457.2025.06.03.04.06.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:06: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="Ou4/uhG6"; 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 1uMPPN-00080H-24; Tue, 03 Jun 2025 07:02:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMPPK-0007xD-No for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:15 -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 1uMPPH-0002Ao-Kz for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:14 -0400 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-ad69e4f2100so814618866b.2 for ; Tue, 03 Jun 2025 04:02:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948530; x=1749553330; 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=LHjlw3RJVi6RLH6QmbsZL6K4pJM81iE3Xqr5dcHcjDQ=; b=Ou4/uhG6tDMLPDNavJ6Raiq5f+Sxl1zvbCb2FWZ8kKrEmi11gryHMPKICuxhzth6Fr UnaYT/miSwstuNb0090J9RHB/Za3qofHKHZlmI0PZ8qt9oRvEPL4AO4u5I7u/zsBbkfr oVHUVCHrYtCBvgCrh02Hdyavn0dLv+DM16/qoKodFZkCRjOu2C7VtDN6l9Z3I5q2bdtb jJVrhHF5TExj0CSTOt6azk7BlFT3jYbopIwRcIrFuDnYWTDHoBzL4YIGsm8+tUdmn+2S MzsXJic2Raur6+YfsHLtfaIEd1GFylBgthL08HX/GVsvLU0JZh0irZQ3Iy/blU4sR4dx F4Lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948530; x=1749553330; 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=LHjlw3RJVi6RLH6QmbsZL6K4pJM81iE3Xqr5dcHcjDQ=; b=pHucJCBpexQK3PC+BeBM99h7tYiJWG3lI53kt05HuotV5fqMKNo4K6XF7StFmGzP1S bvEnkmM5TR9jhrDJ6zGYUS/ELKwh787wnBDtbUdz5DLSE4u+iXXagU5OEtZp3PEaAd7u 1BVs6xauN24CoEwL5S83CM+E0EDlG7C7Wk8jMVHQ+sXACN2If98MYgcM7xLBhwTWcWKD VbWUGk8nyr0VvWSLReQavNgNKALuvHAo+HLnJjUQUW56dlWEjMz2IfLRz4JA4OAwvRoL HCIW4urYXum8dbQ3/oY/ZKYsWb7s1aolT2oFEOmXVz497fulW8d0ipKcD0cqyeZybAvp g2+g== X-Gm-Message-State: AOJu0YyY4fBtvUuPyQezP53Q5MhEBOThkBx5PUU+05l+hrwT5U1/lF7R AMgoNtm81YaFkyYSIsFsAmL0m3KcVGVr/qeUn7erJogLZ9b/HnO+MlbwS5LfhbTedBg= X-Gm-Gg: ASbGncvpYkzpPW493m5hjt8DL7q83kBmjhqaWDUwcKeQlbgKZmE97BVUUvEyCjm/pvV zhOeTJOgFP0YGRXAwi98Gnltwcw6MabetYPdoTAwji9UC/BJhu05KXiDG0PBfr+KIVO4oIRZzvh tKR/kcL+8TMrOplpBtZMXuMueoobepaPxbBfcLDcy0nwnxSjq39za0RqWnJ2OQ5eIA2DkqBLpzR NceJZYDB8MXPesccrUkvFXQnPF4XubB5DK//axbWn9zgJTaMTPBG6A0gClSFS/C+/pxV1Nzx6BO EjC5OCLQvLdm8VD/5Jc5j/kTcgE+JPw/tIrWr+6F27QvTuN4RC69CImH2ZeyIp8= X-Received: by 2002:a17:907:724f:b0:ad5:27f5:7183 with SMTP id a640c23a62f3a-adb36bf19dcmr1330424166b.39.1748948529797; Tue, 03 Jun 2025 04:02:09 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5d84e76csm926436966b.86.2025.06.03.04.02.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 895C15F9DD; Tue, 03 Jun 2025 12:02:05 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour Subject: [PATCH v4 07/17] MAINTAINERS: add myself to virtio-gpu for Odd Fixes Date: Tue, 3 Jun 2025 12:01:54 +0100 Message-ID: <20250603110204.838117-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-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 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. Reviewed-by: Markus Armbruster Signed-off-by: Alex Bennée --- v2 - s/M:/S:/ for the maintainer entry --- MAINTAINERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 16af37986a..7718199979 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2668,7 +2668,8 @@ F: hw/display/ramfb*.c F: include/hw/display/ramfb.h virtio-gpu -S: Orphan +M: Alex Bennée +S: Odd Fixes F: hw/display/virtio-gpu* F: hw/display/virtio-vga.* F: include/hw/virtio/virtio-gpu.h From patchwork Tue Jun 3 11:01:55 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: 893861 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp238911wra; Tue, 3 Jun 2025 04:06:07 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX+7n8rb4quyyty1NgZk/8o0N+Mkj56QIWfpZazcGc0EyvWiquaWeOYh5BhUGUe8WHm5xJa2g==@linaro.org X-Google-Smtp-Source: AGHT+IGxz8INzyb4iNzzT4yAjP3ZhC3NKPFB2bdZDdtLec0kCCa/WpN50buabgzFzwQI56wk0yAy X-Received: by 2002:a05:622a:124a:b0:48b:512a:a919 with SMTP id d75a77b69052e-4a4a5ec5789mr228938681cf.3.1748948767400; Tue, 03 Jun 2025 04:06:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948767; cv=none; d=google.com; s=arc-20240605; b=AwJ1V9BWUgHGgovyyYbPhv1VJKFxUqlBSRAg2f0v5SfqICMlLA9ug0mBQpkhaHvtsV JauGe7sHv4msi27rlRi+FgclumGNrlT5psEYjyUeHIFBOzDE6F2xu/rf2Et2ky7sEw7S G/7d3HurvfbJIMMOgTl7uKIrZaCROPEMygpPA+5bldSN5ZY+qw0x0LvwIO91UFNj1Inf 0prJYlgCqSqV1YIuRePsxZ2BwdgtDvbS9e6mHnVbbjLJS5bEmxXmHNHus7QqOP0qfyu/ wONpz7QwVlawB+QbBCNPJFw2bJ/V1FuzdkTzjPGi77FuPq87OM4lN5waRjFWDzbUSt5b Q8lQ== 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=xxDMdaIg8arEcAZqrWcxA6HfH8o9FpNz/62pOCW6kuE=; fh=FeRN/VlT8nZO9je/Eo+cW7q2digEBCbI6cdF04U10h0=; b=LsRezNmVFFzxIxSUYuPIWCbkU3V2k6F37RC8PRxL5GViG2zmxUnbBE7dsHFw610nvF BgWMmZ4TWflLznIV4x2q8MODj+geC+DNwug2SEP+0O6uhAjJW4LFiCh7hGQMYTekOC8G uCRpfdqCuOpL/isNsvOcDrC1kVQU0Zm91rB6WxnchWHcvbiNkLyAFwWAaerNC5BeNEyn T5m7EAsmxsmV+FHaastKMhO/Htwj+f7WvmUHwTah43CvyUX5il9j9JcvdxIJ6kFD1iHZ wZKyNL0l6NPSfbc5LSL38elIyNMq7HU6av6h2LXvo/CiT4bCW29qaXzBx8GbOUOWmZr8 Xpyg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=uAfU+QNw; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ada2fe7eead31-4e6edcf3b0esi2622060137.257.2025.06.03.04.06.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:06:07 -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=uAfU+QNw; 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 1uMPRO-0000n5-NU; Tue, 03 Jun 2025 07:04: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 1uMPPO-00083B-PC for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:18 -0400 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMPPK-0002CR-Om for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:18 -0400 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-606b58241c9so949509a12.3 for ; Tue, 03 Jun 2025 04:02:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948533; x=1749553333; 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=xxDMdaIg8arEcAZqrWcxA6HfH8o9FpNz/62pOCW6kuE=; b=uAfU+QNwVYabdGwPLXYx6HEuLLyVl2xpzz2dPr+9tMmKBLzczk5hi0Kt1e+9f3IwWl AKrSLlBAXVM7gH5u182yxRcsBL0u1PPwMQWbrwXIA8hQYuttV7h/qw8lKW0HLcj4PyKH 84CgpdNHQDy4splOsF43sJtzKZ/ChHRI+EYkAXFuXsWkumv+VngLfWgivg0zSptXQM6y G0B+ORlpNkD3B9NJswCR1U5O1gBKA52mlV6KnFno0KPfCGd53nkew2GfbGvMSDijKCX6 JRvOYSOZGsxUBoKOexmP+wRB5aFHt2SzovZmMwmvB1KudhkcV4fNfBd+mQOv0osNxc1v araA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948533; x=1749553333; 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=xxDMdaIg8arEcAZqrWcxA6HfH8o9FpNz/62pOCW6kuE=; b=sy0lGKAl9uFLq3ou4p9YtwLvW7fFSsD8gtZ6iSKV1yp7xz35xWyDwT3BaQNvB6kj5P HpVbrlBtaCZhTHeHFf08YYuJ/jRxdmDR0eeoVXa9bdN/x1nqNpayDXWOsOCsNvNS1T4C oWCgyBq2EnxY0+Th8t/qfVjq+Hjsixg5BsAQqC1EB65AMKLjWG6R0WB2z0J70CgxiRNp tZ1LfhetAlza7N32bHUJUvMJxJQoXO0q3SexR7jHxs2NT+T8h6zCOrv2meJAte6iAOT3 HAnza2/VymsutFkRsdUG6ll4vaoWUqhUg0vUYHWqeVPB9TDNZcnyLTIJtD3589s/8kgZ C2Dg== X-Gm-Message-State: AOJu0YxbgtzPpuui7PtsbfiqUjSQISe7Azeb/2dGmL/fVqKxYO581rzu mhHqTDHo2lTQY5TAvdV6/rjEF6S1D2zHlmAvF3+ortqhVvv3HStWAF+8e8Upob8vzYU= X-Gm-Gg: ASbGncsaxRn5d189wgNi5Ccj75jRxr51APVguzGuYCrOG/y8VbrhBgSTVcXRxG5NFPL BjNB3+Qw6Ef+OCb2XuHQlHyHZ04VXFSvnt7td8U/ynmaZhEypgVFIpA7gqskBclkZhmEQgJ19D3 ydMTUND+CVc9oq70x6Sbqao9hR/5igmCUNAj+CzVYT1LG/s2p69aAqbSCYHSMklLgjSOZURjz7l whfw6vnFPQ6he/uZHxvCELXLkCPk+G9X1bCweC6hIuQ+gW0Fkfl/bSpDzcPTW5zux5zAZX614js PAS9lGcEAvZtIWOIb8EhpRXK+FnibN1QqEBUmQOLU9tmpvPtLcrf X-Received: by 2002:a17:907:6092:b0:ad9:982f:9206 with SMTP id a640c23a62f3a-adb49606242mr1105080666b.61.1748948532999; Tue, 03 Jun 2025 04:02:12 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5dd043a9sm930549066b.89.2025.06.03.04.02.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id A27CD5F9E1; Tue, 03 Jun 2025 12:02:05 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour Subject: [PATCH v4 08/17] MAINTAINERS: add Akihiko and Dmitry as reviewers Date: Tue, 3 Jun 2025 12:01:55 +0100 Message-ID: <20250603110204.838117-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::52c; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52c.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Thanks for volunteering to help. Cc: Akihiko Odaki Cc: Dmitry Osipenko Reviewed-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Alex Bennée Acked-by: Michael S. Tsirkin --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 7718199979..79b1d5c0b3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2669,6 +2669,8 @@ F: include/hw/display/ramfb.h virtio-gpu M: Alex Bennée +R: Akihiko Odaki +R: Dmitry Osipenko S: Odd Fixes F: hw/display/virtio-gpu* F: hw/display/virtio-vga.* From patchwork Tue Jun 3 11:01:56 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: 893857 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp238797wra; Tue, 3 Jun 2025 04:05:51 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWeKxGe2egSt6XXZWk/0dzQ02X5ZkPnTf+NOhCLuHCIGM7lxfjE+5LdjkA6KO01xXnouZDHcA==@linaro.org X-Google-Smtp-Source: AGHT+IGuRQBGbBNoUhg58T7Ip8HywKcw9N2k92JGPDuo7KVM/18sHlbEcyx+ug+hd10koauyZaOk X-Received: by 2002:a05:622a:40cb:b0:4a4:2be2:7567 with SMTP id d75a77b69052e-4a59adf8e1cmr39923181cf.8.1748948751120; Tue, 03 Jun 2025 04:05:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948751; cv=none; d=google.com; s=arc-20240605; b=bgmDmAIz3ExN696fZQOd92nghoPu9MDRFs8T3KVjis7uPDk0yp7l9taZtyg9hi/nz0 IuhSsU7tbDx5yT1mR4PZmHixz12Ou0Nb1h7c7ZyFbc9szOF4gOId1wR2CFg3s5a5Rbh1 kANEVkA0JdFPYPmZTlBhLo7KAbrbeG3khDpzng19oXEsZnGjNFwN1Wh9NnxeKkWEOWzT 7vbeTumaFbMTRh8nLm8Hn4cm4Y7yPWRcugK0JOhftY+9kbkKQDdeKrokWCh7U9cVZpm2 1eY+P8aXhv9FC/xeQmhd68nMGVc+jToafxOLJ0MYjcP8h6Eqpl1m1p/iLHjJ+4YhRTkA G/EQ== 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=wQET4a6RoFXalr9xv5iZgw1vmkbJEH7KrDKYfmPKa9w=; fh=31PGCsTZXmaW6ol/3xGO6YUc+VEXSQuoGsBK/AiDSsw=; b=QoVFKBgorL2Gj9kmx706/Fx6u8asfK/jY8ol6rmZ3Afg7bO5U7nqvJzaMOUzw0OWAM z5lgaPFMs5tKctm43V1rDNEmokmBd7YwZ37vK5rwyMdbnL4ylPOsZYcI+MIBFZgnKu12 +cVGxj0vlGwD/uLDpuOaTPeaLc2m7/Rp4C89dKlp5jyQDI0ZvFT2HOWTum4eVYI4lr0x vtYgoKJnk5vXg1g65JchX+AkFTba1KArz3xM0s7vuEQdHiN5qMS1yCKyuTf0MWAN9pu3 6ApP+b/lmRvED+lH/t0QWFALtKLhMRL2rltx8vtI15iM6djZWNGXmIxImCQ0oQigs0ju 5AJA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="KXGvUw/4"; 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-4a435a91380si125963831cf.588.2025.06.03.04.05.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:05:51 -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="KXGvUw/4"; 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 1uMPPu-0008KO-Un; Tue, 03 Jun 2025 07:02:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMPPQ-000840-2b for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:20 -0400 Received: from mail-ej1-x62e.google.com ([2a00:1450:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMPPL-0002CY-DQ for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:19 -0400 Received: by mail-ej1-x62e.google.com with SMTP id a640c23a62f3a-ad89d8a270fso1353025866b.1 for ; Tue, 03 Jun 2025 04:02:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948533; x=1749553333; 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=wQET4a6RoFXalr9xv5iZgw1vmkbJEH7KrDKYfmPKa9w=; b=KXGvUw/4bbA94xCTOYxnD04AE1dfoXUyyy4OziGN58JcQiIv2LubSqkIh39kc4VXX/ unDq+e3BdGbHKtRu90HgpPRnuJn00t89H/bZpmCenzzUzw1fNvnD8e8Jep5shU8Inn1Y /JhyTHGU7EL3hs0tX5tCbVX0NOYABTblyd7zlvzhUZvXN6fUh5QH9PGskHhUtVcZArwL /80HDk/q7U5H/DqbQb9I7tQ8xoNWaVKlauuRSsfMQ5pNhVkhHvc7/0H6U+UL1P712jVb ZcT2JpnDL07Qg7GX8S3VxoSuVVYHnUL27e5aQ3irvv4iRJiYGA2Fk5yNfPdzBFYo7mR2 ppRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948533; x=1749553333; 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=wQET4a6RoFXalr9xv5iZgw1vmkbJEH7KrDKYfmPKa9w=; b=MYVQ1tlFOJB7RiaoW8/zQzM/XbmHzoMvVfswpuKtYj6k423koWkcQLBEPJjHqpCMTJ o/tCsAzo4qbFXslR+hPn8KVnz87r1gGrr9tByPZn5yjYtNyN5abNcc529q9c4gh/XGl0 KTcvP3APUZfAmTggumU+fq6O2YU2tvn4WcdR+hh6qFxKYQjyXtdlcfUuEtP5CdWEYSZq A4+VbHS9i1yYPO++cbBtDnLtI59/8RqOnQoTmzhyw4cnpZSfZy83Vi/YWWAv4vzWFTcl V1+9ELrE8QZZ6YiQMLSyDNbo5tvu0Ubf9iwWGnJZYU9zUapL7SgZAdS/enBAAXufK1yX rfLg== X-Gm-Message-State: AOJu0YyYyg2mSMIGdYqh64RMeXmsBjqsZ/Xupsrajj/KCJKh2CPAH3/Z Zu9ob6emIxKFFVMsh68eBHQ0pXBtbK1DqFZJWRZX1LGV4Ze0OKiLkB3bKi5D4ZTJdS4= X-Gm-Gg: ASbGnctoGO381qktNCqR8rzZ2d3Hz/Ve6DHH2xuatr/QM7Q2sZK/Wy1XOGyO/DDNw7n zwFWYgFg7k2mVCHnedstdQyz9pywJW8J+v/QTUa6whM7z8GtsPRcmWCgjtN5HO+0FWkz3bpV542 FPBFT9U+5frxolG/W19DBFj20IuiGZnP9z3q4bTQsKke1cq0zhwvqsP5pX63O29sUUZMh3YRkgE VIIhTlBcAoRUJvLqyNqhvjgBz7IP0tiZXbJmj/ish+ka2WOr4o3DtTgzKcMkDsc5BWv2x9DXx8h hgbcZZsyXSp4w0J6OYe76QgobshkLHv0jyj91JR03o5vd8V+WWEV X-Received: by 2002:a17:907:72c7:b0:ad8:91e4:a931 with SMTP id a640c23a62f3a-adde66fadf7mr201168066b.26.1748948533361; Tue, 03 Jun 2025 04:02:13 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5d7ff0dfsm946656466b.13.2025.06.03.04.02.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id BCFD75F9E3; Tue, 03 Jun 2025 12:02:05 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH v4 09/17] hw/display: re-arrange memory region tracking Date: Tue, 3 Jun 2025 12:01:56 +0100 Message-ID: <20250603110204.838117-10-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::62e; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62e.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 fc35a0dcad..90715ff44a 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -784,6 +784,7 @@ struct MemoryRegion { DeviceState *dev; const MemoryRegionOps *ops; + /* opaque data, used by backends like @ops */ void *opaque; MemoryRegion *container; int mapped_via_alias; /* Mapped via an alias, container might be NULL */ diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c index 145a0b3879..71a7500de9 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -52,17 +52,11 @@ virgl_get_egl_display(G_GNUC_UNUSED void *cookie) #if VIRGL_VERSION_MAJOR >= 1 struct virtio_gpu_virgl_hostmem_region { - MemoryRegion mr; + MemoryRegion *mr; struct VirtIOGPU *g; bool finish_unmapping; }; -static struct virtio_gpu_virgl_hostmem_region * -to_hostmem_region(MemoryRegion *mr) -{ - return container_of(mr, struct virtio_gpu_virgl_hostmem_region, mr); -} - static void virtio_gpu_virgl_resume_cmdq_bh(void *opaque) { VirtIOGPU *g = opaque; @@ -73,14 +67,12 @@ static void virtio_gpu_virgl_resume_cmdq_bh(void *opaque) static void virtio_gpu_virgl_hostmem_region_free(void *obj) { MemoryRegion *mr = MEMORY_REGION(obj); - struct virtio_gpu_virgl_hostmem_region *vmr; + struct virtio_gpu_virgl_hostmem_region *vmr = mr->opaque; VirtIOGPUBase *b; VirtIOGPUGL *gl; - vmr = to_hostmem_region(mr); - vmr->finish_unmapping = true; - b = VIRTIO_GPU_BASE(vmr->g); + vmr->finish_unmapping = true; b->renderer_blocked--; /* @@ -118,8 +110,8 @@ virtio_gpu_virgl_map_resource_blob(VirtIOGPU *g, vmr = g_new0(struct virtio_gpu_virgl_hostmem_region, 1); vmr->g = g; + mr = g_new0(MemoryRegion, 1); - mr = &vmr->mr; memory_region_init_ram_ptr(mr, OBJECT(mr), "blob", size, data); memory_region_add_subregion(&b->hostmem, offset, mr); memory_region_set_enabled(mr, true); @@ -131,7 +123,9 @@ virtio_gpu_virgl_map_resource_blob(VirtIOGPU *g, * command processing until MR is fully unreferenced and freed. */ OBJECT(mr)->free = virtio_gpu_virgl_hostmem_region_free; + mr->opaque = vmr; + vmr->mr = mr; res->mr = mr; return 0; @@ -142,16 +136,15 @@ virtio_gpu_virgl_unmap_resource_blob(VirtIOGPU *g, struct virtio_gpu_virgl_resource *res, bool *cmd_suspended) { - struct virtio_gpu_virgl_hostmem_region *vmr; VirtIOGPUBase *b = VIRTIO_GPU_BASE(g); MemoryRegion *mr = res->mr; + struct virtio_gpu_virgl_hostmem_region *vmr; int ret; if (!mr) { return 0; } - - vmr = to_hostmem_region(res->mr); + vmr = mr->opaque; /* * Perform async unmapping in 3 steps: From patchwork Tue Jun 3 11:01:57 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: 893859 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp238832wra; Tue, 3 Jun 2025 04:05:56 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWLzr3qk6r5okuVteATtweHfqnpvnn4w34egRp2gV/uk9Ce7vUYr8xBlc3oMDbLMsMgJqHIhQ==@linaro.org X-Google-Smtp-Source: AGHT+IHHkgSoQ3pOsxgEqllSmhzpBJ5WC7leU1jfeGhR4hjKcmXMHXuRAzEAKjqU4XNEvpVHqPgK X-Received: by 2002:a05:6214:1d04:b0:6fa:c99a:b5e1 with SMTP id 6a1803df08f44-6faceba01b8mr278154786d6.17.1748948755792; Tue, 03 Jun 2025 04:05:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948755; cv=none; d=google.com; s=arc-20240605; b=iEzG6290wBw9LTiIW768q/pUwOmY0PPyBbVmA4conT1Iv1VsdLZapRWtvqtfemcszI GRbEIt/qDiC/vgjECEE97Yn0qWJRlPymCcLr0geIf61JrCxmEVcNL4tgo/39xh7xNqEQ 2GOpKOCWXjCW+NZPGOM64ZDPIBd6DDj1r1ZkK75PbVVW9y8gIWL2IH/RPP4godN9uaOA cAAbke10b/8mYVDbf4AfnSmjaYHb5yzJnNqIiTEO8SI1bGaGB9iS8glO9DTOzvqaBGdl MpmEpUC58u6C8WahSbSQkODGb6a3Qx/0IHv/6/1TK4q0/lNiRPxTTkeX52DF+afy7kMQ o1vw== 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=EpuBo3M1LF3MK0WBrtfymjZZWtx+efkCf6X7TVPwYV0=; fh=31PGCsTZXmaW6ol/3xGO6YUc+VEXSQuoGsBK/AiDSsw=; b=IkOpoOqqNhm5hGW2KwR1ryyQDuSf5W7NydI+nCMKyzmNohP0zt/tfpGrp/khlQ3mk7 Z7YKXAw/4XVwYAVqDsukgmTaMJ9ot25M19wPKqnwvGKBVFEarE+9opSUNEcsugKFpaFI 7G7ohD0k5IxA0B0YnQcJAi+qDywdqZYKejeYpxRMLXsXtb9vVp30dbufNO6PciqLZADr AcU632hmdA8D3g9uTN32hJ4uO5jMN8Y6lDpXZ5BsY4XxrL3p10xck1ybBzSXjp8Q3Cqd QF1aViiuV16aYD/z/8boOUy+KaUjojbjcS5NbelMNRTRSZRtLt/0p9XGqAFn+U0fW6o0 3VjQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=AyhYFqKo; 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-6fac6e59916si123458036d6.231.2025.06.03.04.05.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:05: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=AyhYFqKo; 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 1uMPRU-0001Ge-3N; Tue, 03 Jun 2025 07:04:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMPPN-00081P-Dy for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:17 -0400 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMPPJ-0002BY-DE for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:16 -0400 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-606b6dbe316so305035a12.3 for ; Tue, 03 Jun 2025 04:02:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948531; x=1749553331; 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=EpuBo3M1LF3MK0WBrtfymjZZWtx+efkCf6X7TVPwYV0=; b=AyhYFqKo8QC9KznxrYcSRmByFxkUctO2/SIOd/Rk6S0C1ljC6yH3tqEpUXbcSNm6BJ DvhgvXSdWB4AELrA4xviovQam2WCTUSQQcJPtWGCE9v06uCAKm1SND6UHpaL/X2j5GqY Out1iHiOCshTvI5838QV/wlHZHPNzQ6jq6ufhia0wvbQ68378iznrI40HvVRWdwtZuLf tomoNItYAPdsYryZoz5m2h70dXDGpkd/QTIQlNRh6LcVL4mF9GMoQNhr9b6+PZe32RFk bivQBGMPxlPh6YiKYF+9+MVtSQZw0gpW9gQP1VXa7IHA6FhfD9fvZmpRlBa+PEeEQbdf Rjvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948531; x=1749553331; 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=EpuBo3M1LF3MK0WBrtfymjZZWtx+efkCf6X7TVPwYV0=; b=hOXWO5etZlS0BCgpa+bagTaYN0rpDylReZLWk/hPEPKQeHCqXjtoNnLFefCRiSqFCO PDYScreLF51zGAY5qeT9AOB8hWx+42BP7OECCWt3JExIPkcb4FDaeh7cdjCm7KRKNr8G kBqQdHm58YNNxH99HVtWNxsPRFUlfSqyFbY4ZYebVbzeYG20cR+PMUqR5YdOVLwYcVNx 2y5OSffCEvwM2XOEsxjde2q0XiWiLezloevawNByNtTRXe0iIz98uUS5d0IU0bXQ3w8P I+9/yyfAktbd2zcPCK6ZPRrfuaZFnYBd02FSZUGb2ayKIioSlLZz7ndq6t5lRpwCEt4t Oljg== X-Gm-Message-State: AOJu0YzSPp2droc43sDDAaZ1FjO3uIozk21zxoXRt2aDLxCZuYtP24mX 5mSBbVi3bqe2vDxoZQqdqNss+vVMc4WVcGHUwbEiFrNTcms89MNKZhOZvyvhbJSNwJ0= X-Gm-Gg: ASbGncuz/uiUPpft5o1I4PBK8noJjQTbFwGMMlxIY0ktNWi7DxF1pGHKQFyf/jcdWej HOiSvtC74tAz+6281oMIBj/ozI105RMReSFSipgujMNFMsEi4ZTMVZm7H/1tiDUJVV8BAnorbI4 Myrww8rbJP3kPSF3K8qYwMjcMa3ZtozgbsURs8qnf+RF23qP2/GEVBVplYfupxsROyOzOvsVXfU e9X+n15RDw1dm7KD/BknnjNyyqrBglP7TwaxUSuFraRDVf+1+B2dXwYbxHyi8jYijVcIuZSRRK0 wSb3miyLlpH0eC4/UTr76B2Q9OMt5mk4Jz7Q0OMzeiBpPccUMPjK X-Received: by 2002:a17:907:9443:b0:ad8:a7d8:efab with SMTP id a640c23a62f3a-adb322863d1mr1509040866b.22.1748948531467; Tue, 03 Jun 2025 04:02:11 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5e2bf051sm929136666b.122.2025.06.03.04.02.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id D41875F9E7; Tue, 03 Jun 2025 12:02:05 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Manos Pitsidianakis , qemu-stable@nongnu.org Subject: [PATCH v4 10/17] virtio-gpu: refactor async blob unmapping Date: Tue, 3 Jun 2025 12:01:57 +0100 Message-ID: <20250603110204.838117-11-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::52e; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52e.google.com X-Spam_score_int: 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 71a7500de9..b4aa8abb96 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -155,7 +155,32 @@ virtio_gpu_virgl_unmap_resource_blob(VirtIOGPU *g, * asynchronously by virtio_gpu_virgl_hostmem_region_free(). * 3. Finish the unmapping with final virgl_renderer_resource_unmap(). */ + + /* 1. Check if we should start unmapping now */ + if (!vmr->finish_unmapping) { + /* begin async unmapping. render will be unblocked once MR is freed */ + b->renderer_blocked++; + + memory_region_set_enabled(mr, false); + memory_region_del_subregion(&b->hostmem, mr); + object_unparent(OBJECT(mr)); + /* + * The unmapping might have already finished at this point if no one + * else held a reference to the MR; if yes, we can skip suspending the + * command and unmap the resource right away. + */ + *cmd_suspended = !vmr->finish_unmapping; + } + + /* + * 2. if virtio_gpu_virgl_hostmem_region_free hasn't been executed yet, we + * have marked the command to be re-processed later by setting + * cmd_suspended to true. The freeing callback will be called from RCU + * context later. + */ + if (vmr->finish_unmapping) { + /* 3. MemoryRegion has been freed, so finish unmapping */ res->mr = NULL; g_free(vmr); @@ -166,16 +191,6 @@ virtio_gpu_virgl_unmap_resource_blob(VirtIOGPU *g, __func__, strerror(-ret)); return ret; } - } else { - *cmd_suspended = true; - - /* render will be unblocked once MR is freed */ - b->renderer_blocked++; - - /* memory region owns self res->mr object and frees it by itself */ - memory_region_set_enabled(mr, false); - memory_region_del_subregion(&b->hostmem, mr); - object_unparent(OBJECT(mr)); } return 0; From patchwork Tue Jun 3 11:01:58 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: 893865 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp239029wra; Tue, 3 Jun 2025 04:06:23 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVTuQNFkuu6ls1ut09IzJ/H3pH8exyav6kpmbu+J3AlfczcrcH+kD+O7rTjsIGvnXlxUNmicg==@linaro.org X-Google-Smtp-Source: AGHT+IEco32mjfaRvlHSRRmRet0MpJXdCl+nHNm7Yl/gG4pWpunlC3wLqyRlD1prS70osBw8sAT1 X-Received: by 2002:a05:620a:24d3:b0:7d0:a30a:5609 with SMTP id af79cd13be357-7d0eac61ed4mr1822396185a.21.1748948783645; Tue, 03 Jun 2025 04:06:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948783; cv=none; d=google.com; s=arc-20240605; b=Fa3cLkSuk8xRCmVWKbta5YzLXr745Oa058TQM+2Luh8kBQg6KpfjI78f6AVBJOvC3I 3vP/ep+JWBzC9NxEUQ0F7aO25q2hlJlWqLwC74bNITB/qpWI+dPFatVrrIvbV1U+YLkT sZmklYrCRSAKruaUsUrS/NOE+Uobpr6OPzPdgu7qAb1UZmQ2Q9KmPropPryP5RV15PMp BIDU73XvAZoA8GiVZkZKUiRohQ3qHDzYPmm5eyRgnLNpQGq+kHfIHgdfkgaClqOETWve 9nCZr7CsUeXFipSm2WeeoPvXlJ6K2dDISzqMd65QoaBIKJAjNe5twJszLbBJMuMPmJVb Ie3g== 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=ZLHAXd5IM7E3LOJv3AyI9ar9t7CdHBCtSRFXruIFS18=; fh=VlyOJKuqJVq4Cqutf5Eq+5mPrD0dAUuPknPuBgjNGJU=; b=cq451AxhazuP9a24AURPmPeCUAR+HUuaSj5scek6F+8HTyPozXODWn14CQdU1edlYw dCD/irsDOcWySmD4znFZTza8lCPL6BswyKQAJF0A7Chjzhbeyry31N1KpS/zTdxPM8eS j3lF+NBcFHilIeT3MjMKm6dyoTXwKpcN8UUyNiA9Nu5IdtNTaIsi9k9A0o0ui9r7ggNl HGg+TBgYRb2f3XFzbDcVCNG9qlDhOLZVjD2j5Ns+eSGisLNWSPvQrNwpViC8AyqlEIKg EwqA6ZzPTIU3OmzHsMNu+OooSTHIpGGdCZoMBz7yxE/EwOS/x20jPoF3c+e5EgSNnhrS vinw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LWtxeGy8; 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-7d09a1fa231si1260879885a.402.2025.06.03.04.06.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:06:23 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LWtxeGy8; 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 1uMPPv-0008LV-G6; Tue, 03 Jun 2025 07:02:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uMPPM-0007yK-1f for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02: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 1uMPPI-0002BO-J0 for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:15 -0400 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-ad89d8a270fso1353020566b.1 for ; Tue, 03 Jun 2025 04:02:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948531; x=1749553331; 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=ZLHAXd5IM7E3LOJv3AyI9ar9t7CdHBCtSRFXruIFS18=; b=LWtxeGy8qX1CFGgu9eipxKYVn4919sLdlolUJmAsmi5iMp7qwslJA9JpGwyLYg7qow IQN6QtYm4RjKs/8JltY5hqu1pdvJrPR6HrEmZCGk+weaw4QITV9+Es66frYAHJ37BFS+ 6V2j8ZEw8dJ7wX2IEFCamWFdhV63utK+J+U58+ag4+3t06ZJDam1tmmJ4qoCwndDIyIs NdaI4Ib+VvIpLucm4af25cT2BNts1VRf+4Qq8BnpUJua0vUdNDWhPKkcL68cDnaip+Rk UBVlDNdPJFWAnMhoRFa+a1YspT5uhc0i294EDxcxEOuOJSEdglvR4vIJEL6O5ecnNXmP 6GdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948531; x=1749553331; 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=ZLHAXd5IM7E3LOJv3AyI9ar9t7CdHBCtSRFXruIFS18=; b=BjgKIOsUy5vWh5LzEpnFg5VHALgpBI1ZTX8SKS7Vlp4Zj8+q9RJdWZYSjHbbjixqNh i8epuU1gXoNYiHkgm2yMb4fm5H6dLiAQ8UFd08A0bpPTeS+pQgX+lRyG0/HusqvW10t0 C8oWP5s3NYdkrVHpaJjktDlANmCoA341IZ8JVpd6T/SmdhU2HMK6LOMJm1305DgzEw+q uI+ndTpJC/hRuiqP/Cm4zeu1KlWt/CslnQvDU5mHcRnqTqBAReg9KiKNMgzys0s6ivIN Hlwkdz22RxE1QcS1ByM+H0Xqd+C2YaNaoGjenlUtuHyWd4ZHVg4WLXcR5k6TeqbJWmpi GtYQ== X-Gm-Message-State: AOJu0Yw5ZwGFtq5loT2LRJxb0kG/1gPbABXTg2j1FJuHHT6yNZnlxFJS iPN+2P43AOWMUjYM+zC2o35ysGQ4aEZnC+treUD0pVzXNYRrfYMgUv9FuIYwPX3f2E8= X-Gm-Gg: ASbGncv0N9DkjRHwvkKYb2uurxfFZmhkm0rR3HDhC5obN5KsPgC29sV+uGfHOaZ9sAI 6xZx35FeBePmSA5ppBUBeMh/umMFi/Q419mhyoZIc+RLMCGJSuNIBjGKg7d2wvoniWhjTYGwTOh rSPfUVGm/2aCbppcnfWKZTfqihh2Fjhcd4Fz5Effji4P+dKrkBurJzB3lXGlXWPjSabAwRNRE0c u3gUs68r4qBGIqv+jsafVo+admA3IICrTaJiQVGSL+zqHdk+mTd144ITucn04Lv/V514pILn2pD RybzkWSkvzDicmQlwD2lPVrG40/L6HgeDEHNNCzXd2JBiCGWKTjI X-Received: by 2002:a17:907:72c7:b0:ad8:91e4:a931 with SMTP id a640c23a62f3a-adde66fadf7mr201145966b.26.1748948530924; Tue, 03 Jun 2025 04:02:10 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adde6f4b548sm81837766b.67.2025.06.03.04.02.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id EB69C5F9EA; Tue, 03 Jun 2025 12:02:05 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Dongwon Kim , Vivek Kasireddy Subject: [PATCH v4 11/17] ui/gtk-gl-area: Remove extra draw call in refresh Date: Tue, 3 Jun 2025 12:01:58 +0100 Message-ID: <20250603110204.838117-12-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-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: 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 8151cc413c..429ba914e0 100644 --- a/ui/gtk-gl-area.c +++ b/ui/gtk-gl-area.c @@ -168,7 +168,6 @@ void gd_gl_area_refresh(DisplayChangeListener *dcl) if (vc->gfx.guest_fb.dmabuf && qemu_dmabuf_get_draw_submitted(vc->gfx.guest_fb.dmabuf)) { - gd_gl_area_draw(vc); return; } From patchwork Tue Jun 3 11:01:59 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: 893856 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp238577wra; Tue, 3 Jun 2025 04:05:21 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWgzYU7W3QoVt97zopBGlGzoLTPEAWuvDtojgqajQwywjEegbL1Z1aODGpTLlbDas2WJxIRrQ==@linaro.org X-Google-Smtp-Source: AGHT+IFFVsG8Aov+LP+Jl9fZT8VZl1CkWZLqwrERC9ATBHnFTSHdIuGudSScixR0ndDoP3qt1mCY X-Received: by 2002:a05:6102:1621:b0:4e6:67f6:e9af with SMTP id ada2fe7eead31-4e6e40f61acmr14974443137.9.1748948721465; Tue, 03 Jun 2025 04:05:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948721; cv=none; d=google.com; s=arc-20240605; b=QGTdt+/N8QYTrnMZZtgaAUcvKM9cMzIOsrkJrMQGlazQG5G7tq/WnyxIBVTqV6i0Uh BvOYu/KsiCFciY2bJu3nZGvv7r7phn7dUngOifCwOIW0o16PYNdnQ+V+h2qvkapL/+WX ejTnf7n7pV8MVB9McPVKcsV+8zZPPFJrQdkMjXal/wpxgmrphbyeBqLHQDZouP1Q13su txS2wwzxV92mZh0s2NeIwKPS0Zyg+GIOVj5/LsW9s8i8SGwzXqcb62DWnW4R6dQp6u82 QkFStaLEmPZ85pAxcXXo3qgR0lDsV16ypVPHACqS/Qa61rLk8xejRvWzK9iwXTUnGE3q bqZg== 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=QqzHenzf9f+tp29aM4EXCHM2Myi+Q8QXd6lOEWCWJSY=; fh=i8+JJNkSTFxyu36tfnSGLD1mbgXco6YLrqB+jVxr2KA=; b=CbQWVhzkjQXiKcpQGUk4zSggeCipX7X8yVbEgCY0ZWIsqBiCGdHTLXJ7skJ80aG8+/ p45D0mXOeVcFceG5Cee5ZTS/QjRKheAEKw+lHfprFRZTgwKB24nJuvhjOtwg64nIzAIg YnoE/PL+iQySDcgTe8/TaL//prAy/0AhdeIFZArEpnZfj/yiIkYbLjtpPql9ZxuL9b3d iRq67izigpffVy0CbmkqIEOT2yhraP1muGnahhzw+oClgVNjvZatBOzZheEegvA9/brV B6puXKR8JIGc6vkYzd8sUTaxfVSr40d+j04R6iI/a7OhqhX92g38GjmLOZVuypZxVZ14 Hv2A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=mK8fLa7z; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ada2fe7eead31-4e64ea2d0d0si3609666137.375.2025.06.03.04.05.21 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:05:21 -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=mK8fLa7z; 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 1uMPR9-0000f5-1v; Tue, 03 Jun 2025 07:04:13 -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 1uMPPO-00082v-LH for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:18 -0400 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMPPJ-0002Bj-Pc for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:18 -0400 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-6049431b0e9so8856349a12.0 for ; Tue, 03 Jun 2025 04:02:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948532; x=1749553332; 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=QqzHenzf9f+tp29aM4EXCHM2Myi+Q8QXd6lOEWCWJSY=; b=mK8fLa7zXzF5atbbc8FFArSWt5RMPjTypOIkXuwI4SQKItr7h9mtQcunotUA/jtb0n E6+dV4HhadeNxfUVT1cJvGwm6X9mqcG0FVrQqlljikVYSZCf45kxA6C4ZVGYpEAg86FA ttLivympfBcDRiOKZnHz2+XFW6cbme2/lHMXMwu4IDZwB4qz31mjacknI8tWr04w4Vmy P9PZ+p1IHGdOoXobbtUX0gp5ZotzNupiM4cy5VfDRg1i83N3daR/ssqBtxBHOBjLv7/s 1ULyzQm3jgedOr7+bnH7FCEQcHZarUArenTTX5Y51R5rMyiXYuaq3tO70U1ql1yKQxGq +rmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948532; x=1749553332; 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=QqzHenzf9f+tp29aM4EXCHM2Myi+Q8QXd6lOEWCWJSY=; b=azkOCjrU0z+rKkqR250ZG2AEf+FKmxm3Uf5UvncTe/RRXsFNTf1xm77jwfBWrlk5BJ kPpmCwr7QMfJt45GnS8Ksdf6WOuJ+OyCFi5RgH/xihcVIAdjCIlU8Th/NO0rRRnNSc7m 20aCGSijZHVSKt0PTEglEUIG0hC0p/sFJVuuiXpnwiUF7KY3ca7TLw/+I8HPQbaHsjsw Hy5DSHXuV5LKsP1mnTOSz8JHzZw2MK34FdyGuFi65uxtUEwvKzuKPnrrrTXKWGoOF+jL 8dMUsFKNyNKWc2aKpTFTkmuUvwt/IyllfefYsSIYlf97XFK0+0b5dFpTJECtyuol0kfw 91qw== X-Gm-Message-State: AOJu0Yyz68TelSTSd4n4PzfNi7ZvOhWkYnMCO/K9oXzJVvCoVUYFfkBU si4d3rlySFhxgz9/af7Hu1EveEKoYGVdyaEtY89xgWVLb6RshvjfwE0Bt/0rLJbHfzs= X-Gm-Gg: ASbGnctfSPbKz015Kz7lZO+B1BkgETvGWqy88MJYiscrdWhY48y7mrxD+cmMbXMCA5Q 8EJ5MY476cMT+wZHFguG+ShIdduuzOpxqMAcjvy7k+CB//Wbp3h3JehCfpgVbqYhoq38nw8SYTr sfHojWhnBrEJCAh6oVT4YsLjf71eBCLmYHp6fDgtcyM+dACHsLFPkeuYItqsIru7l2AHgYqCf5B DnT2xt8/Q7yhvZfXCSnEtfCAteKu1Ty+A6i7dYlSNCxdiW+SrZKSygyPAWgyPqZ+a0MfeLXm/Ju hrLCllhGvc0II6YfNRAsjqk6f0blQgOm38RDJQ9/o98QDlqpZKXj X-Received: by 2002:a17:907:2dac:b0:ad8:a329:b490 with SMTP id a640c23a62f3a-adb36b2447fmr1479784866b.23.1748948531810; Tue, 03 Jun 2025 04:02:11 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adb497704a5sm544319666b.83.2025.06.03.04.02.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 0AC585F9EB; Tue, 03 Jun 2025 12:02:06 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Yiwei Zhang , qemu-stable@nongnu.org Subject: [PATCH v4 12/17] virtio-gpu: support context init multiple timeline Date: Tue, 3 Jun 2025 12:01:59 +0100 Message-ID: <20250603110204.838117-13-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::52b; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52b.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org 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 Tested-by: Dmitry Osipenko --- 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 b4aa8abb96..cea2e12eb9 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 Tue Jun 3 11:02:00 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: 893854 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp237525wra; Tue, 3 Jun 2025 04:03:27 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUjChrXedRDlPFG2dXE5F2O3RMvFasEx3yoNXIMN1YkEIjMlRxeHm6fj9KARUwFARZ3wEwyyA==@linaro.org X-Google-Smtp-Source: AGHT+IFT4ygHEKRu6HFRDUUizHTF9b+01HScd7Bd3ZZAReWQs79jH75LaLrW66I8yxoui3PjV/wt X-Received: by 2002:a05:6102:32ce:b0:4e6:a33d:9925 with SMTP id ada2fe7eead31-4e6ecd2e650mr11406189137.5.1748948607586; Tue, 03 Jun 2025 04:03:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948607; cv=none; d=google.com; s=arc-20240605; b=KyoxmRXSEP+4jMMnDNkLr4ZQ9sH33Cr5xiiib3YP6YZCPsvNlZlkQxX0SsLVHV63G9 XCsRvfAWYh0/EZxijtIsnY+WeKMFgxRVDagTXEEOzAOfYGcVctK5SnqtOWteVcBkV1eU HpHGdhQYE4YypY9YdIfsk6X8Bu0y6oWQwbBdaCj2Qy/jxWQokpfovePDoUqEkPMAQDa0 NQO/6kdOOhZvG+EpRDjxYVYOmxEkKmPbJk8fr9NSrQ54wuNeBjhO4+huMgIPW/HelVvg auzY1NHiDxQ1PADa1PbPexp2QgLg1lyJ5pdKBY7BsO6u0TAsyqax7hlsKd5a6DRuCGJb Gb3g== 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=p9JTCX3puxR1p4q1IiR4N2zLiSIfw5jzEn0qqN/+AEs=; fh=iFTB7q0I1GByvONyuU6w1izx5y4TIViRMp/am/2cz0U=; b=SHZLLVtCv87TDT4hh1uQKcM1rwea2UM+M5JbyZLSOSQ2PJdoDtCf0AFkgIxDWB2thn qQt16CB+3Qf5ONPRUfelVja81a9ObxFLfNduko69PYcFf5Ir7eUI1ZrcCbU9pQHAabFK EoHHYTJO+/gYHr031amiQT3Ck5sdgOrDJMj1lie3Q8uk52lL4JNP/EPGVY4GB2Gx8zjk aZDgaBh7+mtY6RZIPracpAFvJ4KxHgM3sBjYp5O2yKDWdUOFJnQwmxsJhFUFYAWu8311 SZiicgm07TiPWqsXVXW58QvQVDNx4k62+jSlth/q9a1Jo8Fa7kot/hYeBYxMj2sKtEId LTew==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=dCGoEMme; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ada2fe7eead31-4e64ea2ca2esi3634668137.452.2025.06.03.04.03.27 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:03:27 -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=dCGoEMme; 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 1uMPQ4-0008OP-RE; Tue, 03 Jun 2025 07:03: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 1uMPPP-00083y-Vk for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:20 -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 1uMPPM-0002DJ-AX for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:19 -0400 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-606bbe60c01so921154a12.2 for ; Tue, 03 Jun 2025 04:02:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948535; x=1749553335; 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=p9JTCX3puxR1p4q1IiR4N2zLiSIfw5jzEn0qqN/+AEs=; b=dCGoEMmeaSR6Q8XxNe1g3csJOTTN16gJZXKjH11DtI18BcjGjTtgCidqCMXA8yRt3q dK7G6xuRoDK9d1MrI45bB/dOJV56b5kqvJ6Y078yFlDdGUN5/smQp+/YmwcgyzbqwcQv uvo4jXpqBfflYasC+MhFS35wHJfU6EDUBvy4XLdx1vP002DwzDlJv4QStBP+L6BCcT/l QOCC02GCZ+C9XMxjOVhU2NRpc68menxOOO9jPxV9jy2vVAL/fP0wNnbwaZHvl659PPAg FIPigmqp2e4pk+irqp/OcuHTTAqZ4iiFzJ2H/O5bL3tj58BFgsza/U5O6qXf8p82kQ9M Wr3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948535; x=1749553335; 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=p9JTCX3puxR1p4q1IiR4N2zLiSIfw5jzEn0qqN/+AEs=; b=DYOfTkua1wQSmUQgL3/2T1ZScJcZeKasOHwiw4U9JlBdq6CU9PAaCe/q1XXUbqcwtw IbRn42gLk6qukOqx5VRlYBY1VCcpGjWBVPEX3E0P9e9hvMOvJr/YnLrXC3L416JDyUJO Fxsalr271ikKChW6bgCcchwX5rXfFQIwFegz1VlNHQgkcmT8y53xtfZN6SuFH+ZzNlLC vEkdtHxs7RUu/siGsB2hMYN6/2d6zGBCeu48KCKw+ikhQEl+mVhG+aoXbFZzlmLPdued gi2VUadJ/gR+Uw1CNbrBN7K9dC8/SQm3J0kk71qAiUQqI8290I5gyQ37w8Y8qYsYP1Kc EsDg== X-Gm-Message-State: AOJu0YyVj5MHIzLr7r7Xz/SoazzB9piNCi8nI1xg6Q4kdc6fYS5I7Zz3 d/f5fpbE/4ujhQ1VS+yFDgN+38ZEccWJmpJP79MxfEZTaqeI1xqu2L+rK/Qyit5YyFg= X-Gm-Gg: ASbGncu6JBMsZp922vjbFOp6NGywocHgLieR7x/WnHzoqlVnp/StuQoBntyiw9kWnUQ ypDwWpPf3/DM1pZpZa6te7MIX727dcQYvHaN68rEts2nUG7IxD4lbJVYyjoNGfhjgHQjpAQgsPZ tRFc7hccnKu8UZ10428yTYfjDSPphv9fDnUIjG26kkFNE0rlfs6WOOURY0fFowFQ8mjHPkuUWUn JApmKMNzqcsas/2XQS85EaDQb3zOdXmajkPXyQIOl5VPF2pRRArdepSlqMHYM1wkl7EdTgxebRI uydrIsmwbBoLIStyxIGa5NnBpP08ReqGPX+DdKE1ZN70U7zeSgmZhJi3PTRbw8I= X-Received: by 2002:a05:6402:1e90:b0:601:ad95:ca6d with SMTP id 4fb4d7f45d1cf-605b7735753mr11046273a12.8.1748948534576; Tue, 03 Jun 2025 04:02:14 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-60566c2b301sm7537548a12.15.2025.06.03.04.02.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:13 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 20A075F9EC; Tue, 03 Jun 2025 12:02:06 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Richard Henderson Subject: [PATCH v4 13/17] include/exec: fix assert in size_memop Date: Tue, 3 Jun 2025 12:02:00 +0100 Message-ID: <20250603110204.838117-14-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-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 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 v4 - assert is_power_of_2() --- 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..cf7da3362e 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(is_power_of_2(size) && size >= 1 && size <= (1 << MO_SIZE)); #endif return (MemOp)ctz32(size); } From patchwork Tue Jun 3 11:02:01 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: 893864 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp239025wra; Tue, 3 Jun 2025 04:06:23 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWU+GFQ9IgAXYJ5DHst654bln4NED906F+MqZRC86mxX7ER8Nt9FkiNs0GedzOTUJB9UNAGig==@linaro.org X-Google-Smtp-Source: AGHT+IH/6VOaWCnsrJaRYTI6IvVldQe9TnnGkAH8OgEgyYEPRHvM5RRoOc71nWie0Sle3FfprFaC X-Received: by 2002:ad4:5ba5:0:b0:6fa:c41e:cc70 with SMTP id 6a1803df08f44-6fad913acbbmr192639906d6.22.1748948782747; Tue, 03 Jun 2025 04:06:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948782; cv=none; d=google.com; s=arc-20240605; b=Pgr4IMuiF8NKtpzmImghsagc7Kh8etWsKUnisX18IIkKBv3dYrQhGp5VWmgDL6H90Z +7QnkLAJ4wJdZPw1K1jfwhCY6l4IB9s9q1HPRSNc/xDzxZSvV+rBkB8R75/TD0tDNb/z whYnU+Fo1mTjPFZY0PkMDZrovV5ERXQs4U+9rl/37OTKxERNUqKPNKrckE+qSzF155yX dM8rLS4G+LJvLrp7Frzz3Gg4Mkxg9STWQE7GLxck49bXfeO/GwXzjwodM/LDRxFwh+UD M3Bvgn2fwgbXB+f1rl+5GURKZ1IownOfLoevtqyJOAdSx900YLDdhZzqweogc69+XDjF iwbQ== 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=E/Bg8Gn8FEOfqUQYMGn4nlmzkMaoZuvkpVzWIx9k58M=; fh=FeRN/VlT8nZO9je/Eo+cW7q2digEBCbI6cdF04U10h0=; b=UW84/D3LIhULRdgqDpAIPvBleLIK9OAab67r46Ftn+10sLM4CIxQcgBJmG2fExqHLG kXrgXQBa7foPfF2A2bRdIfuzBiBTIYcYScx9pRhQArOQ3226bHY76MY/Z/1UD+wTr/dt TrSAGZDd3Ax8BiWmdOs2VjD1g3Xp/hpQxmZnxn/j6RsLvRKhfYmNg9cBZEntEyNRsW14 wluSUIh8l/Eei0aHREzNi3OOWTB2Pu5ShMXNdqpK3tACJU4XdDMbeSBEv46Kt0qgLxtR yP+PxOlO50CBHF6UOcGqqq/8SWJx47JAKPgmH6jaueTN2cljAKMrIUFR8qwDG7gPNJAt yLRQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=DbWS8NNP; 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-6fac6dac753si117778186d6.67.2025.06.03.04.06.22 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:06:22 -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=DbWS8NNP; 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 1uMPSO-0002Zw-Cx; Tue, 03 Jun 2025 07:05: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 1uMPPS-00086w-UL for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:23 -0400 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMPPO-0002EU-A8 for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:22 -0400 Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-adb47e0644dso550958466b.0 for ; Tue, 03 Jun 2025 04:02:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948537; x=1749553337; 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=E/Bg8Gn8FEOfqUQYMGn4nlmzkMaoZuvkpVzWIx9k58M=; b=DbWS8NNPI2w+VBfGT1aXXzIAIV0XdiyH57LA524KzK3mlBG9lEuIgRriAQqBakGUrN E3pbPEO833s7q8/O+zEOz1PZyyjxCtUctAZ7jbLUJArMbOcUWOtHsbPzXOwmbhgJhhbE Zv0VMHGWy5W51SckUWzHfrjpooscKnPEn25bL1OjTrWorTXglpu0cvhKWRx0RjjsjhYd L8O2GRz1BagwB/p7eyirrY6bmM/6Z6iCCzLAkj0lt1Eh0D5x8HoPHv6luSJ6+u4gF/Ar IY80ow41Es+rpCHMBpU78ZngcFySDPAWsg2sSzPNFV3Jm73Av4nh4j0YSKXxjMM8oEiq eQmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948537; x=1749553337; 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=E/Bg8Gn8FEOfqUQYMGn4nlmzkMaoZuvkpVzWIx9k58M=; b=DCPDQokpg0XJ0aiZGanzcIhgZwV916B/uwBQE+uiv9F2b5wEVBcl8ZA/znpc4x2UK4 itaQVgcomjHmWmVQaYa+nmj73fhWtTTuUApZroq0wk/dyiYKqBcoMZxIfIDGTcq1cFGF 7PM4JF9c9XIXeCEcBoG15Hug9FeaanJ/jUGOFJ6TkChAP7uGRI1r6/e0PngHVY80Jydc n82hsXsycwumyyLOrIzum35JityxKLT913cQ0nZk/b6tJPmyM4b4csrdkjv/fhIPD2t8 vrs7PPu5e+Z82i2PGkelAae0NjPi8hzJHdIHuoly6Ies2Q/Aw2nC4mhQr0WRRVlqxUyb 7Gng== X-Gm-Message-State: AOJu0YzCb1L3mN1Vor59OoXwaATPMeIFX1OTUW40NfunRMC97nY9AayU SLvpipoCjrZhttWuj2sf8VMwyOSHfJb6DfTzi8vjIBXHSkdlfGpTJL6rvC9S0CWtC0c= X-Gm-Gg: ASbGncs1+hHLebr76eGxJGW5wACtyrz6O2I0hj29MiNbVYXHhVyyY4kfSh9TRkEtSTp 0buJnxOC/B9UkN//AJx+LuTtvSt0ThPm+PUt9FYBQ0cpkaZL+UE0bsTp6LX6f4JSvSjfFTMzBwv aRCb4M8+PYuDOaI6S8ulveEHicuhLLdGbWoluXV3u0r+QR3kEW3QsXEwzRMaD5ahiTxslFzi701 BgLy2Z9sVGD6vlpEyHdgV/kXNCQHoKEoIT8pJ+uf8IrPipHh93e9NAfT/DaOzsdvRCeNO916Yyw AcvG/GsR8hkC19yOdJA4aix0hNuqC66pSIzlc3eKYI54QuU+6Wm8 X-Received: by 2002:a17:907:7245:b0:ad8:5740:9932 with SMTP id a640c23a62f3a-adde606b27emr221329666b.26.1748948536557; Tue, 03 Jun 2025 04:02:16 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5d82de84sm944856766b.50.2025.06.03.04.02.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:13 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 380B75F9F5; Tue, 03 Jun 2025 12:02:06 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour Subject: [PATCH v4 14/17] include/gdbstub: fix include guard in commands.h Date: Tue, 3 Jun 2025 12:02:01 +0100 Message-ID: <20250603110204.838117-15-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::62d; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62d.google.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org 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 Tue Jun 3 11:02:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 893860 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp238889wra; Tue, 3 Jun 2025 04:06:05 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXuYDmDR1bknutlgjunEMN/d5Qb4gDxXlEegSQQaiiV4ageHXTQZXKg8jogpd1qOWp3nx1+ow==@linaro.org X-Google-Smtp-Source: AGHT+IFlUCBbQfWZxhTwdQBcEmlDsTt8LEX4PzbA8piRXQtoD4DeYDWEKJ5dZoTyz8dDsRDgNSyx X-Received: by 2002:a05:622a:2307:b0:4a4:2e32:5a25 with SMTP id d75a77b69052e-4a4aed6b05cmr158857141cf.24.1748948765300; Tue, 03 Jun 2025 04:06:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948765; cv=none; d=google.com; s=arc-20240605; b=XgfiphliipAHH3lzQdthVT1FjdmHm++9QLDqh/Su/vq7p7p2Et42vZxL1uJZSoRDZm 2GJt8duKQS/JiY+eRPoT/eRdHb7QZDfalUzUMnRcHLCw40NAwWOSK1uqF9XP9dIFWd0J I3wnc4onabgnsr6Bvp7G9c395e4QbvW3mFUo5nY9ZPndy2PAElFlsi+wFqz9bP+qgH7O WDfqcLitY8SBuBVUw82w47WQdHY6Y6YchS1QEZBLYHxoFio0dW0il/ZdshHDm2zLserU ydTRtMeZvtJCx0hhF+rJENy+LkGTRO3U17BXpf6FlM5RQwkqM5LQWGDLVuyWCnRLMDAd Ir7A== 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=IDnhi2MxHDPqhcsbyRznzpXsnFp4P/npzVTkA5anp34=; fh=FeRN/VlT8nZO9je/Eo+cW7q2digEBCbI6cdF04U10h0=; b=KDn2+Ftj4Kh4Ljd26GVvejEfbH0iDZRNUH0xs3kAfXbPK0MmfhDV1GkXsTNrOYw+ni q8OB7HIBPEoitu7SDGMfOKIMht2CnuHs7nDv5M2K5vkrqYR+YatOSmYwPfXqRfstISXQ FulZSvWJ2ijIsmQlrwFifUnqp1irjRO+nJOCN3m78u7CfP5XMmgVNf7yTRTYFOblWdUV 380I1c/nvLYPjwdcT6bJilbWgK9Z8q1ZByKfmrAA28JQiJg4ioX65SJq53VKz/ti+GRe DgcEUIMW9AGlXHXpEZT8nNPlz/LztsjQJE1NyUdcmq6dWHartJMnTbNCP99blgiTQrob 7w5A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=hlgTSLyf; 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-4a435a2161csi121137051cf.378.2025.06.03.04.06.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:06:05 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=hlgTSLyf; 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 1uMPRa-0001ji-2e; Tue, 03 Jun 2025 07:04:37 -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 1uMPPQ-00084P-Ee for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:20 -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 1uMPPM-0002DQ-Fz for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:20 -0400 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-604f26055c6so12323801a12.1 for ; Tue, 03 Jun 2025 04:02:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948535; x=1749553335; 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=IDnhi2MxHDPqhcsbyRznzpXsnFp4P/npzVTkA5anp34=; b=hlgTSLyfu4rRRD5qdidZpRtzgYiVrgiJpU9Dh9kNDu1Jz1RjS4EDVogcFTT4bwMc4B ppdbkLsagSRBlsfC2nkLb9yoRQ/YjCKxD0DTL2865jxo6yFQQWhHpDiGewokW3IGp1pg kv8NqlBumPe1LgCyy0XWGnIql9vADyN3RcjRQqQ5mLtTc388D3nWvPb1dhpOMJr8Tt+A ++3u0ryF1g+KTB/WFKvO1mo12eXBYafqlOeA33SIhwIRtZG1hEQbIBQ7JZNNdxE50W8K C9ZuC3GgdGgc6Xz7H9Bzlvq9xUz45Ftm74rgiT7bS3W4aR9ivpgw2djsE7DRCd9cy0mD DJqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948535; x=1749553335; 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=IDnhi2MxHDPqhcsbyRznzpXsnFp4P/npzVTkA5anp34=; b=QKNYaowdKdRjgbYKu645bzeeXybjLQXghBZ14ZUPZcbfMAbn2piA/bicZbPbz2tovf rOmyV0cYN9mxgJ676eCFbQEbfXYPYBZsymyydEWSs+GxLWe0Xa+7+pdVgXpT5MNFp0/P /R4v/mGX5EOWtVyyRXCFm9ciRLXOntdveISvn76DneMupV1vBroVT4eM7GnhWk/L4+IX YKVJI+32C77rVyRynrM9/WG83kooLhme/tt7rt1oUqZ5TF2PUffj8bEzxxaVxegEEyYo xiK/xWH699V5NkKSrcn8cKZ54XECf6Xo7EMTu2d4u5+OHhxqmhU/f76yIARDr2vY8G/N Ng7Q== X-Gm-Message-State: AOJu0Ywo2ikls7J3BBMDQIA/lmfrcrjms7y2l9iERlGeX7Azs6WmfVK0 E3P+vGOQPgb9gICAD7yVkgPNDurLe2CavNGDW+ebcSWeLrxBE74XdS9+743JHFZfAd8= X-Gm-Gg: ASbGncsX086A/RaCJTElQo1X8MQWzMLlcYaVkP5Ud+sk51l5nBSAFf4Y7Q3jHi0Ps9P Mkfu/3Cy+wcUAOksGtt3L0HQnRWI+WZhtpiBxhHnVhDBEwitXMTp2BhzNf3k+1oMNGUOjOenT5D 8dwbBaOKdjUIcPnmIDZQTJBmpo8uaomvw/hR1J0jovYUTQc3F1zXOQ3VOrHeXadTZm7bdLQGh/r OhmdNn8hwrIjPPmKYrL5rVPAQSTn0wdWNL5/q5aTTW6f4x6RYN0ns4JBQv9LQ/je3iR9nWhzJge bT4rTzuOzaVt0MvhZfZzoN7Jn9bl4aKyZ9aZtHjOQNopMlURE4ub X-Received: by 2002:a17:907:96a0:b0:ad8:8b49:57d4 with SMTP id a640c23a62f3a-adde66fc817mr239693566b.28.1748948534877; Tue, 03 Jun 2025 04:02:14 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5d7fed8bsm939567666b.28.2025.06.03.04.02.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:13 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 4D8065F9FA; Tue, 03 Jun 2025 12:02:06 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour Subject: [PATCH v4 15/17] gdbstub: assert earlier in handle_read_all_regs Date: Tue, 3 Jun 2025 12:02:02 +0100 Message-ID: <20250603110204.838117-16-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-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 When things go wrong we want to assert on the register that failed to be able to figure out what went wrong. Reviewed-by: Pierrick Bouvier 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 Tue Jun 3 11:02:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 893869 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp239589wra; Tue, 3 Jun 2025 04:07:36 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVbLkNLFgSkuB7SvcyDIDwW2scRARDu25ssghVbVaKgzpX6jADSQZ+H9+uFImrGr09oA77tlg==@linaro.org X-Google-Smtp-Source: AGHT+IHSdTiQwEPxQnfbut5Cs2OucAEXMe7GlTHN2h5b7R7lqzocI6KrLAOzyRn9CFayIC/NdV1S X-Received: by 2002:a05:620a:1aa1:b0:7ca:f3d0:e7c8 with SMTP id af79cd13be357-7d0a4e575a0mr2477854085a.52.1748948856513; Tue, 03 Jun 2025 04:07:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948856; cv=none; d=google.com; s=arc-20240605; b=ZBnWJf41iQMrRagZv8Jxy6Y2bjLoDAaLDTyGPZNtIz8PTGnVbEwQgaF4KL5s/ac1+K /Qg/HS+fM9Jo0pGKRQwPVLCdifqjSOk28v8k0eqFQs7fC0COW38urbIWTWSZxeIj7pHb iICMY+E4n04DQ+5KO2KUGl94L9WMUR8gQCLcuzJW2SE9kSgEZzW+PZ0R6WdiaSCb5dkG qGewLas/4RusiE+hAm/G5L32eVSFFQhjYrFpQwRCjp+J1eN8NkeFPso2Ilkj3PnphnvU li54u08A1XFALmNcTIPLEqB4Kdwb636j9oeHq+VDpf9fULPk4Ux2/mnzp5q9Qn4vig3S 3w8A== 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=N+3L2/wLcre7jg5dlEKP9ZB3nWCswz5e9AJ/LdiDVCw=; fh=IO9nN3RhMyuG1bUrXOfJQobLQRiamQz5FUf6uEuyNm4=; b=JpgCmfsr3nqqu1I7CTi6InhqxFPNFGf0G4MrnHZzZYQCCC2IwBT0v8ugN2usbCkxRk faZVmqZ3Uv5y99IEK+yEsAYhf96HvGb1B6tvdlmf9RwBIlfsZBmgdS5yvI5gLYN42TMM JukhpNznchE8SidLWV35A1qjT5SVRapBZ9CEc1islsFiu672SFrqMvrl5E0IsQ16cM/U 4wIrDuqrIboKxPXNZhnYv0XHOGhBR9oPncamU677y3xmmHUTZdJU5bOMLVB3IMQKgpjk ZzMUSF2DFaRtmwOjDkkgnBmarS69L86KG42nZZHJLVmqbFBn6O/gKZDypW4IkLlhsqbO RKhA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZqnuYYJa; 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-7d09a10ecfasi1237497385a.113.2025.06.03.04.07.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:07:36 -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=ZqnuYYJa; 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 1uMPSm-0003iE-Vz; Tue, 03 Jun 2025 07:05:49 -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 1uMPPR-00085H-JJ for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:21 -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 1uMPPN-0002Dk-1R for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:21 -0400 Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-6055f106811so7817153a12.0 for ; Tue, 03 Jun 2025 04:02:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948535; x=1749553335; 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=N+3L2/wLcre7jg5dlEKP9ZB3nWCswz5e9AJ/LdiDVCw=; b=ZqnuYYJabNaNav2+vUFbs0PkSlIZ45zOhJoomJ9psXCkgtAK6qe8QgnJarqNcFFu91 rX06Uy9spityhryswdVOVt3hTIbRA4vTxIQUbilKBORagbNkOyFb6/5NcqIq6JnueOkt Rag50yeRdWwrMpTZ/pIMKmmGnaLk0jby2qh02Dw+ljNvexa7gFVKgQ61l3KR53XJeEaM IMUDYs9ZlGbIqf1iXUwNeQSUodPb+068JAicy3lrTRkmQGYbZc2WbiXhR5paw9CuIS10 MuBvFvGj1P+AojrQKLFauNC0CD37/Q9VGUdSfPWDWKMKUcHHshP53VycOwiiDpOd0BiT V4wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948535; x=1749553335; 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=N+3L2/wLcre7jg5dlEKP9ZB3nWCswz5e9AJ/LdiDVCw=; b=MJjxYy+XdxV0Gl2Tdp+0V8X/EjmRWjsGelfDZ0fZF99/1+2KtvoZV004+UjssQr7SB i146K0oFPRbe0NiJF79aUFo+rbdsD9AE7oE9IkmBKJFNbJ5tmHV4/GM4mTW0Ww76Ps16 UO/RWqzvQrH0giOhiILLkCw0ugxAhXk1KkYXX/kH6lV9tSMtzDsm3i9xdWxcEGOHcNUJ jw7CyrY+1a267rBk9WYeTohMp0/yN8pM32v6HMmGJkBiYpgVAlRZC7ioa97w5LyQt9Da 3xjNZHH+5/O7KKDYrN2pZKj5NDKcH6nhH9eA3QHqsxi58jRTMMOqBn3fUDXoi1H5VldL 3YwQ== X-Gm-Message-State: AOJu0Yw+63J+t8VPy1ddWISRYB4agShXTeV6ISn/pmAbeA7438IXmHzh Ah/gk1qPUiWt+m+hDkHLypA04sL4mB3/d+fLvYXSF/t5he2Hem+LmSHNM+M4yLmhvR8= X-Gm-Gg: ASbGncsobOem7XWdUulJCTHLqSZIJ6M6kRsFidxwiRbMXSg8/mbEocc8sI36aD3Ct5X uMfjB8uqScZE6sYmJBT7gU+DytjdSZuyZn7Li7sCTERmISpZPlM/yFkOzPymP+omdECRooNKPIF 6/Vhhc7Yuw9hibIPADT9iHH43GxE16V4yhRzDAcjwYl3HXFs0kwFnbseeQVKeGEU1oP6xc25qMb E1m7IjrNFMsUCCWeT1bQTq33Qq+OwvKtW4c+9OstPlxO9jOxT7PR8u8tL6P+9ib1lqcuyXlRDxS 4Udot7VivoZjkUegzVzTgXUPSr0k4ALHBv7MeIHriAALqClZuOfd X-Received: by 2002:a05:6402:13cb:b0:602:2e1d:5c41 with SMTP id 4fb4d7f45d1cf-605b7512e33mr10914796a12.7.1748948535192; Tue, 03 Jun 2025 04:02:15 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-605671442d3sm7315460a12.51.2025.06.03.04.02.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:13 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 62C705F839; Tue, 03 Jun 2025 12:02:06 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Dominik 'Disconnect3d' Czarnota , Patryk 'patryk4815' Sondej Subject: [PATCH v4 16/17] gdbstub: Implement qGDBServerVersion packet Date: Tue, 3 Jun 2025 12:02:03 +0100 Message-ID: <20250603110204.838117-17-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-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 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 Tue Jun 3 11:02:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 893868 Delivered-To: patch@linaro.org Received: by 2002:adf:a2d4:0:b0:3a4:ee3f:8f15 with SMTP id t20csp239420wra; Tue, 3 Jun 2025 04:07:13 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVSr1N/ismbOly0mN6ijbji3mQlRN9rMIVJ7LdV0MS7nZ3eZVgCSg+m3cMs2TIBuffv34Ih+w==@linaro.org X-Google-Smtp-Source: AGHT+IEhZj13HtdWa3vmOVDPkS1495DInXE0H+4RSOzyz3dxuhH4q1zRK6HCCX+xcKWoeoNuD/BR X-Received: by 2002:a05:6214:3011:b0:6fa:c4cd:cca3 with SMTP id 6a1803df08f44-6faceb80415mr272377876d6.14.1748948833104; Tue, 03 Jun 2025 04:07:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1748948833; cv=none; d=google.com; s=arc-20240605; b=ZMR4QWq0V3AjXCXXvLgQ1LbdqBruJa9R4DALxVHF9oPXcCuQykWbvPfNRHDUqSw2ST qGdPjju2IrhH99GKcFuF5J9Hw8mxn5x0gpl2O/ZW2JLcD85Cvayw7xqb5beAuxSq8PiW Q4XIt+AYdgvze6vo5zcjkj5KZ4EezxQlzbn8cb5KOcKWy/C//X3iHvih/GHo87XPm7Vp 058DL1NVwlA3WsmgwlKUDbyKjJQmiqQml7GPkOKHvXCEZKzmBk5YwN9Ul6vEB48qb8iz s5RrKqLHcDJ8Z0jNlUuXfltYuOftW8kGp+3jIFomSdlVnymWdzpChrcco3h0PxZJwftW +ylg== 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=BM91DYmyhd/whlHWSkAx+XEJzxYMIFdJJZyTAcb4rl4=; fh=muDsnxovG+AgPp9M1DAPPT8EFVceeZP8cqjPS2ZpXps=; b=dS94/xX7DxVhcnxIKki9zxJwIu5DWRLs7D80Lh5g88aX4hwRlJ3pFnVtKQt3AmJr3Q b2CNANQ5vnK5JGhJiIjXzEYgQvS7x34ft0U991+owemMvXDx/Y0Wk2Y1kiHzzxv1Fkb7 Hef+ojtgE4hUzpyMa3qO7BndaooX68rPmCVP+1nu8Kh6c9uMr8rId/d3tdcavixDry9r TzkpaIfcektyHRDBJIOAq+Ge+c/vU6NcApWfI9aE4TxkpfVclnhMp86+CwHTQ89oCRCj jM4XaWdZHTy5RUMVFaSwZRxL3Rlh0YJcZMISB0quKtBpP6TpjSAJBCiOvuRtGw27hTGC qurw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=i8PrxLVB; 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-4a435a28acfsi123072621cf.409.2025.06.03.04.07.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jun 2025 04:07:13 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=i8PrxLVB; 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 1uMPSq-00045m-Ct; Tue, 03 Jun 2025 07:05:52 -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 1uMPPT-00087J-3e for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:23 -0400 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uMPPN-0002E2-FG for qemu-devel@nongnu.org; Tue, 03 Jun 2025 07:02:22 -0400 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-acacb8743a7so1055706166b.1 for ; Tue, 03 Jun 2025 04:02:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748948536; x=1749553336; 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=BM91DYmyhd/whlHWSkAx+XEJzxYMIFdJJZyTAcb4rl4=; b=i8PrxLVBzIsWtswU+KvuZ4yy5/XNNxGxmYzeCtIj79ICAPgCVqW3/aJLBkMuvRVb5x 7DPz1/aH8r7TzJZLo2EGnQWld3WFQmAh5/PVGCB5gaPL75L9xj5VcK6UrOuz4jNX9w9U ApmxWVI5wi0ugxveZP9onUkExHnVzK1arn7+yi3P74WCg/sotQ+upjv51HtfStQZT+Al uIx6FxSFYm6jwaFden+gakJF9QsWwQkMta+wO2IBc6p4had/2+QVOKrHklDDiPKCtoGu gQX/2Qwl2BXrgTj9cEsHQeJFPSm+MGD4NplRNB2rJZ0/T04TL0M8+OYgYsm2N+Go4U57 hNwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748948536; x=1749553336; 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=BM91DYmyhd/whlHWSkAx+XEJzxYMIFdJJZyTAcb4rl4=; b=BeDd+6QXzGsx3NBF8GKDHMmz42OgNGLIzZ9e25cSblitZvqyG1RkEHER0SCJjD1BWm hxwqdSgBbVK/W1pAYhzgGg4C7uSFwMFrFKtU55JXbm2PYV+JazIC5LQ3WqBAQ2ogu/Tq K8ww4jbnqZzCC4kfy5KZ6OhHja06ujqmZn1jg4EPRmtfrePF4iP2SbJs8wmFQsFqj4+L fUwGJwhyivNzvrHVWRHZ6QTAC8aPQvwgVs9Lh4MJd3Pf5gs5SGYrTsy9tafmwwhdhQMr WnvgoE3VzEEF4HIUPdfKGFG+5Z/SLzlPPQQqYVyiAHxTIjoXdYcS/3VUR4142P66ulcQ BWqQ== X-Gm-Message-State: AOJu0YxJdndPkA0reRTUKdsKeal2f6Gnb4jAOLN3ES8Vl+LG6D90HYgz WXpvBQQaidYZxAjkxu4Dh1r2GW5ri4fha/5D1/bYbc7d0dX+2u8vskL+xooBIE0q3Dg= X-Gm-Gg: ASbGncuE9SyI0i3qg+IaKFUkLMys1YviaOYN0aqITq1xeoryCIQR1oGS07IVns88inx 59GVKxNkk0Nkiw/6IQFN53I3hpUxu1Bbadq8xth+L9owRGyXEr7N43mWO9lFOsqv92TZ7JgZRNS a9peagVt68DxhQqpOCj8cnUAfSmA37zRf5bOhswzX3RfxivzKwpuslI4mXRNb1gZPii35/wWzFu L/1DWZp/iL7Atj2jkmgwsKjoNAxDP4eSp9e3a+obdnCAg7sYUy5DVr8+BkClE0/PDbaC2E5XFzn MTTPXhdtLEjLHkYLM+yyccNIz//mMDT0Z5UwF2h/hDdYc/w3JoDi X-Received: by 2002:a17:907:8694:b0:ad8:5595:ce07 with SMTP id a640c23a62f3a-adde66ca1d5mr167272366b.19.1748948535778; Tue, 03 Jun 2025 04:02:15 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5e878152sm938855866b.107.2025.06.03.04.02.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 04:02:13 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 795095F9FC; Tue, 03 Jun 2025 12:02:06 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Sriram Yagnaraman , Akihiko Odaki , "Michael S. Tsirkin" , Dmitry Osipenko , Paolo Bonzini , Peter Maydell , John Snow , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Pierrick Bouvier , Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Fabiano Rosas , qemu-arm@nongnu.org, Thomas Huth , Alexandre Iooss , Gustavo Romero , Markus Armbruster , David Hildenbrand , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Laurent Vivier , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Mahmoud Mandour , Manos Pitsidianakis Subject: [PATCH v4 17/17] gdbstub: update aarch64-core.xml Date: Tue, 3 Jun 2025 12:02:04 +0100 Message-ID: <20250603110204.838117-18-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250603110204.838117-1-alex.bennee@linaro.org> References: <20250603110204.838117-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::636; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x636.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 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +