From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627121; cv=none; d=zohomail.com; s=zohoarc; b=YmyPDcaXAd2O1LOW7TXi82EANldx+y3riOQARlV2HkQKVCw23f3yFDddduX2eEaeaI2k7M4V8rF3AIFU4nRFVYPb2NlW5zRPTpaNkrwZwbeFMK/AcguGzg5c57bQcAawG2P1m/OzdaxPoceGZwMorAOTkA6GzPdBPrKBVOl1gFQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627121; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=EO8zY+f+eRKXz2hwkLNT6XbeCb6L/izof5+RV6C6SZU=; b=DHpKsAHh6fuYPrf3E1IhyaonykbxZaZJNNX0UtBls69NV9Jqhcozhxytqo0dENXlC7dLzKTiHjVN9sOLm4HG/3PRioDRrV/TyoBPPW4zzj56QCL2U/y5afZNbSNTp5giDxqDjaroOE5QKN8hIDA9f6E87qTadlJA9LquRSkRXhM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760627121442167.5721579444289; Thu, 16 Oct 2025 08:05:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PWa-0002Cm-2p; Thu, 16 Oct 2025 11:04:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v9PWY-0002CF-TS for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:15 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWP-0001AQ-8q for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:14 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-47117e75258so83775e9.2 for ; Thu, 16 Oct 2025 08:04:04 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4710f28a920sm21361185e9.7.2025.10.16.08.03.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:03:59 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 8C2245F87A; Thu, 16 Oct 2025 16:03:57 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627042; x=1761231842; 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=EO8zY+f+eRKXz2hwkLNT6XbeCb6L/izof5+RV6C6SZU=; b=aIAhFNZHi8uracppwjbLISKwfsxFQWFzRd3bZIL8alzPEoe0233AYGMXfd7RGlA7MS DYH5CaIJo6BLS69oqA49RJYXrYW6WipWSNWFSJ7TMe5qOGtksPIiQWlloN3lFXZBg+6Z 6YRsFjDMf+iqpFuIDXPvqrdhe2WBvaB6vo16fFMH5iB919TNT5cWOmU9vuEdEKgzBWLu Mxx32IjB3cPfh+/su3oLhLoVsrqxpHtQbfex02k1Ut+3zCt6ATsmrzpJtKCC/tb2wfI7 0Q5hjq7Iy907EHNm4NzrC1PGhE5fmjpBG+pNdm+g/PSV9zeQZ4NWqAGVhnLgZgQf36tr PjKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627042; x=1761231842; 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=EO8zY+f+eRKXz2hwkLNT6XbeCb6L/izof5+RV6C6SZU=; b=adyQSmtASoh1OPZHeQ6Ij0ioNYxDPhjbVxnSEggsjFwsUVW3NUMUKE1d4MQSExdpX2 ukLzCIB197/Tq/oQRarMrhg+FHFm6qxHySSzucIMGbQM95BQg5CvoXrlgrjMfSHYSUqk 2p13QGqGY4bp138YKplHk4a16OuwAgmfzhKzzAU1sNHJv7i+Mo0GgqAR/zRm0+ddeAWz 5iauwFDXmE46vXSCRkVnXK86UaEM9I6d1jFit2jdxWL8lux4buILqIMREZDWAClR0Ybf o4YRRTdsNaMyYDjDEzb0ZzAKVu9HJPZr1lQzHLpuFaDRi3U+F2dApK2jQX4+PXcOqObm IjTw== X-Gm-Message-State: AOJu0YwKa9DpuwNprqZYsQvgjI83+pv99XkxFlyNgur+b5aie+nQmGGV JcxR3XlXe9A2GAsEAAckh7DR2r7ZcC1zSIXyKCkwDehGMPcyCJ1Jj2Aq7qjtQtSZVdk= X-Gm-Gg: ASbGnctSo7YE1qhduuVwye/UD5o6dafixdePhWKI1aGOje/jN8W9bdlRWG8nUg18QTf IQinA4uRtts5XyDbsb74fi59oKEbOSUZSPLjdUZg+bFBZSPc3CFxLcoZJVZpQp46g33n6FdJycG FatB/oiRE7f9iBSgUsGN/n7P15kDfMMzXs0/7ql67wp/pBi1uLSWygImUsnuYng26g9drPDIOaK HJtneZosR9ivU6FvjaLhU3kvV+No7lrc8GztvYBbUFqc1/jrlT9sgnLkbV/bsW2EoTAhUcePxW4 jEcuTGfjsPgim5dPsP8p+0ZSL/Z58Vh/o6xAeHZh4IN09g4u48nH/knRoldYRlSD+WQyUL8OCIY uoKj7GNxnhIVDAoRxJZr3q1QexqctuopPv34QgwPxG3fwdK0YLOg8Y9S8oJTitdX9qoHGgK6TIp 2KHG2VTlM+RbE= X-Google-Smtp-Source: AGHT+IGIZvjzA47nkAowGslp4cd0HOEMBBO80cepdDIGX03OPwrZ5tK31tlJpdKnPlF1bdv608L+dg== X-Received: by 2002:a05:600c:3513:b0:46f:b340:75e7 with SMTP id 5b1f17b1804b1-471178748a9mr2504435e9.8.1760627042213; Thu, 16 Oct 2025 08:04:02 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki Subject: [PATCH 01/11] gitlab: use template for ubuntu-24.04-aarch64 jobs Date: Thu, 16 Oct 2025 16:03:46 +0100 Message-ID: <20251016150357.876415-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x329.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627126959154100 Most of the test is pure boilerplate so to save ourselves from repetition move all the main bits into a minimal copy of native_build_job_template but without the caching. We keep all the current allow_fail and configure setups but do take the opportunity to replace the -j`nproc --ignore=3D40` hack with something that almost, but not quite, saturates the machine its being built on. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- .../custom-runners/ubuntu-24.04-aarch64.yml | 230 ++++++++---------- 1 file changed, 96 insertions(+), 134 deletions(-) diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml b/.gitlab= -ci.d/custom-runners/ubuntu-24.04-aarch64.yml index d26c7827f45..46db9ae0138 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml @@ -2,150 +2,112 @@ # setup by the scripts/ci/setup/ubuntu/build-environment.yml task # "Install basic packages to build QEMU on Ubuntu 24.04" =20 +.ubuntu_aarch64_template: + extends: .custom_runner_template + needs: [] + stage: build + tags: + - ubuntu_24.04 + - aarch64 + rules: + - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANC= H =3D~ /^staging/' + - if: "$AARCH64_RUNNER_AVAILABLE" + before_script: + - source scripts/ci/gitlab-ci-section + - section_start setup "Pre-script setup" + - JOBS=3D$(expr $(nproc) - 4) + - section_end setup + script: + - mkdir build + - cd build + - section_start configure "Running configure" + - ../configure $CONFIGURE_ARGS || + { cat config.log meson-logs/meson-log.txt && exit 1; } + - section_end configure + - section_start build "Building QEMU" + - make --output-sync -j"$JOBS" + - section_end build + - section_start test "Running tests" + - if test -n "$MAKE_CHECK_ARGS"; + then + make -j"$JOBS" $MAKE_CHECK_ARGS ; + fi + - section_end test + ubuntu-24.04-aarch64-all-linux-static: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - aarch64 - rules: - - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANCH = =3D~ /^staging/' - - if: "$AARCH64_RUNNER_AVAILABLE" - script: - - mkdir build - - cd build - # Disable -static-pie due to build error with system libc: - # https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1987438 - - ../configure --enable-debug --static --disable-system --disable-pie - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc --ignore=3D40` - - make check-tcg - - make --output-sync -j`nproc --ignore=3D40` check + extends: .ubuntu_aarch64_template + variables: + # Disable -static-pie due to build error with system libc: + # https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1987438 + CONFIGURE_ARGS: --enable-debug --static --disable-system --disable-pie + MAKE_CHECK_ARGS: check-tcg =20 ubuntu-24.04-aarch64-all: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - aarch64 - rules: - - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANCH = =3D~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc --ignore=3D40` - - make --output-sync -j`nproc --ignore=3D40` check + extends: .ubuntu_aarch64_template + variables: + MAKE_CHECK_ARGS: check + rules: + - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANC= H =3D~ /^staging/' + when: manual + allow_failure: true + - if: "$AARCH64_RUNNER_AVAILABLE" + when: manual + allow_failure: true =20 ubuntu-24.04-aarch64-without-defaults: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - aarch64 - rules: - - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANCH = =3D~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --disable-user --without-default-devices --without-default= -features - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc --ignore=3D40` - - make --output-sync -j`nproc --ignore=3D40` check + extends: .ubuntu_aarch64_template + variables: + CONFIGURE_ARGS: --disable-user --without-default-devices --without-def= ault-features + MAKE_CHECK_ARGS: check + rules: + - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANC= H =3D~ /^staging/' + when: manual + allow_failure: true + - if: "$AARCH64_RUNNER_AVAILABLE" + when: manual + allow_failure: true =20 ubuntu-24.04-aarch64-alldbg: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - aarch64 - rules: - - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANCH = =3D~ /^staging/' - - if: "$AARCH64_RUNNER_AVAILABLE" - script: - - mkdir build - - cd build - - ../configure --enable-debug - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make clean - - make --output-sync -j`nproc --ignore=3D40` - - make --output-sync -j`nproc --ignore=3D40` check + extends: .ubuntu_aarch64_template + variables: + CONFIGURE_ARGS: --enable-debug + MAKE_CHECK_ARGS: check-tcg =20 ubuntu-24.04-aarch64-clang: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - aarch64 - rules: - - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANCH = =3D~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --disable-libssh --cc=3Dclang --cxx=3Dclang++ --enable-ubs= an - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc --ignore=3D40` - - make --output-sync -j`nproc --ignore=3D40` check + extends: .ubuntu_aarch64_template + variables: + CONFIGURE_ARGS: --cc=3Dclang --cxx=3Dclang++ --enable-ubsan + MAKE_CHECK_ARGS: check + rules: + - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANC= H =3D~ /^staging/' + when: manual + allow_failure: true + - if: "$AARCH64_RUNNER_AVAILABLE" + when: manual + allow_failure: true =20 ubuntu-24.04-aarch64-tci: - needs: [] - stage: build - tags: - - ubuntu_24.04 - - aarch64 - rules: - - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANCH = =3D~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --enable-tcg-interpreter - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc --ignore=3D40` + extends: .ubuntu_aarch64_template + variables: + CONFIGURE_ARGS: --enable-tcg-interpreter + MAKE_CHECK_ARGS: check + rules: + - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANC= H =3D~ /^staging/' + when: manual + allow_failure: true + - if: "$AARCH64_RUNNER_AVAILABLE" + when: manual + allow_failure: true =20 ubuntu-24.04-aarch64-notcg: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - aarch64 - rules: - - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANCH = =3D~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --disable-tcg --with-devices-aarch64=3Dminimal - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc --ignore=3D40` - - make --output-sync -j`nproc --ignore=3D40` check + extends: .ubuntu_aarch64_template + variables: + CONFIGURE_ARGS: --disable-tcg --with-devices-aarch64=3Dminimal + MAKE_CHECK_ARGS: check + rules: + - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANC= H =3D~ /^staging/' + when: manual + allow_failure: true + - if: "$AARCH64_RUNNER_AVAILABLE" + when: manual + allow_failure: true --=20 2.47.3 From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627217; cv=none; d=zohomail.com; s=zohoarc; b=Ag3+Gm3+CR7TADtfFKNMNbxK69ztxRL4oq/ESQ5kIFu1exCCNFGMYzzu3UTAs3x/0kZEAuxi1HImGstoSjmOhtdVZJ5m8tTyMptv2GCECWanvTTYkK+Px7JOtSruz68PigoszOPsAFzfVdXfIVsGOlJc7UCxzvFXJJSw4vOwvbo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627217; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=W0x6s7dJTtXqf7qyTS5AFXH1QH8sqfuQfSpFJBVT5Bc=; b=XTDZ40IsL2wltgWVwQzcA1xnBdqfNkwXfv9dEZILON6CGr6Kuoq5GkEn5sR+tKS/pZw2D8HmccYrx/GIq+lzFdvg2X/I0s7ObsOkA/6YgWU2i7zJvypnIaJnMUo0FoHrdnNUMc71wF4i8VXeLhr7GDfJbm3sOMXp81wvO86n5HE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760627217735270.72843834919433; Thu, 16 Oct 2025 08:06:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PWT-0002Bj-MI; Thu, 16 Oct 2025 11:04:10 -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 1v9PWS-0002Bb-Sy for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:08 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWN-0001A4-Tw for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:08 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-4710ff3ae81so3418375e9.0 for ; Thu, 16 Oct 2025 08:04:01 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-471144b5d48sm32265055e9.9.2025.10.16.08.03.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:03:58 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id A823F5FA6C; Thu, 16 Oct 2025 16:03:57 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627040; x=1761231840; 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=W0x6s7dJTtXqf7qyTS5AFXH1QH8sqfuQfSpFJBVT5Bc=; b=jNrFEw5zFoC4gfUn9b8BU/j4vVgGo7ik84gEea8iHj84xEC+OyVjRyZuyjsliEs9X+ W9rTmGVR61C4xnQrVAShp4guC0ms4HTkymgBJ2P3iGvzyXFusNkxjHuPHZM++wHKzq0r gxd5R90z2TBXi8gLNf0+y24Kb+53E2OIAQbV0+RRTlfSAFxK0V4S8fI25Atxzm7WIj4y K5AuE2nqF2slXuLAdZUsxqiLC++Z9MlV1Z4bvic/wldwImQqOKp9tjfsTkAdOZEDcWWF tjoWh5gtAcRdGAPDFhMFuQzqPiOHuZo+ReMF/GmbROO6Pg1R2HohtQrstXJLtgN5rKIh cWmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627040; x=1761231840; 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=W0x6s7dJTtXqf7qyTS5AFXH1QH8sqfuQfSpFJBVT5Bc=; b=a3wbZJFO1BLkiJh0zQ0fyoaFjwuIX7//CBpYKOOwwyn8AFsnavXC79Vsx4VrDPEkBM Y67MVtjOsaXyLj3qBgRH2Y2/qc57LfKAWpvGsjHuld9gVyqa/kx/lEi3QLG4HxPDrhyl c17asIfN9Bh2PtpllBYz1GtDbyuTwa29xuj/LT4MSWXFrQWxl8QjXJS0Im271AU04OuB SRC6Mma/KNlNUbTd8HHknHCISG+y85JLqDfKNJmmlXkVrcBqJXbR5yiToHXJ8qXV0cd7 z8ToWoGVH2f7pXE0K0ZJCnHl4jXHuTK+fIRCZ6ImsUJKLiK82G2Yf04l5M24Z8D2mrED q8Jw== X-Gm-Message-State: AOJu0YwZcuYAaQiPgviMwC0KvKYVVvWHUFkEytxkRCLvIS8xi0WVE9At i42CzpjDe4FoXS/hzdcBJf1r9WRGXyd3pPilrqUAd85sJqOJyGuYpzbLKQNecWuK+Ak= X-Gm-Gg: ASbGncuTLmFHMg0ZjFY+Ebe4D0QvL4BxWsF5wrIJr2JVNY5VIrbF6tGPctR2xRLkn4z cCEiz1Ubkh3IFaLeEvjVeHKO1nhqIzlZGKucirZ9mSZ9SO4oAqE677Usm06LK+aztjf2s6zQiQ1 g4j5pNb6VLH1SvW8VXqoMeFcSe+CYQsIV8iys7ZpxcHFlOASnFKGrE/7RRKUN09Admo7Fn1Cw3o um30Nxha0AJoXd4YO7zGSjiqFfwS+hsL4lYwhSpMyqvkh3k5lj/bXmHa3RQOBnlMhyp8kWk1Xn8 40MqrO8jbBHd1NeS1JR2RVNXtq/jbcUDa3zH1pL/lJ9Ko7pyug1WkWpVcea+AEujrIG9xcX8lEW FZrNS9p3chU7+3rUwoY+dHL34t1ibz1+NlVBlVVdzBZRv4N0yu8597NYtUy8HfGjQMXT0jRiZZT CRGUKQ X-Google-Smtp-Source: AGHT+IGaotG52V3vLou9TtMvJuKkTHgM3OvrcgXpKfg2DViKUrt9lJlvcdKa52jx1kTc293B1y4MIQ== X-Received: by 2002:a05:600c:b8d:b0:46e:1a14:a81b with SMTP id 5b1f17b1804b1-47117925ce1mr2242205e9.36.1760627039801; Thu, 16 Oct 2025 08:03:59 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki Subject: [PATCH 02/11] gitlab: drop aarch32 runner and associated bits Date: Thu, 16 Oct 2025 16:03:47 +0100 Message-ID: <20251016150357.876415-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627219113154100 While working out what hoops to jump through to get a full set of aarch32 packages installed on the aarch64 runner it was pointed out 32 bit host support is deprecated. As the extra packages where needed for system emulation (marked deprecated since 8.0!) there didn't seem much point keeping this in. While the full expunging of 32 bit host support will probably be done for 11.0 we can at least reduce the CI burden a bit now. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Pierrick Bouvier --- .gitlab-ci.d/custom-runners.yml | 1 - .../custom-runners/ubuntu-24.04-aarch32.yml | 25 ---- scripts/ci/setup/ubuntu/build-environment.yml | 17 --- .../setup/ubuntu/ubuntu-2204-armhf-cross.yml | 127 ------------------ 4 files changed, 170 deletions(-) delete mode 100644 .gitlab-ci.d/custom-runners/ubuntu-24.04-aarch32.yml delete mode 100644 scripts/ci/setup/ubuntu/ubuntu-2204-armhf-cross.yml diff --git a/.gitlab-ci.d/custom-runners.yml b/.gitlab-ci.d/custom-runners.= yml index 3eb8216d571..142fbf4a242 100644 --- a/.gitlab-ci.d/custom-runners.yml +++ b/.gitlab-ci.d/custom-runners.yml @@ -31,4 +31,3 @@ include: - local: '/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml' - local: '/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml' - - local: '/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch32.yml' diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch32.yml b/.gitlab= -ci.d/custom-runners/ubuntu-24.04-aarch32.yml deleted file mode 100644 index 75029c9187e..00000000000 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch32.yml +++ /dev/null @@ -1,25 +0,0 @@ -# All ubuntu-24.04 jobs should run successfully in an environment -# setup by the scripts/ci/setup/ubuntu/build-environment.yml task -# "Install basic packages to build QEMU on Ubuntu 24.04" - -ubuntu-24.04-aarch32-all: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - aarch32 - rules: - - if: '$CI_PROJECT_NAMESPACE =3D=3D "qemu-project" && $CI_COMMIT_BRANCH = =3D~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH32_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --cross-prefix=3Darm-linux-gnueabihf- - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc --ignore=3D40` - - make --output-sync -j`nproc --ignore=3D40` check diff --git a/scripts/ci/setup/ubuntu/build-environment.yml b/scripts/ci/set= up/ubuntu/build-environment.yml index 6042750cb4d..0f8ec5fab04 100644 --- a/scripts/ci/setup/ubuntu/build-environment.yml +++ b/scripts/ci/setup/ubuntu/build-environment.yml @@ -47,21 +47,4 @@ - ansible_facts['distribution'] =3D=3D 'Ubuntu' - ansible_facts['distribution_version'] =3D=3D '24.04' =20 - - name: Install armhf cross-compile packages to build QEMU on AArch64 = Ubuntu 24.04 - package: - name: - - binutils-arm-linux-gnueabihf - - gcc-arm-linux-gnueabihf - - libblkid-dev:armhf - - libc6-dev:armhf - - libffi-dev:armhf - - libglib2.0-dev:armhf - - libmount-dev:armhf - - libpcre2-dev:armhf - - libpixman-1-dev:armhf - - zlib1g-dev:armhf - when: - - ansible_facts['distribution'] =3D=3D 'Ubuntu' - - ansible_facts['distribution_version'] =3D=3D '24.04' - - ansible_facts['architecture'] =3D=3D 'aarch64' =20 diff --git a/scripts/ci/setup/ubuntu/ubuntu-2204-armhf-cross.yml b/scripts/= ci/setup/ubuntu/ubuntu-2204-armhf-cross.yml deleted file mode 100644 index 0cc34cd10b9..00000000000 --- a/scripts/ci/setup/ubuntu/ubuntu-2204-armhf-cross.yml +++ /dev/null @@ -1,127 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool variables --cross-arch armv7l ubuntu-2204 qemu -# -# https://gitlab.com/libvirt/libvirt-ci - -packages: - - bash - - bc - - bison - - bsdextrautils - - bzip2 - - ca-certificates - - ccache - - dbus - - debianutils - - diffutils - - exuberant-ctags - - findutils - - flex - - gcc - - gcovr - - gettext - - git - - hostname - - libglib2.0-dev - - libpcre2-dev - - libsndio-dev - - libspice-protocol-dev - - llvm - - locales - - make - - meson - - mtools - - ncat - - ninja-build - - openssh-client - - pkgconf - - python3 - - python3-numpy - - python3-opencv - - python3-pillow - - python3-pip - - python3-sphinx - - python3-sphinx-rtd-theme - - python3-tomli - - python3-venv - - python3-yaml - - rpm2cpio - - sed - - socat - - sparse - - swtpm - - tar - - tesseract-ocr - - tesseract-ocr-eng - - xorriso - - zstd - - gcc-arm-linux-gnueabihf - - libaio-dev:armhf - - libasan6:armhf - - libasound2-dev:armhf - - libattr1-dev:armhf - - libbpf-dev:armhf - - libbrlapi-dev:armhf - - libbz2-dev:armhf - - libc6-dev:armhf - - libcacard-dev:armhf - - libcap-ng-dev:armhf - - libcapstone-dev:armhf - - libcmocka-dev:armhf - - libcurl4-gnutls-dev:armhf - - libdaxctl-dev:armhf - - libdrm-dev:armhf - - libepoxy-dev:armhf - - libfdt-dev:armhf - - libffi-dev:armhf - - libfuse3-dev:armhf - - libgbm-dev:armhf - - libgcrypt20-dev:armhf - - libglib2.0-dev:armhf - - libglusterfs-dev:armhf - - libgnutls28-dev:armhf - - libgtk-3-dev:armhf - - libibumad-dev:armhf - - libibverbs-dev:armhf - - libiscsi-dev:armhf - - libjemalloc-dev:armhf - - libjpeg-turbo8-dev:armhf - - libjson-c-dev:armhf - - liblttng-ust-dev:armhf - - liblzo2-dev:armhf - - libncursesw5-dev:armhf - - libnfs-dev:armhf - - libnuma-dev:armhf - - libpam0g-dev:armhf - - libpipewire-0.3-dev:armhf - - libpixman-1-dev:armhf - - libpng-dev:armhf - - libpulse-dev:armhf - - librbd-dev:armhf - - librdmacm-dev:armhf - - libsasl2-dev:armhf - - libsdl2-dev:armhf - - libsdl2-image-dev:armhf - - libseccomp-dev:armhf - - libselinux1-dev:armhf - - libslirp-dev:armhf - - libsnappy-dev:armhf - - libspice-server-dev:armhf - - libssh-dev:armhf - - libsystemd-dev:armhf - - libtasn1-6-dev:armhf - - libubsan1:armhf - - libudev-dev:armhf - - liburing-dev:armhf - - libusb-1.0-0-dev:armhf - - libusbredirhost-dev:armhf - - libvdeplug-dev:armhf - - libvirglrenderer-dev:armhf - - libvte-2.91-dev:armhf - - libxen-dev:armhf - - libzstd-dev:armhf - - nettle-dev:armhf - - systemtap-sdt-dev:armhf - - zlib1g-dev:armhf - --=20 2.47.3 From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627213; cv=none; d=zohomail.com; s=zohoarc; b=HEIwO8Yyp8SJ7qvpCQUtmPTHaZDr1480ENOWq7RHp4O5DsC13yWBtxCIdY1W0J3zWtISdxZf001Y6eXR8Cym55dc0XznSYOuUWPcspIcMMoiwNVIsbFtMRJHo5cj+kQUEzoKW0QQQeja9rVFiOmaq9McIAPFt8zPb1fW+1nE+uI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627213; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ft/uZKRt57FExqDKhDW7vwtqNjqhMjVJExGaxMf3Tw0=; b=hdbFGJAivR20jjrEpgBpSFdrbo/lzX8KjtSEuuZGcKcLYazergBPEQgE0ZS6bBBcnFH/GZK5ceiaqRnk/kQySCqGhwtsR5o0bAet98XCyRUK6uIktai1mdh2olTHDZVxH9CyPnWfxYXn/NpoEiFQEzyRpuucQmaMB7Rw30P+8XU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760627213957980.7159100076623; Thu, 16 Oct 2025 08:06:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PWi-0002En-HC; Thu, 16 Oct 2025 11: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 1v9PWf-0002EF-EZ for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:21 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWU-0001B0-OC for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:21 -0400 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-426ed6f4db5so1223023f8f.0 for ; Thu, 16 Oct 2025 08:04:08 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-426ce5833dcsm34880030f8f.19.2025.10.16.08.03.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:03:59 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id BDE085FA6F; Thu, 16 Oct 2025 16:03:57 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627047; x=1761231847; 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=Ft/uZKRt57FExqDKhDW7vwtqNjqhMjVJExGaxMf3Tw0=; b=nRmQwN1/WARNqQCaEhjebODDL52+pW1s94IRFgBiViEHb5vQuN/8/6aKE62cczbdyF 0ja6vI1rnZaNaNo1Il9Ie/5MH4cGVBc8nP0tMO40DpmJO+uC37m9Jc3Bn7EkhO9Kr0m7 fAeQYpvF8EsxFKsHkBF3u55fK52KFBvO7cElxUS3QsYm2KEuuDOb59/tADnTrNowd69V x8XxasD5t81Rqgy3nuD70AI6LVQ1fe5Uc5OZtASVY7/Lv953jJklBKyMiWagzRGiifPB O34KCnTBMKOmDSpUzwqFzAPWXLeB11XT6R427tIZ2KJpOXQZuIvt4uulipK6HkBnVisr MSKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627047; x=1761231847; 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=Ft/uZKRt57FExqDKhDW7vwtqNjqhMjVJExGaxMf3Tw0=; b=fZoPYfFiF/wE4S9rJ25zOkncCr8J/bPO8qKZUg2cJKjNajhZb75TB72XNe8LDocKmc K7fh1tm2a1nHo/h1VI80+nELiBOCtpo9NIpNZHvMWvNgn1RytznKo41bYJZwrehp+1yQ khZXQO8UbyDVpQXotuYGOjkdUa/UQ+Bl36f/9MyPoaInapv3bbsdLhpWO9EF2KV/h/1S suAzZDaD2Y8HK2wrr5Wj97fj0ud2N0PNwXVLs2ZLr0uewQz9vSZcjFFrOqLTTFIaRHUk UwWnDtYZRL0qn+dogtkkInuZvvNnc9N9R+kl3vByfyxbhuLQRq4Js1XNI7LwqvXI4LVo CuBg== X-Gm-Message-State: AOJu0Yxt0m3cjkIUfnUL6mAJdmxnKjGaXE4GRtH4rE5K9uO6hZ5ksRv7 g7SkFWbfd80OFbYCYKyxsnPdjHnveHh7JX93/iRc5+wunbiv/9OEaPJf01OjLRApkCo= X-Gm-Gg: ASbGnctAH7RASyu4g4e/rDkUfH5pO0lOMPAIN41fHgeYYvincLTs9dma4D5roUywBw5 Lvp8QV46OVq3hWS99qIu87ciw6Av9SagubLU+MiGoLC+qmkA22rlpc6K83slWjDcVDFkEVKlTYo TEThIDDD1auPpN6m2DUOn5h7SI9N4dT/5tLVup6Jl+IWzM9eTB4F2kmCumyUo4g80TUYg1KMTs+ dTZGRNSl8p+O7Olomn0uxPCLi+ZpAxDw4nNiLTi/BRjRF2Mj4kE1/l5BLYZafV55odbv2bC1Eks 063CcQpPgsqMSJ191mbdW4pMLwgx0KGOI8jkQRKG5gW6XIFRfKTttlOcFtpZnPj2Ogr7RNLDeKZ aBid/LvqIIJZ2v1Pss8fz6ByWsYI2KNerjaUlzZpriCvUNkaJApGmSjwwEK2PDl3qQ1QBEMEQye qnWz95WMCB65g= X-Google-Smtp-Source: AGHT+IEhGrVVisZ9mvuZ7HB+x3TwwgOtfFoKj1emarwEoQ+jEgFnV/guR98trF/hd1cU1ZGNXN7t4w== X-Received: by 2002:a05:6000:26cb:b0:415:24ee:60ac with SMTP id ffacd0b85a97d-426fb6a19f9mr3180110f8f.5.1760627040634; Thu, 16 Oct 2025 08:04:00 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , Peter Maydell , qemu-stable@nongnu.org Subject: [PATCH 03/11] tests/tcg/multiarch/linux/linux-test: Don't try to test atime update Date: Thu, 16 Oct 2025 16:03:48 +0100 Message-ID: <20251016150357.876415-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x434.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627215274154100 From: Peter Maydell The linux-test test includes an attempt to check the utime and stat syscalls by setting the atime and mtime of a file to specific values, and then calling stat() to check that the values read back correctly. Unfortunately this is flaky, as it will fail if some other process (for instance a virus scanner, backup program, etc) gets in and reads the file between the utime() and stat() call, resulting in a host syscall sequence like this: utimensat(AT_FDCWD, "file2", [{tv_sec=3D1001, tv_nsec=3D0} /* 1970-01-01T01:16:41+0100 */, {tv_sec=3D1000, tv_nsec=3D0} /* 1970-01-01T01:16:40+0100 */], 0) =3D 0 # successfully set atime to 1001 and mtime to 1000 statx(AT_FDCWD, "file2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, {stx_mask=3DSTATX_BASIC_STATS|STATX_MNT_ID, stx_blksize=3D4096, stx_attributes=3D0, stx_nlink=3D1, stx_uid=3D32808, stx_gid=3D32808, stx_mode=3DS_IFREG|0600, stx_ino=3D21659016, stx_size=3D100, stx_blocks=3D8, stx_attributes_mask=3DSTATX_ATTR_COMPRESSED|STATX_ATTR_IMMUTABLE| STATX_ATTR_APPEND|STATX_ATTR_NODUMP|STATX_ATTR_ENCRYPTED| STATX_ATTR_AUTOMOUNT|STATX_ATTR_MOUNT_ROOT|STATX_ATTR_VERITY| STATX_ATTR_DAX, stx_atime=3D{tv_sec=3D1760091862, tv_nsec=3D63509009} /* 2025-10-10T11:2= 4:22.063509009+0100 */, stx_ctime=3D{tv_sec=3D1760091862, tv_nsec=3D63509009} /* 2025-10-10T11:2= 4:22.063509009+0100 */, stx_mtime=3D{tv_sec=3D1000, tv_nsec=3D0} /* 1970-01-01T01:16:40+0100 */, stx_rdev_major=3D0, stx_rdev_minor=3D0, stx_dev_major=3D252, stx_dev_minor=3D0, stx_mnt_id=3D0x1f}) =3D 0 # but when we statx the file, we get back an mtime of 1000 # but an atime corresponding to when the other process read it and which will cause the test program to fail with the error message "stat time". In theory we could defend against this by e.g. operating on files in a dummy loopback mount filesystem which we mounted as 'noatime', but this isn't worth the hassle. Just drop the check on atime. Cc: qemu-stable@nongnu.org Signed-off-by: Peter Maydell Reviewed-by: Thomas Huth Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- tests/tcg/multiarch/linux/linux-test.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/tcg/multiarch/linux/linux-test.c b/tests/tcg/multiarch/l= inux/linux-test.c index 64f57cb287e..bf6e0fda262 100644 --- a/tests/tcg/multiarch/linux/linux-test.c +++ b/tests/tcg/multiarch/linux/linux-test.c @@ -155,9 +155,14 @@ static void test_file(void) error("stat mode"); if ((st.st_mode & 0777) !=3D 0600) error("stat mode2"); - if (st.st_atime !=3D 1001 || - st.st_mtime !=3D 1000) + /* + * Only check mtime, not atime: other processes such as + * virus scanners might race with this test program and get + * in and update the atime, causing random failures. + */ + if (st.st_mtime !=3D 1000) { error("stat time"); + } =20 chk_error(stat(tmpdir, &st)); if (!S_ISDIR(st.st_mode)) --=20 2.47.3 From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627170; cv=none; d=zohomail.com; s=zohoarc; b=KeK6QFDOVjRhfaRMID9ydgEoQF3uTATeT4EQAyEbVa1X07b9erUHgEzyn6MaQz6wsKMvBksu8FN/U5gp0EqtU2w+5UHIOEsE7Yvf1QHwC9KsPYOhCn/d96HbJb1Oq+Zftq2k7tPY5pfnWT6PViI7QP4h5Cye1UUCRylMZLBD6rc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627170; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=LKX1JcbUUcRo5zoCpPFg8mImjKOb7aFJD3nDg/qhPKo=; b=IoNsmtbRj+V394isPmfBOKqQhhABjBnhDaHohzqo04ZrtRvsh1eOjTk0rErW1PZH4NmCIJILnvRbJ/F+C8/UHFKr0G1iLUX2/7yD/2YfZgFRPOzLykCYwMjg2qlaTuEmFEZJu7rqUK2h8zggZ8hDPPKbh1drPr6TuRY6GTYHMvw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760627170647322.93082382723185; Thu, 16 Oct 2025 08:06:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PWZ-0002Ci-JR; Thu, 16 Oct 2025 11:04:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v9PWX-0002C6-TA for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:13 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWO-0001AL-Mm for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:13 -0400 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-426fc536b5dso470574f8f.3 for ; Thu, 16 Oct 2025 08:04:03 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-426feeb7441sm4722744f8f.43.2025.10.16.08.03.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:03:59 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id D3BA45FAAE; Thu, 16 Oct 2025 16:03:57 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627042; x=1761231842; 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=LKX1JcbUUcRo5zoCpPFg8mImjKOb7aFJD3nDg/qhPKo=; b=Ny5o+O6GeYt0zaIA8ejMj7RNSqc7fUM84tk/fQBc3dl9i5SV0G5145dJgjQh9RF/s6 UECZrFZ/Y1aJpIr5DTHuG78228aFS2tiNp+ZHVVYZXRy8sVHKOGr1OwCpDliO4pvmRDa ZWUv+pRdkEyOhzN3UpKcFT+KcKB8nEBiwy0371z6nRG+A6rCDH1cw4qGL5KhcRvTAax/ mKDP55yuJ6nhYrK9lVHx3F4egmNL4YCpyRsjZKWRHvUxxnYGwPhjzzXKWLiKrjsfkoly 538OBN86XQsEpzKldrpX/6//9Sc1l6YviZnhuajBnKPdg3LLeSC/UMl04MHhn+Ew/doq fFjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627042; x=1761231842; 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=LKX1JcbUUcRo5zoCpPFg8mImjKOb7aFJD3nDg/qhPKo=; b=BXpYoMb48IWOrQSjoFtc42R5CA7DI2j3twvhkdG6fZOKks9T+Y/N/5TERZsCCzViop rgLzuoXvf68cBHv170JXWahefmXy/tSHPeAB9CM/0mbFwkjwrkq2IcpSb5ZNyZT0ocYw brhewkqAATizObNn1lUZasqlQSl1Isk8cgpS+eIAk7ZdFhtsjedzfR1letpSgwAaLNWT kc+yKrvdEQ+z1s1bdVF+ierPX7Qhr6CUsoTLP4yQJIdvYpGj31SqGDfgWHnS+mSs4STM hUIlvSJroXJ/m+45X9c6z7tWeZhqRlXJyjnRBIQq3fSsw38WaiRsSJ9Yvnnm5RmuPfEI q6kA== X-Gm-Message-State: AOJu0Yw3WdAbW7n6kcyAdr/843RQqhWGTOgBYf3LT30AJNTYq3q1TPwY Vq6tA+ybYfcJdl1RZ3UIFP2AO+x5UvlBgodmdV2N02C1OwGjPYb/9HTgYHF/tR1Bqvc= X-Gm-Gg: ASbGncszwYo//KOML1/MFPF2nJP3tQvC22vv9VPJNhh6cq+UqQeTV+n1LOVjPcK6vlx rE4GHi2KBfOAL9q6QCx9ICEzOzgvssWTNmbuRQm8yzgKRZsLykpNu0eqMrdbB8QzfT7FQhZc5ub kNZe5cjYEXo+rEy+SKq4P1zR5N/tEXyVv6uQmq2Dr92UFsrllo4W+aYTz2yhsFrsuHmYjuCBns+ X/Ld89LsfzRtdcZNNpaHi2ahNmSE0bf86CmG7n6O3A6o04HPFlIGXPMn27sQ5q8F2uNbyNNuig0 o7nOJdKKtFuiv96djGljsDnfarNDP4GaQcWQyXvggIJcMXh2huRZOS+omKMBJEeyC3cguj/OqoR pUDBvflHPkC9QU3jdOoBt4PapbWo+vXX0DeQ8x4xN3+kgStPcA1eYJaVhczdl0r1RqKyTZwzn4u VxdICX X-Google-Smtp-Source: AGHT+IG6GNVsampnh5gf3rQc+2jQ/s9xgWyJfv0gSmPXT4OYAEMJYLUMEM/J/6OLcMkvZpqMRhKwLQ== X-Received: by 2002:a05:6000:4b08:b0:427:526:16aa with SMTP id ffacd0b85a97d-42705261894mr181971f8f.58.1760627041575; Thu, 16 Oct 2025 08:04:01 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , Andrew Keesler , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PATCH 04/11] Support per-head resolutions with virtio-gpu Date: Thu, 16 Oct 2025 16:03:49 +0100 Message-ID: <20251016150357.876415-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x429.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627174417154100 From: Andrew Keesler In 454f4b0f, we started down the path of supporting separate configurations per display head (e.g., you have 2 heads - one with EDID name "AAA" and the other with EDID name "BBB"). In this change, we add resolution to this configuration surface (e.g., you have 2 heads - one with resolution 111x222 and the other with resolution 333x444). -display vnc=3Dlocalhost:0,id=3Daaa,display=3Dvga,head=3D0 \ -display vnc=3Dlocalhost:1,id=3Dbbb,display=3Dvga,head=3D1 \ -device '{"driver":"virtio-vga", "max_outputs":2, "id":"vga", "outputs":[ { "name":"AAA", "xres":111, "yres":222 }, { "name":"BBB", "xres":333, "yres":444 } ]}' Here is the behavior matrix of the current resolution configuration surface (xres/yres) with the new resolution configuration surface (outputs[i].xres/yres). Case: !(xres || yres) && !(outputs[i].has_xres && outputs[i].has_yres) Behavior: current behavior - outputs[0] enabled with default xres/yres Case: (xres || yres) && !(outputs[i].has_xres && outputs[i].has_yres) Behavior: current behavior - outputs[0] enabled with xres/yres Case: !(xres || yres) && (outputs[i].has_xres && outputs[i].has_yres) Behavior: new behavior - outputs[i] enabled with outputs[i].xres/yres Case: (xres || yres) && (outputs[i].has_xres && outputs[i].has_yres) Behavior: new behavior - outputs[i] enabled with outputs[i].xres/yres Signed-off-by: Andrew Keesler Reviewed-by: Daniel P. Berrang=C3=A9 Message-ID: <20250902141312.750525-2-ankeesler@google.com> [AJB: dropped pointless output_idx range check, tweak commit] Signed-off-by: Alex Benn=C3=A9e --- qapi/virtio.json | 10 ++++++++-- hw/display/virtio-gpu-base.c | 9 +++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/qapi/virtio.json b/qapi/virtio.json index 05295ab6655..0ce789bb22f 100644 --- a/qapi/virtio.json +++ b/qapi/virtio.json @@ -971,15 +971,21 @@ ## # @VirtIOGPUOutput: # -# Describes configuration of a VirtIO GPU output. +# Describes configuration of a VirtIO GPU output. If both xres and +# yres are set, they take precedence over root virtio-gpu +# resolution configuration and enable the corresponding output. # # @name: the name of the output # +# @xres: horizontal resolution of the output in pixels (since 10.2) +# +# @yres: vertical resolution of the output in pixels (since 10.2) +# # Since: 10.1 ## =20 { 'struct': 'VirtIOGPUOutput', - 'data': { 'name': 'str' } } + 'data': { 'name': 'str', '*xres': 'uint16', '*yres': 'uint16' } } =20 ## # @DummyVirtioForceArrays: diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c index 7269477a1c8..14058f6bffb 100644 --- a/hw/display/virtio-gpu-base.c +++ b/hw/display/virtio-gpu-base.c @@ -233,6 +233,15 @@ virtio_gpu_base_device_realize(DeviceState *qdev, g->req_state[0].width =3D g->conf.xres; g->req_state[0].height =3D g->conf.yres; =20 + for (output_idx =3D 0, node =3D g->conf.outputs; + node; output_idx++, node =3D node->next) { + if (node->value->has_xres && node->value->has_yres) { + g->enabled_output_bitmask |=3D (1 << output_idx); + g->req_state[output_idx].width =3D node->value->xres; + g->req_state[output_idx].height =3D node->value->yres; + } + } + g->hw_ops =3D &virtio_gpu_ops; for (i =3D 0; i < g->conf.max_outputs; i++) { g->scanout[i].con =3D --=20 2.47.3 From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627170; cv=none; d=zohomail.com; s=zohoarc; b=knahGzthCUDoo1zztDHuSeaJ2AiqQjdUUJ0XjxVf7M6mihGJW4E1Dp8bJSLL7ySAmg81FkclerO48JGmOso78JNbcVCYD643L5jOzLkKfom7ZF+BkqJDOkKwdtMsGOHDR7C91B+IqsEHC5fnlcniSmPeER4KQQK7cs2gSij5Nfc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627170; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=pJpyoRiL8sYez2Vw3+8NSwXbVIlyqCZS+tzmsklFGkI=; b=mcFAHNH1+XX40buj/OnLkfzDdVLl2DCJpp8KP7fTY92DLR/X322nK6N45oXYAiaZTWy9IhsdPfC9LRQhqJOT7S8B9gb9rMsbq7LFxxu6gd6zWPCTAl3ULUFbnaSmpnExZtZEG8FBdrM3BxqwUvHuUe8QNRPJfPyJXftTW7zlLUA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760627170455910.203023020078; Thu, 16 Oct 2025 08:06:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PWa-0002Cn-CH; Thu, 16 Oct 2025 11:04:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v9PWY-0002CG-U8 for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:15 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWR-0001AY-1A for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:14 -0400 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-47114a40161so7110995e9.3 for ; Thu, 16 Oct 2025 08:04:05 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-426ce5d015esm36294984f8f.33.2025.10.16.08.03.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:03:59 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id EB33A5FACE; Thu, 16 Oct 2025 16:03:57 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627043; x=1761231843; 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=pJpyoRiL8sYez2Vw3+8NSwXbVIlyqCZS+tzmsklFGkI=; b=cWkKQV3XM3/y8cLgwt1KP/BM/SEuAnLpzqq4NtjB4azQUwXrzJ7jHTOXg7NwIAcvZh l4/k+7iiksE1/FHT9tgesV8pyciTi8HHNDKMqnDzUPtDr752lbo27IfS+LCEj1L9S1bO TDJzFMq6nv7MRzMt+p2KutGFA5coPMhzZgA0Zq0MVwzltE7uUQhqdDbIvO6KdSWRMOVB svkYp8ID2Df0jYKzvf1AaRjQtFWIY/Ktxk32UMK19sCTKRUEtiMnIYXdt/kco5Q74B30 H1o0xikNhtW0JoI7pRYv2A/ZTbY+f5WL5NFweoxuTJnRGMyMgKKaIUBMjPTZkcwFzIXc 4vTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627043; x=1761231843; 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=pJpyoRiL8sYez2Vw3+8NSwXbVIlyqCZS+tzmsklFGkI=; b=rt3it2ztLcmKH8oSB/KcvDNjrkGY5zhJL6cCHqt4KwWk9OX/nLMjgDRLh4Vp4hpmig bdWLh4vQN9EZVvVc6CxiAvinLxcVIW6cPzjZhmTYTvnaHirRKelId+FdZivJQ1KkD6TZ +6Xm5CWDnbfXv5I5u69WCQw4Fvl+vD6GWRz48dKuVc0daVvmttq1vxAobn1VWRNAh3mK uXpPAmdrVvgynG7trCAl+SziOpP9OgTZix+rzQGdAa1euXrX/GfGvZtxJMJNuXXN3XLk U6VCi/7hr1GQvG6g7EHfs7z+zeBVAVWkA5PQrZZ8mn8AdU33TSrGIJtRqfX2m1YN5983 b4ZA== X-Gm-Message-State: AOJu0YyiT6Qs97GSwycjJUxIlVKAsvxa3y4enRZibyaA9Ep3TYXcmI/7 kH//Rqfwp9KSHYOL7uATeOV4WblWPJto168PXAHO6Xcz84wc2nZWGk6MANChedooFvQ= X-Gm-Gg: ASbGnctIP5E5nuH9LBzaj7vGAo+tBYWO1LfeUIlS3QTDjTaWlB1ezaVrX+Ob/Vr5sOA YrTNdH1UUP86e7EMgqZFc73JNZuDSrf/mgOfPi9D4fGlHl9gR6L+K4VkIkeZniGx0ZqMZzLyjXl YPHMtj5P4LJz04jfpH4CIQWZlcZyEwzPRWZS7usgASo/8JOy46eEaFRzb+lFgvQvqqcu8QrDzj1 XPM/ultbroGVRPdCW300ytbUsOijRAqHL6WCrxIV8td5ThrE/7taRegT8ZdVSxfTDcuN1ES144L aBqVkpOWSyj3GlSV5W+LV1pLqkN1un1ZNDNCqCSMNdIQ/ENlGTNUNbhxLCk2Xvqc5wgeoXeaaGJ IMu9igcKlT0Nm2l8DuP5tIDi0waqcCKW8b0lygEwo6KaWrMvoMT2HwlqcYtK41cUywJgA6+JLE3 EKtBkbqVdwE/M9l7g= X-Google-Smtp-Source: AGHT+IHdw34NJ7JAA2SgB5l3oeY5Tn3bu4IE+sgGv9Tb29cCrBfcVdrvtYBvYQH8XBqrJZaoTselFQ== X-Received: by 2002:a05:600c:4ec9:b0:471:15c1:45b9 with SMTP id 5b1f17b1804b1-471179133b2mr2482055e9.29.1760627043091; Thu, 16 Oct 2025 08:04:03 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , Dongwon Kim , Vivek Kasireddy , qemu-stable@nongnu.org Subject: [PATCH 05/11] ui/gtk-gl-area: Remove extra draw call in refresh Date: Thu, 16 Oct 2025 16:03:50 +0100 Message-ID: <20251016150357.876415-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32f.google.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627174445154100 From: Dongwon Kim This partially reverts commit 77bf310084dad38b3a2badf01766c659056f1cf2 which causes some guest display corruption when gtk-gl-area is used for GTK rendering (e.g. Wayland Compositor) possibly due to simulataneous accesses on the guest frame buffer by host compositor and the guest. Fixes: 77bf310084 ("ui/gtk: Draw guest frame at refresh cycle") Reported-by: Dmitry Osipenko Reported-by: Alex Benn=C3=A9e Tested-by: Alex Benn=C3=A9e Tested-by: Dmitry Osipenko Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Dmitry Osipenko Cc: Marc-Andr=C3=A9 Lureau Cc: Vivek Kasireddy Signed-off-by: Dongwon Kim Message-Id: <20250214170813.2234754-1-dongwon.kim@intel.com> Signed-off-by: Alex Benn=C3=A9e Message-ID: <20250603110204.838117-12-alex.bennee@linaro.org> Cc: qemu-stable@nongnu.org --- vpre-PR: - added large comment where draw command was removed --- ui/gtk-gl-area.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ui/gtk-gl-area.c b/ui/gtk-gl-area.c index 05fc38096ec..cd86022d264 100644 --- a/ui/gtk-gl-area.c +++ b/ui/gtk-gl-area.c @@ -165,7 +165,22 @@ void gd_gl_area_refresh(DisplayChangeListener *dcl) =20 if (vc->gfx.guest_fb.dmabuf && qemu_dmabuf_get_draw_submitted(vc->gfx.guest_fb.dmabuf)) { - gd_gl_area_draw(vc); + /* + * gd_egl_refresh() calls gd_egl_draw() if a DMA-BUF draw has alre= ady + * been submitted, but this function does not call gd_gl_area_draw= () in + * such a case due to display corruption. + * + * Calling gd_gl_area_draw() is necessary to prevent a situation w= here + * there is a scheduled draw event but it won't happen bacause the= window + * is currently in inactive state (minimized or tabified). If draw= is not + * done for a long time, gl_block timeout and/or fence timeout (on= the + * guest) will happen eventually. + * + * However, it is found that calling gd_gl_area_draw() here causes= guest + * display corruption on a Wayland Compositor. The display corrupt= ion is + * more serious than the possible fence timeout so gd_gl_area_draw= () is + * omitted for now. + */ return; } =20 --=20 2.47.3 From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627202; cv=none; d=zohomail.com; s=zohoarc; b=DExovwrDzG5Xn9zj/l50Ywoafa69tL/cXMUhfr5NeSf5PpwNwTryZYvStT94A0dCqZM86f77/FbzICubAMaV3HQ68nva4wFCwgpJJDrK3XAUew6doARnSHA5VehFLqzEwuLNNc5uNVi9xlSxqDQo15mBdCIeTMPLJm0Tg4m9vWQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627202; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UBrmEioes5BcTvg3mWej6DkCUcELOhpLd7xx/WVVmZs=; b=H+38+3t78Kq5RiGispRLDw9wgwpl38k1xM2HtWylgWkoAwAREFrQA4itKtfm4duMw1xvcMt5WeP71O/9vF9KqwQUAhgcuRmI2Unnx9PDiLEBQLhII91hajcTZVca3fb9AJNIh+26NWDs6wVOVSfPDTsRYXXxVRz7V9wbPPaxwMc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760627202158477.8638571725379; Thu, 16 Oct 2025 08:06:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PWk-0002F8-7O; Thu, 16 Oct 2025 11:04:26 -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 1v9PWf-0002E2-Gm for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:21 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWR-0001Ag-1l for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:20 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-3f0308469a4so635369f8f.0 for ; Thu, 16 Oct 2025 08:04:06 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-426ce5cf6b4sm35470459f8f.25.2025.10.16.08.03.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:03:59 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 11E605FACF; Thu, 16 Oct 2025 16:03:58 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627044; x=1761231844; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UBrmEioes5BcTvg3mWej6DkCUcELOhpLd7xx/WVVmZs=; b=zUItmF04rCFYAhOYy7a7W6y+3GIUGF6FKd5+yBKUbMgyqyCZuZOW4uc+7qBdmQaX/g fNDFab6zLKvLbmxejzKaQF7GUP4WAC9TNYBlh1TD75KLjmgf5yFu1T71oPQGQfKAKsDs PozvLp7OgHhrZyyZqDqDEZXiCiqytHSCS+LSoFfWRsSk5V2YAKIZGWEUD78y29186vL4 XeAWrvbr36GvU2+l1SpTGeyweRkBr/b+SYajXLir/9y5pyde7eTvDMKygZW/jyDNOEt/ WrHJNREWjLf3sXfKydUegVB/3kcoYzPlTO5cGOzqsYo7d6Me6ZT9riJug7KyBNFolltn nrMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627044; x=1761231844; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UBrmEioes5BcTvg3mWej6DkCUcELOhpLd7xx/WVVmZs=; b=er6IIveAkQi32TUJ8wtSQBWYbqMHq4JHn3mU12CtuFv9pV0k+Csx5kA0pSaw/uKBJF DwkODUnUn/y5xeWiVghuzxoj5wDZLe+1qnhS1Ad9VLkwiuy/TmkF6j1hGRO6ex6hiJ7h sBGSRsGoopMe9Ypqkv6eAJWtq+OHuGO2Helf4guuvcNtfqeNqr0BdMdgD9QpusWal0jL +/p1AUCvA2KlyV3jZuCpggsSCU51bRk6GHHuAht7ltDi2T9PeYgI6u1tYz/ttWJhwRZU QzDHA6i+i19d8el/jY5Hjtc3Jk0wmPSaulnYElpSIzCvp5Py9SSvr/utBKvsxSoW/2oQ ufGA== X-Gm-Message-State: AOJu0YyCeTWQNcmSW29pwXr9jwE74Uss581a+toV3vAoYyeIUVM1yTYd ieqQfisJeu76x8apDvT7tyJblcbqiEI5D9bz/jmEQCgwcivbFxMJX6b1M8buzKWiYq0= X-Gm-Gg: ASbGnctapxzVNOVhvlfM/hfDT0i/QC5bFxp+cFQ9zKNkkU5Tu9VjAP4ljBubA64jpjq ln0Q+T3/LQwsWF2aBb11zcr671IHUVWA/KIqOmNODDjQUiINOG71mnErDO2xxhpKBBoHuYpB2hy PxPLYDmoy2MH1OPf3PxbEQCj2XEUENIZfY2B1fug9McQRpT65lZyWE1v6qSv7GCJG/B3ktv1IYS xy8U3YZool8InxT3WPA4AX2RdeNMtpA2kmIRbzFlnbaU7Jubfiua76LBts1uwluBqxj+s+hx6B6 Qcrbc+n9OsRH2UZLtXnyUUrGV7tcWmuIojdCVjoZ1Ej7UCDE7yor1+fcu0zdxMLU68DmEqYVmjg uFc07cnzetMJupxmKVj8dJZ3RX+6IVuZoU3y/0dyk8AZ4FCWIXBDM+pn8p2eWXh1C8KEREDO++j 8F X-Google-Smtp-Source: AGHT+IGidc46ksb55VYkEQ2ctOcuO5Kok6UJE2BXc+kXHohYK04LJWkpjhBdomLr955V0jZ/h98HNw== X-Received: by 2002:a05:6000:240f:b0:425:8bf9:557d with SMTP id ffacd0b85a97d-42704d9e934mr342256f8f.44.1760627043795; Thu, 16 Oct 2025 08:04:03 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki Subject: [PATCH 06/11] hw/display: add blob map/unmap trace events Date: Thu, 16 Oct 2025 16:03:51 +0100 Message-ID: <20251016150357.876415-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627204160158500 As these events happen dynamically as the guest does various things they are quite handy to trace. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Pierrick Bouvier --- hw/display/virtio-gpu-virgl.c | 4 ++++ hw/display/trace-events | 2 ++ 2 files changed, 6 insertions(+) diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c index 94ddc01f91c..07f6355ad62 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -134,6 +134,8 @@ virtio_gpu_virgl_map_resource_blob(VirtIOGPU *g, =20 res->mr =3D mr; =20 + trace_virtio_gpu_cmd_res_map_blob(res->base.resource_id, vmr, mr); + return 0; } =20 @@ -153,6 +155,8 @@ virtio_gpu_virgl_unmap_resource_blob(VirtIOGPU *g, =20 vmr =3D to_hostmem_region(res->mr); =20 + trace_virtio_gpu_cmd_res_unmap_blob(res->base.resource_id, mr, vmr->fi= nish_unmapping); + /* * Perform async unmapping in 3 steps: * diff --git a/hw/display/trace-events b/hw/display/trace-events index 52786e6e184..e323a82cff2 100644 --- a/hw/display/trace-events +++ b/hw/display/trace-events @@ -38,6 +38,8 @@ virtio_gpu_cmd_set_scanout_blob(uint32_t id, uint32_t res= , uint32_t w, uint32_t virtio_gpu_cmd_res_create_2d(uint32_t res, uint32_t fmt, uint32_t w, uint3= 2_t h) "res 0x%x, fmt 0x%x, w %d, h %d" virtio_gpu_cmd_res_create_3d(uint32_t res, uint32_t fmt, uint32_t w, uint3= 2_t h, uint32_t d) "res 0x%x, fmt 0x%x, w %d, h %d, d %d" virtio_gpu_cmd_res_create_blob(uint32_t res, uint64_t size) "res 0x%x, siz= e %" PRId64 +virtio_gpu_cmd_res_map_blob(uint32_t res, void *vmr, void *mr) "res 0x%x, = vmr %p, mr %p" +virtio_gpu_cmd_res_unmap_blob(uint32_t res, void *mr, bool finish_unmappin= g) "res 0x%x, mr %p, finish_unmapping %d" virtio_gpu_cmd_res_unref(uint32_t res) "res 0x%x" virtio_gpu_cmd_res_back_attach(uint32_t res) "res 0x%x" virtio_gpu_cmd_res_back_detach(uint32_t res) "res 0x%x" --=20 2.47.3 From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627178; cv=none; d=zohomail.com; s=zohoarc; b=HK7vE9O5Ejgips/lkjtYBq5ni7g6P6gHjTSujp2+r/u8VCAUu7/nsFIJpqkDwfcmUVg6F2Baaszo/YsvuvyvypUMRxZm+10av8YC8r2JsV2GMdeYlfIZNeLNu1GWuUXuQQjYiveoWpVp5B/YxXbVxDMPO1UOxwovaJ5F7ip8JYA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627178; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Zp4dBelYcrDdnG9qeH0z5QyNjh/aPBWG7icXFCLgLbY=; b=ka7R275veFzMEbGGSeafhzg30AIVEDTuQtw81sZ2ZA1zA/L6M7cF7fF3u9u49yLW0m/H8CF7zBK11F7BAI83ULTB3QjNdFdUwuRTp/iYnM8U0ZVuTAkOZYjddpgjEvREwlQex2LtX9UcFsUrgWawZkYO9gz33c2VVapgbaJRvo4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760627178013869.4387998739865; Thu, 16 Oct 2025 08:06:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PX3-0002ID-Hy; Thu, 16 Oct 2025 11:04:48 -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 1v9PWm-0002GC-U4 for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:29 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWa-0001BP-8i for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:27 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-46e6a6a5e42so4509235e9.0 for ; Thu, 16 Oct 2025 08:04:13 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-426ce57cd11sm35592379f8f.5.2025.10.16.08.04.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:04:03 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 27FF15FAD2; Thu, 16 Oct 2025 16:03:58 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627049; x=1761231849; 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=Zp4dBelYcrDdnG9qeH0z5QyNjh/aPBWG7icXFCLgLbY=; b=gePZE7XPKS3/DSd+oDMA8BCt1PL7RW8nFi2gA7YDD4hL1V6C8NOYHXHmSvONcHKwVG 7Bn14h5eWjC0RTYevjKbw6kG1K/EybwZgfidASpmAlI2exjUwGU0gHMCDM9PveVQ+Zny HNRiP8BrDVuBpcgl8tfnERc0FwvsUULU4mvdmvh6oDKZaJ7DsSIjn3Fw8fD6/PEcFTln 6orUvUUTWr+bLDABmp194On74Gw51ltiwfJUoS/taePd/inuWUNDc8ZcMjCk7jcUWQty 2ZopeXv9Rx51S0LLVofpHmXUSTEXsQF1GnrDMqKvI4bQJ7tKhbHARs2YIrVOTWjNTnfB pCKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627049; x=1761231849; 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=Zp4dBelYcrDdnG9qeH0z5QyNjh/aPBWG7icXFCLgLbY=; b=ljwVXJRi/SjoeGb8/bKsPCNA9UiKXm9w4dEiksPzqOL7Q7q050QkZU0Jsgxyep3C/E 79CemUiOr8Bi817f93Z3+6V5+L2jqmC19CA5FR7KRKT9meSRku89+wKSdlc+V8pgdX+L Kq3LMotge44K13GtF2EFdv/v8oVxiMoh8gFR7KhE2IYwxnv1CM5zPVMOCpz7cmghB7As 5/bnhhLa1GzEzWObbVH7OXA9JhQ/hjJIEweOxfgpbk8DP2mJCt57DecZHO+kUgds9TRb +WcL6rm2zIuIWvwWWlEt54442E6BoukQsvSRVcMHhvzXkljEnvRydGil1nBearfZ0m7c Ofcw== X-Gm-Message-State: AOJu0YzYYqfgbN37nPwYuVUTVQWn8siAMagm5B0Q2Bk2G2hBdAyRtxCr tI5dbj5v34ynXSzAGfU9Shqm53GNYk6wDyCG+3K8BV3xX7vBmfKzOx4VXdcvlN2WytM= X-Gm-Gg: ASbGncvU8hVVaF2csIAmCIAIQ+bhjMWTxUeYGAh0cA6b1qMUF2EAZRfqGGjSeZSThRF X+Da7xoqjjqrlSfAnDFMzcGo6aGbr19Ii6AX0jIemluw/U9BbsfikHHt5HIP95Vi2wdFEC9+fE8 0G4iU7ly1y49k7QWelYcfM9JJKMLJPruZIRYVnxINBDhGyVAgcy1K3BZC0JulhdkzmzIOhgapGu gMP8VPPrLmgV7mSYcyf6LFjUNEtriNmFnGm2PFo83mCeB0FNDanp0Vz5F7q7JlW7paoWoAuJZQQ XGMsMWw3LFhEnA3AMCJjH8XihVOPqTppdpfIk5B7d8d2provIWkMlCDmAQdd1yJkV3oFXQJ85sA iOUakckaM76jY1xb/ES9+cgjeqVrGNfsbOmSLxFD/uf+H1yy0nBe5bzN8jhoivjij5tMr1sxitS isAB6SOrarHENefViL8FWF8ixzVg== X-Google-Smtp-Source: AGHT+IFQprA22hyfbXF9KVjjlncotxu4f6SHQ8l012K8WptALDqjp16O5AHXuFVKfEaeFiSU/dPhZQ== X-Received: by 2002:a05:600c:a013:b0:46d:ba6d:65bb with SMTP id 5b1f17b1804b1-47117919b6cmr2509825e9.31.1760627048967; Thu, 16 Oct 2025 08:04:08 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki Subject: [PATCH 07/11] contrib/plugins/uftrace_symbols.py: generate debug files to map symbols to source Date: Thu, 16 Oct 2025 16:03:52 +0100 Message-ID: <20251016150357.876415-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x335.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627181740158500 From: Pierrick Bouvier Enhance uftrace_symbols.py to generate .dbg files, containing source location for every symbol present in .sym file. It allows to use `uftrace {replay,dump} --srcline` and show origin of functions, connecting trace to original source code. It was first implemented with pyelftools DWARF parser, which was way too slow (~minutes) to get locations for every symbol in the linux kernel. Thus, we use `addr2line` instead, which runs in seconds. As well, there were some bugs with latest pyelftools release, requiring to run master version, which is not installable with pip. Thus, since we now require binutils (addr2line), we can ditch pyelftools based implementation and simply rely on `nm` to get symbols information, which is faster and better. Signed-off-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Alex Benn=C3=A9e --- contrib/plugins/uftrace_symbols.py | 120 +++++++++++++++++++---------- 1 file changed, 78 insertions(+), 42 deletions(-) diff --git a/contrib/plugins/uftrace_symbols.py b/contrib/plugins/uftrace_s= ymbols.py index b49e03203c8..45fb79c7a58 100755 --- a/contrib/plugins/uftrace_symbols.py +++ b/contrib/plugins/uftrace_symbols.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Create symbols and mapping files for uftrace. +# Create symbols, debug and mapping files for uftrace. # # Copyright 2025 Linaro Ltd # Author: Pierrick Bouvier @@ -9,44 +9,71 @@ # SPDX-License-Identifier: GPL-2.0-or-later =20 import argparse -import elftools # pip install pyelftools import os - -from elftools.elf.elffile import ELFFile -from elftools.elf.sections import SymbolTableSection - -def elf_func_symbols(elf): - symbol_tables =3D [(idx, s) for idx, s in enumerate(elf.iter_sections(= )) - if isinstance(s, SymbolTableSection)] - symbols =3D [] - for _, section in symbol_tables: - for _, symbol in enumerate(section.iter_symbols()): - if symbol_size(symbol) =3D=3D 0: - continue - type =3D symbol['st_info']['type'] - if type =3D=3D 'STT_FUNC' or type =3D=3D 'STT_NOTYPE': - symbols.append(symbol) - symbols.sort(key =3D lambda x: symbol_addr(x)) +import subprocess + +class Symbol: + def __init__(self, name, addr, size): + self.name =3D name + # clamp addr to 48 bits, like uftrace entries + self.addr =3D addr & 0xffffffffffff + self.full_addr =3D addr + self.size =3D size + + def set_loc(self, file, line): + self.file =3D file + self.line =3D line + +def get_symbols(elf_file): + symbols=3D[] + try: + out =3D subprocess.check_output(['nm', '--print-size', elf_file], + stderr=3Dsubprocess.STDOUT, + text=3DTrue) + except subprocess.CalledProcessError as e: + print(e.output) + raise + out =3D out.strip().split('\n') + for line in out: + info =3D line.split(' ') + if len(info) =3D=3D 3: + # missing size information + continue + addr, size, type, name =3D info + # add only symbols from .text section + if type.lower() !=3D 't': + continue + addr =3D int(addr, 16) + size =3D int(size, 16) + symbols.append(Symbol(name, addr, size)) + symbols.sort(key =3D lambda x: x.addr) return symbols =20 -def symbol_size(symbol): - return symbol['st_size'] - -def symbol_addr(symbol): - addr =3D symbol['st_value'] - # clamp addr to 48 bits, like uftrace entries - return addr & 0xffffffffffff - -def symbol_name(symbol): - return symbol.name +def find_symbols_locations(elf_file, symbols): + addresses =3D '\n'.join([hex(x.full_addr) for x in symbols]) + try: + out =3D subprocess.check_output(['addr2line', '--exe', elf_file], + stderr=3Dsubprocess.STDOUT, + input=3Daddresses, text=3DTrue) + except subprocess.CalledProcessError as e: + print(e.output) + raise + out =3D out.strip().split('\n') + assert len(out) =3D=3D len(symbols) + for i in range(len(symbols)): + s =3D symbols[i] + file, line =3D out[i].split(':') + # addr2line may return 'line (discriminator [0-9]+)' sometimes, + # remove this to keep only line number. + line =3D line.split(' ')[0] + s.set_loc(file, line) =20 class BinaryFile: def __init__(self, path, map_offset): self.fullpath =3D os.path.realpath(path) self.map_offset =3D map_offset - with open(path, 'rb') as f: - self.elf =3D ELFFile(f) - self.symbols =3D elf_func_symbols(self.elf) + self.symbols =3D get_symbols(self.fullpath) + find_symbols_locations(self.fullpath, self.symbols) =20 def path(self): return self.fullpath @@ -56,24 +83,31 @@ def addr_start(self): =20 def addr_end(self): last_sym =3D self.symbols[-1] - return symbol_addr(last_sym) + symbol_size(last_sym) + self.map_of= fset + return last_sym.addr + last_sym.size + self.map_offset =20 def generate_symbol_file(self, prefix_symbols): binary_name =3D os.path.basename(self.fullpath) - sym_file_path =3D f'./uftrace.data/{binary_name}.sym' + sym_file_path =3D os.path.join('uftrace.data', f'{binary_name}.sym= ') print(f'{sym_file_path} ({len(self.symbols)} symbols)') with open(sym_file_path, 'w') as sym_file: # print hexadecimal addresses on 48 bits addrx =3D "0>12x" for s in self.symbols: - addr =3D symbol_addr(s) + addr =3D s.addr addr =3D f'{addr:{addrx}}' - size =3D f'{symbol_size(s):{addrx}}' - name =3D symbol_name(s) + size =3D f'{s.size:{addrx}}' if prefix_symbols: - name =3D f'{binary_name}:{name}' + name =3D f'{binary_name}:{s.name}' print(addr, size, 'T', name, file=3Dsym_file) =20 + def generate_debug_file(self): + binary_name =3D os.path.basename(self.fullpath) + dbg_file_path =3D os.path.join('uftrace.data', f'{binary_name}.dbg= ') + with open(dbg_file_path, 'w') as dbg_file: + for s in self.symbols: + print(f'F: {hex(s.addr)} {s.name}', file=3Ddbg_file) + print(f'L: {s.line} {s.file}', file=3Ddbg_file) + def parse_parameter(p): s =3D p.split(":") path =3D s[0] @@ -84,7 +118,7 @@ def parse_parameter(p): offset =3D s[1] if not offset.startswith('0x'): err =3D f'offset "{offset}" is not an hexadecimal constant. ' - err +=3D 'It should starts with "0x".' + err +=3D 'It should start with "0x".' raise ValueError(err) offset =3D int(offset, 16) return path, offset @@ -97,7 +131,7 @@ def is_from_user_mode(map_file_path): return False =20 def generate_map(binaries): - map_file_path =3D './uftrace.data/sid-0.map' + map_file_path =3D os.path.join('uftrace.data', 'sid-0.map') =20 if is_from_user_mode(map_file_path): print(f'do not overwrite {map_file_path} generated from qemu-user') @@ -124,7 +158,8 @@ def generate_map(binaries): =20 def main(): parser =3D argparse.ArgumentParser(description=3D - 'generate symbol files for uftrace') + 'generate symbol files for uftrace. ' + 'Require binutils (nm and addr2line).= ') parser.add_argument('elf_file', nargs=3D'+', help=3D'path to an ELF file. ' 'Use /path/to/file:0xdeadbeef to add a mapping off= set.') @@ -133,8 +168,8 @@ def main(): action=3Dargparse.BooleanOptionalAction) args =3D parser.parse_args() =20 - if not os.path.exists('./uftrace.data'): - os.mkdir('./uftrace.data') + if not os.path.exists('uftrace.data'): + os.mkdir('uftrace.data') =20 binaries =3D [] for file in args.elf_file: @@ -145,6 +180,7 @@ def main(): =20 for b in binaries: b.generate_symbol_file(args.prefix_symbols) + b.generate_debug_file() =20 generate_map(binaries) =20 --=20 2.47.3 From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627237; cv=none; d=zohomail.com; s=zohoarc; b=R9WS9q2dfOojmqr058UHg+J2QhorsYvQY+SntA1UR9QH0mSJJWS88408jGAm0OUPvBMj1KuTs46KfEZUPM5GytEn1fPeAB6ZlIynr7qEDmun/My8YTz3nBCI3+xygsQZpDK7AvoEwa1ZJyAKJrBaBH5m0XYQxNsizGIDAKYl+WY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627237; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VFnHEU9xjltvh+ypLAj3KV62Jnkg0sBcs3wWuIX0eJ0=; b=KXWGXy6zzwlgxttvHZ475PAEbaHajDhehM6vsvorwmYwEtskwuWKQs1WR7kSgaTob+2jbyp0v7VNDP6wzkdwiYlygsTNNMbZsaXnZo7DWCZGHSf0e1uyGx1L4IHapxAUj9NLOKWnsxU8wsFP6Enf9uMxojSYT1LGIe8kZy5bA9c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760627237458873.6898498295744; Thu, 16 Oct 2025 08:07:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PWm-0002Fw-PV; Thu, 16 Oct 2025 11:04:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v9PWi-0002Er-M0 for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:24 -0400 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWT-0001Am-Bu for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:24 -0400 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-42557c5cedcso533632f8f.0 for ; Thu, 16 Oct 2025 08:04:08 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-426ce583424sm34452478f8f.21.2025.10.16.08.04.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:04:03 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 425B95FADF; Thu, 16 Oct 2025 16:03:58 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627045; x=1761231845; 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=VFnHEU9xjltvh+ypLAj3KV62Jnkg0sBcs3wWuIX0eJ0=; b=zubRwJME5D5PsdWfsnqUeGr/BECIKKcY5zwLKczJaY7/cfjaolN822aG0gp/OOi9Vw ym+TSIXMRQg9J4Sv8cmWUK6pN0uy58D9E1NqFM6Xv+dp/PD4F2ZTV+F01lhOZ0XTJIpS zbba+vZcKVEjdtHv20F2l31H8x1i2gZgG9YA2rr5YfmvKzbpz6tfjkfeUn2C4Uc4rGsv eWLE7unxtRoBMw+ZHEVoUDvbZJWFw6ltjqdluf7KPiq+BmI8di9Bcjb5BVooixqU5dGs dgTMhdIt7UpOaZalkpTh8/FenTYDkqELo9ax50WtHohsMGiWO56owygOQTlneczQQZQ1 otng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627045; x=1761231845; 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=VFnHEU9xjltvh+ypLAj3KV62Jnkg0sBcs3wWuIX0eJ0=; b=iW87QLOlhamFA3gQ5xS3QkneTYWX0ZpWuJtmoUqgnfSyDXn6mrj0DFLfDXZFn2XDlo RNgA/axaOFZL9yfAnuwuqyH4clGXTctXr+sKoPNbzTHxaF86n0kPbdJSTwAOChd3/o/i gkG2BX8qhxXxEXGIxmPAiigGoCC0TeYmTos47ddetggZaM05yGqVQydRVaMQrHmzpPqi n066BW3M4MQVbr48UaOQo3TnSeLOCdsW8eRk3ZJLIl+a1bkIvizLF4V2qSF4Iguy1ZGu F68hy5etd4aYL0HoKrCO6BJohNdrfkmSQPUsLHq96nnhNZNsjslX1eOHKI4jydXk9QG0 tRCA== X-Gm-Message-State: AOJu0YzBgtKdm87+GkR88meY+5rE6RRNIY/8TIyjtMxm46Z+c2aAg9yK 0Wm3D5EyP3/5oCZfYStQWOYCfveU4t7ffff8J/cz4QhTNXOFyeFESJaR6jKp33xWGTU= X-Gm-Gg: ASbGncs0sfjYYJO/QWoEfvgPLcyPBAOfCY+In+52eKvnEV32F1di2U+g78SX99NsiC4 Xu7fWOqq2XTelGT3fIaIqlHYKtGmKx38K9Nwapb6DO7lKYaqCJXMenRtAWHNnMmksviTyk0fVCG umaLqKjPsr7ONqoLGdJhATN/BsxhMTYBgp15aD+dmUBxXPwRUPkNHOFwMFcf0hBSUhtbJTmbO4K GheU2Uevlz9gevroxrNCdnJJOYFW4DgEa0qaqoUtx0LO5sLuim+xwRo4x18mEsOOFH44MN1h9Wj osbGpS5rvM/D4rpWXwKCKsOCLVLbwnic+6K86LSYhGAQlfN8ZbmqRUnWKdzURNH/e4palmze3rw mcPGqc/pKs4uMce1s4QhnMGzj6QYX1o2OFS0F1UwBY1YuSn6xIW67F40ub6qTcTDbqjniqC3o44 V6I1kGhkd/Lrs= X-Google-Smtp-Source: AGHT+IFF8H43+e8MRI2EbA9TpwS6S4VuaDGg6SQ44rLsKOAXzusgPe/QpAuz22b3YblyUKsBJ46SuA== X-Received: by 2002:a5d:5888:0:b0:3ec:2ef7:2134 with SMTP id ffacd0b85a97d-42704d54b25mr281115f8f.18.1760627045189; Thu, 16 Oct 2025 08:04:05 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , Manos Pitsidianakis Subject: [PATCH 08/11] docs/system: split VirtIO devices from the rest Date: Thu, 16 Oct 2025 16:03:53 +0100 Message-ID: <20251016150357.876415-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42b; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x42b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627239262154101 In an effort to tidy up our device documentation split the VirtIO docs from the rest of the index and put the index to them at the front of the list. Sort the remaining entries alphabetically and tweak the references appropriately. Add a short preface to the VirtIO section nudging users to use VirtIO unless they specifically want a particular piece of hardware emulation. Reviewed-by: Manos Pitsidianakis Reviewed-by: John Levon Signed-off-by: Alex Benn=C3=A9e --- v2 - fix recommend/recommended --- docs/system/device-emulation.rst | 18 +++++------ docs/system/devices/vfio-user.rst | 2 +- docs/system/devices/virtio/index.rst | 30 +++++++++++++++++++ .../devices/{ =3D> virtio}/vhost-user-input.rst | 0 .../devices/{ =3D> virtio}/vhost-user-rng.rst | 0 .../devices/{ =3D> virtio}/vhost-user.rst | 0 .../devices/{ =3D> virtio}/virtio-gpu.rst | 0 .../devices/{ =3D> virtio}/virtio-pmem.rst | 0 .../devices/{ =3D> virtio}/virtio-snd.rst | 0 9 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 docs/system/devices/virtio/index.rst rename docs/system/devices/{ =3D> virtio}/vhost-user-input.rst (100%) rename docs/system/devices/{ =3D> virtio}/vhost-user-rng.rst (100%) rename docs/system/devices/{ =3D> virtio}/vhost-user.rst (100%) rename docs/system/devices/{ =3D> virtio}/virtio-gpu.rst (100%) rename docs/system/devices/{ =3D> virtio}/virtio-pmem.rst (100%) rename docs/system/devices/{ =3D> virtio}/virtio-snd.rst (100%) diff --git a/docs/system/device-emulation.rst b/docs/system/device-emulatio= n.rst index 911381643f1..db714ad47aa 100644 --- a/docs/system/device-emulation.rst +++ b/docs/system/device-emulation.rst @@ -82,22 +82,18 @@ Emulated Devices .. toctree:: :maxdepth: 1 =20 + devices/virtio/index.rst + devices/can.rst + devices/canokey.rst devices/ccid.rst devices/cxl.rst - devices/vfio-user.rst - devices/ivshmem.rst + devices/igb.rst devices/ivshmem-flat.rst + devices/ivshmem.rst devices/keyboard.rst devices/net.rst devices/nvme.rst - devices/usb.rst - devices/vhost-user.rst - devices/virtio-gpu.rst - devices/virtio-pmem.rst - devices/virtio-snd.rst - devices/vhost-user-input.rst - devices/vhost-user-rng.rst - devices/canokey.rst devices/usb-u2f.rst - devices/igb.rst + devices/usb.rst + devices/vfio-user.rst diff --git a/docs/system/devices/vfio-user.rst b/docs/system/devices/vfio-u= ser.rst index b6dcaa5615e..30c2215f4ea 100644 --- a/docs/system/devices/vfio-user.rst +++ b/docs/system/devices/vfio-user.rst @@ -6,7 +6,7 @@ vfio-user =20 QEMU includes a ``vfio-user`` client. The ``vfio-user`` specification allo= ws for implementing (PCI) devices in userspace outside of QEMU; it is similar to -``vhost-user`` in this respect (see :doc:`vhost-user`), but can emulate ar= bitrary +``vhost-user`` in this respect (see :doc:`virtio/vhost-user`), but can emu= late arbitrary PCI devices, not just ``virtio``. Whereas ``vfio`` is handled by the host kernel, ``vfio-user``, while similar in implementation, is handled entirel= y in userspace. diff --git a/docs/system/devices/virtio/index.rst b/docs/system/devices/vir= tio/index.rst new file mode 100644 index 00000000000..fc457ca74c7 --- /dev/null +++ b/docs/system/devices/virtio/index.rst @@ -0,0 +1,30 @@ +VirtIO Devices +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +VirtIO devices are paravirtualized devices designed to be efficient to +emulate and virtualize. Unless you are specifically trying to exercise +a driver for some particular hardware they are the recommended device +models to use for virtual machines. + +The `VirtIO specification`_ is an open standard managed by OASIS. It +describes how a *driver* in a guest operating system interacts with +the *device* model provided by QEMU. Multiple Operating Systems +support drivers for VirtIO with Linux perhaps having the widest range +of device types supported. + +The device implementation can either be provided wholly by QEMU, or in +concert with the kernel (known as *vhost*). The device implementation +can also be off-loaded to an external process via :ref:`vhost user +`. + +.. toctree:: + :maxdepth: 1 + + virtio-gpu.rst + virtio-pmem.rst + virtio-snd.rst + vhost-user.rst + vhost-user-input.rst + vhost-user-rng.rst + +.. _VirtIO specification: https://docs.oasis-open.org/virtio/virtio/v1.3/v= irtio-v1.3.html diff --git a/docs/system/devices/vhost-user-input.rst b/docs/system/devices= /virtio/vhost-user-input.rst similarity index 100% rename from docs/system/devices/vhost-user-input.rst rename to docs/system/devices/virtio/vhost-user-input.rst diff --git a/docs/system/devices/vhost-user-rng.rst b/docs/system/devices/v= irtio/vhost-user-rng.rst similarity index 100% rename from docs/system/devices/vhost-user-rng.rst rename to docs/system/devices/virtio/vhost-user-rng.rst diff --git a/docs/system/devices/vhost-user.rst b/docs/system/devices/virti= o/vhost-user.rst similarity index 100% rename from docs/system/devices/vhost-user.rst rename to docs/system/devices/virtio/vhost-user.rst diff --git a/docs/system/devices/virtio-gpu.rst b/docs/system/devices/virti= o/virtio-gpu.rst similarity index 100% rename from docs/system/devices/virtio-gpu.rst rename to docs/system/devices/virtio/virtio-gpu.rst diff --git a/docs/system/devices/virtio-pmem.rst b/docs/system/devices/virt= io/virtio-pmem.rst similarity index 100% rename from docs/system/devices/virtio-pmem.rst rename to docs/system/devices/virtio/virtio-pmem.rst diff --git a/docs/system/devices/virtio-snd.rst b/docs/system/devices/virti= o/virtio-snd.rst similarity index 100% rename from docs/system/devices/virtio-snd.rst rename to docs/system/devices/virtio/virtio-snd.rst --=20 2.47.3 From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627200; cv=none; d=zohomail.com; s=zohoarc; b=Z9hPFm6K3N8hwOsO+1cxiGqm9BnCG9GmPTkC1TarTMCaO6+pNiOtajbP8WYE/m+kbVVeX1dB6HYZmMEJMqS95fWjfoJ2oJBUuuuF+gKU5s33psZEAORu8EvbzSbquS5EeDeQr/uL6z2euPWls+een9/HSXQDITzuzn31CDOfEos= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627200; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kaE703fUvjn7HVdw0ZGbrHh7JOU9e0/crufJzCxKJ6k=; b=lD2rg7vnl7pR+tmI6ptNyFvbHZVDesfpRVjD6eAqk6rnfAnvILwUJI2yYWkFtVQb0qoEbk0HRrifKzv8krUjocv2W2DYdmGMyKX+IJEDJvf03XCFFaIMuZOU/jHZ1BXnLYJOhrdouKkfYMYGPdWGLycceZYc9zJoh/1D+TfVRcM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176062720051565.6538591529661; Thu, 16 Oct 2025 08:06:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PWm-0002GK-R3; Thu, 16 Oct 2025 11: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 1v9PWj-0002F7-2f for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:26 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWT-0001Au-HM for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:24 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-46e3a50bc0fso6871025e9.3 for ; Thu, 16 Oct 2025 08:04:07 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-426ce5e8141sm34817314f8f.48.2025.10.16.08.04.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:04:03 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 5CB435FAE6; Thu, 16 Oct 2025 16:03:58 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627046; x=1761231846; 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=kaE703fUvjn7HVdw0ZGbrHh7JOU9e0/crufJzCxKJ6k=; b=xErF1s27KwYYKa2rRgWe5j8UVwurzhHp8sQskYoLPo5vPM3s2blGKUda21rcstM9ZP 1KvbOMbtrrahVwdTok5vs33zYDRl65W0N5F2BwXZpp6rvSDJ6LBTZ77nmNBmshdSzIaO JShycyZWLSfiR3Xr0nK2Av1S8mWa1VPinR2Xy0w8abuJDIcgpj49I8hDjh6jQGMfOPND SNgXGLCXWOTiiL6SkMaNp/zjI3RgYLiq8M2wq4u4B624jSXHtzWHSHbXGtAugVWAlg82 F20XbxFV8gte4T2AGsK/yg6oRNXzO99iwXLBkrYA6OqSD4qA8Ri9WbOKcuNsDoOlJejE X+zQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627046; x=1761231846; 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=kaE703fUvjn7HVdw0ZGbrHh7JOU9e0/crufJzCxKJ6k=; b=GSGzny+yQaSYctMClyn2ZLPISHHoN3cnLupXDzxHKpitTeQkB3H27/WeKz2wMScznn 0j8TD6r0lvOhn63kTvGKpLidz2lNiFeWHZ3ESNQShqg0OwtooIzs8G5uQ3kcDJ19WZmo wlRIiq1YFEmZ84EUDz/y6J6iXQ73ZgBRsvmKtAO+oPZ6mtf8jUTHXDVPyjtsfT33Kpn6 VZV/T5mFC6z0LG6f7rUac2dlw2Bb8+sbakTsw+zR6n9HhsnK04LHZ2p35cuM90J+t/PC fcXW2nO+0rEpErB3/WTxt+3dsLyOhkQk0p4tcIS6JyPK2DaAinqRQ8Oi1OCVciSt07hX G7Xw== X-Gm-Message-State: AOJu0Yz51Vde5L+pFhQYqe0zkrfGYKdj5NmkgQN/YJnZxgy8N+42twuQ 0BXBhdgSv3FDOSmaum+9nrpZ6cPqIYmR2ZmESCP3G+uZyUi9U2zvLdOxisTZi1wiBEo= X-Gm-Gg: ASbGnctE579u4AIuUSepFB3CWDAy9ywmP4DHhCYFv2DlSFObYusw9lW4Brmq9LvU43+ OtBqleDsb0SxNLl12YlIgRO7H5baLLJNVyHep0ThmsPMBghlixnTRZbGFY8/pO/KHguvjgjXhdi iW0WM+on1nqdOI2XgSPLyHqtj4bKhkCUCzxZd5XOHnhscFikF0ePf5YZEhnzViVmFle/oH/Dp8y eslUOG+tGI1/anDq4o3OF/p5DIsq8VzucDDGIV0RNwJT3vXb8HqJTCnx6lohJ+Wnkc5c4J/oRBz DLyqWDB3kfC3gmJAhTDcH4rGrMd0gqo1Qv3pNSdKTyY+CnyTxrpfauWBkRrXxJ4x87Y1ApZALSZ srzgmYmfqPX8mA137JGbVYQ4sjomMCQnO4QuXbYUTWf1Mp0DZ5dY43wBI/krSWEnKq9934MI2dA 1h X-Google-Smtp-Source: AGHT+IFJ5r/Hu+7t5E1sXNqbodahqg19RIm6MrpXLCPuUOKUkMQ/TAzcvMViywm3SE2TTAbHHSTFnQ== X-Received: by 2002:a05:600c:1e1f:b0:471:1716:11c4 with SMTP id 5b1f17b1804b1-4711792a510mr2710505e9.34.1760627045903; Thu, 16 Oct 2025 08:04:05 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki Subject: [PATCH 09/11] docs/system: unify the naming style for VirtIO devices Date: Thu, 16 Oct 2025 16:03:54 +0100 Message-ID: <20251016150357.876415-10-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32c.google.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627202725154100 This makes the index look a little neater. Reviewed-by: John Levon Signed-off-by: Alex Benn=C3=A9e --- docs/system/devices/virtio/virtio-gpu.rst | 2 +- docs/system/devices/virtio/virtio-pmem.rst | 6 ++---- docs/system/devices/virtio/virtio-snd.rst | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/docs/system/devices/virtio/virtio-gpu.rst b/docs/system/device= s/virtio/virtio-gpu.rst index b7eb0fc0e72..39d2fd2d21c 100644 --- a/docs/system/devices/virtio/virtio-gpu.rst +++ b/docs/system/devices/virtio/virtio-gpu.rst @@ -1,7 +1,7 @@ .. SPDX-License-Identifier: GPL-2.0-or-later =20 -virtio-gpu +VirtIO GPU =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 This document explains the setup and usage of the virtio-gpu device. diff --git a/docs/system/devices/virtio/virtio-pmem.rst b/docs/system/devic= es/virtio/virtio-pmem.rst index c82ac067315..0c24de83ec7 100644 --- a/docs/system/devices/virtio/virtio-pmem.rst +++ b/docs/system/devices/virtio/virtio-pmem.rst @@ -1,7 +1,5 @@ - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -virtio pmem -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +VirtIO Persistent Memory +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 This document explains the setup and usage of the virtio pmem device. The virtio pmem device is a paravirtualized persistent memory device diff --git a/docs/system/devices/virtio/virtio-snd.rst b/docs/system/device= s/virtio/virtio-snd.rst index 2a9187fd701..3c797f66e03 100644 --- a/docs/system/devices/virtio/virtio-snd.rst +++ b/docs/system/devices/virtio/virtio-snd.rst @@ -1,4 +1,4 @@ -virtio sound +VirtIO Sound =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 This document explains the setup and usage of the Virtio sound device. --=20 2.47.3 From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627131; cv=none; d=zohomail.com; s=zohoarc; b=AiH2Pcfnb7I4xKdwb39PX3ohe+I7btFCN1ioQkvZDn6BLTFeLpea2scqcQw9CImb38mkzjxlYA+WMnYEt6XNAc9Mhc9sqOnf+mQaRVfbFvPkMSUFl2XO0hjMnRDiAkwiAaIfjRxHibC/SkW96jaXWDvFi1M95zXfK/ezj+XxB2o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627131; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=IwPFf1pbtLyHgXrVD3lp8OL749C/noD+jZkGwklcu94=; b=fSKIrej99pSFTlTMKSVGY4IcDw1oTBD0hSTQnTlgcsOWPdtpDxhX/4VMDbsY/Dy5R8mgZ6+0S2NeaCO3cNzXVTflm7PXKpKJDFIJjRH45Aa1vCvX/lJdamV5eVxDZFlho8i1ThuKkNa1Ll/lAACFP8ptA2uoinWwazFTQ80nM6c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760627131556147.210935388061; Thu, 16 Oct 2025 08:05:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PWx-0002Hm-4N; Thu, 16 Oct 2025 11:04:40 -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 1v9PWl-0002Fp-7a for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:27 -0400 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWX-0001B2-5E for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:25 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-3ed20bdfdffso859944f8f.2 for ; Thu, 16 Oct 2025 08:04:10 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-426ff65596csm4134085f8f.24.2025.10.16.08.04.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:04:03 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 7589B5FAEB; Thu, 16 Oct 2025 16:03:58 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627047; x=1761231847; 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=IwPFf1pbtLyHgXrVD3lp8OL749C/noD+jZkGwklcu94=; b=UzaxLOUXbDdAToDIvWDQ6IkyRfq47hkUOkWodmOLqIOaLBdNX+LE/RYQOegN8vpdBn qQDwOG6X+33BW0uKtwZMWYNwOC9eaVM+M60WQ7dA3utiRpE+l9lm2Bg6MIKQ7j4lIK9F UNtqogToeOriF/v7jrsznpSohiOhzdc7wvAc3MKQsQIwRdv2HKSBax1z69XP3zDrPa/s FJzdAu3O6nE4ZrYNAzU7oFnAPVGtY30aYBdhqDeipiMGlfhJhHPbrnaqGqFacRhbQ5Ya ZxrbspROJop4REp0bkWuO9l3WxqQ5IPj1DeK/tSKGz4kHByss53/mxtE275fOOh6dNxK qGGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627047; x=1761231847; 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=IwPFf1pbtLyHgXrVD3lp8OL749C/noD+jZkGwklcu94=; b=rBYpyXeJEPE/jffJpz4uWKzPyhRCvCXnYcx2CQTQZ22EYHyz9TLYZrZGJrQ9+C6+hC WDFtI6btvtmbgXG2Yn1/eOdCL1nzE0jlSGLu7kLObT8C/o4bJFM3RSTB77F5uFITk+29 fIHk4eJtNL8LymCl5/xQs358YacLYqlrEGVMraiY6b4aG9N77kHRZZItnOuccj1b9hee 66r42+Ix+T/ulpA1/zjalos+r/1k6047geguqY0wkVMvXscgnvm3V58rN+ntu7c8b93I htr4RvyWjbQo59t9TrQSeieD+c1s+BZsWLvt6Pjj9ocmvKnxXwsZQN+4525pIdZ5nWqI +DPA== X-Gm-Message-State: AOJu0YyhAgBS1DLVTLJAIMAqhfg9TSQd6WIBRIdzqVD5U130dNxTs9dv aAQRH/RCzl6UdGBGLss4d5Ic5EE1vfcaJZoXusQv5FIkonSIxaxqbWFZNxiTarvO/ss= X-Gm-Gg: ASbGncsH3DpagedfLBPycIneKttFvkil1V0x05jSHR+eR/a5MB+kZ+xUQFUkYiPSXjq JXAwvFJImnUu4qfEyYcf13iRlVGK5831OsUobERC3tFdlaajqo2sHtaLbesFvUaInpiO6vjBfi4 Rk+WYyRhHLzPYZr83nqulhz2eG2vbGSjgs8fztsQaoLl4RdmCMHe9SQWUoNBH9iDBuT61AJe0cO 0iblbwvX02NMO9Y0T/IQ09Zsvx5WOfWw9g8I1PI7T8g4Eq9OZH7daJxiOlAOvn13t38/wXsDJcI A95dBxuBf5SLbB9E35DPtTb66X1mhv4j9SRxDmkXPfW0qNDokZYctd5tk9wRSA9etVJMI6HTaAe SVwvvEV45+9PxBC/unwxgUJkWb/eBRets8kbAba6S5mYq+BFXzAHfGiuoJckltpl2sX7G+Fe6Ur wK3vzOxxwkfuk= X-Google-Smtp-Source: AGHT+IGoiWPVXoZ/ttIWoCl7fBJNOKmMRiQlCb2EZQENFkAVwYkjC72SIJ5jdNk9rZkYOr25tJ5f/g== X-Received: by 2002:a05:6000:4b08:b0:427:526:16aa with SMTP id ffacd0b85a97d-42705261894mr182405f8f.58.1760627047183; Thu, 16 Oct 2025 08:04:07 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki Subject: [PATCH 10/11] docs/system: drop vhost-user-rng docs Date: Thu, 16 Oct 2025 16:03:55 +0100 Message-ID: <20251016150357.876415-11-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::432; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x432.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627134002154100 This is a fairly lightweight document which doesn't add much to the general advice in vhost-user. Update the vhost-user docs to point directly at the rust-vmm repo. Reviewed-by: John Levon Signed-off-by: Alex Benn=C3=A9e --- docs/system/devices/virtio/index.rst | 1 - docs/system/devices/virtio/vhost-user-rng.rst | 41 ------------------- docs/system/devices/virtio/vhost-user.rst | 2 +- 3 files changed, 1 insertion(+), 43 deletions(-) delete mode 100644 docs/system/devices/virtio/vhost-user-rng.rst diff --git a/docs/system/devices/virtio/index.rst b/docs/system/devices/vir= tio/index.rst index fc457ca74c7..e3839e61824 100644 --- a/docs/system/devices/virtio/index.rst +++ b/docs/system/devices/virtio/index.rst @@ -25,6 +25,5 @@ can also be off-loaded to an external process via :ref:`v= host user virtio-snd.rst vhost-user.rst vhost-user-input.rst - vhost-user-rng.rst =20 .. _VirtIO specification: https://docs.oasis-open.org/virtio/virtio/v1.3/v= irtio-v1.3.html diff --git a/docs/system/devices/virtio/vhost-user-rng.rst b/docs/system/de= vices/virtio/vhost-user-rng.rst deleted file mode 100644 index ead14053264..00000000000 --- a/docs/system/devices/virtio/vhost-user-rng.rst +++ /dev/null @@ -1,41 +0,0 @@ -.. _vhost_user_rng: - -QEMU vhost-user-rng - RNG emulation -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -Background ----------- - -What follows builds on the material presented in vhost-user.rst - it should -be reviewed before moving forward with the content in this file. - -Description ------------ - -The vhost-user-rng device implementation was designed to work with a random -number generator daemon such as the one found in the vhost-device crate of -the rust-vmm project available on github [1]. - -[1]. https://github.com/rust-vmm/vhost-device - -Examples --------- - -The daemon should be started first: - -:: - - host# vhost-device-rng --socket-path=3Drng.sock -c 1 -m 512 -p 1000 - -The QEMU invocation needs to create a chardev socket the device can -use to communicate as well as share the guests memory over a memfd. - -:: - - host# qemu-system \ - -chardev socket,path=3D$(PATH)/rng.sock,id=3Drng0 \ - -device vhost-user-rng-pci,chardev=3Drng0 \ - -m 4096 \ - -object memory-backend-file,id=3Dmem,size=3D4G,mem-path=3D/dev/shm,s= hare=3Don \ - -numa node,memdev=3Dmem \ - ... diff --git a/docs/system/devices/virtio/vhost-user.rst b/docs/system/device= s/virtio/vhost-user.rst index bddf8df5ed5..9c9a28df380 100644 --- a/docs/system/devices/virtio/vhost-user.rst +++ b/docs/system/devices/virtio/vhost-user.rst @@ -45,7 +45,7 @@ platform details for what sort of virtio bus to use. - :ref:`vhost_user_input` * - vhost-user-rng - Entropy driver - - :ref:`vhost_user_rng` + - See https://github.com/rust-vmm/vhost-device * - vhost-user-scmi - System Control and Management Interface - See https://github.com/rust-vmm/vhost-device --=20 2.47.3 From nobody Fri Nov 14 16:53:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1760627202; cv=none; d=zohomail.com; s=zohoarc; b=XVjkn7WavAILVsSVTxA/sLz1xCwjtjleC2WJk3bEtI8y9tRm2VqhHPtXMCPkq0FEbXlFsqnC+/IBnICe98N/5UGMT1qAl8giTzllhw6QI6j2g9/QD8TvnjbW7jzq7ASJcYbGXnFb/F+UOJFqUIaVtsjQWP137jKKiUqgOx2SSdQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760627202; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hyRk/+Kom5+xaZjZRwpB6HWrShbewUSfqklsztKJrc8=; b=TbGCA3anFttoeDI06LUa0LU9gq4vyYlGX2ez/np+pLS5oM3R10Fis4WHdhWj2tEbZjeoFjIuoJ4Tah8WuE6/1/MijRRHwqkexI7UFQ3TjCidSxTZkboDgBjTvC1DAePx51FcEWAE6WDn1kbrGdHMWWq5mtUCMBSwusq9cwYsrEM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760627202290596.3607051754396; Thu, 16 Oct 2025 08:06:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9PWj-0002F9-Po; Thu, 16 Oct 2025 11:04: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 1v9PWi-0002Eo-0x for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:24 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v9PWY-0001B8-5v for qemu-devel@nongnu.org; Thu, 16 Oct 2025 11:04:23 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-4256866958bso582645f8f.1 for ; Thu, 16 Oct 2025 08:04:11 -0700 (PDT) Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-471144b5c91sm31149045e9.11.2025.10.16.08.04.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:04:03 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 912225FAFD; Thu, 16 Oct 2025 16:03:58 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760627048; x=1761231848; 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=hyRk/+Kom5+xaZjZRwpB6HWrShbewUSfqklsztKJrc8=; b=Z8ovIo2M2jrI4wUkmrDK+yEcbdNeZcZhzRPeq/WQg8/ETy6LBLsPI+mXs5/Fs7D6r9 nk0HfaD6haJf/BmiySrYholXr0E/mC2yFn4cV/LLWLCYguujC10q77xc0AsyPciT5qum dg7SK8iytPlCu38Deq5KF4wuj0EF9qjjYaObU52TmryEIEjmfYEX86xXMDU45zUeZEfs ck9ynwY/x99IiOH8yNEfiVUcIt55RaxX1ppImiB7QWJfyDwXZbbuI14VLyj1deB+jmVe xFGvV9fAGdaZfHRqx1VRuyVryIRqx+baNhvX4B3O4i+Jb42rKTo5WSCC3ncDGrqzA/la 71sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760627048; x=1761231848; 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=hyRk/+Kom5+xaZjZRwpB6HWrShbewUSfqklsztKJrc8=; b=tIF3bGnOg8Gnp3GbfswPZ/8J0l1StZozx67ocC2dDi8HpGCwAmYZRiJWP3PuPHdteV 4SR2sh5mR6wvqaWql5z2tsXKWENSxMPijCAWUlAotx7fqcZV9iVf2DmgsSdCbqmScqIV 9eZYh0CLx5yjVv2CohRh7RfqT+yOTaWUsWaskpoYMjqKY0kZwEaQiAkfNIgIoAub0pjh j0mTTC/rTb/uI83M/4Nyn4Wz/hSgj9gGnLMvBUS9LT/ffBZsmSpIekk0+JrVk0r27BRY jDN5vqppcWpcfM1vNcoIrHDPOds/bdOJVPPtwBG0AMOQj2QKj52BU7oyX2gRbkICgC+z 3kbg== X-Gm-Message-State: AOJu0Yw2mDYQVS1YiBxvZhsrwfxScm16H8w8wB1OJWKVcMEHOnuB6lor Pmd3TFPKjrMMdqDQI63jfLyH3STf0eq7ri3aefcijRExnE65I+sE1zNjK1EPWfuVqrQ= X-Gm-Gg: ASbGncuFd4+TmmvViXw10fE5yQiXCmg0Px9/L/10a0ohhImh1uvLI6VRJscdO5r6RD3 5o0SlcuIwwMzdToiTi1PStGZ5mjIlcQbycklAnfEGCwtLiXTro+Og8f1GzFgYqGNsWEtQ2I3b1G 4a5GeFI9pi5/GAC5Ljqs1BocffCa45nJusaHXr31W2ECNmu6D0xr5GfX+sR2RjvR8x3HN+Tq0Hz 9ZcQgZySz6kLRSQKnrT08gfCmuHWBaoMA58f0yEdKi3TW7H4u0zU7MZ9lBWsQyQNGusSMReODuY aAipes05mo7aToKz3UL4crlG/cBWWf2KV18JXCgNkPgBFjLlS6jrpMOBI1vwUc0aJgZCaq2OE3x mj+tKtVLijS5CGaqv6cshaWHfxcs5RQQWki142qKayaBqF8nJJzfpSkv3DMuzqfFsGhAuiZBuSc d1X7dsNRKnSV38Hi8ek8YEGlUYOA== X-Google-Smtp-Source: AGHT+IF2QctGDAzzeTp9k5LE37/HhFvvdkepOSL3cuakDw7tAy5A6JebXq0nm9KpJvKf/yIozkJJPA== X-Received: by 2002:a05:600c:540c:b0:43c:ec4c:25b4 with SMTP id 5b1f17b1804b1-4711789d9e4mr2360605e9.10.1760627047881; Thu, 16 Oct 2025 08:04:07 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Thanos Makatos , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , John Levon , Dmitry Osipenko , Thomas Huth , Alexandre Iooss , Markus Armbruster , Eric Blake , Mahmoud Mandour , "Michael S. Tsirkin" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Akihiko Odaki , Manos Pitsidianakis Subject: [PATCH 11/11] docs/system: merge vhost-user-input into vhost-user-contrib Date: Thu, 16 Oct 2025 16:03:56 +0100 Message-ID: <20251016150357.876415-12-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251016150357.876415-1-alex.bennee@linaro.org> References: <20251016150357.876415-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x42e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1760627204289158500 We might as well group all the contrib submissions together and gently dissuade people from using them in production. Update the references in vhost-user to neatly refer to the storage daemon and the various external rust backends. Reviewed-by: Manos Pitsidianakis Signed-off-by: Alex Benn=C3=A9e --- v2 - some typo fixes --- docs/system/devices/virtio/index.rst | 2 +- .../devices/virtio/vhost-user-contrib.rst | 87 +++++++++++++++++++ .../devices/virtio/vhost-user-input.rst | 45 ---------- docs/system/devices/virtio/vhost-user.rst | 22 ++--- docs/system/devices/virtio/virtio-gpu.rst | 2 + 5 files changed, 101 insertions(+), 57 deletions(-) create mode 100644 docs/system/devices/virtio/vhost-user-contrib.rst delete mode 100644 docs/system/devices/virtio/vhost-user-input.rst diff --git a/docs/system/devices/virtio/index.rst b/docs/system/devices/vir= tio/index.rst index e3839e61824..c292101ade6 100644 --- a/docs/system/devices/virtio/index.rst +++ b/docs/system/devices/virtio/index.rst @@ -24,6 +24,6 @@ can also be off-loaded to an external process via :ref:`v= host user virtio-pmem.rst virtio-snd.rst vhost-user.rst - vhost-user-input.rst + vhost-user-contrib.rst =20 .. _VirtIO specification: https://docs.oasis-open.org/virtio/virtio/v1.3/v= irtio-v1.3.html diff --git a/docs/system/devices/virtio/vhost-user-contrib.rst b/docs/syste= m/devices/virtio/vhost-user-contrib.rst new file mode 100644 index 00000000000..48d04d2ade3 --- /dev/null +++ b/docs/system/devices/virtio/vhost-user-contrib.rst @@ -0,0 +1,87 @@ +vhost-user daemons in contrib +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +QEMU provides a number of :ref:`vhost_user` daemons in the contrib +directory. They were often written when vhost-user was initially added +to the code base. You should also consider if other vhost-user daemons +such as those from the rust-vmm `vhost-device repository`_ are better +suited for production use. + +.. _vhost-device repository: https://github.com/rust-vmm/vhost-device + +.. _vhost_user_block: + +vhost-user-block - block device +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D + +vhost-user-block is a backend for exposing block devices. It can +present a flat file or block device as a simple block device to the +guest. You almost certainly want to use the :ref:`storage-daemon` +instead which supports a wide variety of storage modes and exports a +number of interfaces including vhost-user. + +.. _vhost_user_gpu: + +vhost-user-gpu - gpu device +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D + +vhost-user-gpu presents a paravirtualized GPU and display controller. +You probably want to use the internal :ref:`virtio_gpu` implementation +if you want the latest features. There is also a `vhost_device_gpu`_ +daemon as part of the rust-vmm project. + +.. _vhost_device_gpu: https://github.com/rust-vmm/vhost-device/tree/main/v= host-device-gpu + +.. _vhost_user_input: + +vhost-user-input - Input emulation +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +The Virtio input device is a paravirtualized device for input events. + +Description +----------- + +The vhost-user-input device implementation was designed to work with a dae= mon +polling on input devices and passes input events to the guest. + +QEMU provides a backend implementation in contrib/vhost-user-input. + +Linux kernel support +-------------------- + +Virtio input requires a guest Linux kernel built with the +``CONFIG_VIRTIO_INPUT`` option. + +Examples +-------- + +The backend daemon should be started first: + +:: + + host# vhost-user-input --socket-path=3Dinput.sock \ + --evdev-path=3D/dev/input/event17 + +The QEMU invocation needs to create a chardev socket to communicate with t= he +backend daemon and access the VirtIO queues with the guest over the +:ref:`shared memory `. + +:: + + host# qemu-system \ + -chardev socket,path=3D/tmp/input.sock,id=3Dmouse0 \ + -device vhost-user-input-pci,chardev=3Dmouse0 \ + -m 4096 \ + -object memory-backend-file,id=3Dmem,size=3D4G,mem-path=3D/dev/shm,s= hare=3Don \ + -numa node,memdev=3Dmem \ + ... + + +.. _vhost_user_scsi: + +vhost-user-scsi - SCSI controller +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D + +The vhost-user-scsi daemon can proxy iSCSI devices onto a virtualized +SCSI controller. diff --git a/docs/system/devices/virtio/vhost-user-input.rst b/docs/system/= devices/virtio/vhost-user-input.rst deleted file mode 100644 index 118eb78101c..00000000000 --- a/docs/system/devices/virtio/vhost-user-input.rst +++ /dev/null @@ -1,45 +0,0 @@ -.. _vhost_user_input: - -QEMU vhost-user-input - Input emulation -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -This document describes the setup and usage of the Virtio input device. -The Virtio input device is a paravirtualized device for input events. - -Description ------------ - -The vhost-user-input device implementation was designed to work with a dae= mon -polling on input devices and passes input events to the guest. - -QEMU provides a backend implementation in contrib/vhost-user-input. - -Linux kernel support --------------------- - -Virtio input requires a guest Linux kernel built with the -``CONFIG_VIRTIO_INPUT`` option. - -Examples --------- - -The backend daemon should be started first: - -:: - - host# vhost-user-input --socket-path=3Dinput.sock \ - --evdev-path=3D/dev/input/event17 - -The QEMU invocation needs to create a chardev socket to communicate with t= he -backend daemon and access the VirtIO queues with the guest over the -:ref:`shared memory `. - -:: - - host# qemu-system \ - -chardev socket,path=3D/tmp/input.sock,id=3Dmouse0 \ - -device vhost-user-input-pci,chardev=3Dmouse0 \ - -m 4096 \ - -object memory-backend-file,id=3Dmem,size=3D4G,mem-path=3D/dev/shm,s= hare=3Don \ - -numa node,memdev=3Dmem \ - ... diff --git a/docs/system/devices/virtio/vhost-user.rst b/docs/system/device= s/virtio/vhost-user.rst index 9c9a28df380..f556a840e99 100644 --- a/docs/system/devices/virtio/vhost-user.rst +++ b/docs/system/devices/virtio/vhost-user.rst @@ -27,37 +27,37 @@ platform details for what sort of virtio bus to use. - Notes * - vhost-user-blk - Block storage - - See contrib/vhost-user-blk + - :ref:`storage-daemon` * - vhost-user-fs - File based storage driver - - See https://gitlab.com/virtio-fs/virtiofsd + - `virtiofsd `_ * - vhost-user-gpio - Proxy gpio pins to host - - See https://github.com/rust-vmm/vhost-device + - `vhost-device-gpio `_ * - vhost-user-gpu - GPU driver - - See contrib/vhost-user-gpu + - `vhost-device-gpu `_ or :ref:`vhost_user_gpu` * - vhost-user-i2c - Proxy i2c devices to host - - See https://github.com/rust-vmm/vhost-device + - `vhost-device-i2c `_ * - vhost-user-input - Generic input driver - - :ref:`vhost_user_input` + - `vhost-device-input `_ or :ref:`vhost_user_input` * - vhost-user-rng - Entropy driver - - See https://github.com/rust-vmm/vhost-device + - `vhost-device-rng `_ * - vhost-user-scmi - System Control and Management Interface - - See https://github.com/rust-vmm/vhost-device + - `vhost-device-scmi `_ * - vhost-user-snd - Audio device - - See https://github.com/rust-vmm/vhost-device/staging + - `vhost-device-sound `_ * - vhost-user-scsi - SCSI based storage - - See contrib/vhost-user-scsi + - :ref:`vhost_user_scsi` * - vhost-user-vsock - Socket based communication - - See https://github.com/rust-vmm/vhost-device + - `vhost-device-vsock `_ =20 The referenced *daemons* are not exhaustive, any conforming backend implementing the device and using the vhost-user protocol should work. diff --git a/docs/system/devices/virtio/virtio-gpu.rst b/docs/system/device= s/virtio/virtio-gpu.rst index 39d2fd2d21c..0f4bb304a9b 100644 --- a/docs/system/devices/virtio/virtio-gpu.rst +++ b/docs/system/devices/virtio/virtio-gpu.rst @@ -1,6 +1,8 @@ .. SPDX-License-Identifier: GPL-2.0-or-later =20 +.. _virtio_gpu: + VirtIO GPU =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 --=20 2.47.3