From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665423289; cv=none; d=zohomail.com; s=zohoarc; b=SSp1hYlL8eCHLrH8YAOnyQbgLzp+AqhMk09Qjhplvhk3hKmeAbsYX+CzrNSVbtvmiZ4T26w/JcO/O8emfsA9BcIW3E9LCFRoT5q9rYT35Cm9DhEgmY9awGEUlaAUOP4mbIthlR6YXceA8+0if1bVkVHGCOe/+GzadbeeKd5XbEs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665423289; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=rfuSsgJ8/3kGgCVZkv5tOI5S+PHvx8Oz4NxCMhgWj98=; b=LOQ4m0ZBRQyUioqGA8IZdmb5gYY3mB4TmagRdwG6GLe+IaH3TsbsmZ5OdaVl15q61pDwAjrxkn7n8M7tBwiw6RjMCqprP2GJbOpgJ1Q8gO+9mrNdrWxD99/74/BjM0kxNM5ir3mdXdFHCgvJVfr3xqhN1+oQIBqAyfeweSiqEq8= 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 1665423289524715.020130482361; Mon, 10 Oct 2022 10:34:49 -0700 (PDT) Received: from localhost ([::1]:49912 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohwfw-0005nT-Dp for importer@patchew.org; Mon, 10 Oct 2022 13:34:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56534) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaG-0007ek-Sg for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:28:56 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:23675) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaB-0006Ow-Cl for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:28:54 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-553-XR5EWz1kP-qh0nTlV7iA5A-1; Mon, 10 Oct 2022 13:28:47 -0400 Received: by mail-wm1-f69.google.com with SMTP id k2-20020a05600c1c8200b003c3dd3aa638so4806635wms.1 for ; Mon, 10 Oct 2022 10:28:47 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id u2-20020a7bc042000000b003b4e009deb2sm12924785wmc.41.2022.10.10.10.28.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:28:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422930; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rfuSsgJ8/3kGgCVZkv5tOI5S+PHvx8Oz4NxCMhgWj98=; b=foacEpD4kKc+/BPbk2MFBrNj6Ryr6iCAyIOAlX/EZrbM4rLtRuuPQ9amREaHuTxwPiHIy2 LB17pMHbbRp4x8aaqs1XLzE7oZ5T8c1cd2DAjXUi9F3F+HJNwhp2tWFiVhHY7mJ4OENJUb lQtOTTMfVRGxlwwR9LmyJ+vW/etanEY= X-MC-Unique: XR5EWz1kP-qh0nTlV7iA5A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rfuSsgJ8/3kGgCVZkv5tOI5S+PHvx8Oz4NxCMhgWj98=; b=B0H+rsiKqDAy3uJvUkUT3GBbhCM45drGjOeSghJXK6Po1fjEpGItK9MhaSZay86ExV Vh11StvKzsk0MLT87TurbWjiKzuzmMh8rk53O+etc533CLYwOIVIIF6xo+MWSJVKrNYd YXCf2nWK3RevSV2iEv9f821txIItDdeMDXF/R5dG/nNaootqv4jz+mQMTqB/VL54qmFb YEvmHVJKzDlog8OMLL+qSPM/jA/BRMZArXoG41BqbgdTL8TwWSPAyRSbxBEZ3yrrHhHb y/S0UHjRAN4AycKKiuar6Zj7wJ6snlQDyZu2rTfygg2JEMVDMl1FigUwPvCCrei8ai5C iyjA== X-Gm-Message-State: ACrzQf2ffiGtoPTgPAg2rQ5AuA7H6MMg3PfcKTpTew+7Lart8yJNK0ZG QyFl0IP/C5BHgZOzh151H5Gsm9LVIyqXA88XnDuPN8wSAYhiy+sf/JJLYr4buZirBZdHipxmMfE 4t1ew6puPflLGhAEv0QfMhJNtsTQp/xZsiSw3k68bFOfRfCGl7edZXyU44xLa X-Received: by 2002:a5d:608d:0:b0:22e:7bde:c19d with SMTP id w13-20020a5d608d000000b0022e7bdec19dmr12336886wrt.494.1665422926188; Mon, 10 Oct 2022 10:28:46 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5o3cIFVeOGgH4fTbL+6bxsbACT0BoYm2+38BQ4Z31ouC+3BUrUf6MC8VJ/v5tfYOb3yUTLMQ== X-Received: by 2002:a5d:608d:0:b0:22e:7bde:c19d with SMTP id w13-20020a5d608d000000b0022e7bdec19dmr12336866wrt.494.1665422925889; Mon, 10 Oct 2022 10:28:45 -0700 (PDT) Date: Mon, 10 Oct 2022 13:28:41 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: [PULL 01/55] hw/virtio: incorporate backend features in features Message-ID: <20221010172813.204597-2-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665423290537100001 From: Alex Benn=C3=A9e There are some extra bits used over a vhost-user connection which are hidden from the device itself. We need to set them here to ensure we enable things like the protocol extensions. Currently net/vhost-user.c has it's own inscrutable way of persisting this data but it really should live in the core vhost_user code. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220726192150.2435175-7-alex.bennee@linaro.org> Message-Id: <20220802095010.3330793-2-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/virtio/vhost-user.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index 70748e61e0..0b7e41ffe8 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -1460,7 +1460,14 @@ static int vhost_user_set_features(struct vhost_dev = *dev, */ bool log_enabled =3D features & (0x1ULL << VHOST_F_LOG_ALL); =20 - return vhost_user_set_u64(dev, VHOST_USER_SET_FEATURES, features, + /* + * We need to include any extra backend only feature bits that + * might be needed by our device. Currently this includes the + * VHOST_USER_F_PROTOCOL_FEATURES bit for enabling protocol + * features. + */ + return vhost_user_set_u64(dev, VHOST_USER_SET_FEATURES, + features | dev->backend_features, log_enabled); } =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665423813; cv=none; d=zohomail.com; s=zohoarc; b=FaJLcprpYzUxnllUQRTZaX0g8o5jDC6BYy1xzQ8NAj7zra0Wxpvs0I6bUzap4FyvBU71Pbgb0JtFrUnPbmw/uSSljEsoOGS3p3zYioUAt6iiPvGw80MH7LDOoOKDFAyojVN8wfjELz+m5L4UJuFfeuq7iIba4cKkYt1+yOjiQ5E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665423813; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hp8rI8ket4FMKJXRLF3s2rnrP8cE0bwnLy3PoafAv4c=; b=gKa/i8s+AdbMZsDSSLrayvxzVt62oxH/RcexMNVyljkR86+nTfOSEJbXeMP6s9SLdq0igMxoKnE28euClRF3mBNBzN95CXDJyb5Hcx6bAIdNNp0hQxmNcx0g1a5Dzo9UkkfD4lkG8R9teYamsZf72+QnRAQcESJaioC5cSgImLU= 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 1665423813632629.6127335038111; Mon, 10 Oct 2022 10:43:33 -0700 (PDT) Received: from localhost ([::1]:44756 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohwoO-0002W5-A4 for importer@patchew.org; Mon, 10 Oct 2022 13:43:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47798) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaI-0007nA-PJ for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:28:58 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:43208) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaD-0006PP-In for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:28:58 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-556-9lUqtD4aMJusv94hmeqVxg-1; Mon, 10 Oct 2022 13:28:51 -0400 Received: by mail-wm1-f69.google.com with SMTP id t20-20020a7bc3d4000000b003c6bfea856aso477717wmj.1 for ; Mon, 10 Oct 2022 10:28:51 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id m29-20020a05600c3b1d00b003a1980d55c4sm914699wms.47.2022.10.10.10.28.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:28:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hp8rI8ket4FMKJXRLF3s2rnrP8cE0bwnLy3PoafAv4c=; b=DUYSiBStfh3SHd8+QzXKHxloKBX91ht9u/W3Qkm4qE6XLhj1jsrgeMC/L8XybIQES1OI11 n0p4/Y3w1dxnITsRlTjMwRvdEiBo0SmwNNNz3Dap37foRUC4qFc0jKEpUaOZHC/UwBYSDw kvoBZhK+Hd8E4dcv26U/SrekHgu8j/o= X-MC-Unique: 9lUqtD4aMJusv94hmeqVxg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hp8rI8ket4FMKJXRLF3s2rnrP8cE0bwnLy3PoafAv4c=; b=ira3tzNat8Zs4DAr0+7q9yos3U0nMs5I2p1jhkR5RQQli42Km09jgiVGNgEPF2gj2K 7lI7c16Pz+bMAsYDh6OnruzcciQEf7wcT1oa9KwxVLCR0t5AdZeOPKeMWWzftm5bYeOT h3vl3BPucpGPMg/WhCE1UPbRmzRyeS0dzs4M+Q/if7jHtxWBg9koDRGzs/m4qw5x8nrz wMW8zE2i0hdrfc8rmsoC74pQzarPDFiSihxpkRF0BxzAuK2+263v6UerXwWHgdNj6jfW UGifTbeUwc0DjhV+lWnj4CPoc8SGkA1whmDFQekLNMyt+0YKa9T5yCbvN1vQBRqX0sww fhUw== X-Gm-Message-State: ACrzQf2C5UJJvvOz3vDXHIsjfU7UG8XKy5HZya8dNAPpVTNTKqOtj+NY TPeSDaox8ef5u/2t7XL0C59iitxaCY/D3Zv3gY9BxkUO7rRjQVpSd2z6eC5Rkgul6CuH2NhsGil KWTYiEijZ6u4MKg3JffX6t0g8ZfyCSZUswsMZwZPSoPurqIG97jKQs40NOiFz X-Received: by 2002:a05:600c:46c6:b0:3b4:cad4:7d3e with SMTP id q6-20020a05600c46c600b003b4cad47d3emr20971370wmo.78.1665422930123; Mon, 10 Oct 2022 10:28:50 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5Dm9en/jjeHV2XipC0LWI1ovN9z1j/SBjB70ziUg/9GGOoxRQg6hpSSir7UZotVl4g1kACjw== X-Received: by 2002:a05:600c:46c6:b0:3b4:cad4:7d3e with SMTP id q6-20020a05600c46c600b003b4cad47d3emr20971342wmo.78.1665422929768; Mon, 10 Oct 2022 10:28:49 -0700 (PDT) Date: Mon, 10 Oct 2022 13:28:46 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= Subject: [PULL 02/55] include/hw/virtio: more comment for VIRTIO_F_BAD_FEATURE Message-ID: <20221010172813.204597-3-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665423815138100001 From: Alex Benn=C3=A9e When debugging a new vhost user you may be surprised to see VHOST_USER_F_PROTOCOL getting squashed in the maze of backend_features, acked_features and guest_features. Expand the description here to help the next poor soul trying to work through this. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-6-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/virtio.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index db1c0ddf6b..9bb2485415 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -24,7 +24,12 @@ #include "qom/object.h" #include "hw/virtio/vhost.h" =20 -/* A guest should never accept this. It implies negotiation is broken. */ +/* + * A guest should never accept this. It implies negotiation is broken + * between the driver frontend and the device. This bit is re-used for + * vhost-user to advertise VHOST_USER_F_PROTOCOL_FEATURES between QEMU + * and a vhost-user backend. + */ #define VIRTIO_F_BAD_FEATURE 30 =20 #define VIRTIO_LEGACY_FEATURES ((0x1ULL << VIRTIO_F_BAD_FEATURE) | \ --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665423128; cv=none; d=zohomail.com; s=zohoarc; b=XWg2DB+RfyryNJ9bJrQKqIAGodHXVFrVu9O/sjUP2iYKKXcaZNdbJz+59Kpgk4OkDDiz25V38G08aOlKqu/0PC0YtDbZkWwARPxXDeT0g6cQ1uReFdq8Isx5F0uimlzcQaCcw45bDdZZ1oHEBZrG9KoXLnpRWjF5cVCMMrq36lg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665423128; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=C17R4uZqGLEi0seyRZv7bdzpjpcef+51Q4h/UGlzozI=; b=iU01WetcNf1cPgOaFPrLZBIpsB3klH26s03hSQiWnHq+L0oOpE9PDDE6MDOlulPxJLPL4IEwtoXB7O23Ifp8z3dEdLoCLpSSShWmyDws9+C5qPMvCZ/dvWS8109Q+VRtFVIRKwjYqixG29GyXjRGFNPddzSA9hBxrD9UKqwnQEw= 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 1665423128576918.253694976174; Mon, 10 Oct 2022 10:32:08 -0700 (PDT) Received: from localhost ([::1]:58014 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohwdK-0002WL-NI for importer@patchew.org; Mon, 10 Oct 2022 13:32:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47800) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaL-0007v3-Q5 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:01 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:30351) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaH-0006QY-Az for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:01 -0400 Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-60-tCd9lUVgO3uPgHdwj7OgTw-1; Mon, 10 Oct 2022 13:28:55 -0400 Received: by mail-wr1-f71.google.com with SMTP id k30-20020adfb35e000000b0022e04708c18so2982630wrd.22 for ; Mon, 10 Oct 2022 10:28:55 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id i9-20020a5d5229000000b0022cd59331b2sm9540464wra.95.2022.10.10.10.28.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:28:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422936; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=C17R4uZqGLEi0seyRZv7bdzpjpcef+51Q4h/UGlzozI=; b=Y+OB9/KFgKj2khtazSClewo8GHZ2F5J05YfVLYb6oDjOFEthRIpCPsVC3D6tPkzerUrT2c t5bZnoouj10VIOhjIL+2n9612rAqR+CWyaCOuotY1B8aFD2J9s1TaPU4itMhEFDMkpaf6H RayS00/8AHpAtsrGV0pXB5uc0m4/fhs= X-MC-Unique: tCd9lUVgO3uPgHdwj7OgTw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=C17R4uZqGLEi0seyRZv7bdzpjpcef+51Q4h/UGlzozI=; b=MM5Y8CWOrBFU/yEr+H24n8dByhms4fLr3vcL9WXwoo86CuOIWpOO/D2hITllINJpB6 dG3D++TZOXCO86P8W3mIDe91SF8PrS3j47hHZPOS//weQzVZrLMvD/Tf/Dcdsfpov275 2Rr+oF1a1nrAVkmudHqYcAkNb3obYf0VmV3YamF4nMoPbPgZ/8xv76vGzQYmmSdXb6Rr BWnmBt9wcKEs1URszlp2EFpj+qEJ5TRi47igbTw5wMf5yMWlaUhqn5D8p6u8UVJOaUDN lEB89JxCibs/nA5OYBBcQospCH1hwP2IEMUxV80HVfwcmSiRq4T+tue8plVco6TKc7Cx t+Qg== X-Gm-Message-State: ACrzQf32exYkKews8dHCtIrK9brHijM0yzQ6wTysoMh4y04dC4zD2tJt yzJ1wDge7ht2w4B2I9e5NveQvZD99YcukS1aMB0RESVo7UWIjFxEHHhQBLFwgP8ys4n7Ocvr393 4V3fFUu0aV2Hz2LCG6mMHQhw/3Ruikk7r50xV1O93pTwPNBXrVGx98shNucff X-Received: by 2002:a05:600c:34c2:b0:3b4:7a98:5f5a with SMTP id d2-20020a05600c34c200b003b47a985f5amr13509088wmq.156.1665422934217; Mon, 10 Oct 2022 10:28:54 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4ScZhY6vvzjjysGPhGw5ZaTubJxKoW+/2JYoD3/aQZ39eYMliJs0k72iXdzQJbgMIaxJqI2A== X-Received: by 2002:a05:600c:34c2:b0:3b4:7a98:5f5a with SMTP id d2-20020a05600c34c200b003b47a985f5amr13509063wmq.156.1665422933862; Mon, 10 Oct 2022 10:28:53 -0700 (PDT) Date: Mon, 10 Oct 2022 13:28:50 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Jason Wang , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: [PULL 03/55] include/hw: document vhost_dev feature life-cycle Message-ID: <20221010172813.204597-4-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665423130682100001 From: Alex Benn=C3=A9e Try and explicitly document the various state of feature bits as related to the vhost_dev structure. Importantly the backend_features can advertise things like VHOST_USER_F_PROTOCOL_FEATURES which is never exposed to the driver and is only present in the vhost-user feature negotiation. Signed-off-by: Alex Benn=C3=A9e Acked-by: Jason Wang Message-Id: <20220802095010.3330793-7-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/virtio/vhost.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h index a346f23d13..586c5457e2 100644 --- a/include/hw/virtio/vhost.h +++ b/include/hw/virtio/vhost.h @@ -86,8 +86,11 @@ struct vhost_dev { /* if non-zero, minimum required value for max_queues */ int num_queues; uint64_t features; + /** @acked_features: final set of negotiated features */ uint64_t acked_features; + /** @backend_features: backend specific feature bits */ uint64_t backend_features; + /** @protocol_features: final negotiated protocol features */ uint64_t protocol_features; uint64_t max_queues; uint64_t backend_cap; --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665423580; cv=none; d=zohomail.com; s=zohoarc; b=S1pb4fsQhp2UxECh/z6+QfvzyK1azxBz8ActTdUkn7JbJiTYNOZcKWW1izwMXk8tAyPMzrL1TVYBT8dJtmPsWqFdfj107UN5NUq+cN6Kw1Bq7kvPLIZZ+VuLJZa3rKICY20WFnb0B+qQLWPFRb7CdgKaerByRlHf2EC19RNCMjQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665423580; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Utw17k59pDTuaZhHiKWHR5GCzq1rexlKpcJDjdcDlak=; b=JbCkXkYnfO11oWEUT5aVVFS9gGNa3U+5ajpafmVkrD61NNk+3ngAiMgOxsTwgxvxj5xmSmGorSWNwG4ezwUglc+pjXIu5/TvDVwNAYWIEs1eR9AFrpPXNRRuytVV6kApMaAQTUTexOzNyTLSsLfhXT3x6ADZDI+ghN2rFqm48w8= 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 1665423580331910.9964304271379; Mon, 10 Oct 2022 10:39:40 -0700 (PDT) Received: from localhost ([::1]:41960 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohwkc-0000Vp-La for importer@patchew.org; Mon, 10 Oct 2022 13:39:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40722) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaP-000840-W7 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:06 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:49262) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaL-0006RJ-9T for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:05 -0400 Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-508-KYge1n_QN1u7K6rj4Nu1SA-1; Mon, 10 Oct 2022 13:28:59 -0400 Received: by mail-wr1-f72.google.com with SMTP id e19-20020adfa453000000b0022e3608df56so2975819wra.10 for ; Mon, 10 Oct 2022 10:28:59 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id k18-20020a5d5192000000b00228dbf15072sm9388945wrv.62.2022.10.10.10.28.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:28:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422940; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Utw17k59pDTuaZhHiKWHR5GCzq1rexlKpcJDjdcDlak=; b=R6NIjFiCyQc5dQVPvwlv3fWfoS+V0ARUiytgY76I4t/v2/k4TswDbURXl0oq64B0gHR1mF 4Ln9UpSC5Y7W5/RbXzvoNP7sG7789rGOeepDC4Zw0zuxaChCxXALMhgXbmacVYqrMnXzj6 z2Of4uy/FHQ8seDDylj4hjZHqI+yraA= X-MC-Unique: KYge1n_QN1u7K6rj4Nu1SA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Utw17k59pDTuaZhHiKWHR5GCzq1rexlKpcJDjdcDlak=; b=XsQncWk25TDwsi8PAh6BZfH95IfMPk9PoCy6pecq2gb5JhpRYjRR4bt2pJnPGTyo7G XWN2hAnwPhnsaNlxV20NK1SS9luqNTcoXlcqOBolBhulcB7qoHL4ntXUYUVtbzXSgpTu MBBDarde5EHbMrtJmk98HWnRQbNFdJg/sfZiBamsBBuGInNJrBQ4CoDr0aGOlKPid7T+ rMTCTCEjb1MOrBVX2iH+i8R1UcP+oIZOlYn6k1sV1b7SdvbMa4nuKgQ3XbMj6w5q2dgs Hq88YDhMPRj+iHkb2cflwwQYen8kQXZ/MR1Q/j7lduyoT3IGtN88VlqX2S1CESs0leO2 HcwA== X-Gm-Message-State: ACrzQf2UCOPsuk7nuR4+vp4VAmQsusF7/VSrXFEkEMctiCXFdG9iJwU7 qfeqEJJOCp2PFKEeuF/pgVFYve3vaslzk6xZl4x1CCkbOdTqF7hgLv13CJDF+ey3NLmv6NcIHPH ulJzyJ9K8qFEwcx/h9zuzXdHUZLdTI8zbcXMzyOjnZn7P8G5cCHtqIKl4vY5q X-Received: by 2002:a05:6000:1861:b0:22a:bb41:886d with SMTP id d1-20020a056000186100b0022abb41886dmr12185283wri.661.1665422937966; Mon, 10 Oct 2022 10:28:57 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4fJLi5vrlxUPeXHhF6K9HZowwWn/bhwoFgzXQC+S2B31G+2SJxpR+Q74qywCinCvfBB7/1ag== X-Received: by 2002:a05:6000:1861:b0:22a:bb41:886d with SMTP id d1-20020a056000186100b0022abb41886dmr12185267wri.661.1665422937671; Mon, 10 Oct 2022 10:28:57 -0700 (PDT) Date: Mon, 10 Oct 2022 13:28:54 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Jason Wang , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: [PULL 04/55] hw/virtio: fix some coding style issues Message-ID: <20221010172813.204597-5-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665423581582100001 From: Alex Benn=C3=A9e Signed-off-by: Alex Benn=C3=A9e Acked-by: Jason Wang Message-Id: <20220802095010.3330793-8-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/virtio/vhost-user.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index 0b7e41ffe8..03415b6c95 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -200,7 +200,7 @@ typedef struct { VhostUserRequest request; =20 #define VHOST_USER_VERSION_MASK (0x3) -#define VHOST_USER_REPLY_MASK (0x1<<2) +#define VHOST_USER_REPLY_MASK (0x1 << 2) #define VHOST_USER_NEED_REPLY_MASK (0x1 << 3) uint32_t flags; uint32_t size; /* the following payload size */ @@ -208,7 +208,7 @@ typedef struct { =20 typedef union { #define VHOST_USER_VRING_IDX_MASK (0xff) -#define VHOST_USER_VRING_NOFD_MASK (0x1<<8) +#define VHOST_USER_VRING_NOFD_MASK (0x1 << 8) uint64_t u64; struct vhost_vring_state state; struct vhost_vring_addr addr; @@ -248,7 +248,8 @@ struct vhost_user { size_t region_rb_len; /* RAMBlock associated with a given region */ RAMBlock **region_rb; - /* The offset from the start of the RAMBlock to the start of the + /* + * The offset from the start of the RAMBlock to the start of the * vhost region. */ ram_addr_t *region_rb_offset; --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424265; cv=none; d=zohomail.com; s=zohoarc; b=b+bU0NRsYCfG3y3GE44asODkrh0W8V+xgp18VXKDi6iwxby6QIB1uJcU/Vrz3IQkG29WDRddOTWHnjdqkczciCFL986FX1y7ansc4XOMxRqQlM3PCssFnC5DzB0OAgd+UbOQFQlxq3ZdXQS8vapFPOpzu0uCejI/DTVJkxwQsfY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424265; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nvGXlozHC+df8Bjp/q5u04uDCnJ0h7GQtmXnBTatQbk=; b=N22FtXrz/nBNM2xigqyh45vvCC/CSEWYszwkz3IZ0I/Dtz/4tIWAAUA4CgE6+BQrdKcC4H+V9AXWuXesD3FPM5BdquEiK8H9Hxqm85zWqvk3guj2m+1aQEMha4R8O4fLbxC/MzkZ+Xq7f3nkgf1HcAS72GdtmyFbgWZYgUrUA/Y= 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 1665424265166949.3356080995813; Mon, 10 Oct 2022 10:51:05 -0700 (PDT) Received: from localhost ([::1]:43764 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohwvf-0008PU-NF for importer@patchew.org; Mon, 10 Oct 2022 13:51:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40724) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaT-0008CO-Eb for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:09 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:52922) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaP-0006SB-AE for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:08 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-408-YvHTMqN6M6uINC-rPaBPAA-1; Mon, 10 Oct 2022 13:29:03 -0400 Received: by mail-wr1-f70.google.com with SMTP id u20-20020adfc654000000b0022cc05e9119so2950737wrg.16 for ; Mon, 10 Oct 2022 10:29:03 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id u9-20020a5d4349000000b0022cdb687bf9sm12062396wrr.0.2022.10.10.10.28.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422944; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nvGXlozHC+df8Bjp/q5u04uDCnJ0h7GQtmXnBTatQbk=; b=YDGNasLZjUH9sRfUCqUmv19Q4HdV6p/JJauseK6kW2FbRb6MdexVKMB/shYLgwwlfAWgKx a/xVTOkCvxOMcaBLHX9zI0bQvNZ7K2giz7gYGlZaGbt6YMFY/xuR/RV1KcufKO4x8v26u3 Md0YYKWd1qsDDIA7FG0GYixVCeO0ofw= X-MC-Unique: YvHTMqN6M6uINC-rPaBPAA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nvGXlozHC+df8Bjp/q5u04uDCnJ0h7GQtmXnBTatQbk=; b=4zQQY6SEWKgB2Nkf1tDLSnqOSmu0LfAQlbKJ+RxEC5egKetR/u7CjjCODNsk/5mh+J Wzuvz9MlDgETrC2SWYVsigv3jP5StD9IBsuDrONJMMdxlNUEVcQaPjNxFVYsQkFWXjOj lD8IQK78ZoxtvxHHgZUfGXvVKut5TJb9yVBjWju2DadpM/sizn3uEzB2T5WogwvgAOya jXaQUY1Dei15RsOFgMBmFYfhsuZULCrnXHJLQQwnqItfSQzSguVsi6R/++qcP3Z8I4L7 14Iv7Xjl39EBbNKBz8o6L9DA65xHNRIX4GoQ/P/TvKYPTc7GNqpJQYsqYD06GCVnSm61 PlLA== X-Gm-Message-State: ACrzQf0IENGjv19yLH7XKve0NVZ83GhIlksZ0pWxN2RTJQpAO4ycfoq0 AjH8NIIei8xnazTEJydz5hJXt83rQ/w0slV9VOXi1xklrDE6F1uMjvaXki4bBxt5AAlKXK+oJ4T p280Sau/aizjBzMrGlfsCUc/LdgIrqtGfOR+w6I8U09VuBwGPr76EbaxVi0EG X-Received: by 2002:a05:6000:1885:b0:22e:7851:b257 with SMTP id a5-20020a056000188500b0022e7851b257mr12127296wri.418.1665422942159; Mon, 10 Oct 2022 10:29:02 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6rN232I1sxE53ZMJfjzA7yOYL0lpqi0UTFuSy5memIv55IbfmoAejglhy67jcawMCZ7zbRiw== X-Received: by 2002:a05:6000:1885:b0:22e:7851:b257 with SMTP id a5-20020a056000188500b0022e7851b257mr12127279wri.418.1665422941861; Mon, 10 Oct 2022 10:29:01 -0700 (PDT) Date: Mon, 10 Oct 2022 13:28:57 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Jason Wang Subject: [PULL 05/55] hw/virtio: log potentially buggy guest drivers Message-ID: <20221010172813.204597-6-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424265580100001 From: Alex Benn=C3=A9e If the guest driver attempts to use the UNUSED(30) bit it is potentially buggy as 6.3 Legacy Interface: Reserved Feature Bits states it "SHOULD NOT be negotiated". For now just log this guest error. Signed-off-by: Alex Benn=C3=A9e Acked-by: Jason Wang Message-Id: <20220802095010.3330793-9-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/virtio.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 5d607aeaa0..97a6307c0f 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2980,6 +2980,13 @@ int virtio_set_features(VirtIODevice *vdev, uint64_t= val) if (vdev->status & VIRTIO_CONFIG_S_FEATURES_OK) { return -EINVAL; } + + if (val & (1ull << VIRTIO_F_BAD_FEATURE)) { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: guest driver for %s has enabled UNUSED(30) feat= ure bit!\n", + __func__, vdev->name); + } + ret =3D virtio_set_features_nocheck(vdev, val); if (virtio_vdev_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX)) { /* VIRTIO_RING_F_EVENT_IDX changes the size of the caches. */ --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665423849; cv=none; d=zohomail.com; s=zohoarc; b=kCOiLKv9PJPiDnvY+LrFxy+hPLQdlVcj1nSJxdV+Sfj80DGRkLbe8xke1wJGXDQ/KkPfGV7Etd+4E8L8n8mldmJHfAMYIliRnVmGSqrQrLX6R9p1rzpDkiiAzjXfw7MSHTTrm7gaTtdMsqwE9BadGHVyBPl68jT0IuHcxxLm/LY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665423849; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/FuzALXECHqoocD8Ass+d81bVkCF0EOizPDi9GCy9zk=; b=cAFaRRVoZFQb4MR7+V+EHnWegZYfFJrtN8Wmn3lIdXZi5gazHgh4qn4q/Ng5CoFK6y0tbdAFkGmpiicmOAl5ZC1IAbrcnjH8dG6oWBRSYjaql1KEmwfjEXfqrgk69Mo0jiruom7wIR5WC06kUdlpFqYTDpSrIviG4NFciSKhByE= 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 1665423849848437.50370628900714; Mon, 10 Oct 2022 10:44:09 -0700 (PDT) Received: from localhost ([::1]:47058 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohwoy-0003SL-GB for importer@patchew.org; Mon, 10 Oct 2022 13:44:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40726) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaW-0008KB-DN for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:56931) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaT-0006T5-59 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:12 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-389-y-5j2JHJO-21mHZSYQimMw-1; Mon, 10 Oct 2022 13:29:07 -0400 Received: by mail-wm1-f72.google.com with SMTP id c130-20020a1c3588000000b003b56be513e1so7308223wma.0 for ; Mon, 10 Oct 2022 10:29:07 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id bv10-20020a0560001f0a00b00228fa832b7asm9286506wrb.52.2022.10.10.10.29.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422948; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/FuzALXECHqoocD8Ass+d81bVkCF0EOizPDi9GCy9zk=; b=O6F4GQ2z3ofTdKl+KqdIIhznfqYvr4I96SgMOP85wax8/uceb7K38WXHwncqsRt+zTOuJo YdyUuvEAzJW4dju/cMkQ6krGRufiTjypjzBCHF7n5cg+h0yBDKbPps2tRxiVqLi/vUbru4 j9Bu3WoSulbbiXTQpSorv8z2GmbQ20Q= X-MC-Unique: y-5j2JHJO-21mHZSYQimMw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/FuzALXECHqoocD8Ass+d81bVkCF0EOizPDi9GCy9zk=; b=AxRfgi5KlokJaV4FBe/Ydhu+V6KnZK2hJ3Wv6rgMKqyaPfba0RDEQux0G/qfFZE732 5KKuD6nj7RqvMV3x2sAvlO2DDBqwXYpNSUOLnmOnebq8rxEmshQlazvWD+YedwRh8Anr 8tVXUlyo/mje35TOSLRh9zDKiCDYOtSkJ1UP9oqgFRYzoeXz8me545Vp6itBghf3jBCQ tY6V6unUXNmwKb/wUUVohBnt67WLZUAx9uncYLWkDikzxkFFP61aUC+D/mkvvGw4Rfrs /K+rJTd+Gmq/goBJ4GpVClHdadpsPMU7ENIeQAOxiyHV+w5b4FtmakD/zEO90rd9AHZL I6Xg== X-Gm-Message-State: ACrzQf2yJAhOMZI1VwDrtlSy5ZYDqoVduYRc1yRV+PwXEbIRwT7yOXK9 oPTDr/FiUFD+V/ERXf7lGNTYwcK5LEbkavCZoilD2lTBLI1pTxo5M7qLSF5oiTL5IcEM/w+VrXY 8Ph+/eGAnFXmw2a2YWkPJADrpuNbBphERYSEs5CJMFglEYWljZLgkf+QIZfCD X-Received: by 2002:a05:600c:4849:b0:3c6:7e82:a9d7 with SMTP id j9-20020a05600c484900b003c67e82a9d7mr4905679wmo.75.1665422946018; Mon, 10 Oct 2022 10:29:06 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4CnDnU48/qokkoIkfnfU/t+9WfmXCGQ5WjyTs1Zb5iqXyXgbn13ko3/LE+eoUH1gromqYCcQ== X-Received: by 2002:a05:600c:4849:b0:3c6:7e82:a9d7 with SMTP id j9-20020a05600c484900b003c67e82a9d7mr4905662wmo.75.1665422945641; Mon, 10 Oct 2022 10:29:05 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:02 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: [PULL 06/55] hw/virtio: add some vhost-user trace events Message-ID: <20221010172813.204597-7-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665423851225100001 From: Alex Benn=C3=A9e These are useful for tracing the lifetime of vhost-user connections. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-10-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/virtio/vhost.c | 6 ++++++ hw/virtio/trace-events | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index f758f177bb..5185c15295 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -1477,6 +1477,8 @@ void vhost_dev_cleanup(struct vhost_dev *hdev) { int i; =20 + trace_vhost_dev_cleanup(hdev); + for (i =3D 0; i < hdev->nvqs; ++i) { vhost_virtqueue_cleanup(hdev->vqs + i); } @@ -1783,6 +1785,8 @@ int vhost_dev_start(struct vhost_dev *hdev, VirtIODev= ice *vdev) /* should only be called after backend is connected */ assert(hdev->vhost_ops); =20 + trace_vhost_dev_start(hdev, vdev->name); + vdev->vhost_started =3D true; hdev->started =3D true; hdev->vdev =3D vdev; @@ -1869,6 +1873,8 @@ void vhost_dev_stop(struct vhost_dev *hdev, VirtIODev= ice *vdev) /* should only be called after backend is connected */ assert(hdev->vhost_ops); =20 + trace_vhost_dev_stop(hdev, vdev->name); + if (hdev->vhost_ops->vhost_dev_start) { hdev->vhost_ops->vhost_dev_start(hdev, false); } diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events index 20af2e7ebd..887ca7afa8 100644 --- a/hw/virtio/trace-events +++ b/hw/virtio/trace-events @@ -8,6 +8,10 @@ vhost_region_add_section_aligned(const char *name, uint64_= t gpa, uint64_t size, vhost_section(const char *name) "%s" vhost_reject_section(const char *name, int d) "%s:%d" vhost_iotlb_miss(void *dev, int step) "%p step %d" +vhost_dev_cleanup(void *dev) "%p" +vhost_dev_start(void *dev, const char *name) "%p:%s" +vhost_dev_stop(void *dev, const char *name) "%p:%s" + =20 # vhost-user.c vhost_user_postcopy_end_entry(void) "" --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424582; cv=none; d=zohomail.com; s=zohoarc; b=I92e4ytYtKI44pzHTIsNFx0p8aeuhIDwGERgrLj4UDUctV5agzOF+i2fBJDNlrLT8QEpxeuID9fArW3lB86erGkMUekEgjJaUvO/3sYDY/qdDbKaCD42Q+HB0pbl+ndRFXJs+aS6WPZC4bNWbJjTdKdxaWO/Y9z6yv0R0eP0Ji0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424582; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2l9JLwGuz3wzXzGkuYjtRaLlikVZCR4iaTnj7H8kZ3E=; b=fnb5eUzQse7846M/+iHgWiaJG+FwlFBVW1VOc5SirdBVVZwZbbcIv79BZXoAqQPfyKh7LqPXkf7lUlKwAvon3tyg+YdvtjZQtzBEyKRDs/nH4UmEFxRGfTttz3PnWdpfevUH9lyAS6gTob5x3+EuSkeBejc1TzEj+2hMK79xRHU= 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 1665424582828213.13199808947206; Mon, 10 Oct 2022 10:56:22 -0700 (PDT) Received: from localhost ([::1]:38122 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohx0n-0005xR-IV for importer@patchew.org; Mon, 10 Oct 2022 13:56:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60256) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwae-0000Hh-Uh for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:20 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:46795) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwaZ-0006V0-DI for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:19 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-370-UTqY8tbDPO6T0dyImkCGPw-1; Mon, 10 Oct 2022 13:29:11 -0400 Received: by mail-wm1-f70.google.com with SMTP id h10-20020a1c210a000000b003c56437e529so707155wmh.2 for ; Mon, 10 Oct 2022 10:29:11 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id d9-20020adff2c9000000b0021badf3cb26sm11616044wrp.63.2022.10.10.10.29.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422954; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2l9JLwGuz3wzXzGkuYjtRaLlikVZCR4iaTnj7H8kZ3E=; b=FqBXL88TFPUNgyHRQAIeREt3clOa4hKiYCF95/boryDO/8LIR9dLIfS1rd5omk69LwFJ4w 3cWKaSx3tWscRLnZXPRgt0K/pGvxcxqrNsV+rvs6xjpY+TMh8UxiHFOghwla1qVHbATEaq yaQ5ORjjqFzgsxZ3sWdUIqhVkDwvTac= X-MC-Unique: UTqY8tbDPO6T0dyImkCGPw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2l9JLwGuz3wzXzGkuYjtRaLlikVZCR4iaTnj7H8kZ3E=; b=68AaFmVG3SobEV6WYhciX6I+0COCto14YWaC1r9Hl6r4SuKx/uxJATHDnFWOzILaKE ZT/WuexgwWJZKkkSaIxS8uPrvHUeCSh4EmdBZ2nEfWRZ4/a5jZ4NYHcGNu/bZsds0Rk5 MZXqWBxNcVP3dBHw1Jbpgt8YJE/3Pmej1jBmpziYbAAPtORukiTyBJQRHGwAyhOTCK8a g4cjrKqbxenOwtl74rxCoF9/hkOD+jgrT34czE79kTvxLaKFP766WhgS7K/zkbb/Erju /1eDXcE+w5WVMUC7JjBNgfYITsLV1gXvTjfeEqypbbjGiyY3Rt7mtPnmshd19yZATHdN mfxg== X-Gm-Message-State: ACrzQf3AVxOxCk0Yr45pI7KBb7xoQ+zId1Z23A9jhdTTIz7274xrn5hz Bb0535nGnDACKTtG0g103xXSwSLk4Hus49ys4rhEd9vYe0L1TclM2OwxVTXG3fFJXhOn9VAA9yw znj0IVVgl45AsGSAD0pMnaoreBnbcUmwWSrYG62pU1Ui9yv0FUBOvKIuuV9Lh X-Received: by 2002:a05:600c:4789:b0:3c4:dbb7:ab0c with SMTP id k9-20020a05600c478900b003c4dbb7ab0cmr8567763wmo.164.1665422950332; Mon, 10 Oct 2022 10:29:10 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4jjBQ7CQKzNydZwwSmAhNo+MTOR/s6NX5Rhw9kX4K9i+c759pzaBG+oIvoscBujOweMizcUA== X-Received: by 2002:a05:600c:4789:b0:3c4:dbb7:ab0c with SMTP id k9-20020a05600c478900b003c4dbb7ab0cmr8567740wmo.164.1665422950091; Mon, 10 Oct 2022 10:29:10 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:05 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , "Dr. David Alan Gilbert" , Stefan Hajnoczi , Mathieu Poirier , virtio-fs@redhat.com Subject: [PULL 07/55] hw/virtio: move vm_running check to virtio_device_started Message-ID: <20221010172813.204597-8-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424583603100001 From: Alex Benn=C3=A9e All the boilerplate virtio code does the same thing (or should at least) of checking to see if the VM is running before attempting to start VirtIO. Push the logic up to the common function to avoid getting a copy and paste wrong. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-11-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/virtio.h | 5 +++++ hw/virtio/vhost-user-fs.c | 6 +----- hw/virtio/vhost-user-i2c.c | 6 +----- hw/virtio/vhost-user-rng.c | 6 +----- hw/virtio/vhost-user-vsock.c | 6 +----- hw/virtio/vhost-vsock.c | 6 +----- 6 files changed, 10 insertions(+), 25 deletions(-) diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index 9bb2485415..74e7ad5a92 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -100,6 +100,7 @@ struct VirtIODevice VirtQueue *vq; MemoryListener listener; uint16_t device_id; + /* @vm_running: current VM running state via virtio_vmstate_change() */ bool vm_running; bool broken; /* device in invalid state, needs reset */ bool use_disabled_flag; /* allow use of 'disable' flag when needed */ @@ -376,6 +377,10 @@ static inline bool virtio_device_started(VirtIODevice = *vdev, uint8_t status) return vdev->started; } =20 + if (!vdev->vm_running) { + return false; + } + return status & VIRTIO_CONFIG_S_DRIVER_OK; } =20 diff --git a/hw/virtio/vhost-user-fs.c b/hw/virtio/vhost-user-fs.c index e513e4fdda..d2bebba785 100644 --- a/hw/virtio/vhost-user-fs.c +++ b/hw/virtio/vhost-user-fs.c @@ -122,11 +122,7 @@ static void vuf_stop(VirtIODevice *vdev) static void vuf_set_status(VirtIODevice *vdev, uint8_t status) { VHostUserFS *fs =3D VHOST_USER_FS(vdev); - bool should_start =3D status & VIRTIO_CONFIG_S_DRIVER_OK; - - if (!vdev->vm_running) { - should_start =3D false; - } + bool should_start =3D virtio_device_started(vdev, status); =20 if (fs->vhost_dev.started =3D=3D should_start) { return; diff --git a/hw/virtio/vhost-user-i2c.c b/hw/virtio/vhost-user-i2c.c index 6020eee093..b930cf6d5e 100644 --- a/hw/virtio/vhost-user-i2c.c +++ b/hw/virtio/vhost-user-i2c.c @@ -93,11 +93,7 @@ static void vu_i2c_stop(VirtIODevice *vdev) static void vu_i2c_set_status(VirtIODevice *vdev, uint8_t status) { VHostUserI2C *i2c =3D VHOST_USER_I2C(vdev); - bool should_start =3D status & VIRTIO_CONFIG_S_DRIVER_OK; - - if (!vdev->vm_running) { - should_start =3D false; - } + bool should_start =3D virtio_device_started(vdev, status); =20 if (i2c->vhost_dev.started =3D=3D should_start) { return; diff --git a/hw/virtio/vhost-user-rng.c b/hw/virtio/vhost-user-rng.c index 3a7bf8e32d..a9c1c4bc79 100644 --- a/hw/virtio/vhost-user-rng.c +++ b/hw/virtio/vhost-user-rng.c @@ -90,11 +90,7 @@ static void vu_rng_stop(VirtIODevice *vdev) static void vu_rng_set_status(VirtIODevice *vdev, uint8_t status) { VHostUserRNG *rng =3D VHOST_USER_RNG(vdev); - bool should_start =3D status & VIRTIO_CONFIG_S_DRIVER_OK; - - if (!vdev->vm_running) { - should_start =3D false; - } + bool should_start =3D virtio_device_started(vdev, status); =20 if (rng->vhost_dev.started =3D=3D should_start) { return; diff --git a/hw/virtio/vhost-user-vsock.c b/hw/virtio/vhost-user-vsock.c index 0f8ff99f85..22c1616ebd 100644 --- a/hw/virtio/vhost-user-vsock.c +++ b/hw/virtio/vhost-user-vsock.c @@ -55,11 +55,7 @@ const VhostDevConfigOps vsock_ops =3D { static void vuv_set_status(VirtIODevice *vdev, uint8_t status) { VHostVSockCommon *vvc =3D VHOST_VSOCK_COMMON(vdev); - bool should_start =3D status & VIRTIO_CONFIG_S_DRIVER_OK; - - if (!vdev->vm_running) { - should_start =3D false; - } + bool should_start =3D virtio_device_started(vdev, status); =20 if (vvc->vhost_dev.started =3D=3D should_start) { return; diff --git a/hw/virtio/vhost-vsock.c b/hw/virtio/vhost-vsock.c index 0338de892f..8031c164a5 100644 --- a/hw/virtio/vhost-vsock.c +++ b/hw/virtio/vhost-vsock.c @@ -70,13 +70,9 @@ static int vhost_vsock_set_running(VirtIODevice *vdev, i= nt start) static void vhost_vsock_set_status(VirtIODevice *vdev, uint8_t status) { VHostVSockCommon *vvc =3D VHOST_VSOCK_COMMON(vdev); - bool should_start =3D status & VIRTIO_CONFIG_S_DRIVER_OK; + bool should_start =3D virtio_device_started(vdev, status); int ret; =20 - if (!vdev->vm_running) { - should_start =3D false; - } - if (vvc->vhost_dev.started =3D=3D should_start) { return; } --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424798; cv=none; d=zohomail.com; s=zohoarc; b=f2+opyQGcmTTvcqV8H3FuKMSQlqKgZXRCgRydCyu1P9nPl0Xk3pyvHR/lUWS9a62pV/g9e9KUdoSMQaoj5mv42Yy1feuPHaDFmFaFgQR0BL/FkYh4A3hT7W0cEsSB5jnEsAZU812V2ydznQNRkdsu4hjL7r3JRZOOR8AqQZQEqw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424798; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MQSvNFO358FNTLwJZfDEG2H4eIK7/uaYo60a2mg4/K8=; b=hyEkoRPlNrg5M4XZUx0zBc+abWcpZxuzEgsTgS2aKgKzkiFLXHLQ+adCUwTKqj8ZUQZ3AkqQ8nulv/e1N2TecXYUmiklmQVGoQ/T1VuD3hULWLeL53n+a+xskYOEV+VLNg4f8RPjlFPesNE0faXW0/FOe0NQCWezK+YQqpgdJIk= 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 1665424798244589.309535475715; Mon, 10 Oct 2022 10:59:58 -0700 (PDT) Received: from localhost ([::1]:51304 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohx4F-0003pY-S4 for importer@patchew.org; Mon, 10 Oct 2022 13:59:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39376) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwao-0000hA-UH for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:30 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:21993) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwae-0006WE-JD for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:30 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-361-LX8Nw0IaNLqMMDlATbLG5Q-1; Mon, 10 Oct 2022 13:29:18 -0400 Received: by mail-wm1-f72.google.com with SMTP id k21-20020a7bc415000000b003b4fac53006so3260437wmi.3 for ; Mon, 10 Oct 2022 10:29:18 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id p17-20020a5d4591000000b0022e32f4c06asm9187324wrq.11.2022.10.10.10.29.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422959; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MQSvNFO358FNTLwJZfDEG2H4eIK7/uaYo60a2mg4/K8=; b=SwklRjhMi22H8ljIbzchReXCXmSbk6l1S1A3Ghk+EvNur7rW2nC/dYQfq+KlqDHr2IXKM0 kHByEdEX4zPNkpjkFOI6+FcCiwsmVjPAEQvCo5TNEVAnt9UP48mxR8omkTFYBh0T5VsYE/ DMgBGQlUG/oYZI8acIi1tX3HdvSKHX8= X-MC-Unique: LX8Nw0IaNLqMMDlATbLG5Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MQSvNFO358FNTLwJZfDEG2H4eIK7/uaYo60a2mg4/K8=; b=5+dRT25n2q796kgmIi4EDgdKO21KK/EELI0Eon0BUv/gggN1H7O3W2jmiJqlSnSCzd XOGmh3lheadaURdx78ZX0OQ+q9jPJgRskrzRyeQpbQcpao5tbBH4KFA1t0zjpAFLGGSO Z3hVg+ooNCGgB1Kgx3BVnFnh5B2Xkn5yQ0e2EfokgII9R/fGoUp5VVAUr9G4TFDGD3/b dEzIbv8+QAWT2l54PqhigYcktHIjDWb9ktK5tVSlhAqlBN26e+borWRmGhUuPmx/BGmF MlYi2o5T0iPpiMVPpl1hpWY7mGvvUZzLJ4esdKYU44Zuwi7Uankg+j1/AjHqJw1bk2LZ KUSw== X-Gm-Message-State: ACrzQf3Bw3gstHo4G4DH6TC2Mcmz3sk1I9mqJO8BEH2ZqUPiEqqLTD19 gst8Ft2M04L3PxCJTAAV0EAys1nHoxzXcNv5S6m9cr77ZRYkOzvY4cIGYGnoVNTUiRBDS+C+PVO CA39PYnQftx6KnR0ntBapUZIJrpEb2VpBfzRdjgPGfVHtaGl4esNJUFgyPGAc X-Received: by 2002:a05:6000:981:b0:22e:6b59:fe52 with SMTP id by1-20020a056000098100b0022e6b59fe52mr11674598wrb.188.1665422956548; Mon, 10 Oct 2022 10:29:16 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4YDxPtnv+WMlLsGSJnYTZNhhiTxTnFOpcQmuDB3GeWXbCsqlwUW+mDlnd5+wNrWKYs9aNkSQ== X-Received: by 2002:a05:6000:981:b0:22e:6b59:fe52 with SMTP id by1-20020a056000098100b0022e6b59fe52mr11674572wrb.188.1665422956219; Mon, 10 Oct 2022 10:29:16 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:10 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Raphael Norwitz , Raphael Norwitz , Kevin Wolf , Hanna Reitz , Paolo Bonzini , Fam Zheng , "Dr. David Alan Gilbert" , Stefan Hajnoczi , Mathieu Poirier , qemu-block@nongnu.org, virtio-fs@redhat.com Subject: [PULL 08/55] hw/virtio: move vhd->started check into helper and add FIXME Message-ID: <20221010172813.204597-9-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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=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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424800475100001 From: Alex Benn=C3=A9e The `started` field is manipulated internally within the vhost code except for one place, vhost-user-blk via f5b22d06fb (vhost: recheck dev state in the vhost_migration_log routine). Mark that as a FIXME because it introduces a potential race. I think the referenced fix should be tracking its state locally. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-12-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Raphael Norwitz --- include/hw/virtio/vhost.h | 12 ++++++++++++ hw/block/vhost-user-blk.c | 10 ++++++++-- hw/scsi/vhost-scsi.c | 4 ++-- hw/scsi/vhost-user-scsi.c | 2 +- hw/virtio/vhost-user-fs.c | 3 ++- hw/virtio/vhost-user-i2c.c | 4 ++-- hw/virtio/vhost-user-rng.c | 4 ++-- hw/virtio/vhost-user-vsock.c | 2 +- hw/virtio/vhost-vsock-common.c | 3 ++- hw/virtio/vhost-vsock.c | 2 +- 10 files changed, 33 insertions(+), 13 deletions(-) diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h index 586c5457e2..61b957e927 100644 --- a/include/hw/virtio/vhost.h +++ b/include/hw/virtio/vhost.h @@ -94,6 +94,7 @@ struct vhost_dev { uint64_t protocol_features; uint64_t max_queues; uint64_t backend_cap; + /* @started: is the vhost device started? */ bool started; bool log_enabled; uint64_t log_size; @@ -165,6 +166,17 @@ int vhost_dev_enable_notifiers(struct vhost_dev *hdev,= VirtIODevice *vdev); */ void vhost_dev_disable_notifiers(struct vhost_dev *hdev, VirtIODevice *vde= v); =20 +/** + * vhost_dev_is_started() - report status of vhost device + * @hdev: common vhost_dev structure + * + * Return the started status of the vhost device + */ +static inline bool vhost_dev_is_started(struct vhost_dev *hdev) +{ + return hdev->started; +} + /** * vhost_dev_start() - start the vhost device * @hdev: common vhost_dev structure diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index 9117222456..2bba42478d 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -229,7 +229,7 @@ static void vhost_user_blk_set_status(VirtIODevice *vde= v, uint8_t status) return; } =20 - if (s->dev.started =3D=3D should_start) { + if (vhost_dev_is_started(&s->dev) =3D=3D should_start) { return; } =20 @@ -286,7 +286,7 @@ static void vhost_user_blk_handle_output(VirtIODevice *= vdev, VirtQueue *vq) return; } =20 - if (s->dev.started) { + if (vhost_dev_is_started(&s->dev)) { return; } =20 @@ -415,6 +415,12 @@ static void vhost_user_blk_event(void *opaque, QEMUChr= Event event) * the vhost migration code. If disconnect was caught there is= an * option for the general vhost code to get the dev state with= out * knowing its type (in this case vhost-user). + * + * FIXME: this is sketchy to be reaching into vhost_dev + * now because we are forcing something that implies we + * have executed vhost_dev_stop() but that won't happen + * until vhost_user_blk_stop() gets called from the bh. + * Really this state check should be tracked locally. */ s->dev.started =3D false; } diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c index 3059068175..bdf337a7a2 100644 --- a/hw/scsi/vhost-scsi.c +++ b/hw/scsi/vhost-scsi.c @@ -120,7 +120,7 @@ static void vhost_scsi_set_status(VirtIODevice *vdev, u= int8_t val) start =3D false; } =20 - if (vsc->dev.started =3D=3D start) { + if (vhost_dev_is_started(&vsc->dev) =3D=3D start) { return; } =20 @@ -147,7 +147,7 @@ static int vhost_scsi_pre_save(void *opaque) =20 /* At this point, backend must be stopped, otherwise * it might keep writing to memory. */ - assert(!vsc->dev.started); + assert(!vhost_dev_is_started(&vsc->dev)); =20 return 0; } diff --git a/hw/scsi/vhost-user-scsi.c b/hw/scsi/vhost-user-scsi.c index 1b2f7eed98..bc37317d55 100644 --- a/hw/scsi/vhost-user-scsi.c +++ b/hw/scsi/vhost-user-scsi.c @@ -49,7 +49,7 @@ static void vhost_user_scsi_set_status(VirtIODevice *vdev= , uint8_t status) VHostSCSICommon *vsc =3D VHOST_SCSI_COMMON(s); bool start =3D (status & VIRTIO_CONFIG_S_DRIVER_OK) && vdev->vm_runnin= g; =20 - if (vsc->dev.started =3D=3D start) { + if (vhost_dev_is_started(&vsc->dev) =3D=3D start) { return; } =20 diff --git a/hw/virtio/vhost-user-fs.c b/hw/virtio/vhost-user-fs.c index d2bebba785..ad0f91c607 100644 --- a/hw/virtio/vhost-user-fs.c +++ b/hw/virtio/vhost-user-fs.c @@ -20,6 +20,7 @@ #include "hw/virtio/virtio-bus.h" #include "hw/virtio/virtio-access.h" #include "qemu/error-report.h" +#include "hw/virtio/vhost.h" #include "hw/virtio/vhost-user-fs.h" #include "monitor/monitor.h" #include "sysemu/sysemu.h" @@ -124,7 +125,7 @@ static void vuf_set_status(VirtIODevice *vdev, uint8_t = status) VHostUserFS *fs =3D VHOST_USER_FS(vdev); bool should_start =3D virtio_device_started(vdev, status); =20 - if (fs->vhost_dev.started =3D=3D should_start) { + if (vhost_dev_is_started(&fs->vhost_dev) =3D=3D should_start) { return; } =20 diff --git a/hw/virtio/vhost-user-i2c.c b/hw/virtio/vhost-user-i2c.c index b930cf6d5e..bc58b6c0d1 100644 --- a/hw/virtio/vhost-user-i2c.c +++ b/hw/virtio/vhost-user-i2c.c @@ -95,7 +95,7 @@ static void vu_i2c_set_status(VirtIODevice *vdev, uint8_t= status) VHostUserI2C *i2c =3D VHOST_USER_I2C(vdev); bool should_start =3D virtio_device_started(vdev, status); =20 - if (i2c->vhost_dev.started =3D=3D should_start) { + if (vhost_dev_is_started(&i2c->vhost_dev) =3D=3D should_start) { return; } =20 @@ -174,7 +174,7 @@ static void vu_i2c_disconnect(DeviceState *dev) } i2c->connected =3D false; =20 - if (i2c->vhost_dev.started) { + if (vhost_dev_is_started(&i2c->vhost_dev)) { vu_i2c_stop(vdev); } } diff --git a/hw/virtio/vhost-user-rng.c b/hw/virtio/vhost-user-rng.c index a9c1c4bc79..bc1f36c5ac 100644 --- a/hw/virtio/vhost-user-rng.c +++ b/hw/virtio/vhost-user-rng.c @@ -92,7 +92,7 @@ static void vu_rng_set_status(VirtIODevice *vdev, uint8_t= status) VHostUserRNG *rng =3D VHOST_USER_RNG(vdev); bool should_start =3D virtio_device_started(vdev, status); =20 - if (rng->vhost_dev.started =3D=3D should_start) { + if (vhost_dev_is_started(&rng->vhost_dev) =3D=3D should_start) { return; } =20 @@ -160,7 +160,7 @@ static void vu_rng_disconnect(DeviceState *dev) =20 rng->connected =3D false; =20 - if (rng->vhost_dev.started) { + if (vhost_dev_is_started(&rng->vhost_dev)) { vu_rng_stop(vdev); } } diff --git a/hw/virtio/vhost-user-vsock.c b/hw/virtio/vhost-user-vsock.c index 22c1616ebd..7b67e29d83 100644 --- a/hw/virtio/vhost-user-vsock.c +++ b/hw/virtio/vhost-user-vsock.c @@ -57,7 +57,7 @@ static void vuv_set_status(VirtIODevice *vdev, uint8_t st= atus) VHostVSockCommon *vvc =3D VHOST_VSOCK_COMMON(vdev); bool should_start =3D virtio_device_started(vdev, status); =20 - if (vvc->vhost_dev.started =3D=3D should_start) { + if (vhost_dev_is_started(&vvc->vhost_dev) =3D=3D should_start) { return; } =20 diff --git a/hw/virtio/vhost-vsock-common.c b/hw/virtio/vhost-vsock-common.c index 7394818e00..29b9ab4f72 100644 --- a/hw/virtio/vhost-vsock-common.c +++ b/hw/virtio/vhost-vsock-common.c @@ -14,6 +14,7 @@ #include "hw/virtio/virtio-access.h" #include "qemu/error-report.h" #include "hw/qdev-properties.h" +#include "hw/virtio/vhost.h" #include "hw/virtio/vhost-vsock.h" #include "qemu/iov.h" #include "monitor/monitor.h" @@ -199,7 +200,7 @@ int vhost_vsock_common_pre_save(void *opaque) * At this point, backend must be stopped, otherwise * it might keep writing to memory. */ - assert(!vvc->vhost_dev.started); + assert(!vhost_dev_is_started(&vvc->vhost_dev)); =20 return 0; } diff --git a/hw/virtio/vhost-vsock.c b/hw/virtio/vhost-vsock.c index 8031c164a5..7dc3c73931 100644 --- a/hw/virtio/vhost-vsock.c +++ b/hw/virtio/vhost-vsock.c @@ -73,7 +73,7 @@ static void vhost_vsock_set_status(VirtIODevice *vdev, ui= nt8_t status) bool should_start =3D virtio_device_started(vdev, status); int ret; =20 - if (vvc->vhost_dev.started =3D=3D should_start) { + if (vhost_dev_is_started(&vvc->vhost_dev) =3D=3D should_start) { return; } =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424365; cv=none; d=zohomail.com; s=zohoarc; b=DtnS1ddnUjlMQBmtLQNhgcpGdg4BpwsLmCV/VQ+XPZXo5rgVOggu/TsXyXiN+GIUch7zNBkd3wQiLHMDFmwD6A1+sdtRH+ex5PXjAJ3a5V9Utx13C3+2XZxcWgLUdPNp2l7jZjOW7aCL8qLhANHpy8SRLKAVFwin4nSFuhZsFbk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424365; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gmZWIaLBbM0XIchBusCCbI3eKbKP0+13fR+gGociBYs=; b=Jnyp4vV4tk7COs544MUrWdzVILK5LFPG9J+vfFGkNOzZIWcz0VhDendGS20npC/FNR4LgrYuFP0mVKqwh6pzn1IQs9pg/XVVZyHMnpxlt5kZgFfF5JfesdbYH1AhSIESbqfZC4+zHQi3SA0X/MzfZhmv+Yx3PskrwVSQHsJOrh0= 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 1665424365604538.1112328217873; Mon, 10 Oct 2022 10:52:45 -0700 (PDT) Received: from localhost ([::1]:44186 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohwxI-0001DD-9Q for importer@patchew.org; Mon, 10 Oct 2022 13:52:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34436) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwav-0000qx-8s for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:37 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:42530) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwar-0006Zk-MD for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:35 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-155-lGNu9zJyO8WKW9BzPzFubg-1; Mon, 10 Oct 2022 13:29:23 -0400 Received: by mail-wm1-f71.google.com with SMTP id ay21-20020a05600c1e1500b003b45fd14b53so5819064wmb.1 for ; Mon, 10 Oct 2022 10:29:23 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id g20-20020a05600c4ed400b003b4ac05a8a4sm23754363wmq.27.2022.10.10.10.29.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422972; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gmZWIaLBbM0XIchBusCCbI3eKbKP0+13fR+gGociBYs=; b=d15uGAe53MGEyECCN2BIY0PZH3RY9+tItUyKy7Ao1elQnVmrlmQXXPNfUius3SE6MQX2Rg N704O71cYyN5sV0ffYHkrztQ8BJ/hkRieJGrv1Hw6LE610A+3xji6amNWfA7b8WqO6wIjI G1DEarXf0K5SNlEfkXnqdn5Yhi38KO8= X-MC-Unique: lGNu9zJyO8WKW9BzPzFubg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gmZWIaLBbM0XIchBusCCbI3eKbKP0+13fR+gGociBYs=; b=k04GLorGAjuR9z0ZcHRWnhJToBIcDwBx+NZaxFB43K+Ef1QZ9V/RDtoxtoElX0rXcH YIVN/quwAxthUFMX4FxqNpORjsK083/vfRJ/MuURLgJuqcX7nYe1Ss/Mc+U4PDMi/oZC Jch7GEwqATF1q7IrwCijJMSKj8AznMjyKblM0OWN/EuJhAhm9zVZx0+pl1XMcUtLtSCH GBxBqTZtqSj5E2TGjaWG0wxji91MIKOB7C1ATGXnYu1GB1s20K2ZT86Fh/zOCnu/aI5c FaQq+uZOhdL3GzVi1/Drd1Jm/e6C/DfxVP5jiGdjZATbFKUFYW6Ok6cmbxjJkwJ5RDxC 2qmA== X-Gm-Message-State: ACrzQf0Rt/PW045ROg37SbGyzqpT24QAV28+NrAKvxCw/ePoe/Kr3bHm 6bD6C5gj9oCOGIl//dZ5W4lXWaL049CyEoivhxA6tLgJ0pSnHT5QPNRXVKQ+ZbYmv8D4hdVcB/A 3KzIgiHFOiEvCpSP3KM3vvn1kWQnXUethHqDiLALgsrNIIOxUJFawlSXGWHeN X-Received: by 2002:a05:600c:b43:b0:3c3:64cd:6f39 with SMTP id k3-20020a05600c0b4300b003c364cd6f39mr11636172wmr.66.1665422961358; Mon, 10 Oct 2022 10:29:21 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7mI7fkHcz8Qrz5ZR2u8MDZ6/2Ums3lvtTv6u6aUbdAOA3nzFm688gQ5wwiJWaRJu8WNzffhQ== X-Received: by 2002:a05:600c:b43:b0:3c3:64cd:6f39 with SMTP id k3-20020a05600c0b4300b003c364cd6f39mr11636137wmr.66.1665422960946; Mon, 10 Oct 2022 10:29:20 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:16 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Viresh Kumar , Alex =?utf-8?Q?Benn=C3=A9e?= , Vincent Whitchurch Subject: [PULL 09/55] hw/virtio: add boilerplate for vhost-user-gpio device Message-ID: <20221010172813.204597-10-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424366357100001 From: Viresh Kumar This creates the QEMU side of the vhost-user-gpio device which connects to the remote daemon. It is based of vhost-user-i2c code. Signed-off-by: Viresh Kumar Reviewed-by: Alex Benn=C3=A9e Message-Id: <5390324a748194a21bc99b1538e19761a8c64092.1641987128.git.viresh= .kumar@linaro.org> [AJB: fixes for qtest, tweaks to feature bits] Signed-off-by: Alex Benn=C3=A9e Cc: Vincent Whitchurch Message-Id: <20220802095010.3330793-13-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/vhost-user-gpio.h | 35 +++ hw/virtio/vhost-user-gpio.c | 411 ++++++++++++++++++++++++++++ MAINTAINERS | 7 + hw/virtio/Kconfig | 5 + hw/virtio/meson.build | 1 + hw/virtio/trace-events | 5 + 6 files changed, 464 insertions(+) create mode 100644 include/hw/virtio/vhost-user-gpio.h create mode 100644 hw/virtio/vhost-user-gpio.c diff --git a/include/hw/virtio/vhost-user-gpio.h b/include/hw/virtio/vhost-= user-gpio.h new file mode 100644 index 0000000000..4fe9aeecc0 --- /dev/null +++ b/include/hw/virtio/vhost-user-gpio.h @@ -0,0 +1,35 @@ +/* + * Vhost-user GPIO virtio device + * + * Copyright (c) 2021 Viresh Kumar + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef _QEMU_VHOST_USER_GPIO_H +#define _QEMU_VHOST_USER_GPIO_H + +#include "hw/virtio/virtio.h" +#include "hw/virtio/vhost.h" +#include "hw/virtio/vhost-user.h" +#include "standard-headers/linux/virtio_gpio.h" +#include "chardev/char-fe.h" + +#define TYPE_VHOST_USER_GPIO "vhost-user-gpio-device" +OBJECT_DECLARE_SIMPLE_TYPE(VHostUserGPIO, VHOST_USER_GPIO); + +struct VHostUserGPIO { + /*< private >*/ + VirtIODevice parent_obj; + CharBackend chardev; + struct virtio_gpio_config config; + struct vhost_virtqueue *vhost_vq; + struct vhost_dev vhost_dev; + VhostUserState vhost_user; + VirtQueue *command_vq; + VirtQueue *interrupt_vq; + bool connected; + /*< public >*/ +}; + +#endif /* _QEMU_VHOST_USER_GPIO_H */ diff --git a/hw/virtio/vhost-user-gpio.c b/hw/virtio/vhost-user-gpio.c new file mode 100644 index 0000000000..8b40fe450c --- /dev/null +++ b/hw/virtio/vhost-user-gpio.c @@ -0,0 +1,411 @@ +/* + * Vhost-user GPIO virtio device + * + * Copyright (c) 2022 Viresh Kumar + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "hw/qdev-properties.h" +#include "hw/virtio/virtio-bus.h" +#include "hw/virtio/vhost-user-gpio.h" +#include "qemu/error-report.h" +#include "standard-headers/linux/virtio_ids.h" +#include "trace.h" + +#define REALIZE_CONNECTION_RETRIES 3 + +/* Features required from VirtIO */ +static const int feature_bits[] =3D { + VIRTIO_F_VERSION_1, + VIRTIO_F_NOTIFY_ON_EMPTY, + VIRTIO_RING_F_INDIRECT_DESC, + VIRTIO_RING_F_EVENT_IDX, + VIRTIO_GPIO_F_IRQ, + VHOST_INVALID_FEATURE_BIT +}; + +static void vu_gpio_get_config(VirtIODevice *vdev, uint8_t *config) +{ + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(vdev); + + memcpy(config, &gpio->config, sizeof(gpio->config)); +} + +static int vu_gpio_config_notifier(struct vhost_dev *dev) +{ + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(dev->vdev); + + memcpy(dev->vdev->config, &gpio->config, sizeof(gpio->config)); + virtio_notify_config(dev->vdev); + + return 0; +} + +const VhostDevConfigOps gpio_ops =3D { + .vhost_dev_config_notifier =3D vu_gpio_config_notifier, +}; + +static int vu_gpio_start(VirtIODevice *vdev) +{ + BusState *qbus =3D BUS(qdev_get_parent_bus(DEVICE(vdev))); + VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(vdev); + struct vhost_dev *vhost_dev =3D &gpio->vhost_dev; + int ret, i; + + if (!k->set_guest_notifiers) { + error_report("binding does not support guest notifiers"); + return -ENOSYS; + } + + ret =3D vhost_dev_enable_notifiers(vhost_dev, vdev); + if (ret < 0) { + error_report("Error enabling host notifiers: %d", ret); + return ret; + } + + ret =3D k->set_guest_notifiers(qbus->parent, vhost_dev->nvqs, true); + if (ret < 0) { + error_report("Error binding guest notifier: %d", ret); + goto err_host_notifiers; + } + + /* + * Before we start up we need to ensure we have the final feature + * set needed for the vhost configuration. The backend may also + * apply backend_features when the feature set is sent. + */ + vhost_ack_features(&gpio->vhost_dev, feature_bits, vdev->guest_feature= s); + + ret =3D vhost_dev_start(&gpio->vhost_dev, vdev); + if (ret < 0) { + error_report("Error starting vhost-user-gpio: %d", ret); + goto err_guest_notifiers; + } + + /* + * guest_notifier_mask/pending not used yet, so just unmask + * everything here. virtio-pci will do the right thing by + * enabling/disabling irqfd. + */ + for (i =3D 0; i < gpio->vhost_dev.nvqs; i++) { + vhost_virtqueue_mask(&gpio->vhost_dev, vdev, i, false); + } + + /* + * As we must have VHOST_USER_F_PROTOCOL_FEATURES (because + * VHOST_USER_GET_CONFIG requires it) we need to explicitly enable + * the vrings. + */ + g_assert(vhost_dev->vhost_ops && + vhost_dev->vhost_ops->vhost_set_vring_enable); + ret =3D vhost_dev->vhost_ops->vhost_set_vring_enable(vhost_dev, true); + if (ret =3D=3D 0) { + return 0; + } + + error_report("Failed to start vrings for vhost-user-gpio: %d", ret); + +err_guest_notifiers: + k->set_guest_notifiers(qbus->parent, gpio->vhost_dev.nvqs, false); +err_host_notifiers: + vhost_dev_disable_notifiers(&gpio->vhost_dev, vdev); + + return ret; +} + +static void vu_gpio_stop(VirtIODevice *vdev) +{ + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(vdev); + BusState *qbus =3D BUS(qdev_get_parent_bus(DEVICE(vdev))); + VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); + struct vhost_dev *vhost_dev =3D &gpio->vhost_dev; + int ret; + + if (!k->set_guest_notifiers) { + return; + } + + /* + * We can call vu_gpio_stop multiple times, for example from + * vm_state_notify and the final object finalisation. Check we + * aren't already stopped before doing so. + */ + if (!vhost_dev_is_started(vhost_dev)) { + return; + } + + vhost_dev_stop(vhost_dev, vdev); + + ret =3D k->set_guest_notifiers(qbus->parent, vhost_dev->nvqs, false); + if (ret < 0) { + error_report("vhost guest notifier cleanup failed: %d", ret); + return; + } + + vhost_dev_disable_notifiers(vhost_dev, vdev); +} + +static void vu_gpio_set_status(VirtIODevice *vdev, uint8_t status) +{ + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(vdev); + bool should_start =3D virtio_device_started(vdev, status); + + trace_virtio_gpio_set_status(status); + + if (!gpio->connected) { + return; + } + + if (vhost_dev_is_started(&gpio->vhost_dev) =3D=3D should_start) { + return; + } + + if (should_start) { + if (vu_gpio_start(vdev)) { + qemu_chr_fe_disconnect(&gpio->chardev); + } + } else { + vu_gpio_stop(vdev); + } +} + +static uint64_t vu_gpio_get_features(VirtIODevice *vdev, uint64_t features, + Error **errp) +{ + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(vdev); + + return vhost_get_features(&gpio->vhost_dev, feature_bits, features); +} + +static void vu_gpio_handle_output(VirtIODevice *vdev, VirtQueue *vq) +{ + /* + * Not normally called; it's the daemon that handles the queue; + * however virtio's cleanup path can call this. + */ +} + +static void vu_gpio_guest_notifier_mask(VirtIODevice *vdev, int idx, bool = mask) +{ + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(vdev); + + vhost_virtqueue_mask(&gpio->vhost_dev, vdev, idx, mask); +} + +static void do_vhost_user_cleanup(VirtIODevice *vdev, VHostUserGPIO *gpio) +{ + virtio_delete_queue(gpio->command_vq); + virtio_delete_queue(gpio->interrupt_vq); + g_free(gpio->vhost_dev.vqs); + gpio->vhost_dev.vqs =3D NULL; + virtio_cleanup(vdev); + vhost_user_cleanup(&gpio->vhost_user); +} + +static int vu_gpio_connect(DeviceState *dev, Error **errp) +{ + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(vdev); + struct vhost_dev *vhost_dev =3D &gpio->vhost_dev; + int ret; + + if (gpio->connected) { + return 0; + } + gpio->connected =3D true; + + vhost_dev_set_config_notifier(vhost_dev, &gpio_ops); + gpio->vhost_user.supports_config =3D true; + + ret =3D vhost_dev_init(vhost_dev, &gpio->vhost_user, + VHOST_BACKEND_TYPE_USER, 0, errp); + if (ret < 0) { + return ret; + } + + /* restore vhost state */ + if (virtio_device_started(vdev, vdev->status)) { + vu_gpio_start(vdev); + } + + return 0; +} + +static void vu_gpio_disconnect(DeviceState *dev) +{ + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(vdev); + + if (!gpio->connected) { + return; + } + gpio->connected =3D false; + + vu_gpio_stop(vdev); + vhost_dev_cleanup(&gpio->vhost_dev); +} + +static void vu_gpio_event(void *opaque, QEMUChrEvent event) +{ + DeviceState *dev =3D opaque; + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(vdev); + Error *local_err =3D NULL; + + switch (event) { + case CHR_EVENT_OPENED: + if (vu_gpio_connect(dev, &local_err) < 0) { + qemu_chr_fe_disconnect(&gpio->chardev); + return; + } + break; + case CHR_EVENT_CLOSED: + vu_gpio_disconnect(dev); + break; + case CHR_EVENT_BREAK: + case CHR_EVENT_MUX_IN: + case CHR_EVENT_MUX_OUT: + /* Ignore */ + break; + } +} + +static int vu_gpio_realize_connect(VHostUserGPIO *gpio, Error **errp) +{ + VirtIODevice *vdev =3D &gpio->parent_obj; + DeviceState *dev =3D &vdev->parent_obj; + struct vhost_dev *vhost_dev =3D &gpio->vhost_dev; + int ret; + + ret =3D qemu_chr_fe_wait_connected(&gpio->chardev, errp); + if (ret < 0) { + return ret; + } + + /* + * vu_gpio_connect() may have already connected (via the event + * callback) in which case it will just report success. + */ + ret =3D vu_gpio_connect(dev, errp); + if (ret < 0) { + qemu_chr_fe_disconnect(&gpio->chardev); + return ret; + } + g_assert(gpio->connected); + + ret =3D vhost_dev_get_config(vhost_dev, (uint8_t *)&gpio->config, + sizeof(gpio->config), errp); + + if (ret < 0) { + error_report("vhost-user-gpio: get config failed"); + + qemu_chr_fe_disconnect(&gpio->chardev); + vhost_dev_cleanup(vhost_dev); + return ret; + } + + return 0; +} + +static void vu_gpio_device_realize(DeviceState *dev, Error **errp) +{ + ERRP_GUARD(); + + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(dev); + int retries, ret; + + if (!gpio->chardev.chr) { + error_setg(errp, "vhost-user-gpio: chardev is mandatory"); + return; + } + + if (!vhost_user_init(&gpio->vhost_user, &gpio->chardev, errp)) { + return; + } + + virtio_init(vdev, VIRTIO_ID_GPIO, sizeof(gpio->config)); + + gpio->vhost_dev.nvqs =3D 2; + gpio->command_vq =3D virtio_add_queue(vdev, 256, vu_gpio_handle_output= ); + gpio->interrupt_vq =3D virtio_add_queue(vdev, 256, vu_gpio_handle_outp= ut); + gpio->vhost_dev.vqs =3D g_new0(struct vhost_virtqueue, gpio->vhost_dev= .nvqs); + + gpio->connected =3D false; + + qemu_chr_fe_set_handlers(&gpio->chardev, NULL, NULL, vu_gpio_event, NU= LL, + dev, NULL, true); + + retries =3D REALIZE_CONNECTION_RETRIES; + g_assert(!*errp); + do { + if (*errp) { + error_prepend(errp, "Reconnecting after error: "); + error_report_err(*errp); + *errp =3D NULL; + } + ret =3D vu_gpio_realize_connect(gpio, errp); + } while (ret < 0 && retries--); + + if (ret < 0) { + do_vhost_user_cleanup(vdev, gpio); + } + + return; +} + +static void vu_gpio_device_unrealize(DeviceState *dev) +{ + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(dev); + + vu_gpio_set_status(vdev, 0); + qemu_chr_fe_set_handlers(&gpio->chardev, NULL, NULL, NULL, NULL, NULL,= NULL, + false); + vhost_dev_cleanup(&gpio->vhost_dev); + do_vhost_user_cleanup(vdev, gpio); +} + +static const VMStateDescription vu_gpio_vmstate =3D { + .name =3D "vhost-user-gpio", + .unmigratable =3D 1, +}; + +static Property vu_gpio_properties[] =3D { + DEFINE_PROP_CHR("chardev", VHostUserGPIO, chardev), + DEFINE_PROP_END_OF_LIST(), +}; + +static void vu_gpio_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + VirtioDeviceClass *vdc =3D VIRTIO_DEVICE_CLASS(klass); + + device_class_set_props(dc, vu_gpio_properties); + dc->vmsd =3D &vu_gpio_vmstate; + set_bit(DEVICE_CATEGORY_INPUT, dc->categories); + vdc->realize =3D vu_gpio_device_realize; + vdc->unrealize =3D vu_gpio_device_unrealize; + vdc->get_features =3D vu_gpio_get_features; + vdc->get_config =3D vu_gpio_get_config; + vdc->set_status =3D vu_gpio_set_status; + vdc->guest_notifier_mask =3D vu_gpio_guest_notifier_mask; +} + +static const TypeInfo vu_gpio_info =3D { + .name =3D TYPE_VHOST_USER_GPIO, + .parent =3D TYPE_VIRTIO_DEVICE, + .instance_size =3D sizeof(VHostUserGPIO), + .class_init =3D vu_gpio_class_init, +}; + +static void vu_gpio_register_types(void) +{ + type_register_static(&vu_gpio_info); +} + +type_init(vu_gpio_register_types) diff --git a/MAINTAINERS b/MAINTAINERS index e1530b51a2..66d519fe35 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2098,6 +2098,13 @@ F: hw/virtio/vhost-user-rng-pci.c F: include/hw/virtio/vhost-user-rng.h F: tools/vhost-user-rng/* =20 +vhost-user-gpio +M: Alex Benn=C3=A9e +R: Viresh Kumar +S: Maintained +F: hw/virtio/vhost-user-gpio.c +F: include/hw/virtio/vhost-user-gpio.h + virtio-crypto M: Gonglei S: Supported diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig index e9ecae1f50..cbfd8c7173 100644 --- a/hw/virtio/Kconfig +++ b/hw/virtio/Kconfig @@ -80,3 +80,8 @@ config VHOST_USER_FS bool default y depends on VIRTIO && VHOST_USER + +config VHOST_USER_GPIO + bool + default y + depends on VIRTIO && VHOST_USER diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build index 7e8877fd64..33c8e71fab 100644 --- a/hw/virtio/meson.build +++ b/hw/virtio/meson.build @@ -29,6 +29,7 @@ virtio_ss.add(when: 'CONFIG_VIRTIO_IOMMU', if_true: files= ('virtio-iommu.c')) virtio_ss.add(when: 'CONFIG_VIRTIO_MEM', if_true: files('virtio-mem.c')) virtio_ss.add(when: 'CONFIG_VHOST_USER_I2C', if_true: files('vhost-user-i2= c.c')) virtio_ss.add(when: 'CONFIG_VHOST_USER_RNG', if_true: files('vhost-user-rn= g.c')) +virtio_ss.add(when: 'CONFIG_VHOST_USER_GPIO', if_true: files('vhost-user-g= pio.c')) =20 virtio_pci_ss =3D ss.source_set() virtio_pci_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-vsock-= pci.c')) diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events index 887ca7afa8..820dadc26c 100644 --- a/hw/virtio/trace-events +++ b/hw/virtio/trace-events @@ -144,3 +144,8 @@ virtio_mem_state_response(uint16_t state) "state=3D%" P= RIu16 virtio_pmem_flush_request(void) "flush request" virtio_pmem_response(void) "flush response" virtio_pmem_flush_done(int type) "fsync return=3D%d" + +# virtio-gpio.c +virtio_gpio_start(void) "start" +virtio_gpio_stop(void) "stop" +virtio_gpio_set_status(uint8_t status) "0x%x" --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424589; cv=none; d=zohomail.com; s=zohoarc; b=Lh+QrrPUe0ctLDCgjZUfBPar2j7cmiAw7Kpj2P7Ped/wylBq5Yoi9JCzEtPjlWD/NDQuZQ5d4fmKO04m70NJjEG8/dDtdAGZVTtvPxnF7jfd1RZs92le6tVVknaIwkrXCtjoo3bHvUJdV9w8G8TkFpwApXv7riUz0FzbMZEnlz0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424589; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8FzTRqu6X76Q9LWCqleedY0GTIZa238RHANVu9yOyt8=; b=mYPqISoPshETtDEiyvVFqVtfqK/BrV7zfEjQHtmU2SChlrHEd20LbxnX7QNYizdQZMth2NrB8A8qlOmiYgBzzY4CRQpFxj6qzGlAptmcFNHmj4u0CJltMBFMXmrgfNCgsQEoI4ta30bJs/CzsrbUrx/9tnW6yZ21XFzIUm8Klik= 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 1665424589935447.958986318509; Mon, 10 Oct 2022 10:56:29 -0700 (PDT) Received: from localhost ([::1]:36964 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohx0u-0006Dr-ES for importer@patchew.org; Mon, 10 Oct 2022 13:56:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34438) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwav-0000qy-9E for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:37 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:57949) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwan-0006Y2-RH for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:35 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-176-drUkLtInMXCm52P2XPdnTQ-1; Mon, 10 Oct 2022 13:29:27 -0400 Received: by mail-wr1-f70.google.com with SMTP id d22-20020adfa356000000b0022e224b21c0so2950599wrb.9 for ; Mon, 10 Oct 2022 10:29:27 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id i18-20020a5d5592000000b0021e51c039c5sm9460696wrv.80.2022.10.10.10.29.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422969; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8FzTRqu6X76Q9LWCqleedY0GTIZa238RHANVu9yOyt8=; b=Q1ByyL9rTSpWWx+E02x/zruXf4ZiREt2mAdPFJHl1EZEk3+0NVzGLNn5MuDJB8G9N4HWhM ikgl8arNHfmYkumx975AJG2bdDydUp8k6gq6SJQCRggp5tASumhksFVcPbnY3s/2tud8Ay scLKwypOuBZ4/HsuHd7U9/7Sb8Zjij4= X-MC-Unique: drUkLtInMXCm52P2XPdnTQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8FzTRqu6X76Q9LWCqleedY0GTIZa238RHANVu9yOyt8=; b=JE5yWs2/9STMLsKcq953bX3rwEIg+4r723TjDVuGRaBodFsAnWTces3bHE5jsWZvI6 0J578R8/WzoLHCGjGJ6wSXAcvk7DHMez/G8Su5Au5HfrL58quEmi/6WOPZ8xbMVe/wuQ nw1R4JmRsbyfaVyr4lKwUvkgLUlhBBB78vZlxeQScpFXfKg6wCxwqm01vkDJ899jGBen tuHXEgAvMgSnk+CtNe67RQdCijl1264ViekjeXdjsY0N/9x2jVq4VyY2RyEmXaIVdzMv yOSKZhg2PAxVYeRXwyT+xGMyfSZZa+j+ujLVD7Ky9/IPnpLnGzi8XL9Cgo/06UXKttkd hA+w== X-Gm-Message-State: ACrzQf0DPxwq3Oa9Zkdnj9AfTPO9rjbec6Ug/KeWbAP8dZkc9A4L8qAK GMaUnWupH+kF2c7iUp8mQCQjz4BZ5asVXoW0dkEArUxc6HUdh0HSCuSLiB4t+r00hs98tnpn4HP GkKG593CKKxrjLaw2npJfD4Mh/IqlREZZ+foyxX9L1XU7stQ7I4PNeyN77LWG X-Received: by 2002:a5d:64c2:0:b0:22e:41b0:42ca with SMTP id f2-20020a5d64c2000000b0022e41b042camr12556947wri.411.1665422965110; Mon, 10 Oct 2022 10:29:25 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4XDPkr3lK2mCtLj2f9Q77EsTw1E+YAJvHIH15YhPodr5ztAFZNTD7hpAkh5QCGx6g0p4eHag== X-Received: by 2002:a5d:64c2:0:b0:22e:41b0:42ca with SMTP id f2-20020a5d64c2000000b0022e41b042camr12556929wri.411.1665422964744; Mon, 10 Oct 2022 10:29:24 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:21 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Viresh Kumar , Alex =?utf-8?Q?Benn=C3=A9e?= Subject: [PULL 10/55] hw/virtio: add vhost-user-gpio-pci boilerplate Message-ID: <20221010172813.204597-11-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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, T_SPF_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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424591621100001 From: Viresh Kumar This allows is to instantiate a vhost-user-gpio device as part of a PCI bus. It is mostly boilerplate which looks pretty similar to the vhost-user-fs-pci device. Signed-off-by: Viresh Kumar Reviewed-by: Alex Benn=C3=A9e Message-Id: <5f560cab92d0d789b1c94295ec74b9952907d69d.1641987128.git.viresh= .kumar@linaro.org> Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-14-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/vhost-user-gpio-pci.c | 69 +++++++++++++++++++++++++++++++++ MAINTAINERS | 2 +- hw/virtio/meson.build | 1 + 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 hw/virtio/vhost-user-gpio-pci.c diff --git a/hw/virtio/vhost-user-gpio-pci.c b/hw/virtio/vhost-user-gpio-pc= i.c new file mode 100644 index 0000000000..b3028a24a1 --- /dev/null +++ b/hw/virtio/vhost-user-gpio-pci.c @@ -0,0 +1,69 @@ +/* + * Vhost-user gpio virtio device PCI glue + * + * Copyright (c) 2022 Viresh Kumar + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "hw/qdev-properties.h" +#include "hw/virtio/vhost-user-gpio.h" +#include "hw/virtio/virtio-pci.h" + +struct VHostUserGPIOPCI { + VirtIOPCIProxy parent_obj; + VHostUserGPIO vdev; +}; + +typedef struct VHostUserGPIOPCI VHostUserGPIOPCI; + +#define TYPE_VHOST_USER_GPIO_PCI "vhost-user-gpio-pci-base" + +DECLARE_INSTANCE_CHECKER(VHostUserGPIOPCI, VHOST_USER_GPIO_PCI, + TYPE_VHOST_USER_GPIO_PCI) + +static void vhost_user_gpio_pci_realize(VirtIOPCIProxy *vpci_dev, Error **= errp) +{ + VHostUserGPIOPCI *dev =3D VHOST_USER_GPIO_PCI(vpci_dev); + DeviceState *vdev =3D DEVICE(&dev->vdev); + + vpci_dev->nvectors =3D 1; + qdev_realize(vdev, BUS(&vpci_dev->bus), errp); +} + +static void vhost_user_gpio_pci_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + VirtioPCIClass *k =3D VIRTIO_PCI_CLASS(klass); + PCIDeviceClass *pcidev_k =3D PCI_DEVICE_CLASS(klass); + k->realize =3D vhost_user_gpio_pci_realize; + set_bit(DEVICE_CATEGORY_INPUT, dc->categories); + pcidev_k->vendor_id =3D PCI_VENDOR_ID_REDHAT_QUMRANET; + pcidev_k->device_id =3D 0; /* Set by virtio-pci based on virtio id */ + pcidev_k->revision =3D 0x00; + pcidev_k->class_id =3D PCI_CLASS_COMMUNICATION_OTHER; +} + +static void vhost_user_gpio_pci_instance_init(Object *obj) +{ + VHostUserGPIOPCI *dev =3D VHOST_USER_GPIO_PCI(obj); + + virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev), + TYPE_VHOST_USER_GPIO); +} + +static const VirtioPCIDeviceTypeInfo vhost_user_gpio_pci_info =3D { + .base_name =3D TYPE_VHOST_USER_GPIO_PCI, + .non_transitional_name =3D "vhost-user-gpio-pci", + .instance_size =3D sizeof(VHostUserGPIOPCI), + .instance_init =3D vhost_user_gpio_pci_instance_init, + .class_init =3D vhost_user_gpio_pci_class_init, +}; + +static void vhost_user_gpio_pci_register(void) +{ + virtio_pci_types_register(&vhost_user_gpio_pci_info); +} + +type_init(vhost_user_gpio_pci_register); diff --git a/MAINTAINERS b/MAINTAINERS index 66d519fe35..beccce4a7a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2102,7 +2102,7 @@ vhost-user-gpio M: Alex Benn=C3=A9e R: Viresh Kumar S: Maintained -F: hw/virtio/vhost-user-gpio.c +F: hw/virtio/vhost-user-gpio* F: include/hw/virtio/vhost-user-gpio.h =20 virtio-crypto diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build index 33c8e71fab..c14e3db10a 100644 --- a/hw/virtio/meson.build +++ b/hw/virtio/meson.build @@ -30,6 +30,7 @@ virtio_ss.add(when: 'CONFIG_VIRTIO_MEM', if_true: files('= virtio-mem.c')) virtio_ss.add(when: 'CONFIG_VHOST_USER_I2C', if_true: files('vhost-user-i2= c.c')) virtio_ss.add(when: 'CONFIG_VHOST_USER_RNG', if_true: files('vhost-user-rn= g.c')) virtio_ss.add(when: 'CONFIG_VHOST_USER_GPIO', if_true: files('vhost-user-g= pio.c')) +virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_GPIO'], if_tr= ue: files('vhost-user-gpio-pci.c')) =20 virtio_pci_ss =3D ss.source_set() virtio_pci_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-vsock-= pci.c')) --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424125; cv=none; d=zohomail.com; s=zohoarc; b=f7yVYaeQSeQq2MemE1objVD8SxydPE8qdyyFRl6Nm8FR/MsQxNi3vQmjMGuMO2VOY0XUfxyOMeumZd1TxkY8GMpFYc1hb4+GS+NFyFmOmod8qUFVOALNPh0OhX/6eVcg3jbspRNR7C1iFWlhv+oaHGOulNVO7vMjrRdFQrIYucE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424125; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2iwODXw0y1ZBoetM/4mM4qd7/Y+WK2plkhEqQ5sfQbQ=; b=khvdIvKw0nH/G5+TM1GMP6ZD74/gno2bgnAEQcCQKVIj0T5/TcEwHfiHH/BbEtixKyLFz8R+80LKdtM5HmB1TsdIRA6U1cpvkZlAvmK0XImDO+uNsQ2At3v0NsGHJCv3zzRScXr9N7k/Pv5RivDDIEwkPGQ1PxdRVzSODa5/Mik= 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 1665424125445487.8358110386105; Mon, 10 Oct 2022 10:48:45 -0700 (PDT) Received: from localhost ([::1]:34616 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohwtP-0006YV-QT for importer@patchew.org; Mon, 10 Oct 2022 13:48:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34440) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwax-0000wF-5X for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:45452) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwar-0006Zh-Or for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:38 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-498-F1Lmhsh5NrmAOjl1jyQD4A-1; Mon, 10 Oct 2022 13:29:31 -0400 Received: by mail-wm1-f69.google.com with SMTP id fc12-20020a05600c524c00b003b5054c70d3so7291277wmb.5 for ; Mon, 10 Oct 2022 10:29:31 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id d4-20020adffbc4000000b00225307f43fbsm7281023wrs.44.2022.10.10.10.29.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422972; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2iwODXw0y1ZBoetM/4mM4qd7/Y+WK2plkhEqQ5sfQbQ=; b=JHCuPQ1dAmOFeGoh8A7MnH8rzCoOeTSeOM28PZLr9vdFloY5pDllM+Hvp/m7GhPsY6p95p 1yjHr0SyXGoRrDKjpaaG9Acx3n4foO7/rP/GLYIvxZXB7s3vp+wdwMbyRmbWQuQeqEYnzJ LYPAxDSjSWu6DfQTH/XQOM9UPR028F4= X-MC-Unique: F1Lmhsh5NrmAOjl1jyQD4A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2iwODXw0y1ZBoetM/4mM4qd7/Y+WK2plkhEqQ5sfQbQ=; b=gCRfQmoyEA5hbILX2H7poqZ6PND03ml/6nil9Yy7ou5EBtk+3YZySAbQBfVbltkyOh alyvCBulpkn1/j/jtc5an+i7wvYL7KLm5thy6zylkqzMH4PSsSE6beu4FiSL0Fw38ZCz 2Zh+3rDw4PsR25h0LXa/br0ellq+s2hrgHYt7JFcWUhlPg8TUTy3RomkC9UD6ySAUAwo 0UzGqosvoJ1zYuvqfwhiycRxwT83TLyeAXK559Un/7RsdRP90t8A5bP7DOuHfZxzCD1V 9Ry6I1Ntq51eQhIPE3mUnElT8yuCW2usd0kurqsfpw5U29XQ4tu4HsJvcw44zhtRt29F Pkig== X-Gm-Message-State: ACrzQf0n8dU5a4+hOWl+81yNfi1rWzFEzypblgTO0Aj/IyaBCGwrSfrd 1Fa559hTh6dGfx2C2ERvh4gvPwim9Ead1EvXLYpQJpdDxQhqPNRonJ1vvdQJ3XrKedM36w0liyM RsKRYHJo0EUIxah5TWHCUHALKKhAZlsrB57Gp8rW4kxjUHf64pj8+CosNG2Da X-Received: by 2002:adf:e112:0:b0:21d:7195:3a8d with SMTP id t18-20020adfe112000000b0021d71953a8dmr12813380wrz.371.1665422969920; Mon, 10 Oct 2022 10:29:29 -0700 (PDT) X-Google-Smtp-Source: AMsMyM707a/IObCaFtb9WHMjypQEwjKKu5V7Zo3e15IxTnCB4Ee7Pg0J5tEictIfHozO+veB074yyA== X-Received: by 2002:adf:e112:0:b0:21d:7195:3a8d with SMTP id t18-20020adfe112000000b0021d71953a8dmr12813361wrz.371.1665422969623; Mon, 10 Oct 2022 10:29:29 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:25 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Thomas Huth , Laurent Vivier , Paolo Bonzini Subject: [PULL 11/55] tests/qtest: pass stdout/stderr down to subtests Message-ID: <20221010172813.204597-12-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424127025100001 From: Alex Benn=C3=A9e When trying to work out what the virtio-net-tests where doing it was hard because the g_test_trap_subprocess redirects all output to /dev/null. Lift this restriction by using the appropriate flags so you can see something similar to what the vhost-user-blk tests show when running. Signed-off-by: Alex Benn=C3=A9e Acked-by: Thomas Huth Message-Id: <20220407150042.2338562-1-alex.bennee@linaro.org> Message-Id: <20220802095010.3330793-15-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/qos-test.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/qtest/qos-test.c b/tests/qtest/qos-test.c index 831db5cf2a..33cdada380 100644 --- a/tests/qtest/qos-test.c +++ b/tests/qtest/qos-test.c @@ -185,7 +185,9 @@ static void run_one_test(const void *arg) static void subprocess_run_one_test(const void *arg) { const gchar *path =3D arg; - g_test_trap_subprocess(path, 0, 0); + g_test_trap_subprocess(path, 0, + G_TEST_SUBPROCESS_INHERIT_STDOUT | + G_TEST_SUBPROCESS_INHERIT_STDERR); g_test_trap_assert_passed(); } =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424483; cv=none; d=zohomail.com; s=zohoarc; b=jGFDhgoJhVwdm59NXzYwmp5XCzIBr9SqLOwT5UmxrTzag/rvEHKuiBn36yJk8HHY3p9kuYWOLazlJIrNX6FNb0j8LHuPS6OsJVTUCNqmVmfU2QIOnrdmivMotz5j3bRNJ2D++TxcsDYutcqw7dH3l8bGHPRdnsvPta4hrn5gp30= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424483; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Rf0XQwc/BmRyvyPNJvIiGLwnDIY+n+JfNAjnoyzxZeU=; b=aMOYu3k/tHxQD0F9KZ+Adcf2xEppAy15whRFxRHltqn40IVsSprqZJHovZ2lDegcVyhr43193ZVr215cG74o6t1Lo2YI+j16ujAv4lE9PBTR037kbOUnLN/Pj8yqMFdU6OMnnW5nAtXYoUJnINAZmiRybj3Di4x3SKZeOcBPWTU= 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 1665424483444462.48378213812; Mon, 10 Oct 2022 10:54:43 -0700 (PDT) Received: from localhost ([::1]:52454 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohwzB-0003xi-O8 for importer@patchew.org; Mon, 10 Oct 2022 13:54:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43002) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwb9-0001Vd-2q for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:30056) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwb3-0006bo-IF for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:50 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-483-GRlA71w7PhqN71wKPcs7qQ-1; Mon, 10 Oct 2022 13:29:36 -0400 Received: by mail-wm1-f69.google.com with SMTP id ay21-20020a05600c1e1500b003b45fd14b53so5819195wmb.1 for ; Mon, 10 Oct 2022 10:29:35 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id l22-20020a05600c089600b003c43dc42b4dsm7812799wmp.16.2022.10.10.10.29.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422984; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Rf0XQwc/BmRyvyPNJvIiGLwnDIY+n+JfNAjnoyzxZeU=; b=Ufoe2x8l9U+m/Zez6oPtjf9z8wtRR6B75jej+d/1MTJxKcyt/WU6gEseTkw/A0QceqZ26c 9/EnVGOLHzrjhpeZuYTOm0z6tV2OVU2y/eKC1ewdYtCQM5Z6lnHQmr0dioA7TO0KGCp7ls dnipucej8OcILnNaL1M/zlu6f41R8Zg= X-MC-Unique: GRlA71w7PhqN71wKPcs7qQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Rf0XQwc/BmRyvyPNJvIiGLwnDIY+n+JfNAjnoyzxZeU=; b=1jMBjw5k3imc9ti9brVgRuqvIelMR9QmUpn/8maInV9IEgw/OPPJb2PNe+emOtC7VG rG8LyR5ttlZvZu9IsFQoFA8U6nJBw+NDlq+8WXAwiXrcEvIucoNWTfO7U1DzCTaXhzxy yigKcBPpF7k8oRmtXjakagl02ka2DcT13I5UFtMmvnHzWhG0wPZEicYt+fyuTWZuGkYD 9E3DJRBe+CuTiWmV3ibxi+HzXXHg62Q/1oG9ZGHrXDqlp5ojFkGu83eDwFabhq+EMqW4 zS4afbZ2IEqte7n4DCk7ABwB87U7ObrvCtTnbDCyBxC8KYWuNaeU1yJ9IEB3W5Ar4t6S 8miQ== X-Gm-Message-State: ACrzQf2rRX36zP9SLUqM04kQCQ/y2fAR/zILrdcoVBI93N8jDLH4JHoX T1Bj6jGiGj5DIAbWjUZPdguMzU6QDQn6k36QeSvIPRMaDQnXQY1MRUdo/IOg2wO6bVbBDo70nAG o138nKOJIKjeA1kX7vpMs83t98FpnbibeT/JRRjcRnzYySRo4szmBwnnyihSU X-Received: by 2002:adf:cf0a:0:b0:22e:3f43:a5f7 with SMTP id o10-20020adfcf0a000000b0022e3f43a5f7mr12321396wrj.634.1665422974565; Mon, 10 Oct 2022 10:29:34 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7CMka6eloDJzCaI32P+S8Mr/ZX7Dfq8Moc+AA2H0zzMcphSlgOJ4l+2wTNEDwICYWIqqgxww== X-Received: by 2002:adf:cf0a:0:b0:22e:3f43:a5f7 with SMTP id o10-20020adfcf0a000000b0022e3f43a5f7mr12321377wrj.634.1665422974255; Mon, 10 Oct 2022 10:29:34 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:29 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Thomas Huth , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Laurent Vivier , Paolo Bonzini Subject: [PULL 12/55] tests/qtest: add a timeout for subprocess_run_one_test Message-ID: <20221010172813.204597-13-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424485057100001 From: Alex Benn=C3=A9e Hangs have been observed in the tests and currently we don't timeout if a subprocess hangs. Rectify that. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Thomas Huth Message-Id: <20220802095010.3330793-16-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- tests/qtest/qos-test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/qtest/qos-test.c b/tests/qtest/qos-test.c index 33cdada380..566cb3b00b 100644 --- a/tests/qtest/qos-test.c +++ b/tests/qtest/qos-test.c @@ -185,7 +185,7 @@ static void run_one_test(const void *arg) static void subprocess_run_one_test(const void *arg) { const gchar *path =3D arg; - g_test_trap_subprocess(path, 0, + g_test_trap_subprocess(path, 180 * G_USEC_PER_SEC, G_TEST_SUBPROCESS_INHERIT_STDOUT | G_TEST_SUBPROCESS_INHERIT_STDERR); g_test_trap_assert_passed(); --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424683; cv=none; d=zohomail.com; s=zohoarc; b=Av1BJ+5Cj5l0qwSgCe0BVZUyDo3UrY91T+mADl4XvXfjTvNUaDBgeDozkJWYik3NI9QXMYQo9Xer542T/ewQDeXNesHJ9LCvdfEX4ebztrUbvYNbKRcpgUbrKS2xQ2pNIVx8DNkbKUM3yvCkcsgKWSHpbMOIjoYk9cUzRBU8G70= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424683; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7npCfBPJ3SU6f/b3cEDN5Cf+Lw7VA1jtIVngNbIXD3s=; b=LWwI4IcwVFZ/QAW4LeR7PteBX5aHehCkRzIAX8NhVaEOiBMOddtC72LWgabc96eX5IHwJZmXHwwC1tm6OSK9PVDhRn+sCXffjdpMJUtKDItfB/UaEZD50ADwo3DWR6nINP3i8lVQVcZmgWRr7U1T31Gw/CFuWdXTRfl9yRxO+MQ= 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 1665424683363276.0055664646666; Mon, 10 Oct 2022 10:58:03 -0700 (PDT) Received: from localhost ([::1]:50664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohx2Q-0001P8-42 for importer@patchew.org; Mon, 10 Oct 2022 13:58:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43008) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwb9-0001Ys-Vo for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:60138) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwb0-0006b5-Ag for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:51 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-471-4TC5cJ_xNJaDYz2lcjLRGA-1; Mon, 10 Oct 2022 13:29:40 -0400 Received: by mail-wm1-f70.google.com with SMTP id f26-20020a7bcc1a000000b003c03db14864so3261411wmh.6 for ; Mon, 10 Oct 2022 10:29:40 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id u16-20020adfdd50000000b002238ea5750csm11850269wrm.72.2022.10.10.10.29.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422981; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7npCfBPJ3SU6f/b3cEDN5Cf+Lw7VA1jtIVngNbIXD3s=; b=DkOFXOGLhGjKPS7FJLoVRtnf16aeARBM/W3VTy7opniRB1PYCX4US/Ji+YnvJ4S/O3IXHY YaQMkS8vfCls8jbmF9ZCA29NXX4k0u95zD/ZVwX33WyDxLesoCGIWpDayZusgwtz5GwaPx 89Tjn/BGWGqVMQrGCWYm+icbQxeF5SU= X-MC-Unique: 4TC5cJ_xNJaDYz2lcjLRGA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7npCfBPJ3SU6f/b3cEDN5Cf+Lw7VA1jtIVngNbIXD3s=; b=78Fo7r06OJHlTj/2fLihdFSwYSsDb6/sUWo5mXi+L4zGQr6J2BY6BvaFx+RA3xd3wU nc0ECxTRk6GY4IW5FvTcKgl+BoQvGxS4hnxCMy/D7wVlik8XpGgndjjZIz9ExYde3jZa /EUGMaTPU2i7cKx4ZqY2VMkZDfxJWnrKzvi/e8aoiZQisdVEHhS+K4p6PaOhfmaP0JCl 9serqI6a9zGq4K91DTiqFfjUkv1qDID57eOMFYmuy/weSRiWrL9lA6Lzx2vLI/mvk3Yr 3kGJU6upVJu+5bTqyc/JnYRwnEfFRWVUAdZ7t1NFWTrgUagqKTArZmanec2hwdK5WqeN ykfA== X-Gm-Message-State: ACrzQf1j9Cjim3zhrxj/DYh9gXJHpaX7I9Rck7TU9qkrKRefgzcizCom gilFFXW6Gyy8oNS52KM/5+sfEXVwiKD1zWED97oOwGQ5IQaD1vGLITM47jPkJOTJKkUR+QWamVn 1rAptoQ1A2UyEtlW8o7aSuSqVjYlwhD0RbxjYXLtVmoYAwOiUF5ubxoiiUAss X-Received: by 2002:adf:d1ec:0:b0:22e:3341:a8cb with SMTP id g12-20020adfd1ec000000b0022e3341a8cbmr11952006wrd.151.1665422978932; Mon, 10 Oct 2022 10:29:38 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4wqqVUCk9+Hi+zHaBbJw5rdEzajJJk0uL6fkhqMZe6r5B4PtuMbpmFhS3beZUvRqRbE0Fb+A== X-Received: by 2002:adf:d1ec:0:b0:22e:3341:a8cb with SMTP id g12-20020adfd1ec000000b0022e3341a8cbmr11951984wrd.151.1665422978556; Mon, 10 Oct 2022 10:29:38 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:34 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Thomas Huth , Laurent Vivier , Paolo Bonzini Subject: [PULL 13/55] tests/qtest: use qos_printf instead of g_test_message Message-ID: <20221010172813.204597-14-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424684300100001 From: Alex Benn=C3=A9e The vhost-user tests respawn qos-test as a standalone process. As a result the gtester framework squashes all messages coming out of it which make it hard to debug. As the test does not care about asserting certain messages just convert the tests to use the direct qos_printf. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-17-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/qos-test.c | 5 +++++ tests/qtest/vhost-user-test.c | 13 +++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/qtest/qos-test.c b/tests/qtest/qos-test.c index 566cb3b00b..5da4091ec3 100644 --- a/tests/qtest/qos-test.c +++ b/tests/qtest/qos-test.c @@ -321,6 +321,11 @@ static void walk_path(QOSGraphNode *orig_path, int len) int main(int argc, char **argv, char** envp) { g_test_init(&argc, &argv, NULL); + + if (g_test_subprocess()) { + qos_printf("qos_test running single test in subprocess\n"); + } + if (g_test_verbose()) { qos_printf("ENVIRONMENT VARIABLES: {\n"); for (char **env =3D envp; *env !=3D 0; env++) { diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c index 84498941a6..99dc6080e5 100644 --- a/tests/qtest/vhost-user-test.c +++ b/tests/qtest/vhost-user-test.c @@ -26,6 +26,7 @@ #include "libqos/virtio-pci.h" =20 #include "libqos/malloc-pc.h" +#include "libqos/qgraph_internal.h" #include "hw/virtio/virtio-net.h" =20 #include "standard-headers/linux/vhost_types.h" @@ -316,7 +317,7 @@ static void chr_read(void *opaque, const uint8_t *buf, = int size) } =20 if (size !=3D VHOST_USER_HDR_SIZE) { - g_test_message("Wrong message size received %d", size); + qos_printf("%s: Wrong message size received %d\n", __func__, size); return; } =20 @@ -327,8 +328,8 @@ static void chr_read(void *opaque, const uint8_t *buf, = int size) p +=3D VHOST_USER_HDR_SIZE; size =3D qemu_chr_fe_read_all(chr, p, msg.size); if (size !=3D msg.size) { - g_test_message("Wrong message size received %d !=3D %d", - size, msg.size); + qos_printf("%s: Wrong message size received %d !=3D %d\n", + __func__, size, msg.size); return; } } @@ -450,7 +451,7 @@ static const char *init_hugepagefs(void) } =20 if (access(path, R_OK | W_OK | X_OK)) { - g_test_message("access on path (%s): %s", path, strerror(errno)); + qos_printf("access on path (%s): %s", path, strerror(errno)); g_test_fail(); return NULL; } @@ -460,13 +461,13 @@ static const char *init_hugepagefs(void) } while (ret !=3D 0 && errno =3D=3D EINTR); =20 if (ret !=3D 0) { - g_test_message("statfs on path (%s): %s", path, strerror(errno)); + qos_printf("statfs on path (%s): %s", path, strerror(errno)); g_test_fail(); return NULL; } =20 if (fs.f_type !=3D HUGETLBFS_MAGIC) { - g_test_message("Warning: path not on HugeTLBFS: %s", path); + qos_printf("Warning: path not on HugeTLBFS: %s", path); g_test_fail(); return NULL; } --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424607; cv=none; d=zohomail.com; s=zohoarc; b=Lln3dJ6e6Vj5g+M2yuqd6G4kwLPOcfbNkgp/9QmkxZVFMYieKNmWj1WbWYmLUgk4o2FAlfSHtDkTUnxOjSutbwbXi9M7daWxSgB26PARoUpzUrBi7KXHT2T2Od/pOagxlCFdgdED+zbJMbbt5nVp3W1EyHAEX/32wkSJNfFrgr4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424607; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2BsOC0ZeJk0TSOpxBXS/s5koTGeCNaE/TuTHTvbRH+I=; b=Sng1Sl0EYt4FYTucaZzZ/UuPg4Kz3DyQ663JdXMKoYlXsEnlp7T0lLzFMO+LGtmOrteFzaG+eHPnlMniPAd/FMyojc0BTq5gl8XJKq24Smor4E69O9UCm3tGw8j2YGNhjpV/HM+3MBaYI2DC1qND4uh3bDmgMKxuJlxJCdfkjQw= 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 1665424607558482.806170532421; Mon, 10 Oct 2022 10:56:47 -0700 (PDT) Received: from localhost ([::1]:60960 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohx1C-0007Cc-D5 for importer@patchew.org; Mon, 10 Oct 2022 13:56:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43006) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbB-0001YP-D8 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:43243) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwb4-0006bz-I3 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:51 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-529-d-5MlkNKPNGlJdMkddBxpg-1; Mon, 10 Oct 2022 13:29:44 -0400 Received: by mail-wm1-f69.google.com with SMTP id i5-20020a1c3b05000000b003c47c8569easo4142986wma.1 for ; Mon, 10 Oct 2022 10:29:44 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id a13-20020adff7cd000000b0022a403954c3sm9368022wrq.42.2022.10.10.10.29.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422985; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2BsOC0ZeJk0TSOpxBXS/s5koTGeCNaE/TuTHTvbRH+I=; b=RBoqLtekE+vW2Xa6u6HL5lcLyRx2+g1pwvIFohNELkGVyjIdhV98tNW+Xb6K0Fst8lmhB2 8qSlPWgKN8vsudD3WtkxM5ISx99ium4JZVoboI8I1vWYOpg65SsGV7/LjT7r0+YJTEI7YY uSUgrdIH+DHctksvYxsxxdGc2/Jdp+M= X-MC-Unique: d-5MlkNKPNGlJdMkddBxpg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2BsOC0ZeJk0TSOpxBXS/s5koTGeCNaE/TuTHTvbRH+I=; b=z7UYo4pF/tx2bCL9Btawbat5R5pwXeKfxlQ4c+MELMkn3031Jt4ye8LIifCOWJIifI NRDDM3oLWKtBW990Nr0ugv/wiXdJLpT+zTCo8xQO2cgiEicfV/DMlr3dF41JdLSU3H4w dobieW6KFi3EI+me5iYIHlD4ttFDOfMPa2hIjIATyAYtSTUVczcs/OwBtuv74bs8NWxf o8xjgdSUzdlC60GUOfUXIwjrY62Tx4d+0+k9dZTNd5onPRr6dh5acnwkjbheI8WkbDZM COVUF8GRDgnn918/Yywd9w4s9y19zf0E+eYVocqXKU4hKK6N49GJunZVPKH/WPgvfHpT R7kQ== X-Gm-Message-State: ACrzQf24mEcNhpTGaJDq6xZ8bRWHS/R4BcoYXrwqMofAbWe1BLjKP8R2 yIbZZqFMyO6a7bJSU4Vf7tKU0oJ+bRA9edS3TI8fogMN1y050i80k2dSQu45geRVRNJpHagTwhA r7B/LtrNElwucZTyEWMNvovXOZhb0vYzek0qBMrLcSscgZfURy/3GJdnlvtii X-Received: by 2002:a05:600c:3c84:b0:3b4:eff4:ab69 with SMTP id bg4-20020a05600c3c8400b003b4eff4ab69mr20440321wmb.104.1665422983140; Mon, 10 Oct 2022 10:29:43 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4BaqfI52ASPMHK1ZW3bOidcgDrq3D8+WMegEfES29MExKHfaN+LxMdwN7Lx7OZZWNRA5GwQw== X-Received: by 2002:a05:600c:3c84:b0:3b4:eff4:ab69 with SMTP id bg4-20020a05600c3c8400b003b4eff4ab69mr20440304wmb.104.1665422982851; Mon, 10 Oct 2022 10:29:42 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:38 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Thomas Huth , Laurent Vivier , Paolo Bonzini Subject: [PULL 14/55] tests/qtest: catch unhandled vhost-user messages Message-ID: <20221010172813.204597-15-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424607840100001 From: Alex Benn=C3=A9e We don't need to action every message but lets document the ones we are expecting to consume so future tests don't get confused about unhandled bits. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-18-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/vhost-user-test.c | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c index 99dc6080e5..8d2d4ba535 100644 --- a/tests/qtest/vhost-user-test.c +++ b/tests/qtest/vhost-user-test.c @@ -358,12 +358,44 @@ static void chr_read(void *opaque, const uint8_t *buf= , int size) } break; =20 + case VHOST_USER_SET_OWNER: + /* + * We don't need to do anything here, the remote is just + * letting us know it is in charge. Just log it. + */ + qos_printf("set_owner: start of session\n"); + break; + case VHOST_USER_GET_PROTOCOL_FEATURES: if (s->vu_ops->get_protocol_features) { s->vu_ops->get_protocol_features(s, chr, &msg); } break; =20 + case VHOST_USER_SET_PROTOCOL_FEATURES: + /* + * We did set VHOST_USER_F_PROTOCOL_FEATURES so its valid for + * the remote end to send this. There is no handshake reply so + * just log the details for debugging. + */ + qos_printf("set_protocol_features: 0x%"PRIx64 "\n", msg.payload.u6= 4); + break; + + /* + * A real vhost-user backend would actually set the size and + * address of the vrings but we can simply report them. + */ + case VHOST_USER_SET_VRING_NUM: + qos_printf("set_vring_num: %d/%d\n", + msg.payload.state.index, msg.payload.state.num); + break; + case VHOST_USER_SET_VRING_ADDR: + qos_printf("set_vring_addr: 0x%"PRIx64"/0x%"PRIx64"/0x%"PRIx64"\n", + msg.payload.addr.avail_user_addr, + msg.payload.addr.desc_user_addr, + msg.payload.addr.used_user_addr); + break; + case VHOST_USER_GET_VRING_BASE: /* send back vring base to qemu */ msg.flags |=3D VHOST_USER_REPLY_MASK; @@ -428,7 +460,18 @@ static void chr_read(void *opaque, const uint8_t *buf,= int size) qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size); break; =20 + case VHOST_USER_SET_VRING_ENABLE: + /* + * Another case we ignore as we don't need to respond. With a + * fully functioning vhost-user we would enable/disable the + * vring monitoring. + */ + qos_printf("set_vring(%d)=3D%s\n", msg.payload.state.index, + msg.payload.state.num ? "enabled" : "disabled"); + break; + default: + qos_printf("vhost-user: un-handled message: %d\n", msg.request); break; } =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665425267; cv=none; d=zohomail.com; s=zohoarc; b=YVcE3ntuDvVk0MXyl5FA7m3BSHHviu6rQYzYnKY3X/V/P/MTyc3oKJrYL6BFwV55BiwZgtrnmWfsV8Aep9ArE2EGsji18oBoKGGIgztZ3i/Ls8TKXLuByBtWQXrtJ5AOzTVm02mPNRRJt0AxZlRyllA5jHvtKP6NiUc8TTI2VxY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665425267; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5SkDIYazeL5AgpK2mExrNLbpNnLXzfMlqNa5jH9gxLw=; b=EhD2cYOkLXY5gQfYksb9Y895BX+6SIjlM2wcnP2R34/Bi3ays29DI8QFV7YTHPa8BSfP3LJ8r02ejlYRipzg7s/GWBft4NMDPoOgQ7w+7vwqqlSBSQ4emjqtTopWDtNI8NR+14e1lQWzs42jFV6OoZHJCfxMyCNRmRWN48uHYcU= 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 1665425267442449.8169507549891; Mon, 10 Oct 2022 11:07:47 -0700 (PDT) Received: from localhost ([::1]:44940 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxBq-00034n-3X for importer@patchew.org; Mon, 10 Oct 2022 14:07:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43010) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbB-0001d6-Vd for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:54 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:39207) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwb8-0006d6-Cz for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:29:53 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-664-6g58VjdFMAWlCA0nVyYKuQ-1; Mon, 10 Oct 2022 13:29:48 -0400 Received: by mail-wm1-f70.google.com with SMTP id h129-20020a1c2187000000b003bf635eac31so4254741wmh.4 for ; Mon, 10 Oct 2022 10:29:48 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id l9-20020adfe589000000b0022e6178bd84sm9313795wrm.8.2022.10.10.10.29.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422989; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5SkDIYazeL5AgpK2mExrNLbpNnLXzfMlqNa5jH9gxLw=; b=DXP+zBqDrZxzfOaW/67BqHQC83sgxFka+q1fxg4RO4JhdfYY50lEMcUQDgXkgwbGwGQrL2 x6elStXIXz9vlUcPhc91t2IDIKzmb2jZ4wKwHVyBkwsaxpYNaLZ4Z9eOA//48jRdzgO8Z8 w+F6uhL0/CbLXEXjf1NpmiGedD1mYvo= X-MC-Unique: 6g58VjdFMAWlCA0nVyYKuQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5SkDIYazeL5AgpK2mExrNLbpNnLXzfMlqNa5jH9gxLw=; b=heFyOGZNLavZcXTYc8GE167xlG7dzmvlg+DaB9ScDhR6meKJgE75eKRNn16lltVszR JluDy4muYdPskSlPNOWysia7bSnIKS5k1xa2ViIi/mfBB0nG1p509txeZA1+X1LAMCDf Hl39U87KiwwUqRnPbhLHvkqNINnJqGri9do+NQiwGID3fCH70di57CmEvgyMJ/f/XIC8 v10MuqBErJkW+S1tFqbAhNJzgvyukkd3BkkMaQdw6pHOOizXQH0aBgtau+svH+jk2yts e+H7VEOUDPalzoEcM7ZfkQZm4Et7bVtNQ2TuxPG7Ady/FdOuqDIR9FYmNlKUTYjHiZpz Ra7Q== X-Gm-Message-State: ACrzQf0FtfRCcSNVXTp6ZN4FXWl4gSVD597nHsVe67Aqf9H96YqZkeNv tR01nVpv4ZThzu64auGw3YnCbDqNKHOxYuX5Pr2t/C12pGrw2PWAyl5JJRQ0UIdW4uV7hrCzgct cT+gUo4MLqHhyCIQuQbXe/os0TFdgfz2xghj0i1i9mAKUOjS6moLd/cIciSFy X-Received: by 2002:a05:6000:1683:b0:230:d0b5:72c9 with SMTP id y3-20020a056000168300b00230d0b572c9mr2857810wrd.336.1665422987492; Mon, 10 Oct 2022 10:29:47 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4evNBO3oIsl4Y40dhOtwzdR7BSowYA389BkMHQZWlZdQ+UENQegUItiSTAAPkTei+73pXtVA== X-Received: by 2002:a05:6000:1683:b0:230:d0b5:72c9 with SMTP id y3-20020a056000168300b00230d0b572c9mr2857794wrd.336.1665422987253; Mon, 10 Oct 2022 10:29:47 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:43 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Thomas Huth , Laurent Vivier , Paolo Bonzini Subject: [PULL 15/55] tests/qtest: plain g_assert for VHOST_USER_F_PROTOCOL_FEATURES Message-ID: <20221010172813.204597-16-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665425267882100001 From: Alex Benn=C3=A9e checkpatch.pl warns that non-plain asserts should be avoided so convert the check to a plain g_assert. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-19-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/vhost-user-test.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c index 8d2d4ba535..a99f55ed84 100644 --- a/tests/qtest/vhost-user-test.c +++ b/tests/qtest/vhost-user-test.c @@ -985,8 +985,7 @@ static void test_multiqueue(void *obj, void *arg, QGues= tAllocator *alloc) static void vu_net_set_features(TestServer *s, CharBackend *chr, VhostUserMsg *msg) { - g_assert_cmpint(msg->payload.u64 & - (0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES), !=3D, 0ULL); + g_assert(msg->payload.u64 & (0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES)= ); if (s->test_flags =3D=3D TEST_FLAGS_DISCONNECT) { qemu_chr_fe_disconnect(chr); s->test_flags =3D TEST_FLAGS_BAD; --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424781; cv=none; d=zohomail.com; s=zohoarc; b=RByj4NAnW3sZE1jQt1S1MQM4SVqTRkBfMiWSHjMeqUDdUPX1kqaNAk6MgCWfX2WOcD5FhC6DfxUKpyhwJtVNJpZ0LWeqoB00z/bUN82ROxXooMk9WqP5Vw1RHnlOqC35wAibFz2Y/G+6NdoUnQiZHGYdsUzUkPSBcIJOe1XMP1I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424781; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=yJ+3Ym4q6e4cRDvqrMY+ao2NcRPn7bSMxNJxA/MOCSY=; b=nYA6/dCSdlYBuaHoBPyVh6YLhwnUGIRG/O2Mwrbn4PdzZuHn9V1Rwxzj5WtxkVn5GxbuI1l4p3nxP8G4vzvemyWMQ1piu4JVtKuEzwhCBuXFzNpLL6eqnbASFbvfyw6GYmtkKc9ymrnvZSlFzluZd8WVDqvJ+vhRaFpIB00FVdY= 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 16654247815621013.7178464332746; Mon, 10 Oct 2022 10:59:41 -0700 (PDT) Received: from localhost ([::1]:51590 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohx3x-0003YF-8g for importer@patchew.org; Mon, 10 Oct 2022 13:59:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46174) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbK-0001vX-9o for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:39934) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbC-0006e2-P6 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:01 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-114-fvOY0u2zOPGu41F1xT9XSg-1; Mon, 10 Oct 2022 13:29:53 -0400 Received: by mail-wm1-f69.google.com with SMTP id v23-20020a1cf717000000b003bff630f31aso3259018wmh.5 for ; Mon, 10 Oct 2022 10:29:52 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id k20-20020a05600c1c9400b003c131c5a997sm11680579wms.7.2022.10.10.10.29.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422994; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yJ+3Ym4q6e4cRDvqrMY+ao2NcRPn7bSMxNJxA/MOCSY=; b=Mf7wFhSDT2Igw+5L7HjUxurjSM3FPGMSeSHelj7OUh0T6TkioGHhp34ySg82VOQEFuJtii Amo6SDPNSXxyC4CIor4sSsmJu/iZZc2mgoNH9r2uvlNOkqk9rD6cEZxCgDdi1mpcz1D6+e KXsGX66Ay010pgm6M4iWWaUejM7QPyw= X-MC-Unique: fvOY0u2zOPGu41F1xT9XSg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yJ+3Ym4q6e4cRDvqrMY+ao2NcRPn7bSMxNJxA/MOCSY=; b=YMiKikjqgIT8/Z6uETKvl/DXUg04ggmWqYPqLBUlYG5IF9gc7Au93zvYEMUjMt3ZfO /4n30cUgsTQLD5RX36q0nbZH1FhF/p0XaAE0aT4mj8AUbAXOJg1jXWRZhVxaAm28DfoT wkDwrsywmi8Jyc3GNGMcKJUWdU1PrqxiKSU7Xxhc9rMmRstrcUjgnndLQJOTn4lxRe6x Fk0sErzufCOR2eZuX1/wfNtBZB4EuisAXxwbW3DTnRRvIAV7ealo6H9oXprmuofvVqQc TY2teRwlhIDU5w3YuZbWUhmcDuJaiGdIM2XEkFYzP7/hIEuSso9McjyQJ4P05rXSsyQH vZtg== X-Gm-Message-State: ACrzQf2om6G7CSxTkXhaWrBlalKZTPRXyScFP7GDPN2AKI8MHAjB/6gR /phwJSODLXw7mPUpqhxjyo2RiGK+HbxGzF0JKYhHugujkCpDIEC787Zfn+acduwOkI1Mn6Wo4PM gq3iNu0jzyrSV1KTvfQsDSbHxEEIiJ5R0TNnog95aFFx3NO2zdT65J2smDToq X-Received: by 2002:a7b:cc0c:0:b0:3c5:a58f:afbc with SMTP id f12-20020a7bcc0c000000b003c5a58fafbcmr6586031wmh.169.1665422991706; Mon, 10 Oct 2022 10:29:51 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6LfPAgfih40uMo+LiehqdDgi4yBz67QObpgJR6UqC6ELJWckp/f6PbAK/OgCotXRh5o52PTA== X-Received: by 2002:a7b:cc0c:0:b0:3c5:a58f:afbc with SMTP id f12-20020a7bcc0c000000b003c5a58fafbcmr6586012wmh.169.1665422991374; Mon, 10 Oct 2022 10:29:51 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:47 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Thomas Huth , Laurent Vivier , Paolo Bonzini Subject: [PULL 16/55] tests/qtest: add assert to catch bad features Message-ID: <20221010172813.204597-17-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424781807100001 From: Alex Benn=C3=A9e No device driver (which is what the qvirtio_ access functions represent) should be setting UNUSED(30) in the feature space. Although existing libqos users mask it out lets ensure nothing sneaks through. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-20-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/libqos/virtio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/qtest/libqos/virtio.c b/tests/qtest/libqos/virtio.c index 09ec09b655..03056e5187 100644 --- a/tests/qtest/libqos/virtio.c +++ b/tests/qtest/libqos/virtio.c @@ -101,6 +101,8 @@ uint64_t qvirtio_get_features(QVirtioDevice *d) =20 void qvirtio_set_features(QVirtioDevice *d, uint64_t features) { + g_assert(!(features & QVIRTIO_F_BAD_FEATURE)); + d->features =3D features; d->bus->set_features(d, features); =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424985; cv=none; d=zohomail.com; s=zohoarc; b=guw+2bY+8UJDOkVcM7t1l9xSyadZDvs4Rj1+zFnJN/Dsch7gNHAuRNHEZZxfGn7ZbbrxD1JRKA7FDc6wcxqXSeyLPA3Oi8VmdA4DAbFUZGP+qL6TkCTt9/7p+i3Cs9AUJTVDh9TuVyVMXRTS1kClY2E5+7g9Es/f1jMre42ahww= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424985; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jmsSQG3tgR/SeJWv4vUdgBQ5eNjunHANNe2NjKH/GKc=; b=gnKbiyv7Ho6NcrN3uBdI5LcYW5cmRCCE9G+AuINqQZb8VguHDJkhbYXYR8bM4cA1U0M2ACg/0WLx0HuJMrjGoBhCBcFimDx3Bfx7a7OlBJTcfKPAcNPUcM73zSNY5a7S87fXC4bWIt+YOK0h/MIfSQFzQL7cMyPhArFZwtjFsWk= 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 1665424985652912.8495015562569; Mon, 10 Oct 2022 11:03:05 -0700 (PDT) Received: from localhost ([::1]:41302 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohx7H-0007Kw-EK for importer@patchew.org; Mon, 10 Oct 2022 14:03:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46178) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbM-000218-Al for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:04 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:51519) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbH-0006fp-NN for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:03 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-477-y8tcy04lOGeE4Za_ITBT0g-1; Mon, 10 Oct 2022 13:29:58 -0400 Received: by mail-wm1-f72.google.com with SMTP id i5-20020a1c3b05000000b003c47c8569easo4143228wma.1 for ; Mon, 10 Oct 2022 10:29:57 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id u19-20020a05600c19d300b003bf6da9d2cesm15887970wmq.28.2022.10.10.10.29.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:29:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665422999; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jmsSQG3tgR/SeJWv4vUdgBQ5eNjunHANNe2NjKH/GKc=; b=bv1zbCC1joPeY513Fli5YVjjtN0Fw/dkyjardc8OD7yJVMtBYIH3FTIAvIIINGtNFKoAS2 kBN5lnw4TU+WwwvvJwUigNQBVpUxRYTrDuU61cRKFlB3xzUg+jnyTS3CdO6aG2lhvwIq0C xPIwjukd5zoMWq3FydVdpqWRpFSfdao= X-MC-Unique: y8tcy04lOGeE4Za_ITBT0g-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jmsSQG3tgR/SeJWv4vUdgBQ5eNjunHANNe2NjKH/GKc=; b=mloUVSgYFjf5iQwjKwyoioSXvaRyqVktEV5hIcH0vL3a4ODHl58KdDBrv/DhW3SqQL ZCLQti70M2KbpDyOxFxjFqyFpoLf2fesgbNMJf8Rjf0gc9y8QpFRsXO3R5gqUFjNJbRT gicpQN4Rl05BfYWznu6wB6+aJ7mdZFrGnDy0sKaFb5KOITJRaEnrTwu7d47Nq4h6IeNK 7etyeEGQ2uI0/9Kpejomg1BBsrLQr60SV6BQ+YsJW8W8N3hwLFgIifWKAY44gLlH/HcO OtZWdMDsLZyv8MVhWh47mt0eXA9FYinnamY2WT+4yE3b9Lynx+ainYguDKhHfpuAf9iK +sTg== X-Gm-Message-State: ACrzQf23O+1j6Or5x0FEY1oxyzdlOfiW/bEQO+XyjOA8dOx9jB3hWqpg /m087sYUG5CNYKNOad4Ix5ti3f8zeGhDfIvRwtIfNHNvA7I9LnKoIv93QDKqvSPFiGuPY5iRkcX 1ivuxs0WmtIJHzV1jpzlfsnMS/4/ZqnS3V6bZ3t2f/aFZB3EQ85gGnJkM+JmM X-Received: by 2002:a05:600c:a09:b0:3b5:2f6b:c7c5 with SMTP id z9-20020a05600c0a0900b003b52f6bc7c5mr13385641wmp.141.1665422996017; Mon, 10 Oct 2022 10:29:56 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4FmHxJF736rb5iIVLjVTMzfMFrxR8ya/9qffebxLtQdXawZ5s0TEAcuXjALd+ICNeYzLSTOQ== X-Received: by 2002:a05:600c:a09:b0:3b5:2f6b:c7c5 with SMTP id z9-20020a05600c0a0900b003b52f6bc7c5mr13385616wmp.141.1665422995721; Mon, 10 Oct 2022 10:29:55 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:51 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Thomas Huth , Laurent Vivier , Paolo Bonzini Subject: [PULL 17/55] tests/qtest: implement stub for VHOST_USER_GET_CONFIG Message-ID: <20221010172813.204597-18-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424987062100001 From: Alex Benn=C3=A9e We don't implement the full solution because frankly none of the tests need to at the moment. We may end up re-implementing libvhostuser in the end. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-21-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/vhost-user-test.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c index a99f55ed84..3052386634 100644 --- a/tests/qtest/vhost-user-test.c +++ b/tests/qtest/vhost-user-test.c @@ -79,6 +79,8 @@ typedef enum VhostUserRequest { VHOST_USER_SET_PROTOCOL_FEATURES =3D 16, VHOST_USER_GET_QUEUE_NUM =3D 17, VHOST_USER_SET_VRING_ENABLE =3D 18, + VHOST_USER_GET_CONFIG =3D 24, + VHOST_USER_SET_CONFIG =3D 25, VHOST_USER_MAX } VhostUserRequest; =20 @@ -372,6 +374,17 @@ static void chr_read(void *opaque, const uint8_t *buf,= int size) } break; =20 + case VHOST_USER_GET_CONFIG: + /* + * Treat GET_CONFIG as a NOP and just reply and let the guest + * consider we have updated its memory. Tests currently don't + * require working configs. + */ + msg.flags |=3D VHOST_USER_REPLY_MASK; + p =3D (uint8_t *) &msg; + qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size); + break; + case VHOST_USER_SET_PROTOCOL_FEATURES: /* * We did set VHOST_USER_F_PROTOCOL_FEATURES so its valid for --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665424841; cv=none; d=zohomail.com; s=zohoarc; b=UmNO8CHE5xUh/QVAiD/9ptDeroWfy0DJFgkN8BxobilKpTu65NdbpKAcBL8rN8XTyshE0gORdP75Ynp+BxAxEcC4eoGZxXXdGW2ISB9/VevcyAXJq8oM/AL9l0r9UqidHNtEsXnLM8sTH8Bs0TLAHnFY1k+tIBlW9ST4pYUrIHw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665424841; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wr3TVnZ7tk/u0Lm4bIhIKs4gYKeGgKd9uCvxQFfv5EM=; b=nKRYnN3CS7xhpbz5nSKHhYut14ZMJg24lNmCUNYZS8diHPgHPtB3+fb3tVpdXKhaMQIRyv33KxzDc9/AAArUd8JvhkffgeiBCXC1BfKL5RmMD79oukINr/eiuEyMcbZC6ezykZL1i8JHC7uGQ5d3aHD2YD3Tq5cuX+coLIGIKxE= 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 1665424841219129.62793825740357; Mon, 10 Oct 2022 11:00:41 -0700 (PDT) Received: from localhost ([::1]:45770 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohx4x-0004Xo-QS for importer@patchew.org; Mon, 10 Oct 2022 14:00:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49022) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbQ-00027Z-Qe for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:08 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:39240) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbM-0006ji-9N for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:08 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-221-nPJt9wF4Oom_ktKMfcPCNw-1; Mon, 10 Oct 2022 13:30:02 -0400 Received: by mail-wm1-f71.google.com with SMTP id i5-20020a1c3b05000000b003c47c8569easo4143320wma.1 for ; Mon, 10 Oct 2022 10:30:02 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id y8-20020a5d6208000000b0022c96d3b6f2sm11926483wru.54.2022.10.10.10.29.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wr3TVnZ7tk/u0Lm4bIhIKs4gYKeGgKd9uCvxQFfv5EM=; b=d9WXmRBdycEvi3VLKKaSkBZ5t9wr4wLBvEfZxjodT6O/D/RJ4p7/BaZzX2t97j2GsulZBZ C6oW8l2gpuP8KvimNYuHgUok2VHe2CLkWu8Y6sc/ijJPSJoGGiH0ViK8DXyT+T4edCeFwD +UmB/b0GdJUgt/YpOMCnwFkBCseGWRw= X-MC-Unique: nPJt9wF4Oom_ktKMfcPCNw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wr3TVnZ7tk/u0Lm4bIhIKs4gYKeGgKd9uCvxQFfv5EM=; b=62wHyI6kgeR2fOAznaYNAcp+Sms7dUZQw0REfQlKlX+gGPb4nXtHbWzc6Zp1mUWkQB WT/CXvxSWI7MtoD6q7lZAi3q/kuxkEsNUa0e42sPa8selVt6VsY+SoZCyvEyt4AtDhUe Tw1hoEbK0ivbS45gPdp2r0KH+BeiiswYdUO2BxV3SFxNmocUZ0dyLMTOyzVLxCslssNK LMb/nUqKhqB4TiD7uOS0OmksMeL0hXOrilgzJWqgrdRbRbVMeQstQLfv0pF61MaqIdQJ MDMfdgB+IRVnR5pSHTGmagpYCfuzCeWAxppfYiUba2XUCYm0H5guW6I4o3FIU/dEafY4 khrw== X-Gm-Message-State: ACrzQf26ijHEX64YmDZyR8JHVEAFUaBuEj1YaxbRbG31ajY5UJKTV1cR ygNQ4b0w9Vpv/sGnRF8XVJu/llHnSXiXsGrtjCXTIlGR4vtJ2G/LxMBgtzt58/hy14SlRWufyhM nh2rRvAIjryO2VQx299i3pjsyQ3ZVUydZrifuXlUWtTRMuC+ZjOcr+WtKc0vD X-Received: by 2002:a05:600c:3c84:b0:3b4:eff4:ab69 with SMTP id bg4-20020a05600c3c8400b003b4eff4ab69mr20441174wmb.104.1665423000747; Mon, 10 Oct 2022 10:30:00 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5NLmptfnnAhUUEu7T+QsjdZfIQa53Us2Mj/FL7vravmr4qfPROmwkj1d7aoaKc0T2Ds2dquA== X-Received: by 2002:a05:600c:3c84:b0:3b4:eff4:ab69 with SMTP id bg4-20020a05600c3c8400b003b4eff4ab69mr20441153wmb.104.1665423000431; Mon, 10 Oct 2022 10:30:00 -0700 (PDT) Date: Mon, 10 Oct 2022 13:29:56 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Thomas Huth , Laurent Vivier , Paolo Bonzini Subject: [PULL 18/55] tests/qtest: add a get_features op to vhost-user-test Message-ID: <20221010172813.204597-19-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665424842219100001 From: Alex Benn=C3=A9e As we expand this test for more virtio devices we will need to support different feature sets. Add a mandatory op field to fetch the list of features needed for the test itself. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20220802095010.3330793-22-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/vhost-user-test.c | 37 +++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c index 3052386634..4f4fcc09f5 100644 --- a/tests/qtest/vhost-user-test.c +++ b/tests/qtest/vhost-user-test.c @@ -171,10 +171,11 @@ struct vhost_user_ops { const char *chr_opts); =20 /* VHOST-USER commands. */ + uint64_t (*get_features)(TestServer *s); void (*set_features)(TestServer *s, CharBackend *chr, - VhostUserMsg *msg); + VhostUserMsg *msg); void (*get_protocol_features)(TestServer *s, - CharBackend *chr, VhostUserMsg *msg); + CharBackend *chr, VhostUserMsg *msg); }; =20 static const char *init_hugepagefs(void); @@ -338,20 +339,22 @@ static void chr_read(void *opaque, const uint8_t *buf= , int size) =20 switch (msg.request) { case VHOST_USER_GET_FEATURES: + /* Mandatory for tests to define get_features */ + g_assert(s->vu_ops->get_features); + /* send back features to qemu */ msg.flags |=3D VHOST_USER_REPLY_MASK; msg.size =3D sizeof(m.payload.u64); - msg.payload.u64 =3D 0x1ULL << VHOST_F_LOG_ALL | - 0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES; - if (s->queues > 1) { - msg.payload.u64 |=3D 0x1ULL << VIRTIO_NET_F_MQ; - } + if (s->test_flags >=3D TEST_FLAGS_BAD) { msg.payload.u64 =3D 0; s->test_flags =3D TEST_FLAGS_END; + } else { + msg.payload.u64 =3D s->vu_ops->get_features(s); } - p =3D (uint8_t *) &msg; - qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size); + + qemu_chr_fe_write_all(chr, (uint8_t *) &msg, + VHOST_USER_HDR_SIZE + msg.size); break; =20 case VHOST_USER_SET_FEATURES: @@ -995,8 +998,21 @@ static void test_multiqueue(void *obj, void *arg, QGue= stAllocator *alloc) wait_for_rings_started(s, s->queues * 2); } =20 + +static uint64_t vu_net_get_features(TestServer *s) +{ + uint64_t features =3D 0x1ULL << VHOST_F_LOG_ALL | + 0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES; + + if (s->queues > 1) { + features |=3D 0x1ULL << VIRTIO_NET_F_MQ; + } + + return features; +} + static void vu_net_set_features(TestServer *s, CharBackend *chr, - VhostUserMsg *msg) + VhostUserMsg *msg) { g_assert(msg->payload.u64 & (0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES)= ); if (s->test_flags =3D=3D TEST_FLAGS_DISCONNECT) { @@ -1025,6 +1041,7 @@ static struct vhost_user_ops g_vu_net_ops =3D { =20 .append_opts =3D append_vhost_net_opts, =20 + .get_features =3D vu_net_get_features, .set_features =3D vu_net_set_features, .get_protocol_features =3D vu_net_get_protocol_features, }; --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665425072; cv=none; d=zohomail.com; s=zohoarc; b=ciAphA+eu1l9mQVQzJIRzMAHW1j/PnPb+xepxyw4qlWjqq7Jzuf5zWvAQfk6KDFjLB/gi5GTzsB145fefdybw9o6JVaQzJJ5k1QXTZXESZO5UOMi6AVQibKgCobKy+qXpcW9a96bOY8p2RQ7mY3mYuMc0JvIuWaW4UIRetxoyA0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665425072; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=pXh/xwoTWbI+N3CES2T4w4Es2zHnFfvO5ql2hJM0dgE=; b=MNWQoP2WFsh+C2EV6rmjhgwwwWwlpRaPPc60jHL4A0vaUnV/MOZS3aJids1Yg0x5OlD5EmvAy3ct+cjRkrNiitnERI11PRZUzUMY3LLVH+B6f1I7YeaGqIVRQN+H58kP1K1RVpKmeXTg9SbdtTD6q9loWuGOqJbqn1bslyeR60o= 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 1665425072989229.75858012641595; Mon, 10 Oct 2022 11:04:32 -0700 (PDT) Received: from localhost ([::1]:35268 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohx8h-0000zd-FP for importer@patchew.org; Mon, 10 Oct 2022 14:04:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49024) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbU-00029Y-Bd for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:52059) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbQ-0006uJ-Rr for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:12 -0400 Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-556-drVHpmOWNtaVZR-LKcIgDQ-1; Mon, 10 Oct 2022 13:30:07 -0400 Received: by mail-wr1-f72.google.com with SMTP id e14-20020adf9bce000000b0022d18139c79so2947385wrc.5 for ; Mon, 10 Oct 2022 10:30:07 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id c8-20020a05600c0a4800b003b4fdbb6319sm18489197wmq.21.2022.10.10.10.30.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pXh/xwoTWbI+N3CES2T4w4Es2zHnFfvO5ql2hJM0dgE=; b=f/JmTzjR/DpohPhrod06dlikNKDg5jyNF+PPUG3AqdbKSfjzqU34m3CKfAJpiPzzIcLKL9 nAwxMY1tTVRugMTkqqyZ1Tch8JF0IkvqDM3IypLufIqYdBgYk1yjHL/yn+XbRapZUTxtnq y+WiJspSo9DNBYAK9xs5z7iz3V7M68E= X-MC-Unique: drVHpmOWNtaVZR-LKcIgDQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=pXh/xwoTWbI+N3CES2T4w4Es2zHnFfvO5ql2hJM0dgE=; b=sH5auG0DaWP3SRNCWHdSQVUdiKSJEAMypNVhedZCYehhhHeC4SWt5ZzyPcdARSpAfB HGitLEVEESyMyF8Ptq2QBIXOoyflB/ulgpG8i2kwMt7HK8w4jlKd4G+2hRy5+Ig76uG0 7wS+3UEuubgMMLVKd9ACqeULQTewx+5X9YRx8MGFuM6IQvSIr6LF7+fSWp/nfWP5XWA9 6IO3AFR/HJu0nlnkyHuCHhFW1Z58GZ9LXaeVOOeWe2ADIp09ev9Ddyl/ByKoEtjXqM5e 1pa39S38qDGA2iG9LUqqr1Rit9KPkLcAU+TSC+g0c6LJAvpgNgUZoNvIxW7LExjCfmu+ 5I4A== X-Gm-Message-State: ACrzQf2wWoY6mSTqZUE+EMnUdCFCnoDp2/egLm7z7GC7oiWDQw7jG4Ts CAbqTI9PnEL9Qlyb3WVFwp+BalpKdGucwShutPduKe9qMvPKAAQzWunO5LnMsPj0aQZu/POSuod JTCMrAjTa2VKlT3ceAIbvBgxd3XDtFB2H8U9fhjvJh+EqtbBsXgGpwNHDyT0d X-Received: by 2002:adf:d842:0:b0:22e:33e2:f379 with SMTP id k2-20020adfd842000000b0022e33e2f379mr12162830wrl.23.1665423005370; Mon, 10 Oct 2022 10:30:05 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5BId/tMwnIyb7VB28ChDzIHSTtFy1CiaO/r6Msw+PfA01GDaxqbS1/cmNklwrTK2HHoshkyA== X-Received: by 2002:adf:d842:0:b0:22e:33e2:f379 with SMTP id k2-20020adfd842000000b0022e33e2f379mr12162804wrl.23.1665423005058; Mon, 10 Oct 2022 10:30:05 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:00 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= , Viresh Kumar , Paolo Bonzini , Eric Auger , Thomas Huth , Laurent Vivier Subject: [PULL 19/55] tests/qtest: enable tests for virtio-gpio Message-ID: <20221010172813.204597-20-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665425074530100001 From: Alex Benn=C3=A9e We don't have a virtio-gpio implementation in QEMU and only support a vhost-user backend. The QEMU side of the code is minimal so it should be enough to instantiate the device and pass some vhost-user messages over the control socket. To do this we hook into the existing vhost-user-test code and just add the bits required for gpio. Signed-off-by: Alex Benn=C3=A9e Cc: Viresh Kumar Cc: Paolo Bonzini Cc: Eric Auger Message-Id: <20220408155704.2777166-1-alex.bennee@linaro.org> Message-Id: <20220802095010.3330793-23-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/libqos/virtio-gpio.h | 35 +++++++ tests/qtest/libqos/virtio-gpio.c | 171 +++++++++++++++++++++++++++++++ tests/qtest/libqos/virtio.c | 2 +- tests/qtest/vhost-user-test.c | 66 ++++++++++++ MAINTAINERS | 1 + tests/qtest/libqos/meson.build | 1 + 6 files changed, 275 insertions(+), 1 deletion(-) create mode 100644 tests/qtest/libqos/virtio-gpio.h create mode 100644 tests/qtest/libqos/virtio-gpio.c diff --git a/tests/qtest/libqos/virtio-gpio.h b/tests/qtest/libqos/virtio-g= pio.h new file mode 100644 index 0000000000..f11d41bd19 --- /dev/null +++ b/tests/qtest/libqos/virtio-gpio.h @@ -0,0 +1,35 @@ +/* + * virtio-gpio structures + * + * Copyright (c) 2022 Linaro Ltd + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef TESTS_LIBQOS_VIRTIO_GPIO_H +#define TESTS_LIBQOS_VIRTIO_GPIO_H + +#include "qgraph.h" +#include "virtio.h" +#include "virtio-pci.h" + +typedef struct QVhostUserGPIO QVhostUserGPIO; +typedef struct QVhostUserGPIOPCI QVhostUserGPIOPCI; +typedef struct QVhostUserGPIODevice QVhostUserGPIODevice; + +struct QVhostUserGPIO { + QVirtioDevice *vdev; + QVirtQueue **queues; +}; + +struct QVhostUserGPIOPCI { + QVirtioPCIDevice pci_vdev; + QVhostUserGPIO gpio; +}; + +struct QVhostUserGPIODevice { + QOSGraphObject obj; + QVhostUserGPIO gpio; +}; + +#endif diff --git a/tests/qtest/libqos/virtio-gpio.c b/tests/qtest/libqos/virtio-g= pio.c new file mode 100644 index 0000000000..762aa6695b --- /dev/null +++ b/tests/qtest/libqos/virtio-gpio.c @@ -0,0 +1,171 @@ +/* + * virtio-gpio nodes for testing + * + * Copyright (c) 2022 Linaro Ltd + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "standard-headers/linux/virtio_config.h" +#include "../libqtest.h" +#include "qemu/module.h" +#include "qgraph.h" +#include "virtio-gpio.h" + +static QGuestAllocator *alloc; + +static void virtio_gpio_cleanup(QVhostUserGPIO *gpio) +{ + QVirtioDevice *vdev =3D gpio->vdev; + int i; + + for (i =3D 0; i < 2; i++) { + qvirtqueue_cleanup(vdev->bus, gpio->queues[i], alloc); + } + g_free(gpio->queues); +} + +/* + * This handles the VirtIO setup from the point of view of the driver + * frontend and therefor doesn't present any vhost specific features + * and in fact masks of the re-used bit. + */ +static void virtio_gpio_setup(QVhostUserGPIO *gpio) +{ + QVirtioDevice *vdev =3D gpio->vdev; + uint64_t features; + int i; + + features =3D qvirtio_get_features(vdev); + features &=3D ~QVIRTIO_F_BAD_FEATURE; + qvirtio_set_features(vdev, features); + + gpio->queues =3D g_new(QVirtQueue *, 2); + for (i =3D 0; i < 2; i++) { + gpio->queues[i] =3D qvirtqueue_setup(vdev, alloc, i); + } + qvirtio_set_driver_ok(vdev); +} + +static void *qvirtio_gpio_get_driver(QVhostUserGPIO *v_gpio, + const char *interface) +{ + if (!g_strcmp0(interface, "vhost-user-gpio")) { + return v_gpio; + } + if (!g_strcmp0(interface, "virtio")) { + return v_gpio->vdev; + } + + g_assert_not_reached(); +} + +static void *qvirtio_gpio_device_get_driver(void *object, + const char *interface) +{ + QVhostUserGPIODevice *v_gpio =3D object; + return qvirtio_gpio_get_driver(&v_gpio->gpio, interface); +} + +/* virtio-gpio (mmio) */ +static void qvirtio_gpio_device_destructor(QOSGraphObject *obj) +{ + QVhostUserGPIODevice *gpio_dev =3D (QVhostUserGPIODevice *) obj; + virtio_gpio_cleanup(&gpio_dev->gpio); +} + +static void qvirtio_gpio_device_start_hw(QOSGraphObject *obj) +{ + QVhostUserGPIODevice *gpio_dev =3D (QVhostUserGPIODevice *) obj; + virtio_gpio_setup(&gpio_dev->gpio); +} + +static void *virtio_gpio_device_create(void *virtio_dev, + QGuestAllocator *t_alloc, + void *addr) +{ + QVhostUserGPIODevice *virtio_device =3D g_new0(QVhostUserGPIODevice, 1= ); + QVhostUserGPIO *interface =3D &virtio_device->gpio; + + interface->vdev =3D virtio_dev; + alloc =3D t_alloc; + + virtio_device->obj.get_driver =3D qvirtio_gpio_device_get_driver; + virtio_device->obj.start_hw =3D qvirtio_gpio_device_start_hw; + virtio_device->obj.destructor =3D qvirtio_gpio_device_destructor; + + return &virtio_device->obj; +} + +/* virtio-gpio-pci */ +static void qvirtio_gpio_pci_destructor(QOSGraphObject *obj) +{ + QVhostUserGPIOPCI *gpio_pci =3D (QVhostUserGPIOPCI *) obj; + QOSGraphObject *pci_vobj =3D &gpio_pci->pci_vdev.obj; + + virtio_gpio_cleanup(&gpio_pci->gpio); + qvirtio_pci_destructor(pci_vobj); +} + +static void qvirtio_gpio_pci_start_hw(QOSGraphObject *obj) +{ + QVhostUserGPIOPCI *gpio_pci =3D (QVhostUserGPIOPCI *) obj; + QOSGraphObject *pci_vobj =3D &gpio_pci->pci_vdev.obj; + + qvirtio_pci_start_hw(pci_vobj); + virtio_gpio_setup(&gpio_pci->gpio); +} + +static void *qvirtio_gpio_pci_get_driver(void *object, const char *interfa= ce) +{ + QVhostUserGPIOPCI *v_gpio =3D object; + + if (!g_strcmp0(interface, "pci-device")) { + return v_gpio->pci_vdev.pdev; + } + return qvirtio_gpio_get_driver(&v_gpio->gpio, interface); +} + +static void *virtio_gpio_pci_create(void *pci_bus, QGuestAllocator *t_allo= c, + void *addr) +{ + QVhostUserGPIOPCI *virtio_spci =3D g_new0(QVhostUserGPIOPCI, 1); + QVhostUserGPIO *interface =3D &virtio_spci->gpio; + QOSGraphObject *obj =3D &virtio_spci->pci_vdev.obj; + + virtio_pci_init(&virtio_spci->pci_vdev, pci_bus, addr); + interface->vdev =3D &virtio_spci->pci_vdev.vdev; + alloc =3D t_alloc; + + obj->get_driver =3D qvirtio_gpio_pci_get_driver; + obj->start_hw =3D qvirtio_gpio_pci_start_hw; + obj->destructor =3D qvirtio_gpio_pci_destructor; + + return obj; +} + +static void virtio_gpio_register_nodes(void) +{ + QPCIAddress addr =3D { + .devfn =3D QPCI_DEVFN(4, 0), + }; + + QOSGraphEdgeOptions edge_opts =3D { }; + + /* vhost-user-gpio-device */ + edge_opts.extra_device_opts =3D "id=3Dgpio0,chardev=3Dchr-vhost-user-t= est"; + qos_node_create_driver("vhost-user-gpio-device", + virtio_gpio_device_create); + qos_node_consumes("vhost-user-gpio-device", "virtio-bus", &edge_opts); + qos_node_produces("vhost-user-gpio-device", "vhost-user-gpio"); + + /* virtio-gpio-pci */ + edge_opts.extra_device_opts =3D "id=3Dgpio0,addr=3D04.0,chardev=3Dchr-= vhost-user-test"; + add_qpci_address(&edge_opts, &addr); + qos_node_create_driver("vhost-user-gpio-pci", virtio_gpio_pci_create); + qos_node_consumes("vhost-user-gpio-pci", "pci-bus", &edge_opts); + qos_node_produces("vhost-user-gpio-pci", "vhost-user-gpio"); +} + +libqos_init(virtio_gpio_register_nodes); diff --git a/tests/qtest/libqos/virtio.c b/tests/qtest/libqos/virtio.c index 03056e5187..410513225f 100644 --- a/tests/qtest/libqos/virtio.c +++ b/tests/qtest/libqos/virtio.c @@ -110,7 +110,7 @@ void qvirtio_set_features(QVirtioDevice *d, uint64_t fe= atures) * This could be a separate function for drivers that want to access * configuration space before setting FEATURES_OK, but no existing use= rs * need that and it's less code for callers if this is done implicitly. - */ + */ if (features & (1ull << VIRTIO_F_VERSION_1)) { uint8_t status =3D d->bus->get_status(d) | VIRTIO_CONFIG_S_FEATURES_OK; diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c index 4f4fcc09f5..e8d2da7228 100644 --- a/tests/qtest/vhost-user-test.c +++ b/tests/qtest/vhost-user-test.c @@ -32,6 +32,7 @@ #include "standard-headers/linux/vhost_types.h" #include "standard-headers/linux/virtio_ids.h" #include "standard-headers/linux/virtio_net.h" +#include "standard-headers/linux/virtio_gpio.h" =20 #ifdef CONFIG_LINUX #include @@ -53,9 +54,12 @@ #define VHOST_MAX_VIRTQUEUES 0x100 =20 #define VHOST_USER_F_PROTOCOL_FEATURES 30 +#define VIRTIO_F_VERSION_1 32 + #define VHOST_USER_PROTOCOL_F_MQ 0 #define VHOST_USER_PROTOCOL_F_LOG_SHMFD 1 #define VHOST_USER_PROTOCOL_F_CROSS_ENDIAN 6 +#define VHOST_USER_PROTOCOL_F_CONFIG 9 =20 #define VHOST_LOG_PAGE 0x1000 =20 @@ -140,6 +144,7 @@ enum { =20 enum { VHOST_USER_NET, + VHOST_USER_GPIO, }; =20 typedef struct TestServer { @@ -198,6 +203,19 @@ static void append_vhost_net_opts(TestServer *s, GStri= ng *cmd_line, chr_opts, s->chr_name); } =20 +/* + * For GPIO there are no other magic devices we need to add (like + * block or netdev) so all we need to worry about is the vhost-user + * chardev socket. + */ +static void append_vhost_gpio_opts(TestServer *s, GString *cmd_line, + const char *chr_opts) +{ + g_string_append_printf(cmd_line, QEMU_CMD_CHR, + s->chr_name, s->socket_path, + chr_opts); +} + static void append_mem_opts(TestServer *server, GString *cmd_line, int size, enum test_memfd memfd) { @@ -1090,3 +1108,51 @@ static void register_vhost_user_test(void) test_multiqueue, &opts); } libqos_init(register_vhost_user_test); + +static uint64_t vu_gpio_get_features(TestServer *s) +{ + return 0x1ULL << VIRTIO_F_VERSION_1 | + 0x1ULL << VIRTIO_GPIO_F_IRQ | + 0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES; +} + +/* + * This stub can't handle all the message types but we should reply + * that we support VHOST_USER_PROTOCOL_F_CONFIG as gpio would use it + * talking to a read vhost-user daemon. + */ +static void vu_gpio_get_protocol_features(TestServer *s, CharBackend *chr, + VhostUserMsg *msg) +{ + /* send back features to qemu */ + msg->flags |=3D VHOST_USER_REPLY_MASK; + msg->size =3D sizeof(m.payload.u64); + msg->payload.u64 =3D 1ULL << VHOST_USER_PROTOCOL_F_CONFIG; + + qemu_chr_fe_write_all(chr, (uint8_t *)msg, VHOST_USER_HDR_SIZE + msg->= size); +} + +static struct vhost_user_ops g_vu_gpio_ops =3D { + .type =3D VHOST_USER_GPIO, + + .append_opts =3D append_vhost_gpio_opts, + + .get_features =3D vu_gpio_get_features, + .set_features =3D vu_net_set_features, + .get_protocol_features =3D vu_gpio_get_protocol_features, +}; + +static void register_vhost_gpio_test(void) +{ + QOSGraphTestOptions opts =3D { + .before =3D vhost_user_test_setup, + .subprocess =3D true, + .arg =3D &g_vu_gpio_ops, + }; + + qemu_add_opts(&qemu_chardev_opts); + + qos_add_test("read-guest-mem/memfile", + "vhost-user-gpio", test_read_guest_mem, &opts); +} +libqos_init(register_vhost_gpio_test); diff --git a/MAINTAINERS b/MAINTAINERS index beccce4a7a..d0c0c8a55b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2104,6 +2104,7 @@ R: Viresh Kumar S: Maintained F: hw/virtio/vhost-user-gpio* F: include/hw/virtio/vhost-user-gpio.h +F: tests/qtest/libqos/virtio-gpio.* =20 virtio-crypto M: Gonglei diff --git a/tests/qtest/libqos/meson.build b/tests/qtest/libqos/meson.build index cff83c86d9..a5b6d5197a 100644 --- a/tests/qtest/libqos/meson.build +++ b/tests/qtest/libqos/meson.build @@ -45,6 +45,7 @@ libqos_srcs =3D files( 'virtio-scsi.c', 'virtio-serial.c', 'virtio-iommu.c', + 'virtio-gpio.c', 'generic-pcihost.c', =20 # qgraph machines: --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665425472; cv=none; d=zohomail.com; s=zohoarc; b=eOb8KF6mt4ykZFLbtIV+VjPBAOvv+EiaBZ8kJBJESJwO0wHf9idWOKwCUTS0+MZ8VMp1VJV6iWlY6lPio7gpJZUHpPj0FZlw19tRXfxyLMeFchpr5bBN787pSBEclw3Cz/LmH9KJMenS2lbfhIY3v8AdEEdoeuCX/GIfeFYL1ns= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665425472; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=a6Zgc/f/oExp1Oq3yCEWAHTzhom8dFVVHPot0BXkafs=; b=QCOIEDe+1SRZVDWWNVFfmUPFxT/vMRlZU/ola/mtaUnw+z/XOHa451xeDcgqBP+O4iNsH+WFSemD65IksQZSCZ5Xd/rTOlvJ6XhgMxGkuS8EFW2LOfJO74dxtGkTvJKgCJ2T5YlwKZqvvPeLllY6Et9z49/b9cYiMKBzArA1dyE= 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 1665425472880136.98842379655548; Mon, 10 Oct 2022 11:11:12 -0700 (PDT) Received: from localhost ([::1]:55324 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxF9-0005IX-J4 for importer@patchew.org; Mon, 10 Oct 2022 14:11:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60208) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbY-0002Dm-Dn for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:16 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:33469) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbV-0006vQ-Bb for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:16 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-605-sttR7A0-NFGkqxHti4Myhg-1; Mon, 10 Oct 2022 13:30:11 -0400 Received: by mail-wr1-f70.google.com with SMTP id s4-20020adfbc04000000b0022e03fc10a9so2955539wrg.15 for ; Mon, 10 Oct 2022 10:30:11 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id g11-20020a5d488b000000b00228d7078c4esm9349924wrq.4.2022.10.10.10.30.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423012; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=a6Zgc/f/oExp1Oq3yCEWAHTzhom8dFVVHPot0BXkafs=; b=JI01/RVT6liu2BoRNkNsTlOGjR2yXiHcyR2iCi2yoL9VyIpbsLU/gzLcrOFBKfoL+ZZV65 VpAxjN7jcfS9WS8fQC0/LKOEPnxxEcXc0DfI0deFdYAm6O4ZoQHvCTh7nq9tpU+lrJ+4lS jEOZnGXW1XRnhojPrOD3uiHV96G3+zQ= X-MC-Unique: sttR7A0-NFGkqxHti4Myhg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=a6Zgc/f/oExp1Oq3yCEWAHTzhom8dFVVHPot0BXkafs=; b=YplNnP4HzQl2Samgm6pPGlKgGZWbvOK6FDnGUTpa7WQFzDyNqBGNAsSOLSGhTWZPCM /2Qce8a8yqh0vGh55ZkCeMLPlt/puqnPkAhKcJPhGSZOPuSAil8x4RXKLxmDs1VmRf2O l5FwociFS3Vk4n74kzHFwVuDQ9SW3oi5LeETgtctwNxEVvbZch1keHqgziyL8y04VUdc kP1DAOitYDvmIF3WMJuM6JrT5RQjQe6maNPKzAO2wrpqHdxiME2CJ9j7TIAt1+y9cYBr /gTA7wurjMUXuK/PZIAERhp0mV9WIRQ+t8Xm6JThM1MI68325J+Qp1wyDHz74mcoaDsK T+ow== X-Gm-Message-State: ACrzQf2udxr4Y4OyLXM/xREfkvnyMf4Oy/Zwu2XkOczE8lgZ+h9fBhds 1MCPib4y1FDnZETmE4RPDWJSgJajynWQAMJ69RBL+J3SGsk0oT71s+e6aUeqnTn1nRM4srlHy7w ObZDDRRLVqu1mSfy2vM2b6hgwCwTrtvtV22vJYNFKWIguB5xbZ7cZ5f3S8jAk X-Received: by 2002:adf:d215:0:b0:22e:479e:8cc1 with SMTP id j21-20020adfd215000000b0022e479e8cc1mr13028651wrh.39.1665423010018; Mon, 10 Oct 2022 10:30:10 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6bfRSsNOgYba3EOI4xorECx4f7WukBzalel3I6UMI9a2VU6inI8ZKA2pvihrNADgT5VGVkVQ== X-Received: by 2002:adf:d215:0:b0:22e:479e:8cc1 with SMTP id j21-20020adfd215000000b0022e479e8cc1mr13028625wrh.39.1665423009643; Mon, 10 Oct 2022 10:30:09 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:05 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Daniil Tatianin , Raphael Norwitz , Stefan Hajnoczi , Kevin Wolf , Hanna Reitz , Jason Wang , qemu-block@nongnu.org Subject: [PULL 20/55] virtio: introduce VirtIOConfigSizeParams & virtio_get_config_size Message-ID: <20221010172813.204597-21-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665425473690100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniil Tatianin This is the first step towards moving all device config size calculation logic into the virtio core code. In particular, this adds a struct that contains all the necessary information for common virtio code to be able to calculate the final config size for a device. This is expected to be used with the new virtio_get_config_size helper, which calculates the final length based on the provided host features. This builds on top of already existing code like VirtIOFeature and virtio_feature_get_config_size(), but adds additional fields, as well as sanity checking so that device-specifc code doesn't have to duplicate it. An example usage would be: static const VirtIOFeature dev_features[] =3D { {.flags =3D 1ULL << FEATURE_1_BIT, .end =3D endof(struct virtio_dev_config, feature_1)}, {.flags =3D 1ULL << FEATURE_2_BIT, .end =3D endof(struct virtio_dev_config, feature_2)}, {} }; static const VirtIOConfigSizeParams dev_cfg_size_params =3D { .min_size =3D DEV_BASE_CONFIG_SIZE, .max_size =3D sizeof(struct virtio_dev_config), .feature_sizes =3D dev_features }; // code inside my_dev_device_realize() size_t config_size =3D virtio_get_config_size(&dev_cfg_size_params, host_features); virtio_init(vdev, VIRTIO_ID_MYDEV, config_size); Currently every device is expected to write its own boilerplate from the example above in device_realize(), however, the next step of this transition is moving VirtIOConfigSizeParams into VirtioDeviceClass, so that it can be done automatically by the virtio initialization code. All of the users of virtio_feature_get_config_size have been converted to use virtio_get_config_size so it's no longer needed and is removed with this commit. Signed-off-by: Daniil Tatianin Message-Id: <20220906073111.353245-2-d-tatianin@yandex-team.ru> Reviewed-by: Raphael Norwitz Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/virtio.h | 10 ++++++++-- hw/block/virtio-blk.c | 16 +++++++--------- hw/net/virtio-net.c | 9 +++++++-- hw/virtio/virtio.c | 10 ++++++---- 4 files changed, 28 insertions(+), 17 deletions(-) diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index 74e7ad5a92..cecfb7c552 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -49,8 +49,14 @@ typedef struct VirtIOFeature { size_t end; } VirtIOFeature; =20 -size_t virtio_feature_get_config_size(const VirtIOFeature *features, - uint64_t host_features); +typedef struct VirtIOConfigSizeParams { + size_t min_size; + size_t max_size; + const VirtIOFeature *feature_sizes; +} VirtIOConfigSizeParams; + +size_t virtio_get_config_size(const VirtIOConfigSizeParams *params, + uint64_t host_features); =20 typedef struct VirtQueue VirtQueue; =20 diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index e9ba752f6b..10c47c2934 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -49,13 +49,11 @@ static const VirtIOFeature feature_sizes[] =3D { {} }; =20 -static void virtio_blk_set_config_size(VirtIOBlock *s, uint64_t host_featu= res) -{ - s->config_size =3D MAX(VIRTIO_BLK_CFG_SIZE, - virtio_feature_get_config_size(feature_sizes, host_features)); - - assert(s->config_size <=3D sizeof(struct virtio_blk_config)); -} +static const VirtIOConfigSizeParams cfg_size_params =3D { + .min_size =3D VIRTIO_BLK_CFG_SIZE, + .max_size =3D sizeof(struct virtio_blk_config), + .feature_sizes =3D feature_sizes +}; =20 static void virtio_blk_init_request(VirtIOBlock *s, VirtQueue *vq, VirtIOBlockReq *req) @@ -1204,8 +1202,8 @@ static void virtio_blk_device_realize(DeviceState *de= v, Error **errp) return; } =20 - virtio_blk_set_config_size(s, s->host_features); - + s->config_size =3D virtio_get_config_size(&cfg_size_params, + s->host_features); virtio_init(vdev, VIRTIO_ID_BLOCK, s->config_size); =20 s->blk =3D conf->conf.blk; diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 63a8332cd0..e9f696b4cf 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -106,6 +106,12 @@ static const VirtIOFeature feature_sizes[] =3D { {} }; =20 +static const VirtIOConfigSizeParams cfg_size_params =3D { + .min_size =3D endof(struct virtio_net_config, mac), + .max_size =3D sizeof(struct virtio_net_config), + .feature_sizes =3D feature_sizes +}; + static VirtIONetQueue *virtio_net_get_subqueue(NetClientState *nc) { VirtIONet *n =3D qemu_get_nic_opaque(nc); @@ -3241,8 +3247,7 @@ static void virtio_net_set_config_size(VirtIONet *n, = uint64_t host_features) { virtio_add_feature(&host_features, VIRTIO_NET_F_MAC); =20 - n->config_size =3D virtio_feature_get_config_size(feature_sizes, - host_features); + n->config_size =3D virtio_get_config_size(&cfg_size_params, host_featu= res); } =20 void virtio_net_set_netclient_name(VirtIONet *n, const char *name, diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 97a6307c0f..2cc1d7d24a 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -3006,11 +3006,12 @@ int virtio_set_features(VirtIODevice *vdev, uint64_= t val) return ret; } =20 -size_t virtio_feature_get_config_size(const VirtIOFeature *feature_sizes, - uint64_t host_features) +size_t virtio_get_config_size(const VirtIOConfigSizeParams *params, + uint64_t host_features) { - size_t config_size =3D 0; - int i; + size_t config_size =3D params->min_size; + const VirtIOFeature *feature_sizes =3D params->feature_sizes; + size_t i; =20 for (i =3D 0; feature_sizes[i].flags !=3D 0; i++) { if (host_features & feature_sizes[i].flags) { @@ -3018,6 +3019,7 @@ size_t virtio_feature_get_config_size(const VirtIOFea= ture *feature_sizes, } } =20 + assert(config_size <=3D params->max_size); return config_size; } =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665425178; cv=none; d=zohomail.com; s=zohoarc; b=D/SD6Eo143lc3+kRNwbM4/v7bYShDusck5/Kp/GqZcLpm7l2HyhFokB//Z9J6Sl3STTp8VMV2U0cbyCtMyMaAEiTysHgVkToHkCZHbnh98ahDOI6w8nwDxsK0yVJn9KHBd9XMQ58NxITVaxn/P8ufGlvE8W+4ZH9Hj7TzbAzu/U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665425178; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cOgoTRITz2YMK+rYZGsAY2RNEeNGVK3YaF8wLkGM7II=; b=eE8r3NzxVZdWZFi1IZVyclW0AkSx0XXCwiwGBXGVl+1eE5taljORhFRdVuv2lRIckc1TCfmQoh7cDaMgi2oP/d5ajnuYh9Hh3kZdxBqJ5jiT3noGzr8hROy55N5ciqDN1flINdn0PMi7/NkuKe/ZDG9P8aZ76i0Y8HD8yjFMTY8= 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 1665425178905860.7392516952367; Mon, 10 Oct 2022 11:06:18 -0700 (PDT) Received: from localhost ([::1]:56728 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxAO-0002di-F5 for importer@patchew.org; Mon, 10 Oct 2022 14:06:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60216) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbg-0002Kd-Rn for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:26 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:48078) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbb-0006wb-Rn for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:24 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-615-x4DS-xu8Nn-PUPcpVEtWJw-1; Mon, 10 Oct 2022 13:30:18 -0400 Received: by mail-wr1-f69.google.com with SMTP id e19-20020adfa453000000b0022e3608df56so2976663wra.10 for ; Mon, 10 Oct 2022 10:30:17 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id q6-20020a05600c46c600b003c3c2df83ddsm9553148wmo.26.2022.10.10.10.30.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423019; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=cOgoTRITz2YMK+rYZGsAY2RNEeNGVK3YaF8wLkGM7II=; b=gzjSbO5YxsofssylfUNTabirYBa5JxvcZc+OxITvP7gNiGXXiw0B6RyiH7jyVtLbU3pSWG yoyn2FuHFYF3m6f2qIIs57N6KMXJE+lhCgrd21nwV6U3l/tZd49NSW6OlL6TQL4ZBk2mKa OH3s1ljty48g3pJ0DNLkWZDrnKY0xg8= X-MC-Unique: x4DS-xu8Nn-PUPcpVEtWJw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=cOgoTRITz2YMK+rYZGsAY2RNEeNGVK3YaF8wLkGM7II=; b=54hsng6lBwqiK3nYcXE/BL9gMZ6iVWqcjO+KBBty2vOxLlgDtPfbgQJGfz513rE8+0 xlozzT6M5zE0xewDHqM5tSAcMMKsZj9hmpam7G+WMtFueRkHPf5diRP8pQ4WY1wBha0l TC2RMHyEfAhFyZcd6Ms75aTtebHPqZ/83HwjxDfgCjDFibmW0k1mc5R/q0iu3xX3Kpxq A0FErs18a0MHJ8Gklhd+s2DAVv534wsUx2kw7Q287LtB1IQXiG2dAI6BM4z7WUVSJEsZ wIV+bq2znJq8CTEg0hAnsUW/Cjwsey8cNals8/JmzoZe3SSl+ZthfRp5llefAxuWIKe6 rD1Q== X-Gm-Message-State: ACrzQf2ZA/eaYMfEf73K6X4Gpr3P8foNNtrGHQXj9xnN7pDJaedEi5Rx WdJComDHdYPN5Kje8XxNFCw1z0JMjcLA0D/67NdR55OWXBUMbhmjdcZvX2jZHilswzJ6I1xuZkM 9+/UOiu5+wHXthnSgmRU5yltbA8CFXy5yYdCFiok6o2gyaqtYEnFT5jqR8kel X-Received: by 2002:a5d:59a7:0:b0:230:3652:1aa with SMTP id p7-20020a5d59a7000000b00230365201aamr5094931wrr.308.1665423015423; Mon, 10 Oct 2022 10:30:15 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5Db9k5PAAqpCdvPjZ/UMNm70HZ8i3yDC2K0oErWScD9RBaPdUttkNPYp7ccKwU+0IUug5JCQ== X-Received: by 2002:a5d:59a7:0:b0:230:3652:1aa with SMTP id p7-20020a5d59a7000000b00230365201aamr5094905wrr.308.1665423015066; Mon, 10 Oct 2022 10:30:15 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:09 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Daniil Tatianin , Raphael Norwitz , Kevin Wolf , Hanna Reitz , Stefan Hajnoczi , qemu-block@nongnu.org Subject: [PULL 21/55] virtio-blk: move config size params to virtio-blk-common Message-ID: <20221010172813.204597-22-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665425179792100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniil Tatianin This way we can reuse it for other virtio-blk devices, e.g vhost-user-blk, which currently does not control its config space size dynamically. Signed-off-by: Daniil Tatianin Reviewed-by: Raphael Norwitz Message-Id: <20220906073111.353245-3-d-tatianin@yandex-team.ru> Reviewed-by: Raphael Norwitz Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/virtio-blk-common.h | 20 ++++++++++++++ hw/block/virtio-blk-common.c | 39 +++++++++++++++++++++++++++ hw/block/virtio-blk.c | 24 ++--------------- MAINTAINERS | 2 ++ hw/block/meson.build | 2 +- 5 files changed, 64 insertions(+), 23 deletions(-) create mode 100644 include/hw/virtio/virtio-blk-common.h create mode 100644 hw/block/virtio-blk-common.c diff --git a/include/hw/virtio/virtio-blk-common.h b/include/hw/virtio/virt= io-blk-common.h new file mode 100644 index 0000000000..31daada3e3 --- /dev/null +++ b/include/hw/virtio/virtio-blk-common.h @@ -0,0 +1,20 @@ +/* + * Virtio Block Device common helpers + * + * Copyright IBM, Corp. 2007 + * + * Authors: + * Anthony Liguori + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + */ + +#ifndef VIRTIO_BLK_COMMON_H +#define VIRTIO_BLK_COMMON_H + +#include "hw/virtio/virtio.h" + +extern const VirtIOConfigSizeParams virtio_blk_cfg_size_params; + +#endif diff --git a/hw/block/virtio-blk-common.c b/hw/block/virtio-blk-common.c new file mode 100644 index 0000000000..ac52d7c176 --- /dev/null +++ b/hw/block/virtio-blk-common.c @@ -0,0 +1,39 @@ +/* + * Virtio Block Device common helpers + * + * Copyright IBM, Corp. 2007 + * + * Authors: + * Anthony Liguori + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" + +#include "standard-headers/linux/virtio_blk.h" +#include "hw/virtio/virtio.h" +#include "hw/virtio/virtio-blk-common.h" + +/* Config size before the discard support (hide associated config fields) = */ +#define VIRTIO_BLK_CFG_SIZE offsetof(struct virtio_blk_config, \ + max_discard_sectors) + +/* + * Starting from the discard feature, we can use this array to properly + * set the config size depending on the features enabled. + */ +static const VirtIOFeature feature_sizes[] =3D { + {.flags =3D 1ULL << VIRTIO_BLK_F_DISCARD, + .end =3D endof(struct virtio_blk_config, discard_sector_alignment)}, + {.flags =3D 1ULL << VIRTIO_BLK_F_WRITE_ZEROES, + .end =3D endof(struct virtio_blk_config, write_zeroes_may_unmap)}, + {} +}; + +const VirtIOConfigSizeParams virtio_blk_cfg_size_params =3D { + .min_size =3D VIRTIO_BLK_CFG_SIZE, + .max_size =3D sizeof(struct virtio_blk_config), + .feature_sizes =3D feature_sizes +}; diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index 10c47c2934..8131ec2dbc 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -32,29 +32,9 @@ #include "hw/virtio/virtio-bus.h" #include "migration/qemu-file-types.h" #include "hw/virtio/virtio-access.h" +#include "hw/virtio/virtio-blk-common.h" #include "qemu/coroutine.h" =20 -/* Config size before the discard support (hide associated config fields) = */ -#define VIRTIO_BLK_CFG_SIZE offsetof(struct virtio_blk_config, \ - max_discard_sectors) -/* - * Starting from the discard feature, we can use this array to properly - * set the config size depending on the features enabled. - */ -static const VirtIOFeature feature_sizes[] =3D { - {.flags =3D 1ULL << VIRTIO_BLK_F_DISCARD, - .end =3D endof(struct virtio_blk_config, discard_sector_alignment)}, - {.flags =3D 1ULL << VIRTIO_BLK_F_WRITE_ZEROES, - .end =3D endof(struct virtio_blk_config, write_zeroes_may_unmap)}, - {} -}; - -static const VirtIOConfigSizeParams cfg_size_params =3D { - .min_size =3D VIRTIO_BLK_CFG_SIZE, - .max_size =3D sizeof(struct virtio_blk_config), - .feature_sizes =3D feature_sizes -}; - static void virtio_blk_init_request(VirtIOBlock *s, VirtQueue *vq, VirtIOBlockReq *req) { @@ -1202,7 +1182,7 @@ static void virtio_blk_device_realize(DeviceState *de= v, Error **errp) return; } =20 - s->config_size =3D virtio_get_config_size(&cfg_size_params, + s->config_size =3D virtio_get_config_size(&virtio_blk_cfg_size_params, s->host_features); virtio_init(vdev, VIRTIO_ID_BLOCK, s->config_size); =20 diff --git a/MAINTAINERS b/MAINTAINERS index d0c0c8a55b..05b75805eb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2030,8 +2030,10 @@ virtio-blk M: Stefan Hajnoczi L: qemu-block@nongnu.org S: Supported +F: hw/block/virtio-blk-common.c F: hw/block/virtio-blk.c F: hw/block/dataplane/* +F: include/hw/virtio/virtio-blk-common.h F: tests/qtest/virtio-blk-test.c T: git https://github.com/stefanha/qemu.git block =20 diff --git a/hw/block/meson.build b/hw/block/meson.build index 2389326112..8ee1f1f850 100644 --- a/hw/block/meson.build +++ b/hw/block/meson.build @@ -16,7 +16,7 @@ softmmu_ss.add(when: 'CONFIG_SWIM', if_true: files('swim.= c')) softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xen-block.c')) softmmu_ss.add(when: 'CONFIG_TC58128', if_true: files('tc58128.c')) =20 -specific_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-blk.c')) +specific_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-blk.c', = 'virtio-blk-common.c')) specific_ss.add(when: 'CONFIG_VHOST_USER_BLK', if_true: files('vhost-user-= blk.c')) =20 subdir('dataplane') --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665425572; cv=none; d=zohomail.com; s=zohoarc; b=URBWtHoAWgliw3ksjX9FgbH/QVHER6ZlEE3Ox+irttuhwNWtanNTab+iP0ZTwXqYlMIHkmr8B6OZK76cuLWRCp1vgQa4Ni6AQCihanUhY0oPpMR8TnbvF3TjvdieMS6ZlGbJ2ZZoPEkMW9XkhrW8tFp/9cVMFlclUPKX8udyMVc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665425572; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nwQqJJKVMasq8hTvkgVk+GPfDm74v8D53BZJ0ZT5e8E=; b=VhPnjptpwOWguowjud+2EW5rPlrTZi1BclDb48hgehklTlxxLR8TKreisEtkv1Z3wczmM6Nq8gxEK++mUeie4e/Eu+wAo+mc4QJrWKR0UYojMJ9dQw9+eJuNAJSDFRBhfZIT+gJu4GwzQKEtncnczT9fEMIZsOq00JU0svpOJnA= 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 1665425572418526.0812268597904; Mon, 10 Oct 2022 11:12:52 -0700 (PDT) Received: from localhost ([::1]:49474 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxGk-0007Ja-4d for importer@patchew.org; Mon, 10 Oct 2022 14:12:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40002) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbj-0002Mo-LL for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:28 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:53919) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbf-0006xJ-6R for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:27 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-488-KZDAiW3jOUWsrk6VhxQDFw-1; Mon, 10 Oct 2022 13:30:21 -0400 Received: by mail-wm1-f70.google.com with SMTP id l1-20020a7bc341000000b003bfe1273d6cso3261638wmj.4 for ; Mon, 10 Oct 2022 10:30:21 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id w9-20020a1cf609000000b003b332a7b898sm10474980wmc.45.2022.10.10.10.30.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=nwQqJJKVMasq8hTvkgVk+GPfDm74v8D53BZJ0ZT5e8E=; b=eCjqeRVd67qxiCgkZd0Mrp2lX+yKbMjHwEKMbQcGMXLFJI4SXUM6if/JJQlpEbdPvsX5h+ ltNoLM0HznO25iigc1Vde854ExM/Jez64itShXuUHDkLJA4P7OrhdwhrMwmpzEKfW7FHS4 Y21Jiq/9N+CANYlsluJj7pwwdDdkl30= X-MC-Unique: KZDAiW3jOUWsrk6VhxQDFw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=nwQqJJKVMasq8hTvkgVk+GPfDm74v8D53BZJ0ZT5e8E=; b=wRG70aVul1f2FakGZd+VB7/eS9jhVbz6uDZ6+Rrqqj66k2NaevGoisfgjhHPmenSxI USjWnKzgP+9nz3vf/X6J8fdBmhM4eqVAJGNdl4tHmc2bkM4mYL3RYgT6WPWXWSOVQ+m9 erJRbph6kTR1oJWiNKHh2FDSPLzF/DQbapl16IOlBUgy/IZtR7QSLrK06OsfrJ2pv+SO 87N3NlXA51cclNlMx04nKyS4m+lY58LBtadQ8iKx5RHrnFfs38A/BJKNqAZUUZRneva7 /ahrFsrbk78DeMMpsp24LyYhdO5nReLyTd3QOuDhqxm+GtarV5jKVeoZ0mb7vmSqGpwX jPkg== X-Gm-Message-State: ACrzQf1dZgSe039J+84SajoLgLLm6pjpjJi3HnPUZW4HeFfFrht7oWg/ k9kb3QSw1W6YdrgwyjQVFdPEx0g8xD84tNIQzFzMoYdVt0zFbrsjnpplfcvLI0245E/FsVMjedJ kPP02dZKZ9VX1Ei/cUeZYjeSugPOgIsu8ysFIZsmod8W64S1ngxHP78lYAZNX X-Received: by 2002:a05:6000:5ca:b0:22e:5477:1296 with SMTP id bh10-20020a05600005ca00b0022e54771296mr12578569wrb.377.1665423019806; Mon, 10 Oct 2022 10:30:19 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5SK3e3T9Zo2LqcB5MLF9e+7vHQWcVKl8ALLPvt139uI/AmpZ4CHrtuTHvVPGK+Mb1DVB0kPQ== X-Received: by 2002:a05:6000:5ca:b0:22e:5477:1296 with SMTP id bh10-20020a05600005ca00b0022e54771296mr12578553wrb.377.1665423019575; Mon, 10 Oct 2022 10:30:19 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:15 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Daniil Tatianin , Raphael Norwitz , Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org Subject: [PULL 22/55] vhost-user-blk: make it possible to disable write-zeroes/discard Message-ID: <20221010172813.204597-23-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665425574673100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniil Tatianin It is useful to have the ability to disable these features for compatibility with older VMs that don't have these implemented. Signed-off-by: Daniil Tatianin Reviewed-by: Raphael Norwitz Message-Id: <20220906073111.353245-4-d-tatianin@yandex-team.ru> Reviewed-by: Raphael Norwitz Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/block/vhost-user-blk.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index 2bba42478d..92bfe56b45 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -259,8 +259,6 @@ static uint64_t vhost_user_blk_get_features(VirtIODevic= e *vdev, virtio_add_feature(&features, VIRTIO_BLK_F_BLK_SIZE); virtio_add_feature(&features, VIRTIO_BLK_F_FLUSH); virtio_add_feature(&features, VIRTIO_BLK_F_RO); - virtio_add_feature(&features, VIRTIO_BLK_F_DISCARD); - virtio_add_feature(&features, VIRTIO_BLK_F_WRITE_ZEROES); =20 if (s->config_wce) { virtio_add_feature(&features, VIRTIO_BLK_F_CONFIG_WCE); @@ -598,6 +596,10 @@ static Property vhost_user_blk_properties[] =3D { VHOST_USER_BLK_AUTO_NUM_QUEUES), DEFINE_PROP_UINT32("queue-size", VHostUserBlk, queue_size, 128), DEFINE_PROP_BIT("config-wce", VHostUserBlk, config_wce, 0, true), + DEFINE_PROP_BIT64("discard", VHostUserBlk, parent_obj.host_features, + VIRTIO_BLK_F_DISCARD, true), + DEFINE_PROP_BIT64("write-zeroes", VHostUserBlk, parent_obj.host_featur= es, + VIRTIO_BLK_F_WRITE_ZEROES, true), DEFINE_PROP_END_OF_LIST(), }; =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665425693; cv=none; d=zohomail.com; s=zohoarc; b=bnvw/qOBNCSdcRvnZdCCF8HLeLTI2PGPa98EtW1Bm3HKCeopFYgTszIxQ8lULwV+sJrzmHtllS1JG8mELLGWV7Vcmt0E0GQZEJbnbuFSCWztIMKP+ZHDiZb4RubPOtTFJuTO9MaMKNb3yJWFfQvKXbXAtHwDlIC/aAbjwnw/ics= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665425693; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=HRj4VYmR6ExoX4uKQoRfOBfhkySi+nf7yI8Vb5MpRTo=; b=MV6JZ9yiLM7qfGCbVxzV6P97Es37vpti0Nuq93obJVKxs6SW0X9emG+tFltzFbml+NkFuZYLYCZ9oo2v2klEZuJTN69JNzs8aKaBwcrGBqYcp7Y8aXROyGWB6MiYx+8f2Bg2V8KKGkugOpFk5Mf3sQOEY0UDbZWD29VBv1f2s4U= 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 1665425693644748.0857039782579; Mon, 10 Oct 2022 11:14:53 -0700 (PDT) Received: from localhost ([::1]:43888 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxIi-0001zV-Fg for importer@patchew.org; Mon, 10 Oct 2022 14:14:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40010) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbq-0002Zv-A8 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:34 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:38430) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbk-0006z8-Tn for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:34 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-402-Fim9x-p_NwKf3ABgNrrU1Q-1; Mon, 10 Oct 2022 13:30:27 -0400 Received: by mail-wm1-f71.google.com with SMTP id n19-20020a7bcbd3000000b003c4a72334e7so1433175wmi.8 for ; Mon, 10 Oct 2022 10:30:27 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id u6-20020adfed46000000b0022e04bfa661sm9374010wro.59.2022.10.10.10.30.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423028; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=HRj4VYmR6ExoX4uKQoRfOBfhkySi+nf7yI8Vb5MpRTo=; b=PWyLpo+mcefIWweJg7/BRDW0YKrC+HaXVuqZWFBMRvm9QSyN8p48RtSVK1+nVOFWhxr9W5 M3ekobAfsJwvit+YbZHYn9L8S3zSIbNKVFU48usc1aJbB8gPjtKWA57SJg976Q3rYYPKqs JGwyhNhwpHfBgk66Axo/iCXPBrSPAgM= X-MC-Unique: Fim9x-p_NwKf3ABgNrrU1Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=HRj4VYmR6ExoX4uKQoRfOBfhkySi+nf7yI8Vb5MpRTo=; b=C4f7qtnYQck057+Gd+CE4nd5cb51MgQ2wlTsNlWiW7qyeWr/R23k7NGzEgII5hB/Dx IosyTY9MJhWom5WabGt6s/mmIpJpmSXVwWqn3if2R8vKTKp8ISKJQKHjHTIK1zZcr71s lF7rmKihZKU9qQjd6Oa5YEwJ3Qy4KMPgpK87ucibln3dbiNFUxXpQNEOrqGOmH/5oOGc ZwygNmXeo8wOwHpv9b1LAZuIGtBwmchLzHZV/wLdYoVPzgXCHLmABkSo8N3Mm/gPyBUj P8Iso1za8jfRhxM0aucVF5jTw9CQ7vYkIESskmtaS+0eFp34hMHljCS1F+H/N98aXKWl KzvQ== X-Gm-Message-State: ACrzQf34adRZ3Kr/QjPPjYu7+pCbvLcgiaVGvWENFGMyW9BZy8UkRgUK bcWGiU0RfZcVI0eaO3Up6eifqw/yzrdOY1QPREBhvXqv5AlFbAAnHvD6F4PV+pCrMwwCIEmSjDB LRXcesTo7r3Ce3rTxcK1lgxHOlqRt4KT5nSvQhEGpiNFb/zzV24O/Tl8ibT9R X-Received: by 2002:adf:d224:0:b0:22e:6578:ed57 with SMTP id k4-20020adfd224000000b0022e6578ed57mr12237417wrh.512.1665423024305; Mon, 10 Oct 2022 10:30:24 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4Dicd1mAKBqqxLUJA1tNDTsOpZBgO/Y/+5/B2LR9Kk0fyEmSsfxaYmR7EH7Rw2lppijTs1uA== X-Received: by 2002:adf:d224:0:b0:22e:6578:ed57 with SMTP id k4-20020adfd224000000b0022e6578ed57mr12237395wrh.512.1665423023929; Mon, 10 Oct 2022 10:30:23 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:19 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Daniil Tatianin , Raphael Norwitz , Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org Subject: [PULL 23/55] vhost-user-blk: make 'config_wce' part of 'host_features' Message-ID: <20221010172813.204597-24-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665425695102100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Daniil Tatianin No reason to have this be a separate field. This also makes it more akin to what the virtio-blk device does. Signed-off-by: Daniil Tatianin Reviewed-by: Raphael Norwitz Message-Id: <20220906073111.353245-5-d-tatianin@yandex-team.ru> Reviewed-by: Raphael Norwitz Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/vhost-user-blk.h | 1 - hw/block/vhost-user-blk.c | 6 ++---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/include/hw/virtio/vhost-user-blk.h b/include/hw/virtio/vhost-u= ser-blk.h index 7c91f15040..ea085ee1ed 100644 --- a/include/hw/virtio/vhost-user-blk.h +++ b/include/hw/virtio/vhost-user-blk.h @@ -34,7 +34,6 @@ struct VHostUserBlk { struct virtio_blk_config blkcfg; uint16_t num_queues; uint32_t queue_size; - uint32_t config_wce; struct vhost_dev dev; struct vhost_inflight *inflight; VhostUserState vhost_user; diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index 92bfe56b45..aa4831f27a 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -260,9 +260,6 @@ static uint64_t vhost_user_blk_get_features(VirtIODevic= e *vdev, virtio_add_feature(&features, VIRTIO_BLK_F_FLUSH); virtio_add_feature(&features, VIRTIO_BLK_F_RO); =20 - if (s->config_wce) { - virtio_add_feature(&features, VIRTIO_BLK_F_CONFIG_WCE); - } if (s->num_queues > 1) { virtio_add_feature(&features, VIRTIO_BLK_F_MQ); } @@ -595,7 +592,8 @@ static Property vhost_user_blk_properties[] =3D { DEFINE_PROP_UINT16("num-queues", VHostUserBlk, num_queues, VHOST_USER_BLK_AUTO_NUM_QUEUES), DEFINE_PROP_UINT32("queue-size", VHostUserBlk, queue_size, 128), - DEFINE_PROP_BIT("config-wce", VHostUserBlk, config_wce, 0, true), + DEFINE_PROP_BIT64("config-wce", VHostUserBlk, parent_obj.host_features, + VIRTIO_BLK_F_CONFIG_WCE, true), DEFINE_PROP_BIT64("discard", VHostUserBlk, parent_obj.host_features, VIRTIO_BLK_F_DISCARD, true), DEFINE_PROP_BIT64("write-zeroes", VHostUserBlk, parent_obj.host_featur= es, --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665425750; cv=none; d=zohomail.com; s=zohoarc; b=Y0ecHAbSB0EbPk3UbzZ40sQgAhykXfxmjclCDm30G8pRPVjeLw9q/hZWnW/gNISwLLMsX/iy092jSM3RJLmHTTQjXlmbsOFb5tvfvMyD7CXExk0pTHNVyw6UKSq/ZomCiiqi7OQ+gheyn0fiDG+QtKSfhhEjsogtvuLYEVNj+VI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665425750; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=yNBkQ9PABxkzQIUsJljFJqAYW+PD7FReb9/B5Y8OCQ4=; b=bxVS55wTjhjCol1vRMWx5mFIHONaHlgN4QF0S8ycslGR2vhTpm3pDHO3TMY+kW1K/hs4VFNfqsJAYsdauNoUAkFDiBtJtwErOb9FQMfgtTptOK9n2l7Z79H4c6HIr8BpVfhPPcYgw3ML7uC7p0gajpPA2K3f11nKus9yjT/G76c= 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 166542575063389.23037631881539; Mon, 10 Oct 2022 11:15:50 -0700 (PDT) Received: from localhost ([::1]:51534 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxJc-0003FA-7B for importer@patchew.org; Mon, 10 Oct 2022 14:15:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42940) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbs-0002fl-JT for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:36 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:56710) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbn-000708-Ue for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:36 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-227-KB5WN4b0N3WRYMi15ULjsA-1; Mon, 10 Oct 2022 13:30:30 -0400 Received: by mail-wm1-f69.google.com with SMTP id f26-20020a7bcc1a000000b003c03db14864so3262179wmh.6 for ; Mon, 10 Oct 2022 10:30:29 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id bv10-20020a0560001f0a00b00228fa832b7asm9288948wrb.52.2022.10.10.10.30.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yNBkQ9PABxkzQIUsJljFJqAYW+PD7FReb9/B5Y8OCQ4=; b=UCGRHdaFOkH2xMAd2Yn7wek0MAmhdPFPhx35IunyjS4uBZL5iu7eXdGgmTZfwVlrQUkolW 9WEtRQKvAc2DCz0wojHX3/LPuuQzqXK8/I55l6RqdSuWXc7+6BaGaN9irYuu6joIhyc2Uk dBWsP6+dn1zhvhNsaUv7VgnDj0obY2A= X-MC-Unique: KB5WN4b0N3WRYMi15ULjsA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yNBkQ9PABxkzQIUsJljFJqAYW+PD7FReb9/B5Y8OCQ4=; b=dtc/X9LlZehmjnHTUEsoQLmCDdVGmMKtzHLbLu7ydj7gAP3sdhDj1/RBkw5uDl80vf udTy2WonP7mfh+Fzc3/N+wQd96OiBHFRF92JQ+jz4yKA/FYL3IVpqtK1bADBzpBie89c ldMtFMwO4IQ5kn4FeXQ7qPFamqKJS0FhhQi0rqi6CB4rxeKbA/EVBBrzH/klWNclJfms K9Oi73xGhyyLDwnEkKub3xFnf173HddHGqFfld/vXRQTcd4oIl/ndCTw9wRneawVpxXH PhvG+ch2K1vr67NtBnYHcJFPZIYulpzgFaGk6VkWMdZWTBOTRRQOabt70BeqBRGe/9qs OQxg== X-Gm-Message-State: ACrzQf3A0d0LAJbpGTpVnUjnkv4vqdUAjJvLtyLEgPQA6qI3JqbxEQKc Mlq95pjXLvx6F6wnGnXjItyX9++tG/AP3qReapD25ziKYd4w5UZuJHQaEonnjZZjVNvGFL5ey4O iiHVl79oypcFBx37ql583R249yeKopkI1eOLeuEoWVfE7o+ozJWFrkgo4kDgw X-Received: by 2002:a05:600c:1547:b0:3b4:c56b:a3a6 with SMTP id f7-20020a05600c154700b003b4c56ba3a6mr13757947wmg.29.1665423028649; Mon, 10 Oct 2022 10:30:28 -0700 (PDT) X-Google-Smtp-Source: AMsMyM57k/63nQ6T2zPdeMu50dDFq4aFyyt0e1vHhk3xX7Zh8T5m/T3s+PblJOKC5rl7nAWcl3gcMg== X-Received: by 2002:a05:600c:1547:b0:3b4:c56b:a3a6 with SMTP id f7-20020a05600c154700b003b4c56ba3a6mr13757921wmg.29.1665423028361; Mon, 10 Oct 2022 10:30:28 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:24 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Daniil Tatianin , Raphael Norwitz , Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org Subject: [PULL 24/55] vhost-user-blk: dynamically resize config space based on features Message-ID: <20221010172813.204597-25-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665425751347100001 From: Daniil Tatianin Make vhost-user-blk backwards compatible when migrating from older VMs running with modern features turned off, the same way it was done for virtio-blk in 20764be0421c ("virtio-blk: set config size depending on the f= eatures enabled") It's currently impossible to migrate from an older VM with vhost-user-blk (with disable-legacy=3Doff) because of errors like this: qemu-system-x86_64: get_pci_config_device: Bad config data: i=3D0x10 read: = 41 device: 1 cmask: ff wmask: 80 w1cmask:0 qemu-system-x86_64: Failed to load PCIDevice:config qemu-system-x86_64: Failed to load virtio-blk:virtio qemu-system-x86_64: error while loading state for instance 0x0 of device '0= 000:00:05.0:00.0:02.0/virtio-blk' qemu-system-x86_64: load of migration failed: Invalid argument This is caused by the newer (destination) VM requiring a bigger BAR0 alignment because it has to cover a bigger configuration space, which isn't actually needed since those additional config fields are not active (write-zeroes/discard). Signed-off-by: Daniil Tatianin Reviewed-by: Raphael Norwitz Message-Id: <20220906073111.353245-6-d-tatianin@yandex-team.ru> Reviewed-by: Raphael Norwitz Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/block/vhost-user-blk.c | 17 ++++++++++------- MAINTAINERS | 2 ++ hw/block/meson.build | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index aa4831f27a..84902dde17 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -23,6 +23,7 @@ #include "hw/qdev-core.h" #include "hw/qdev-properties.h" #include "hw/qdev-properties-system.h" +#include "hw/virtio/virtio-blk-common.h" #include "hw/virtio/vhost.h" #include "hw/virtio/vhost-user-blk.h" #include "hw/virtio/virtio.h" @@ -63,7 +64,7 @@ static void vhost_user_blk_update_config(VirtIODevice *vd= ev, uint8_t *config) /* Our num_queues overrides the device backend */ virtio_stw_p(vdev, &s->blkcfg.num_queues, s->num_queues); =20 - memcpy(config, &s->blkcfg, sizeof(struct virtio_blk_config)); + memcpy(config, &s->blkcfg, vdev->config_len); } =20 static void vhost_user_blk_set_config(VirtIODevice *vdev, const uint8_t *c= onfig) @@ -92,12 +93,12 @@ static int vhost_user_blk_handle_config_change(struct v= host_dev *dev) { int ret; struct virtio_blk_config blkcfg; + VirtIODevice *vdev =3D dev->vdev; VHostUserBlk *s =3D VHOST_USER_BLK(dev->vdev); Error *local_err =3D NULL; =20 ret =3D vhost_dev_get_config(dev, (uint8_t *)&blkcfg, - sizeof(struct virtio_blk_config), - &local_err); + vdev->config_len, &local_err); if (ret < 0) { error_report_err(local_err); return ret; @@ -106,7 +107,7 @@ static int vhost_user_blk_handle_config_change(struct v= host_dev *dev) /* valid for resize only */ if (blkcfg.capacity !=3D s->blkcfg.capacity) { s->blkcfg.capacity =3D blkcfg.capacity; - memcpy(dev->vdev->config, &s->blkcfg, sizeof(struct virtio_blk_con= fig)); + memcpy(dev->vdev->config, &s->blkcfg, vdev->config_len); virtio_notify_config(dev->vdev); } =20 @@ -448,7 +449,7 @@ static int vhost_user_blk_realize_connect(VHostUserBlk = *s, Error **errp) assert(s->connected); =20 ret =3D vhost_dev_get_config(&s->dev, (uint8_t *)&s->blkcfg, - sizeof(struct virtio_blk_config), errp); + s->parent_obj.config_len, errp); if (ret < 0) { qemu_chr_fe_disconnect(&s->chardev); vhost_dev_cleanup(&s->dev); @@ -463,6 +464,7 @@ static void vhost_user_blk_device_realize(DeviceState *= dev, Error **errp) ERRP_GUARD(); VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); VHostUserBlk *s =3D VHOST_USER_BLK(vdev); + size_t config_size; int retries; int i, ret; =20 @@ -493,8 +495,9 @@ static void vhost_user_blk_device_realize(DeviceState *= dev, Error **errp) return; } =20 - virtio_init(vdev, VIRTIO_ID_BLOCK, - sizeof(struct virtio_blk_config)); + config_size =3D virtio_get_config_size(&virtio_blk_cfg_size_params, + vdev->host_features); + virtio_init(vdev, VIRTIO_ID_BLOCK, config_size); =20 s->virtqs =3D g_new(VirtQueue *, s->num_queues); for (i =3D 0; i < s->num_queues; i++) { diff --git a/MAINTAINERS b/MAINTAINERS index 05b75805eb..8ae2e43c83 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2281,11 +2281,13 @@ S: Maintained F: contrib/vhost-user-blk/ F: contrib/vhost-user-scsi/ F: hw/block/vhost-user-blk.c +F: hw/block/virtio-blk-common.c F: hw/scsi/vhost-user-scsi.c F: hw/virtio/vhost-user-blk-pci.c F: hw/virtio/vhost-user-scsi-pci.c F: include/hw/virtio/vhost-user-blk.h F: include/hw/virtio/vhost-user-scsi.h +F: include/hw/virtio/virtio-blk-common.h =20 vhost-user-gpu M: Marc-Andr=C3=A9 Lureau diff --git a/hw/block/meson.build b/hw/block/meson.build index 8ee1f1f850..1908abd45c 100644 --- a/hw/block/meson.build +++ b/hw/block/meson.build @@ -17,6 +17,6 @@ softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xen-bl= ock.c')) softmmu_ss.add(when: 'CONFIG_TC58128', if_true: files('tc58128.c')) =20 specific_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-blk.c', = 'virtio-blk-common.c')) -specific_ss.add(when: 'CONFIG_VHOST_USER_BLK', if_true: files('vhost-user-= blk.c')) +specific_ss.add(when: 'CONFIG_VHOST_USER_BLK', if_true: files('vhost-user-= blk.c', 'virtio-blk-common.c')) =20 subdir('dataplane') --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665425881; cv=none; d=zohomail.com; s=zohoarc; b=hllEFfm+GkeRN2zgLXKXWyyR8JAW35Lfah+93igoT/LTjdmil1i5Twc0AJ8IzNTeW0b0a6LXeyRRqtECxvqiGRzuEcLHXK2XLN+kwoEY9dCc7JIz+crHLCIPIdJJOBWU+RYcxjjUxIjT9KqAsInyy6Z5ObPHO3RMNTujRPOCBQA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665425881; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bcgVrMucjq5MVdk/8jgUWx53f3p+F0negAoWTpz5SKg=; b=PSYRkrlWUneDCiWa+pGGobwqC3pc4nHl7xRrsrG0Pjf9Rh0vgqfH4A1I5j8KZsaHZsWQbKknppEZHHLR/kgHSI4r/hYZ5uEnz/XUm+YoiPIjmAUNCqHihRjGyG1lpr0ZR5XYsTKt3ksAh5z0Y3UHblL4nvZji5lfTpyMwPiycLA= 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 1665425881181890.2079219762085; Mon, 10 Oct 2022 11:18:01 -0700 (PDT) Received: from localhost ([::1]:59816 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxLj-0004pr-N5 for importer@patchew.org; Mon, 10 Oct 2022 14:17:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42944) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwc1-0002t8-0O for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:45 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:34630) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbt-00072z-Ez for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:42 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-232-xrCHcv7eMd6wPapt0rt49A-1; Mon, 10 Oct 2022 13:30:35 -0400 Received: by mail-wm1-f70.google.com with SMTP id d5-20020a05600c34c500b003b4fb42ccdeso9283407wmq.8 for ; Mon, 10 Oct 2022 10:30:35 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id m38-20020a05600c3b2600b003b4ff30e566sm37207523wms.3.2022.10.10.10.30.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=bcgVrMucjq5MVdk/8jgUWx53f3p+F0negAoWTpz5SKg=; b=LuPdTL4w4yRQKQZnlGGUHTHqL2DILu8YgP24IcobUy0I11KMANqJb+hosNotc0QbeELvGV nSisjjyOEAKuGoGV9zo76qgG3wE5x0ZwuqEdvy4AbF8noB68hlsfEmz5qqe+3KiT8QWzGQ PkFo7qn+8eh8G6amCK5slv+DofBoxeI= X-MC-Unique: xrCHcv7eMd6wPapt0rt49A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=bcgVrMucjq5MVdk/8jgUWx53f3p+F0negAoWTpz5SKg=; b=SlRV7JM24hcLy8W6ba4Qpj9zzaYI0h+7SvMVc20iiq+EPxS2pm3sfiFqgDhV9Adeii fn+RhsF4Ujxw1VZQoBB+cV/AC3ewaxUmtqAuv8SCLmj0rjISByzcL4NvrNkWfn/kDfN+ WDF8E2S24g7CzZEaCsaYqbheY0bbPOQ+GtAvZleE/bWqadmcEgtqFihj99sdJug5kL6q 8+Av3YPq/ecUxDml9mzSD5B8o2550KgG2SJ7UOJMu5USFepDL+876VWpxZc+GQteBIPd JaZ01PDH3r3zYGwj7pag+nrWJmwCr33FCbdZnM7hk2SWHu8UCLYYHhXyRJSlZNSnKkOo 72YA== X-Gm-Message-State: ACrzQf2zSTeOM7BRenpyfIjK7fE5auB31mFlhnJcJUSApHTgLW8nlzx6 oxwonq0079cjwu9f7OJvLPePsNTjkNU8v8gqOtONx6115guLnlBXAmB6QelBDFt1JzBRaccgbxT BbwZVjWzi+VYZ5/cWaMfRquc3QNbwDxKemCKYGTi59RftfQxjp3KZJc5SZwpC X-Received: by 2002:a05:6000:18aa:b0:22e:60ef:9c1 with SMTP id b10-20020a05600018aa00b0022e60ef09c1mr11973549wri.108.1665423032968; Mon, 10 Oct 2022 10:30:32 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5GzS9hFhpgzUE90hw5Ga835yytgef4CUmiXaPzS7oxdS4nCsZnwyWR/ZH/t610jb82xUByAw== X-Received: by 2002:a05:6000:18aa:b0:22e:60ef:9c1 with SMTP id b10-20020a05600018aa00b0022e60ef09c1mr11973528wri.108.1665423032607; Mon, 10 Oct 2022 10:30:32 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:28 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Miguel Luis , Ani Sinha , Igor Mammedov Subject: [PULL 25/55] tests/acpi: virt: allow acpi GTDT changes Message-ID: <20221010172813.204597-26-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665425882149100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Miguel Luis Step 3 from bios-tables-test.c documented procedure. Signed-off-by: Miguel Luis Message-Id: <20220920162137.75239-2-miguel.luis@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Acked-by: Ani Sinha --- tests/qtest/bios-tables-test-allowed-diff.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index dfb8523c8b..957bd1b4f6 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,4 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/virt/GTDT", +"tests/data/acpi/virt/GTDT.memhp", +"tests/data/acpi/virt/GTDT.numamem", --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665426141; cv=none; d=zohomail.com; s=zohoarc; b=XFmtHbAnmy5PjuoNeA0tABtmjzeVta/BfmZEKU89hv2uD+tlGmPeScyAQJNWmmJu/xRa4nYvB9wMPfe1F8NRPl/90zN7KYHj+5kSLMQLWvBbSa8wdYIVwPy/kqhAZcDCnQGmfYGL/1evBjhK35QKFDzALGPW+EKLN8cxVeBuMyY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665426141; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fI6ZJ92NuB3HBfu3OEClBbAYK125pIR2pAh01+BJJqs=; b=iyyg2Ece9rcGtBn2yabWY167VyGBnaAJ1SOFwDhGroKWiDIgSJXKXhfo81S482gXy7qLTEG4kC96vkDii11CUQvREipHVa/QbZ1T85IgXKygZYJRrDS2dWR5X0KL2roR959lIJr3+07q0sKaQNerPU4jYJZLOBkcLXBxlVnf4/g= 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 1665426141208874.4504201138777; Mon, 10 Oct 2022 11:22:21 -0700 (PDT) Received: from localhost ([::1]:50354 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxPw-00017F-19 for importer@patchew.org; Mon, 10 Oct 2022 14:22:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45006) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwc2-0002vd-1v for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:45378) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwbw-00073i-Lw for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:45 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-62-R_fmoCAkPAejnxhxZUYr1A-1; Mon, 10 Oct 2022 13:30:38 -0400 Received: by mail-wm1-f70.google.com with SMTP id r132-20020a1c448a000000b003c3a87d8abdso4385956wma.2 for ; Mon, 10 Oct 2022 10:30:38 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id g14-20020a056000118e00b0022cc3e67fc5sm9536077wrx.65.2022.10.10.10.30.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=fI6ZJ92NuB3HBfu3OEClBbAYK125pIR2pAh01+BJJqs=; b=K+Go81Dv0Ub/Jzv0+5BnxURJ1X3cMdAkh5TXaeNG39uqxg3nisgHD9gtFOJBCVP6guKuHI QdoVytDbMM5RrA87ccg3aPk/tKzlseKQ4H6qjT6u1/JWJHNckfG6NslyqDfZ1h20VSFD2T Y/UjDgANb/uwjKCAkLaklIPOHuoXl1w= X-MC-Unique: R_fmoCAkPAejnxhxZUYr1A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=fI6ZJ92NuB3HBfu3OEClBbAYK125pIR2pAh01+BJJqs=; b=CiNqW074/LSZidqynV5AJX0duLBcLMEKQdJ/1tknRbP+IeZQBhJEKY8FdTct2X3ySq nT/Bm/t24Wt80UmzeerKf6WF50YegGFeB/JNcSNILPQdz1u9zKpTTLrXhW76ixDTKckY mWjqjz3jjbQxxBsQ/uEnAu7LTtOT2w9EpJVTBLlsEvaacEpTen7UxuqMV4kPixlo9HjL Dw0jWps9SXg8ZMFjRUGcO08UqpDswzj/Vdj46craI+6Khe4lMAXFzKCV9nbqYXqc9Ind wk+xUYryz//0gKza2XSNvv/tza4/yXDxd3LTN5UM2jTB+y+ujYWNjQqLyhC3QfQ3JV+a uncQ== X-Gm-Message-State: ACrzQf0Z28MJJTMHWdo4XcLfhi/E1UNma1qTqe/NBxnkuPdgWMQbnjPv HBTXzDXTo4fXT7hIEotTIUevMa7z+rr4qoF/Qqjsng5jJGMjOaJosa/YN7tKPpk6t73P2GPBR+A 7BOw7p+lM2tOjUZSy1LfS2sEEJ5Pd0PYDZDuDEi+orgiXjwRVgJYOcFSLK3aR X-Received: by 2002:a5d:4082:0:b0:22f:6ad7:53e with SMTP id o2-20020a5d4082000000b0022f6ad7053emr7735862wrp.389.1665423037426; Mon, 10 Oct 2022 10:30:37 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4zln1ES8hdSv7CyUz/uY7VQ58v/CQOelBvT+YZbYSteyog0aldQIRWzxVi6wk6t2nOCYC5tw== X-Received: by 2002:a5d:4082:0:b0:22f:6ad7:53e with SMTP id o2-20020a5d4082000000b0022f6ad7053emr7735840wrp.389.1665423037181; Mon, 10 Oct 2022 10:30:37 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:32 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Miguel Luis , Ani Sinha , Shannon Zhao , Igor Mammedov , qemu-arm@nongnu.org Subject: [PULL 26/55] acpi: arm/virt: build_gtdt: fix invalid 64-bit physical addresses Message-ID: <20221010172813.204597-27-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665426142252100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Miguel Luis Per the ACPI 6.5 specification, on the GTDT Table Structure, the Counter Co= ntrol Block Address and Counter Read Block Address fields of the GTDT table shoul= d be set to 0xFFFFFFFFFFFFFFFF if not provided, rather than 0x0. Fixes: 41041e57085 ("acpi: arm/virt: build_gtdt: use acpi_table_begin()/acp= i_table_end() instead of build_header()") Signed-off-by: Miguel Luis Message-Id: <20220920162137.75239-3-miguel.luis@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Ani Sinha --- hw/arm/virt-acpi-build.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 9b3aee01bf..13c6e3e468 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -592,8 +592,7 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, Virt= MachineState *vms) acpi_table_begin(&table, table_data); =20 /* CntControlBase Physical Address */ - /* FIXME: invalid value, should be 0xFFFFFFFFFFFFFFFF if not impl. ? */ - build_append_int_noprefix(table_data, 0, 8); + build_append_int_noprefix(table_data, 0xFFFFFFFFFFFFFFFF, 8); build_append_int_noprefix(table_data, 0, 4); /* Reserved */ /* * FIXME: clarify comment: @@ -618,7 +617,7 @@ build_gtdt(GArray *table_data, BIOSLinker *linker, Virt= MachineState *vms) /* Non-Secure EL2 timer Flags */ build_append_int_noprefix(table_data, irqflags, 4); /* CntReadBase Physical address */ - build_append_int_noprefix(table_data, 0, 8); + build_append_int_noprefix(table_data, 0xFFFFFFFFFFFFFFFF, 8); /* Platform Timer Count */ build_append_int_noprefix(table_data, 0, 4); /* Platform Timer Offset */ --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665426554; cv=none; d=zohomail.com; s=zohoarc; b=WyJ3x3dYG6NDI/Rb13aoAqbp+Pm7QxSX2Ny6r2A6DkpWQrHASvxQObTGNt2g1a4BDkZZQvO85rMicmhbMROrdCg4NX29JlMHkZSdJC6za7PnFgncMRR3kYLyifR+zbSotTyfkaolTTametITMAstJ4K5OxTY0mms47eYlS9srPo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665426554; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=J8UxNmNb6BFssnqxntW2+QMQWj8bFAflVBTk3/hujDw=; b=DHCtETdZHvI1rZzUyRJkJy4SgR/0q8FUVKmn1a7jlRWWTpZKld4r8d0pyqBOiFW9C+HqukCjn6mA9CRLYRhujH3zgCZzM5dE6rKd7RwB0a7o482yB8/AG79fz2Q9YWwi/9x4lVWxKza0AGQ2QIqR0mRxTPxfpv1h+tmHUUmfEuY= 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 1665426554217318.5018980304061; Mon, 10 Oct 2022 11:29:14 -0700 (PDT) Received: from localhost ([::1]:38338 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxWY-0006Qf-OS for importer@patchew.org; Mon, 10 Oct 2022 14:29:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45008) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwc6-0002y1-DW for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:52 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:51132) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwc0-00074M-QY for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:49 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-374-t7dF3SeyNFeLBfuvnC6sWA-1; Mon, 10 Oct 2022 13:30:43 -0400 Received: by mail-wm1-f69.google.com with SMTP id h129-20020a1c2187000000b003bf635eac31so4255975wmh.4 for ; Mon, 10 Oct 2022 10:30:42 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id k2-20020a5d6d42000000b0022e049586c5sm9364198wri.28.2022.10.10.10.30.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=J8UxNmNb6BFssnqxntW2+QMQWj8bFAflVBTk3/hujDw=; b=OnUqifXJaePXKuckMFAc738ldnPVfTX3YZ0PoCwZpgE74JeYOdSzxb9e88qkWintbSpxsw TYtO7tYyIJkGx86c+7DIIPOIBL2osboSKu+y6QXHaXsibCS3XuLnk8ZkaCA4/pe1tqCJI3 y/1/c+YIUy6/IJk91p0eIcPTlfly960= X-MC-Unique: t7dF3SeyNFeLBfuvnC6sWA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=J8UxNmNb6BFssnqxntW2+QMQWj8bFAflVBTk3/hujDw=; b=luZ7FbDI+EDIszUwHgTFSMci0sJvZBoFt+05s6+NSSXIjbz5l3puo8/wBNCKpsHy9l Q/UySDQVP0jXTxP0t+I4ThH6JDjjzc2sfCXyRkKYni4+doU9QH1zNMfhG09E7rNQCbM4 T1VtzfdR8DlCi5mpe7bA/qzcMt4toAkFxy6NG0C87+mEAjmSfR4YgiivELf92PCX27jU M8oTaSdLOasNd7++QF9+lUx1ETdbR4AYck8YctjcSSiuy9KitBrocVTSAymRbqZe0seW TkVzhSZkV2sI1PPOdh0GkzbEg4Ep/pHPyHDgdbyoixExRenlQbM7HYeqlWQ2awdHTeV9 5BPw== X-Gm-Message-State: ACrzQf2honztYxBTC8yuXrVyP8EzQ9lpgv7X2sx/gSkeITKQIyyAyTRD k8cYskaUIYH+l+p5dis2HzTcLOqfKHbVqpTnckJv72BsbsG4O6H3GMP12QlzmHevX+R1/JW4XDc aGK+U3KALhio0YqYdgr3E5Ot0m3nPSBoJEMoVnUUR0fgSiuF+UNEIg3MTyIqS X-Received: by 2002:a05:600c:3c8a:b0:3b4:eff4:a94f with SMTP id bg10-20020a05600c3c8a00b003b4eff4a94fmr20286690wmb.105.1665423041551; Mon, 10 Oct 2022 10:30:41 -0700 (PDT) X-Google-Smtp-Source: AMsMyM65GBSKLvoQAds+ETQntjzZ5F8PS5Ooz2sizqAwSMQW153mY9lmXEtTV8BLr1vzJRaMVkcN9Q== X-Received: by 2002:a05:600c:3c8a:b0:3b4:eff4:a94f with SMTP id bg10-20020a05600c3c8a00b003b4eff4a94fmr20286668wmb.105.1665423041112; Mon, 10 Oct 2022 10:30:41 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:37 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Miguel Luis , Ani Sinha , Igor Mammedov Subject: [PULL 27/55] tests/acpi: virt: update ACPI GTDT binaries Message-ID: <20221010172813.204597-28-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665426555402100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Miguel Luis Step 6 & 7 of the bios-tables-test.c documented procedure. Differences between disassembled ASL files for GTDT: @@ -13,14 +13,14 @@ [000h 0000 4] Signature : "GTDT" [Generic Time= r Description Table] [004h 0004 4] Table Length : 00000060 [008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : 8C +[009h 0009 1] Checksum : 9C [00Ah 0010 6] Oem ID : "BOCHS " [010h 0016 8] Oem Table ID : "BXPC " [018h 0024 4] Oem Revision : 00000001 [01Ch 0028 4] Asl Compiler ID : "BXPC" [020h 0032 4] Asl Compiler Revision : 00000001 -[024h 0036 8] Counter Block Address : 0000000000000000 +[024h 0036 8] Counter Block Address : FFFFFFFFFFFFFFFF [02Ch 0044 4] Reserved : 00000000 [030h 0048 4] Secure EL1 Interrupt : 0000001D @@ -46,16 +46,16 @@ Trigger Mode : 0 Polarity : 0 Always On : 0 -[050h 0080 8] Counter Read Block Address : 0000000000000000 +[050h 0080 8] Counter Read Block Address : FFFFFFFFFFFFFFFF [058h 0088 4] Platform Timer Count : 00000000 [05Ch 0092 4] Platform Timer Offset : 00000000 Raw Table Data: Length 96 (0x60) - 0000: 47 54 44 54 60 00 00 00 02 8C 42 4F 43 48 53 20 // GTDT`...= ..BOCHS + 0000: 47 54 44 54 60 00 00 00 02 9C 42 4F 43 48 53 20 // GTDT`...= ..BOCHS 0010: 42 58 50 43 20 20 20 20 01 00 00 00 42 58 50 43 // BXPC = ....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ........= ........ + 0020: 01 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 00 // ........= ........ 0030: 1D 00 00 00 00 00 00 00 1E 00 00 00 04 00 00 00 // ........= ........ 0040: 1B 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00 // ........= ........ - 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ........= ........ + 0050: FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 // ........= ........ Signed-off-by: Miguel Luis Message-Id: <20220920162137.75239-4-miguel.luis@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Acked-by: Ani Sinha --- tests/qtest/bios-tables-test-allowed-diff.h | 3 --- tests/data/acpi/virt/GTDT | Bin 96 -> 96 bytes tests/data/acpi/virt/GTDT.memhp | Bin 96 -> 96 bytes tests/data/acpi/virt/GTDT.numamem | Bin 96 -> 96 bytes 4 files changed, 3 deletions(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index 957bd1b4f6..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,4 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/virt/GTDT", -"tests/data/acpi/virt/GTDT.memhp", -"tests/data/acpi/virt/GTDT.numamem", diff --git a/tests/data/acpi/virt/GTDT b/tests/data/acpi/virt/GTDT index 9408b71b59c0e0f2991c0053562280155b47bc0b..6f8cb9b8f30b55f4c93fe515982= 621e3db50feb2 100644 GIT binary patch delta 45 kcmYdD;BpUf2}xjJU|^avkxPo>KNL*VQ4xT#fs$YV0LH=3D;ng9R* delta 45 jcmYdD;BpUf2}xjJU|{N*$R))AWPrg$9Tfo>8%6^Foy!E8 diff --git a/tests/data/acpi/virt/GTDT.memhp b/tests/data/acpi/virt/GTDT.me= mhp index 9408b71b59c0e0f2991c0053562280155b47bc0b..6f8cb9b8f30b55f4c93fe515982= 621e3db50feb2 100644 GIT binary patch delta 45 kcmYdD;BpUf2}xjJU|^avkxPo>KNL*VQ4xT#fs$YV0LH=3D;ng9R* delta 45 jcmYdD;BpUf2}xjJU|{N*$R))AWPrg$9Tfo>8%6^Foy!E8 diff --git a/tests/data/acpi/virt/GTDT.numamem b/tests/data/acpi/virt/GTDT.= numamem index 9408b71b59c0e0f2991c0053562280155b47bc0b..6f8cb9b8f30b55f4c93fe515982= 621e3db50feb2 100644 GIT binary patch delta 45 kcmYdD;BpUf2}xjJU|^avkxPo>KNL*VQ4xT#fs$YV0LH=3D;ng9R* delta 45 jcmYdD;BpUf2}xjJU|{N*$R))AWPrg$9Tfo>8%6^Foy!E8 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665426108; cv=none; d=zohomail.com; s=zohoarc; b=nSkK+Q2H2HJm9O7/0V4le544TzozQrS0MrOiTYOpANZmsJ/XyTjk0fFd0Dbb32iBqg42uSsCpIp/xAaFBbDU7wlHkDjZR2AVXjxm59Ae5nVpNggJd0c+wYvR/D47jG+IJN3uGy2NEHP/EQIbwHzWDH9cwae1KN0ypenEomKksgo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665426108; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=y2BU0beyMHYAmxpgtdUqHlk2qyLNMIAsJObAZ7rSWfo=; b=jjF1PqhcOleU4DsUkSLE5BOJBeYPeMAOpfNAP+7bE3OuNCA4mc2Voqf9pwbor3vjUhVetaAmY49MxlS4bLaBCY9cAcJDgrvTJPbwbmboVZa2eR347NnBUpmDUGVHhxMTmAGiOgNC9lux+TARiJqccBenbGhF7Acl5LhOmNVtRU8= 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 1665426108385436.8684776722439; Mon, 10 Oct 2022 11:21:48 -0700 (PDT) Received: from localhost ([::1]:34008 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxPO-0000RH-4L for importer@patchew.org; Mon, 10 Oct 2022 14:21:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45010) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwc7-0002zJ-Td for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:59795) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwc5-00075a-PP for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:51 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-210-_tcSYkXwMY20VUnyzuir_w-1; Mon, 10 Oct 2022 13:30:47 -0400 Received: by mail-wr1-f70.google.com with SMTP id g4-20020adfbc84000000b0022fc417f87cso1104841wrh.12 for ; Mon, 10 Oct 2022 10:30:47 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id d34-20020a05600c4c2200b003c6b874a0dfsm2862024wmp.14.2022.10.10.10.30.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=y2BU0beyMHYAmxpgtdUqHlk2qyLNMIAsJObAZ7rSWfo=; b=WT25WjewejQLYSiGeCMKMlwvI4Ls6dWjhEJhIbT4zUUqltjuMnuksshuhy4E5mXAtejfBc ZbR9Brk609fwf88gL3HIwwFUMotayX6WJhcbjzwlUqDVFI+fDG/RT+QwArVXLHzDlpYWJE RYaiQbqc14hwAEo550JVAzb5GyNvfkc= X-MC-Unique: _tcSYkXwMY20VUnyzuir_w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=y2BU0beyMHYAmxpgtdUqHlk2qyLNMIAsJObAZ7rSWfo=; b=t1MMd/US6d069wvX9FZ531H7vDWUiFKbH8yIsAhqG7iMxYZ4dwF275AkenZgiWnbjB zGyo0dgEeR3MgmXSCKyCYL34mh3asiibB5PX/iNapYgnUh56vh4D0UttH2ojmkMzUIEr s/Xgj1V7QZqAXBbHQM8ElGDVf/WArbZ5bNAEYs2w/vlh0829JPtsvQlsVqZZp6iDoxaY tygynEEz4Gt2qwmQuYTezBVPkr+e8GVdSGha1BnV79KgTGGUkwX31YLcnHSlRVA02j+r 7sWU3yptHlQjne2DyJe0rNhE6xM4wJ0NdhMZN2oMg5PmUh1nRnYKLpwu/cJ6g9Vyaxxr +diA== X-Gm-Message-State: ACrzQf0zRbmWT40fyrfbibQh9wU3a7HSHNZ7boqQRvJvhJueQmAe7wYX lUAjknlixMXxE+TN2JS4Tg05AE0TxBSbaqGSavwnXm2SZNwMO5w2xaiTkFXs/z52iyG3X/+Wiie NAIiGl5JpBEgOqAl0BBGfwucLm2lnyIg6NQZwnrUyOhPHmIKDz1e3xwRkNp8f X-Received: by 2002:a05:600c:b4e:b0:3c5:c61c:8e20 with SMTP id k14-20020a05600c0b4e00b003c5c61c8e20mr6060507wmr.103.1665423046062; Mon, 10 Oct 2022 10:30:46 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5IxZRLTOL79Rt0P4k1f8bnZqAuiG2KKBJqwFQ8W+dKcIqJEObDMtmPOJrs/Uyr5+4WtRpIWg== X-Received: by 2002:a05:600c:b4e:b0:3c5:c61c:8e20 with SMTP id k14-20020a05600c0b4e00b003c5c61c8e20mr6060485wmr.103.1665423045750; Mon, 10 Oct 2022 10:30:45 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:41 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Ben Widawsky , Ben Widawsky Subject: [PULL 28/55] mem/cxl-type3: Add sn option to provide serial number for PCI ecap Message-ID: <20221010172813.204597-29-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665426110014100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron The Device Serial Number Extended Capability PCI r6.0 sec 7.9.3 provides a standard way to provide a device serial number as an IEEE defined 64-bit extended unique identifier EUI-64. CXL 2.0 section 8.1.12.2 Memory Device PCIe Capabilities and Extended Capabilities requires this to be used to uniquely identify CXL memory devices. Signed-off-by: Jonathan Cameron Message-Id: <20220923161835.9805-1-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Ben Widawsky --- include/hw/cxl/cxl_device.h | 1 + hw/mem/cxl_type3.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/hw/cxl/cxl_device.h b/include/hw/cxl/cxl_device.h index 1e141b6621..e4d221cdb3 100644 --- a/include/hw/cxl/cxl_device.h +++ b/include/hw/cxl/cxl_device.h @@ -237,6 +237,7 @@ struct CXLType3Dev { /* Properties */ HostMemoryBackend *hostmem; HostMemoryBackend *lsa; + uint64_t sn; =20 /* State */ AddressSpace hostmem_as; diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index ada2108fac..a71bf1afeb 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -14,6 +14,12 @@ #include "sysemu/hostmem.h" #include "hw/cxl/cxl.h" =20 +/* + * Null value of all Fs suggested by IEEE RA guidelines for use of + * EU, OUI and CID + */ +#define UI64_NULL ~(0ULL) + static void build_dvsecs(CXLType3Dev *ct3d) { CXLComponentState *cxl_cstate =3D &ct3d->cxl_cstate; @@ -149,7 +155,12 @@ static void ct3_realize(PCIDevice *pci_dev, Error **er= rp) pci_config_set_class(pci_conf, PCI_CLASS_MEMORY_CXL); =20 pcie_endpoint_cap_init(pci_dev, 0x80); - cxl_cstate->dvsec_offset =3D 0x100; + if (ct3d->sn !=3D UI64_NULL) { + pcie_dev_ser_num_init(pci_dev, 0x100, ct3d->sn); + cxl_cstate->dvsec_offset =3D 0x100 + 0x0c; + } else { + cxl_cstate->dvsec_offset =3D 0x100; + } =20 ct3d->cxl_cstate.pdev =3D pci_dev; build_dvsecs(ct3d); @@ -275,6 +286,7 @@ static Property ct3_props[] =3D { HostMemoryBackend *), DEFINE_PROP_LINK("lsa", CXLType3Dev, lsa, TYPE_MEMORY_BACKEND, HostMemoryBackend *), + DEFINE_PROP_UINT64("sn", CXLType3Dev, sn, UI64_NULL), DEFINE_PROP_END_OF_LIST(), }; =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665425632; cv=none; d=zohomail.com; s=zohoarc; b=dXIab165keP0TiAoaXRT0RMnMXA2fjIqLfthyG/rr77zq07AXI3XJ94+CVvjqHS0UsXW7f7uzMfi91NNN/otrLPArh92sEXX8XlVZqLkElvJin198Yj2oTRzmGk38n3KEcyT55/nYwDsOTji4vNFH/z5JgHsxnQmQ+bHauUnvCg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665425632; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nVrfuhIwqzfInAD0rVBmDi4J8sT2us7b0lHytetQ4rc=; b=jbunKq1aL0ZulBOv5LmJCRZNX03BKU7rnpAXXCh1QPXfjbBXcyf4wkiUCB1KBMUW1Pz8DVtKoKnoPkcJSBh0kxAAQHR8Yu5Qv98or1oFm2tnfuq53mx4emFnGegXv5LG+OW0cieXf6pKnnzt/UKTIRcyvutboZSM26HB/nGz3jY= 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 1665425632093883.8687373960325; Mon, 10 Oct 2022 11:13:52 -0700 (PDT) Received: from localhost ([::1]:35882 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxHi-00006u-PD for importer@patchew.org; Mon, 10 Oct 2022 14:13:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55300) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcD-00030V-6K for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:58 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:27483) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcA-00076t-FC for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:30:56 -0400 Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-549-vWbj0mvPM_aZa20nGm7cuQ-1; Mon, 10 Oct 2022 13:30:52 -0400 Received: by mail-wr1-f71.google.com with SMTP id h4-20020adfa4c4000000b0022ec3966c3aso1991743wrb.6 for ; Mon, 10 Oct 2022 10:30:52 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id z10-20020a05600c0a0a00b003a2f2bb72d5sm24621241wmp.45.2022.10.10.10.30.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=nVrfuhIwqzfInAD0rVBmDi4J8sT2us7b0lHytetQ4rc=; b=GCD+tnsduQd13ciM6UDDuLvXvpkSy1lCBcYlROMWCUtz9csVIAwwYHkLDIgWDlpMKnHryB wlxhiIWtFEdlZDS4l89bs6RRIF6n5uFl5J0wvKHiUQu5Vc8O/Ls0p7xpQJGEPo6NWaT5ux o6EEsZgocO+tUp1xEKPQD7nHMaWsx5c= X-MC-Unique: vWbj0mvPM_aZa20nGm7cuQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=nVrfuhIwqzfInAD0rVBmDi4J8sT2us7b0lHytetQ4rc=; b=ttuDMJy238jBgekOW3QdJBifHM0CkVYzhfLIqrBWTHRUmxx9Mh0MuJzkjsIqDi6oCL PaIP413tnslhcoLViQqSgt1sGLihVi1Oo8wD2mNjFKddnvKNzl5EjulyOp3ctGovem3I 4k24jQYhpp+rPV4Hc4nm2jU0G50P2Wv7z+W/3AYiZGpdvsiYWSGnCMzQIiM/0OJUSN3g Aa2yd0qCMRdEA6kwCtLxhxQqhGQ3cd//8UDHlGZh4G0jGFR9bGirddi7MVcNrfT0cYEj TVvdIzpSUnPZQsDxdF+VEMzumPHgNuM/CQBTXMFgd0JzahkFwgLK5wOgE6nrJVsEk67L Bgcw== X-Gm-Message-State: ACrzQf30FJlvcNvtkl8WsIOfSvI8pZjn1tQkpfuBd9d0RH7sS6n5MYXh tjsh9vJNCvH+MaSa69FRjNd3h66jYJy+LRsqRQ6hZ2BWtZtzRxsTFfo1iNffWd9VxrfHURU27E4 iXyi5EuvaVHvSa/L8wR1yhcGJVuTwlzehgFWeVOLe2Qw+YVW0nfC8bF0n0QBM X-Received: by 2002:a5d:51d1:0:b0:22e:4701:fc5d with SMTP id n17-20020a5d51d1000000b0022e4701fc5dmr12735660wrv.515.1665423051315; Mon, 10 Oct 2022 10:30:51 -0700 (PDT) X-Google-Smtp-Source: AMsMyM43HoqHI7zjtEKz7g+0aKhCWluLbs5BMmKNwC0KB/7De8H949WGJehpXM45xwr+WkenLknAQw== X-Received: by 2002:a5d:51d1:0:b0:22e:4701:fc5d with SMTP id n17-20020a5d51d1000000b0022e4701fc5dmr12735631wrv.515.1665423050990; Mon, 10 Oct 2022 10:30:50 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:46 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Peter Xu , David Woodhouse , Claudio Fontana , Igor Mammedov , Jason Wang , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 29/55] Revert "intel_iommu: Fix irqchip / X2APIC configuration checks" Message-ID: <20221010172813.204597-30-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665425632699100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peter Xu It's true that when vcpus<=3D255 we don't require the length of 32bit APIC IDs. However here since we already have EIM=3DON it means the hypervisor will declare the VM as x2apic supported (e.g. VT-d ECAP register will have EIM bit 4 set), so the guest should assume the APIC IDs are 32bits width even if vcpus<=3D255. In short, commit 77250171bdc breaks any simple cmdli= ne that wants to boot a VM with >=3D9 but <=3D255 vcpus with: -device intel-iommu,intremap=3Don For anyone who does not want to enable x2apic, we can use eim=3Doff in the intel-iommu parameters to skip enabling KVM x2apic. This partly reverts commit 77250171bdc02aee106083fd2a068147befa1a38, while keeping the valid bit on checking split irqchip, but revert the other chang= e. One thing to mention is that this patch may break migration compatibility of such VM, however that's probably the best thing we can do, because the old behavior was simply wrong and not working for >8 vcpus. For <=3D8 vcpu= s, there could be a light guest ABI change (by enabling KVM x2apic after this patch), but logically it shouldn't affect the migration from working. Also, this is not the 1st commit to change x2apic behavior. Igor provided a full history of how this evolved for the past few years: https://lore.kernel.org/qemu-devel/20220922154617.57d1a1fb@redhat.com/ Relevant commits for reference: fb506e701e ("intel_iommu: reject broken EIM", 2016-10-17) c1bb5418e3 ("target/i386: Support up to 32768 CPUs without IRQ remapping"= , 2020-12-10) 77250171bd ("intel_iommu: Fix irqchip / X2APIC configuration checks", 202= 2-05-16) dc89f32d92 ("target/i386: Fix sanity check on max APIC ID / X2APIC enable= ment", 2022-05-16) We may want to have this for stable too (mostly for 7.1.0 only). Adding a fixes tag. Cc: David Woodhouse Cc: Claudio Fontana Cc: Igor Mammedov Fixes: 77250171bd ("intel_iommu: Fix irqchip / X2APIC configuration checks") Signed-off-by: Peter Xu Message-Id: <20220926153206.10881-1-peterx@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Igor Mammedov --- hw/i386/intel_iommu.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 05d53a1aa9..6524c2ee32 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -3818,6 +3818,11 @@ static bool vtd_decide_config(IntelIOMMUState *s, Er= ror **errp) error_setg(errp, "eim=3Don requires accel=3Dkvm,kernel-irqchip= =3Dsplit"); return false; } + if (!kvm_enable_x2apic()) { + error_setg(errp, "eim=3Don requires support on the KVM side" + "(X2APIC_API, first shipped in v4.7)"); + return false; + } } =20 /* Currently only address widths supported are 39 and 48 bits */ --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665426595; cv=none; d=zohomail.com; s=zohoarc; b=ZamfvBv2OH5v74cccEIY1s6izBoS8HYiDcQiNK4uPzM16f8+Aza4FR7C1jU4HuzfAB9J4W2rPLO3jgzoN98yref4sjb9bvOcys4zUXWUOC9A8yzjN19gwagtAT9v1zOsdtdT5HrdbnwssifdUb42nXeSqGie/sflYl87zgWCorQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665426595; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9cxJb1dEd33VM9QAxxhn0l0rb0p7kiIaB1Wpir2Wp88=; b=XmKzUBpNjXemQNWlLMjCbUrRYG1Su7MgDRUMVUuFSEgsAESaa3ECbay0vITp5X2muDB2qSUDjVy+ysozLMiTmzQuviQoCR2ccNenBNO7F9tpvqHB7X+7ZFPRhEquO6/nrnYkRxW3S0NjDeMkBDQCvPHnemQpTQo9JcgWESu9gec= 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 1665426595382233.47869263093696; Mon, 10 Oct 2022 11:29:55 -0700 (PDT) Received: from localhost ([::1]:45438 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxXF-0007On-US for importer@patchew.org; Mon, 10 Oct 2022 14:29:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55302) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcI-00032Q-KP for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:38811) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcF-00077t-E6 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:02 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-619-07nYwWn1NVKd2KjnaFqPMw-1; Mon, 10 Oct 2022 13:30:57 -0400 Received: by mail-wm1-f69.google.com with SMTP id ay21-20020a05600c1e1500b003b45fd14b53so5820246wmb.1 for ; Mon, 10 Oct 2022 10:30:57 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id m29-20020a05600c3b1d00b003a1980d55c4sm919540wms.47.2022.10.10.10.30.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=9cxJb1dEd33VM9QAxxhn0l0rb0p7kiIaB1Wpir2Wp88=; b=PrCXwqiX9Rljy7UBYhsaAgO8CivfbUIxG9rFK2/5EdaE+vjSUq9ZRr04nEd9LTjlv53kY0 /WlxWIqqc8p0II7dGY504KWfjzyULoQVdx1XmsuxoLW2hQ2/vNUTPxH8lN9oc9JPmzZVu/ heh+bPyOlK8sq5xEFIcSzgzjbxeAyBM= X-MC-Unique: 07nYwWn1NVKd2KjnaFqPMw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=9cxJb1dEd33VM9QAxxhn0l0rb0p7kiIaB1Wpir2Wp88=; b=muINlgus5P7i80GqQ/IDVXgwKgKaYJyKMYjS+ghHtxade8aB0pehUDcWpw1Rh7uuOQ ekDuOuI9XZznESex2apOZuiNEa9k0lYAfLKJqUX+LbJnLvl5G3cJ/3iZUbs8SlYxvkZ2 zoFnBLEttAYA1mTKA09pDqVolFLu0kXnOXBm+oW8fPbO14TiSnyaP56q6D7I6YZVqLBk Ot08+d2g3y+vc+/+XM6PHW7ID93A0wsn01UIZP2s2B2idUlCSvOIogW8oBszblDBt8AO VT3OlvRcGvMMMTKG9IHVM2hBY4oB+e8IalYJHQ4XHEbWqBIKYeF/bjX+AWleRNz2vP4p hPHw== X-Gm-Message-State: ACrzQf0qdiWwEN66gun+0o8pJ21UqVyq58/ZgQnxqwPUumf/m2zHCYw+ apvxxhPfdPGR6Gov3Ysizq1BEGdgTVbVYOvuiXuiBwbt+OzKaBpdFYvHfaTcHAvaJuxktHP7xvZ mi3jePE6ZCpdqvz5UMm2c8YOgk+8U19ZnYucuIKBvAt1s/8quDJrduWN23pCt X-Received: by 2002:adf:f301:0:b0:22e:4479:c1ba with SMTP id i1-20020adff301000000b0022e4479c1bamr12285802wro.133.1665423056442; Mon, 10 Oct 2022 10:30:56 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4R3/inZPYzzlITQIwVg/mfR6zFaSY6WX3hoPyfn8Xr1MBgnTd0mYvtwSD8YG0cJRmvIrwYjg== X-Received: by 2002:adf:f301:0:b0:22e:4479:c1ba with SMTP id i1-20020adff301000000b0022e4479c1bamr12285774wro.133.1665423056034; Mon, 10 Oct 2022 10:30:56 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:51 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Laurent Vivier , Jonah Palmer , Markus Armbruster , Michael Roth , Eric Blake , Thomas Huth , Paolo Bonzini Subject: [PULL 30/55] qmp: add QMP command x-query-virtio Message-ID: <20221010172813.204597-31-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665426597343100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Laurent Vivier This new command lists all the instances of VirtIODevices with their canonical QOM path and name. [Jonah: @virtio_list duplicates information that already exists in the QOM composition tree. However, extracting necessary information from this tree seems to be a bit convoluted. Instead, we still create our own list of realized virtio devices but use @qmp_qom_get with the device's canonical QOM path to confirm that the device exists and is realized. If the device exists but is actually not realized, then we remove it from our list (for synchronicity to the QOM composition tree). Also, the QMP command @x-query-virtio is redundant as @qom-list and @qom-get are sufficient to search '/machine/' for realized virtio devices. However, @x-query-virtio is much more convenient in listing realized virtio devices.] Signed-off-by: Laurent Vivier Signed-off-by: Jonah Palmer Message-Id: <1660220684-24909-2-git-send-email-jonah.palmer@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- qapi/qapi-schema.json | 1 + qapi/virtio.json | 68 ++++++++++++++++++++++++++++++++++++++ include/hw/virtio/virtio.h | 1 + hw/virtio/virtio-stub.c | 14 ++++++++ hw/virtio/virtio.c | 44 ++++++++++++++++++++++++ tests/qtest/qmp-cmd-test.c | 1 + hw/virtio/meson.build | 2 ++ qapi/meson.build | 1 + 8 files changed, 132 insertions(+) create mode 100644 qapi/virtio.json create mode 100644 hw/virtio/virtio-stub.c diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json index 92d7ecc52c..f000b90744 100644 --- a/qapi/qapi-schema.json +++ b/qapi/qapi-schema.json @@ -94,3 +94,4 @@ { 'include': 'acpi.json' } { 'include': 'pci.json' } { 'include': 'stats.json' } +{ 'include': 'virtio.json' } diff --git a/qapi/virtio.json b/qapi/virtio.json new file mode 100644 index 0000000000..03896e423f --- /dev/null +++ b/qapi/virtio.json @@ -0,0 +1,68 @@ +# -*- Mode: Python -*- +# vim: filetype=3Dpython +# + +## +# =3D Virtio devices +## + +## +# @VirtioInfo: +# +# Basic information about a given VirtIODevice +# +# @path: The VirtIODevice's canonical QOM path +# +# @name: Name of the VirtIODevice +# +# Since: 7.1 +# +## +{ 'struct': 'VirtioInfo', + 'data': { 'path': 'str', + 'name': 'str' } } + +## +# @x-query-virtio: +# +# Returns a list of all realized VirtIODevices +# +# Features: +# @unstable: This command is meant for debugging. +# +# Returns: List of gathered VirtIODevices +# +# Since: 7.1 +# +# Example: +# +# -> { "execute": "x-query-virtio" } +# <- { "return": [ +# { +# "name": "virtio-input", +# "path": "/machine/peripheral-anon/device[4]/virtio-backend" +# }, +# { +# "name": "virtio-crypto", +# "path": "/machine/peripheral/crypto0/virtio-backend" +# }, +# { +# "name": "virtio-scsi", +# "path": "/machine/peripheral-anon/device[2]/virtio-backend" +# }, +# { +# "name": "virtio-net", +# "path": "/machine/peripheral-anon/device[1]/virtio-backend" +# }, +# { +# "name": "virtio-serial", +# "path": "/machine/peripheral-anon/device[0]/virtio-backend" +# } +# ] +# } +# +## + +{ 'command': 'x-query-virtio', + 'returns': [ 'VirtioInfo' ], + 'features': [ 'unstable' ] } diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index cecfb7c552..9eeb958e39 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -122,6 +122,7 @@ struct VirtIODevice bool use_guest_notifier_mask; AddressSpace *dma_as; QLIST_HEAD(, VirtQueue) *vector_queues; + QTAILQ_ENTRY(VirtIODevice) next; }; =20 struct VirtioDeviceClass { diff --git a/hw/virtio/virtio-stub.c b/hw/virtio/virtio-stub.c new file mode 100644 index 0000000000..05a81edc92 --- /dev/null +++ b/hw/virtio/virtio-stub.c @@ -0,0 +1,14 @@ +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "qapi/qapi-commands-virtio.h" + +static void *qmp_virtio_unsupported(Error **errp) +{ + error_setg(errp, "Virtio is disabled"); + return NULL; +} + +VirtioInfoList *qmp_x_query_virtio(Error **errp) +{ + return qmp_virtio_unsupported(errp); +} diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 2cc1d7d24a..4fc7c80d3f 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -13,12 +13,18 @@ =20 #include "qemu/osdep.h" #include "qapi/error.h" +#include "qapi/qmp/qdict.h" +#include "qapi/qapi-commands-virtio.h" +#include "qapi/qapi-commands-qom.h" +#include "qapi/qapi-visit-virtio.h" +#include "qapi/qmp/qjson.h" #include "cpu.h" #include "trace.h" #include "qemu/error-report.h" #include "qemu/log.h" #include "qemu/main-loop.h" #include "qemu/module.h" +#include "qom/object_interfaces.h" #include "hw/virtio/virtio.h" #include "migration/qemu-file-types.h" #include "qemu/atomic.h" @@ -29,6 +35,9 @@ #include "sysemu/runstate.h" #include "standard-headers/linux/virtio_ids.h" =20 +/* QAPI list of realized VirtIODevices */ +static QTAILQ_HEAD(, VirtIODevice) virtio_list; + /* * The alignment to use between consumer and producer parts of vring. * x86 pagesize again. This is the default, used by transports like PCI @@ -3707,6 +3716,7 @@ static void virtio_device_realize(DeviceState *dev, E= rror **errp) vdev->listener.commit =3D virtio_memory_listener_commit; vdev->listener.name =3D "virtio"; memory_listener_register(&vdev->listener, vdev->dma_as); + QTAILQ_INSERT_TAIL(&virtio_list, vdev, next); } =20 static void virtio_device_unrealize(DeviceState *dev) @@ -3721,6 +3731,7 @@ static void virtio_device_unrealize(DeviceState *dev) vdc->unrealize(dev); } =20 + QTAILQ_REMOVE(&virtio_list, vdev, next); g_free(vdev->bus_name); vdev->bus_name =3D NULL; } @@ -3894,6 +3905,8 @@ static void virtio_device_class_init(ObjectClass *kla= ss, void *data) vdc->stop_ioeventfd =3D virtio_device_stop_ioeventfd_impl; =20 vdc->legacy_features |=3D VIRTIO_LEGACY_FEATURES; + + QTAILQ_INIT(&virtio_list); } =20 bool virtio_device_ioeventfd_enabled(VirtIODevice *vdev) @@ -3904,6 +3917,37 @@ bool virtio_device_ioeventfd_enabled(VirtIODevice *v= dev) return virtio_bus_ioeventfd_enabled(vbus); } =20 +VirtioInfoList *qmp_x_query_virtio(Error **errp) +{ + VirtioInfoList *list =3D NULL; + VirtioInfoList *node; + VirtIODevice *vdev; + + QTAILQ_FOREACH(vdev, &virtio_list, next) { + DeviceState *dev =3D DEVICE(vdev); + Error *err =3D NULL; + QObject *obj =3D qmp_qom_get(dev->canonical_path, "realized", &err= ); + + if (err =3D=3D NULL) { + GString *is_realized =3D qobject_to_json_pretty(obj, true); + /* virtio device is NOT realized, remove it from list */ + if (!strncmp(is_realized->str, "false", 4)) { + QTAILQ_REMOVE(&virtio_list, vdev, next); + } else { + node =3D g_new0(VirtioInfoList, 1); + node->value =3D g_new(VirtioInfo, 1); + node->value->path =3D g_strdup(dev->canonical_path); + node->value->name =3D g_strdup(vdev->name); + QAPI_LIST_PREPEND(list, node->value); + } + g_string_free(is_realized, true); + } + qobject_unref(obj); + } + + return list; +} + static const TypeInfo virtio_device_info =3D { .name =3D TYPE_VIRTIO_DEVICE, .parent =3D TYPE_DEVICE, diff --git a/tests/qtest/qmp-cmd-test.c b/tests/qtest/qmp-cmd-test.c index af00712458..897e4e937b 100644 --- a/tests/qtest/qmp-cmd-test.c +++ b/tests/qtest/qmp-cmd-test.c @@ -103,6 +103,7 @@ static bool query_is_ignored(const char *cmd) "query-gic-capabilities", /* arm */ /* Success depends on target-specific build configuration: */ "query-pci", /* CONFIG_PCI */ + "x-query-virtio", /* CONFIG_VIRTIO */ /* Success depends on launching SEV guest */ "query-sev-launch-measure", /* Success depends on Host or Hypervisor SEV support */ diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build index c14e3db10a..dfed1e7af5 100644 --- a/hw/virtio/meson.build +++ b/hw/virtio/meson.build @@ -62,4 +62,6 @@ virtio_ss.add_all(when: 'CONFIG_VIRTIO_PCI', if_true: vir= tio_pci_ss) specific_ss.add_all(when: 'CONFIG_VIRTIO', if_true: virtio_ss) softmmu_ss.add_all(when: 'CONFIG_VIRTIO', if_true: softmmu_virtio_ss) softmmu_ss.add(when: 'CONFIG_VIRTIO', if_false: files('vhost-stub.c')) +softmmu_ss.add(when: 'CONFIG_VIRTIO', if_false: files('virtio-stub.c')) softmmu_ss.add(when: 'CONFIG_ALL', if_true: files('vhost-stub.c')) +softmmu_ss.add(when: 'CONFIG_ALL', if_true: files('virtio-stub.c')) diff --git a/qapi/meson.build b/qapi/meson.build index 840f1b0e19..9a36c15c04 100644 --- a/qapi/meson.build +++ b/qapi/meson.build @@ -49,6 +49,7 @@ qapi_all_modules =3D [ 'stats', 'trace', 'transaction', + 'virtio', 'yank', ] if have_system --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665426353; cv=none; d=zohomail.com; s=zohoarc; b=HbOB5rUGilfqLa/639ojMOrCeqbjwLApTzq3YNDTD7Rjy5pUPpoX7aobeKTTPMB+39V5Yke1BqQ8nviaED+odDKCqLeu6xupOQyRG0XQ5BFymDp4E6jSu/V/4NxSglY+hAvwN8/Qwjjs/+P6zW6Y9+RriPdJxSVFoX16Klm1+fw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665426353; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=71fByqtzz3V1myRZTp6mDfuO9MkyXBsQaGOmLHOchvQ=; b=ISHzgPdlnmggxB7dzR+WPdDJTtshlNE8dHnAPCBBUnPh/BzISozlJQPwArsxs5+i+c+SgxwZP365fbvYcSEAi2iGj0549lJ2F3BYeu0b9ec1peBdv9dzDBkdZrPTHzIGDCYa/WHz0yU74XPSjloa41mmS3SU+3QHG1MNyaevKJc= 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 1665426353840814.159966522816; Mon, 10 Oct 2022 11:25:53 -0700 (PDT) Received: from localhost ([::1]:58366 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxTJ-0004C2-Ri for importer@patchew.org; Mon, 10 Oct 2022 14:25:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcV-00032t-JK for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:34258) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcN-0007AX-IL for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:13 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-131-d5DhNTgMNGC-9EyZ8kbKqA-1; Mon, 10 Oct 2022 13:31:02 -0400 Received: by mail-wm1-f70.google.com with SMTP id k2-20020a05600c1c8200b003c3dd3aa638so4809337wms.1 for ; Mon, 10 Oct 2022 10:31:02 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id j39-20020a05600c48a700b003a5537bb2besm10313662wmp.25.2022.10.10.10.30.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:30:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423063; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=71fByqtzz3V1myRZTp6mDfuO9MkyXBsQaGOmLHOchvQ=; b=Pkaqc9EvWGZxIOAMso2v3l/7Lm9ZWpojr4Ptrx0rZyb6S6Iwp7pjHZt2978+wD9Vt32IG5 BHWL7VEj8pQ0lRKQJkOEZXK6nq4hKdIG1w2H63slPNhitgQcicQudXBf2Vj8h2vkA7s1ru tgRMXIBVIKou+2DhCBqJ9jDJLezLofM= X-MC-Unique: d5DhNTgMNGC-9EyZ8kbKqA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=71fByqtzz3V1myRZTp6mDfuO9MkyXBsQaGOmLHOchvQ=; b=sHjjYh8t30nQx76qTn3xhx2ni+saEKr2x65U0L1KpTgaN3aqwgD+tgfDqapZicMH4z GBz1B9spNeVe7BnBgyeuBGpSlQ4bAo6BvbTTgmxf4J135y1ZLL2yj3COZQze0T4UzZYD uVq/lltGtKgwMw/GzaerI1Nz0oB9kBHt7Zx5wHyiKn0xRj9BF4sPSNm6FKNyVZ/TpMAr MuPixNW5bls2ERB51vH/igmVfsfBsaSGVlJUg8W7fbAkvVgEPuIgn7MU79m3610KqceY 5+DH6e8FYPCDzXj66HEmp/eugJBKw6brNbrFG0Fj+27mMm5SvA9FMeMR20axPA7kr2E3 BT+A== X-Gm-Message-State: ACrzQf2Rcs+mGacTemRnTvyMhXQgDKkT66OIiarzvk8/KS3tfSy0iTSb 6GBHt8ocpO+FjFR0wazcoJdEYl+WV6+1sh3EoaV0ENpHez5dhkdwhqwXT05VTHHKUsP8KkjTfIO 0XI6xbifRCZGCBz3Dz5JaZZLq7LyQHxKxu73YclFW0fF1akff442ShF2MclRd X-Received: by 2002:a5d:6483:0:b0:22e:4804:8be4 with SMTP id o3-20020a5d6483000000b0022e48048be4mr11902375wri.528.1665423060807; Mon, 10 Oct 2022 10:31:00 -0700 (PDT) X-Google-Smtp-Source: AMsMyM71peGiPCzSVRO5O8wl0158+Q1fRpC2Hgpm4ALaRfQCVRblqGSKexVcH5bCujlTOpT9OQE+2A== X-Received: by 2002:a5d:6483:0:b0:22e:4804:8be4 with SMTP id o3-20020a5d6483000000b0022e48048be4mr11902348wri.528.1665423060372; Mon, 10 Oct 2022 10:31:00 -0700 (PDT) Date: Mon, 10 Oct 2022 13:30:56 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Laurent Vivier , Jonah Palmer , Eric Blake , Markus Armbruster Subject: [PULL 31/55] qmp: add QMP command x-query-virtio-status Message-ID: <20221010172813.204597-32-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665426355838100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Laurent Vivier This new command shows the status of a VirtIODevice, including its corresponding vhost device's status (if active). Next patch will improve output by decoding feature bits, including vhost device's feature bits (backend, protocol, acked, and features). Also will decode status bits of a VirtIODevice. [Jonah: From patch v12; added a check to @virtio_device_find to ensure synchronicity between @virtio_list and the devices in the QOM composition tree.] Signed-off-by: Laurent Vivier Signed-off-by: Jonah Palmer Message-Id: <1660220684-24909-3-git-send-email-jonah.palmer@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- qapi/virtio.json | 222 ++++++++++++++++++++++++++++++++++++++++ hw/virtio/virtio-stub.c | 5 + hw/virtio/virtio.c | 104 +++++++++++++++++++ 3 files changed, 331 insertions(+) diff --git a/qapi/virtio.json b/qapi/virtio.json index 03896e423f..c86b3bc635 100644 --- a/qapi/virtio.json +++ b/qapi/virtio.json @@ -66,3 +66,225 @@ { 'command': 'x-query-virtio', 'returns': [ 'VirtioInfo' ], 'features': [ 'unstable' ] } + +## +# @VhostStatus: +# +# Information about a vhost device. This information will only be +# displayed if the vhost device is active. +# +# @n-mem-sections: vhost_dev n_mem_sections +# +# @n-tmp-sections: vhost_dev n_tmp_sections +# +# @nvqs: vhost_dev nvqs (number of virtqueues being used) +# +# @vq-index: vhost_dev vq_index +# +# @features: vhost_dev features +# +# @acked-features: vhost_dev acked_features +# +# @backend-features: vhost_dev backend_features +# +# @protocol-features: vhost_dev protocol_features +# +# @max-queues: vhost_dev max_queues +# +# @backend-cap: vhost_dev backend_cap +# +# @log-enabled: vhost_dev log_enabled flag +# +# @log-size: vhost_dev log_size +# +# Since: 7.1 +# +## + +{ 'struct': 'VhostStatus', + 'data': { 'n-mem-sections': 'int', + 'n-tmp-sections': 'int', + 'nvqs': 'uint32', + 'vq-index': 'int', + 'features': 'uint64', + 'acked-features': 'uint64', + 'backend-features': 'uint64', + 'protocol-features': 'uint64', + 'max-queues': 'uint64', + 'backend-cap': 'uint64', + 'log-enabled': 'bool', + 'log-size': 'uint64' } } + +## +# @VirtioStatus: +# +# Full status of the virtio device with most VirtIODevice members. +# Also includes the full status of the corresponding vhost device +# if the vhost device is active. +# +# @name: VirtIODevice name +# +# @device-id: VirtIODevice ID +# +# @vhost-started: VirtIODevice vhost_started flag +# +# @guest-features: VirtIODevice guest_features +# +# @host-features: VirtIODevice host_features +# +# @backend-features: VirtIODevice backend_features +# +# @device-endian: VirtIODevice device_endian +# +# @num-vqs: VirtIODevice virtqueue count. This is the number of active +# virtqueues being used by the VirtIODevice. +# +# @status: VirtIODevice configuration status (VirtioDeviceStatus) +# +# @isr: VirtIODevice ISR +# +# @queue-sel: VirtIODevice queue_sel +# +# @vm-running: VirtIODevice vm_running flag +# +# @broken: VirtIODevice broken flag +# +# @disabled: VirtIODevice disabled flag +# +# @use-started: VirtIODevice use_started flag +# +# @started: VirtIODevice started flag +# +# @start-on-kick: VirtIODevice start_on_kick flag +# +# @disable-legacy-check: VirtIODevice disabled_legacy_check flag +# +# @bus-name: VirtIODevice bus_name +# +# @use-guest-notifier-mask: VirtIODevice use_guest_notifier_mask flag +# +# @vhost-dev: Corresponding vhost device info for a given VirtIODevice. +# Present if the given VirtIODevice has an active vhost +# device. +# +# Since: 7.1 +# +## + +{ 'struct': 'VirtioStatus', + 'data': { 'name': 'str', + 'device-id': 'uint16', + 'vhost-started': 'bool', + 'device-endian': 'str', + 'guest-features': 'uint64', + 'host-features': 'uint64', + 'backend-features': 'uint64', + 'num-vqs': 'int', + 'status': 'uint8', + 'isr': 'uint8', + 'queue-sel': 'uint16', + 'vm-running': 'bool', + 'broken': 'bool', + 'disabled': 'bool', + 'use-started': 'bool', + 'started': 'bool', + 'start-on-kick': 'bool', + 'disable-legacy-check': 'bool', + 'bus-name': 'str', + 'use-guest-notifier-mask': 'bool', + '*vhost-dev': 'VhostStatus' } } + +## +# @x-query-virtio-status: +# +# Poll for a comprehensive status of a given virtio device +# +# @path: Canonical QOM path of the VirtIODevice +# +# Features: +# @unstable: This command is meant for debugging. +# +# Returns: VirtioStatus of the virtio device +# +# Since: 7.1 +# +# Examples: +# +# 1. Poll for the status of virtio-crypto (no vhost-crypto active) +# +# -> { "execute": "x-query-virtio-status", +# "arguments": { "path": "/machine/peripheral/crypto0/virtio-backend"= } +# } +# <- { "return": { +# "device-endian": "little", +# "bus-name": "", +# "disable-legacy-check": false, +# "name": "virtio-crypto", +# "started": true, +# "device-id": 20, +# "backend-features": 0, +# "start-on-kick": false, +# "isr": 1, +# "broken": false, +# "status": 15, +# "num-vqs": 2, +# "guest-features": 5100273664, +# "host-features": 6325010432, +# "use-guest-notifier-mask": true, +# "vm-running": true, +# "queue-sel": 1, +# "disabled": false, +# "vhost-started": false, +# "use-started": true +# } +# } +# +# 2. Poll for the status of virtio-net (vhost-net is active) +# +# -> { "execute": "x-query-virtio-status", +# "arguments": { "path": "/machine/peripheral-anon/device[1]/virtio-b= ackend" } +# } +# <- { "return": { +# "device-endian": "little", +# "bus-name": "", +# "disabled-legacy-check": false, +# "name": "virtio-net", +# "started": true, +# "device-id": 1, +# "vhost-dev": { +# "n-tmp-sections": 4, +# "n-mem-sections": 4, +# "max-queues": 1, +# "backend-cap": 2, +# "log-size": 0, +# "backend-features": 0, +# "nvqs": 2, +# "protocol-features": 0, +# "vq-index": 0, +# "log-enabled": false, +# "acked-features": 5100306432, +# "features": 13908344832 +# }, +# "backend-features": 6337593319, +# "start-on-kick": false, +# "isr": 1, +# "broken": false, +# "status": 15, +# "num-vqs": 3, +# "guest-features": 5111807911, +# "host-features": 6337593319, +# "use-guest-notifier-mask": true, +# "vm-running": true, +# "queue-sel": 2, +# "disabled": false, +# "vhost-started": true, +# "use-started": true +# } +# } +# +## + +{ 'command': 'x-query-virtio-status', + 'data': { 'path': 'str' }, + 'returns': 'VirtioStatus', + 'features': [ 'unstable' ] } diff --git a/hw/virtio/virtio-stub.c b/hw/virtio/virtio-stub.c index 05a81edc92..0b432e8de7 100644 --- a/hw/virtio/virtio-stub.c +++ b/hw/virtio/virtio-stub.c @@ -12,3 +12,8 @@ VirtioInfoList *qmp_x_query_virtio(Error **errp) { return qmp_virtio_unsupported(errp); } + +VirtioStatus *qmp_x_query_virtio_status(const char *path, Error **errp) +{ + return qmp_virtio_unsupported(errp); +} diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 4fc7c80d3f..696e19126a 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -3948,6 +3948,110 @@ VirtioInfoList *qmp_x_query_virtio(Error **errp) return list; } =20 +static VirtIODevice *virtio_device_find(const char *path) +{ + VirtIODevice *vdev; + + QTAILQ_FOREACH(vdev, &virtio_list, next) { + DeviceState *dev =3D DEVICE(vdev); + + if (strcmp(dev->canonical_path, path) !=3D 0) { + continue; + } + + Error *err =3D NULL; + QObject *obj =3D qmp_qom_get(dev->canonical_path, "realized", &err= ); + if (err =3D=3D NULL) { + GString *is_realized =3D qobject_to_json_pretty(obj, true); + /* virtio device is NOT realized, remove it from list */ + if (!strncmp(is_realized->str, "false", 4)) { + g_string_free(is_realized, true); + qobject_unref(obj); + QTAILQ_REMOVE(&virtio_list, vdev, next); + return NULL; + } + g_string_free(is_realized, true); + } else { + /* virtio device doesn't exist in QOM tree */ + QTAILQ_REMOVE(&virtio_list, vdev, next); + qobject_unref(obj); + return NULL; + } + /* device exists in QOM tree & is realized */ + qobject_unref(obj); + return vdev; + } + return NULL; +} + +VirtioStatus *qmp_x_query_virtio_status(const char *path, Error **errp) +{ + VirtIODevice *vdev; + VirtioStatus *status; + + vdev =3D virtio_device_find(path); + if (vdev =3D=3D NULL) { + error_setg(errp, "Path %s is not a VirtIODevice", path); + return NULL; + } + + status =3D g_new0(VirtioStatus, 1); + status->name =3D g_strdup(vdev->name); + status->device_id =3D vdev->device_id; + status->vhost_started =3D vdev->vhost_started; + status->guest_features =3D vdev->guest_features; + status->host_features =3D vdev->host_features; + status->backend_features =3D vdev->backend_features; + + switch (vdev->device_endian) { + case VIRTIO_DEVICE_ENDIAN_LITTLE: + status->device_endian =3D g_strdup("little"); + break; + case VIRTIO_DEVICE_ENDIAN_BIG: + status->device_endian =3D g_strdup("big"); + break; + default: + status->device_endian =3D g_strdup("unknown"); + break; + } + + status->num_vqs =3D virtio_get_num_queues(vdev); + status->status =3D vdev->status; + status->isr =3D vdev->isr; + status->queue_sel =3D vdev->queue_sel; + status->vm_running =3D vdev->vm_running; + status->broken =3D vdev->broken; + status->disabled =3D vdev->disabled; + status->use_started =3D vdev->use_started; + status->started =3D vdev->started; + status->start_on_kick =3D vdev->start_on_kick; + status->disable_legacy_check =3D vdev->disable_legacy_check; + status->bus_name =3D g_strdup(vdev->bus_name); + status->use_guest_notifier_mask =3D vdev->use_guest_notifier_mask; + status->has_vhost_dev =3D vdev->vhost_started; + + if (vdev->vhost_started) { + VirtioDeviceClass *vdc =3D VIRTIO_DEVICE_GET_CLASS(vdev); + struct vhost_dev *hdev =3D vdc->get_vhost(vdev); + + status->vhost_dev =3D g_new0(VhostStatus, 1); + status->vhost_dev->n_mem_sections =3D hdev->n_mem_sections; + status->vhost_dev->n_tmp_sections =3D hdev->n_tmp_sections; + status->vhost_dev->nvqs =3D hdev->nvqs; + status->vhost_dev->vq_index =3D hdev->vq_index; + status->vhost_dev->features =3D hdev->features; + status->vhost_dev->acked_features =3D hdev->acked_features; + status->vhost_dev->backend_features =3D hdev->backend_features; + status->vhost_dev->protocol_features =3D hdev->protocol_features; + status->vhost_dev->max_queues =3D hdev->max_queues; + status->vhost_dev->backend_cap =3D hdev->backend_cap; + status->vhost_dev->log_enabled =3D hdev->log_enabled; + status->vhost_dev->log_size =3D hdev->log_size; + } + + return status; +} + static const TypeInfo virtio_device_info =3D { .name =3D TYPE_VIRTIO_DEVICE, .parent =3D TYPE_DEVICE, --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665426912; cv=none; d=zohomail.com; s=zohoarc; b=VMIJIe6vxm9ESObMW5YG6vBbfCEtOZiefNs1SRywh/Dlba89lQmDlRt9dW7/jeyryINqHg7fuavCw4dpvTaK+snN+AveZFbaySEtogCe891sF7HhSELT8UivpktVjEGXBBhVfATddYq45z35M8WV/+UkqEf5mdzvdJuILa2eUyA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665426912; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WBlOrpQpKsF4J+lMEP6yJyXmp3pWOVsxYQe/9UUnuag=; b=SSDGVLICd2lf4EwcEW4lLtQxhws/dAzFjvRS7h2ixBD3pVSh9MwItG7ydo0ZA+j/GR6FfeV9/66JrKbt7bhgvTMyMdUHYwd79oozYioPQgyk5NvdbwCBre5eclEvx+pD6r+G1EKdxy9ohcVCgUCyaoVoJn1zmxHlcQ6boC4iwkw= 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 1665426912820750.2620124408246; Mon, 10 Oct 2022 11:35:12 -0700 (PDT) Received: from localhost ([::1]:44516 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxcM-0003sZ-8Y for importer@patchew.org; Mon, 10 Oct 2022 14:35:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55366) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcf-0003LN-7J for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:27 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:34276) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcV-0007G3-I0 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:24 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-125-GIEUizQVOD2dB3yWssfCww-1; Mon, 10 Oct 2022 13:31:08 -0400 Received: by mail-wm1-f70.google.com with SMTP id k21-20020a7bc415000000b003b4fac53006so3262006wmi.3 for ; Mon, 10 Oct 2022 10:31:08 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id l2-20020a05600c4f0200b003a682354f63sm18157895wmq.11.2022.10.10.10.31.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423070; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=WBlOrpQpKsF4J+lMEP6yJyXmp3pWOVsxYQe/9UUnuag=; b=b5AKqBN/kk4gaQSZrLj+kzQ1C3IrWoGOasAjSWOLjfnzZsiNC3rSfqOH1vyjt79XOzBY9P ijLbgh6g3jy1nGnFpzBhanYYqr+0/knmgr/Qv137crtFoPGnZ1ezMmx3KQgR4FcitdCI// FB+MzrapZy0+enUUNBH3N9EEf4zwRQY= X-MC-Unique: GIEUizQVOD2dB3yWssfCww-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=WBlOrpQpKsF4J+lMEP6yJyXmp3pWOVsxYQe/9UUnuag=; b=DbkwctS6/6LLDY+UKkjsQpqfKL5r9XH3s1LWTMvaZMQeqOCmIPVZkXUc3tJRfwkboK k5Q4/ClIJp7FiZI7JCee4tyyybsr0qvTKrGew4CYOdfsK50GzP0813z6RnrZTr48YKKD etuK8RiUovVPRyG5v/xPRqMAMqK8GW0xRpL1LweyOHhltgoc+cJ682FJxOfuHv/50yCR nEDhgMbcugn3CgG1v6uKDeiPO0CFOWUCAQH9URr4euSBkJxb0qHcLhMnLVb4GI0USMAa aXYMHeBfZseSgC+bjyl8ZgToFVYONt5UXVzUENH+Zc9CVRQ0QRkuoo1+z8Rn+dpb9gFt GC3g== X-Gm-Message-State: ACrzQf2Y1Mk9ZJdSWHBAfgyvHjG0T86bprwG6gIvHHuIiguEKmiALFLS Ga9PmQFhEtOX38cQWcCEAfTIX3LRcgX66HofUQFK8vHC9xpNcTmKtkHSfbjtGHdDX6E7E7Ri88Y iN5+2l95rWbMThJIT/RGT5bnHUjMgXKDTNPTq92vFKXirt9zGKqnYudGo6K09 X-Received: by 2002:a05:600c:1c82:b0:3c6:c225:eb99 with SMTP id k2-20020a05600c1c8200b003c6c225eb99mr540387wms.23.1665423066660; Mon, 10 Oct 2022 10:31:06 -0700 (PDT) X-Google-Smtp-Source: AMsMyM76VbPxQEJzrQCxfKaPubmI/ywvthMU48xAdBJUqEGnPXuNJiqU059Ll7Gh6hWQ4/kNt4wn7Q== X-Received: by 2002:a05:600c:1c82:b0:3c6:c225:eb99 with SMTP id k2-20020a05600c1c8200b003c6c225eb99mr540329wms.23.1665423065507; Mon, 10 Oct 2022 10:31:05 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:00 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Laurent Vivier , Jonah Palmer , Eric Blake , Markus Armbruster Subject: [PULL 32/55] qmp: decode feature & status bits in virtio-status Message-ID: <20221010172813.204597-33-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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, T_SPF_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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665426913692100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Laurent Vivier Display feature names instead of bitmaps for host, guest, and backend for VirtIODevices. Display status names instead of bitmaps for VirtIODevices. Display feature names instead of bitmaps for backend, protocol, acked, and features (hdev->features) for vhost devices. Decode features according to device ID. Decode statuses according to configuration status bitmap (config_status_map). Decode vhost user protocol features according to vhost user protocol bitmap (vhost_user_protocol_map). Transport features are on the first line. Undecoded bits (if any) are stored in a separate field. [Jonah: Several changes made to this patch from prev. version (v14): - Moved all device features mappings to hw/virtio/virtio.c - Renamed device features mappings (less generic) - Generalized @FEATURE_ENTRY macro for all device mappings - Virtio device feature map definitions include descriptions of feature bits - Moved @VHOST_USER_F_PROTOCOL_FEATURES feature bit from transport feature map to vhost-user-supported device feature mappings (blk, fs, i2c, rng, net, gpu, input, scsi, vsock) - New feature bit added for virtio-vsock: @VIRTIO_VSOCK_F_SEQPACKET - New feature bit added for virtio-iommu: @VIRTIO_IOMMU_F_BYPASS_CONFIG - New feature bit added for virtio-mem: @VIRTIO_MEM_F_UNPLUGGED_INACCESSIB= LE - New virtio transport feature bit added: @VIRTIO_F_IN_ORDER - Added device feature map definition for virtio-rng ] Signed-off-by: Laurent Vivier Signed-off-by: Jonah Palmer Message-Id: <1660220684-24909-4-git-send-email-jonah.palmer@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- qapi/virtio.json | 251 +++++++++++++-- include/hw/virtio/vhost.h | 3 + include/hw/virtio/virtio.h | 5 + hw/virtio/virtio.c | 643 ++++++++++++++++++++++++++++++++++++- 4 files changed, 874 insertions(+), 28 deletions(-) diff --git a/qapi/virtio.json b/qapi/virtio.json index c86b3bc635..c9c8201e66 100644 --- a/qapi/virtio.json +++ b/qapi/virtio.json @@ -106,10 +106,10 @@ 'n-tmp-sections': 'int', 'nvqs': 'uint32', 'vq-index': 'int', - 'features': 'uint64', - 'acked-features': 'uint64', - 'backend-features': 'uint64', - 'protocol-features': 'uint64', + 'features': 'VirtioDeviceFeatures', + 'acked-features': 'VirtioDeviceFeatures', + 'backend-features': 'VirtioDeviceFeatures', + 'protocol-features': 'VhostDeviceProtocols', 'max-queues': 'uint64', 'backend-cap': 'uint64', 'log-enabled': 'bool', @@ -176,11 +176,11 @@ 'device-id': 'uint16', 'vhost-started': 'bool', 'device-endian': 'str', - 'guest-features': 'uint64', - 'host-features': 'uint64', - 'backend-features': 'uint64', + 'guest-features': 'VirtioDeviceFeatures', + 'host-features': 'VirtioDeviceFeatures', + 'backend-features': 'VirtioDeviceFeatures', 'num-vqs': 'int', - 'status': 'uint8', + 'status': 'VirtioDeviceStatus', 'isr': 'uint8', 'queue-sel': 'uint16', 'vm-running': 'bool', @@ -222,14 +222,41 @@ # "name": "virtio-crypto", # "started": true, # "device-id": 20, -# "backend-features": 0, +# "backend-features": { +# "transports": [], +# "dev-features": [] +# }, # "start-on-kick": false, # "isr": 1, # "broken": false, -# "status": 15, +# "status": { +# "statuses": [ +# "VIRTIO_CONFIG_S_ACKNOWLEDGE: Valid virtio device found= ", +# "VIRTIO_CONFIG_S_DRIVER: Guest OS compatible with devic= e", +# "VIRTIO_CONFIG_S_FEATURES_OK: Feature negotiation compl= ete", +# "VIRTIO_CONFIG_S_DRIVER_OK: Driver setup and ready" +# ] +# }, # "num-vqs": 2, -# "guest-features": 5100273664, -# "host-features": 6325010432, +# "guest-features": { +# "dev-features": [], +# "transports": [ +# "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields en= abled", +# "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supp= orted", +# "VIRTIO_F_VERSION_1: Device compliant for v1 spec (lega= cy)" +# ] +# }, +# "host-features": { +# "unknown-dev-features": 1073741824, +# "dev-features": [], +# "transports": [ +# "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields en= abled", +# "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supp= orted", +# "VIRTIO_F_VERSION_1: Device compliant for v1 spec (lega= cy)", +# "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. la= youts", +# "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out = of avail. descs. on VQ" +# ] +# }, # "use-guest-notifier-mask": true, # "vm-running": true, # "queue-sel": 1, @@ -257,22 +284,147 @@ # "max-queues": 1, # "backend-cap": 2, # "log-size": 0, -# "backend-features": 0, +# "backend-features": { +# "dev-features": [], +# "transports": [] +# }, # "nvqs": 2, -# "protocol-features": 0, +# "protocol-features": { +# "protocols": [] +# }, # "vq-index": 0, # "log-enabled": false, -# "acked-features": 5100306432, -# "features": 13908344832 +# "acked-features": { +# "dev-features": [ +# "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive b= uffers" +# ], +# "transports": [ +# "VIRTIO_RING_F_EVENT_IDX: Used & avail. event field= s enabled", +# "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors = supported", +# "VIRTIO_F_VERSION_1: Device compliant for v1 spec (= legacy)" +# ] +# }, +# "features": { +# "dev-features": [ +# "VHOST_F_LOG_ALL: Logging write descriptors support= ed", +# "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive b= uffers" +# ], +# "transports": [ +# "VIRTIO_RING_F_EVENT_IDX: Used & avail. event field= s enabled", +# "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors = supported", +# "VIRTIO_F_IOMMU_PLATFORM: Device can be used on IOM= MU platform", +# "VIRTIO_F_VERSION_1: Device compliant for v1 spec (= legacy)", +# "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc= . layouts", +# "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs = out of avail. descs. on VQ" +# ] +# } +# }, +# "backend-features": { +# "dev-features": [ +# "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol fe= atures negotation supported", +# "VIRTIO_NET_F_GSO: Handling GSO-type packets supported", +# "VIRTIO_NET_F_CTRL_MAC_ADDR: MAC address set through co= ntrol channel", +# "VIRTIO_NET_F_GUEST_ANNOUNCE: Driver sending gratuitous= packets supported", +# "VIRTIO_NET_F_CTRL_RX_EXTRA: Extra RX mode control supp= orted", +# "VIRTIO_NET_F_CTRL_VLAN: Control channel VLAN filtering= supported", +# "VIRTIO_NET_F_CTRL_RX: Control channel RX mode supporte= d", +# "VIRTIO_NET_F_CTRL_VQ: Control channel available", +# "VIRTIO_NET_F_STATUS: Configuration status field availa= ble", +# "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffe= rs", +# "VIRTIO_NET_F_HOST_UFO: Device can receive UFO", +# "VIRTIO_NET_F_HOST_ECN: Device can receive TSO with ECN= ", +# "VIRTIO_NET_F_HOST_TSO6: Device can receive TSOv6", +# "VIRTIO_NET_F_HOST_TSO4: Device can receive TSOv4", +# "VIRTIO_NET_F_GUEST_UFO: Driver can receive UFO", +# "VIRTIO_NET_F_GUEST_ECN: Driver can receive TSO with EC= N", +# "VIRTIO_NET_F_GUEST_TSO6: Driver can receive TSOv6", +# "VIRTIO_NET_F_GUEST_TSO4: Driver can receive TSOv4", +# "VIRTIO_NET_F_MAC: Device has given MAC address", +# "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: Control channel offl= oading reconfig. supported", +# "VIRTIO_NET_F_GUEST_CSUM: Driver handling packets with = partial checksum supported", +# "VIRTIO_NET_F_CSUM: Device handling packets with partia= l checksum supported" +# ], +# "transports": [ +# "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields en= abled", +# "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supp= orted", +# "VIRTIO_F_VERSION_1: Device compliant for v1 spec (lega= cy)", +# "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. la= youts", +# "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out = of avail. descs. on VQ" +# ] # }, -# "backend-features": 6337593319, # "start-on-kick": false, # "isr": 1, # "broken": false, -# "status": 15, +# "status": { +# "statuses": [ +# "VIRTIO_CONFIG_S_ACKNOWLEDGE: Valid virtio device found= ", +# "VIRTIO_CONFIG_S_DRIVER: Guest OS compatible with devic= e", +# "VIRTIO_CONFIG_S_FEATURES_OK: Feature negotiation compl= ete", +# "VIRTIO_CONFIG_S_DRIVER_OK: Driver setup and ready" +# ] +# }, # "num-vqs": 3, -# "guest-features": 5111807911, -# "host-features": 6337593319, +# "guest-features": { +# "dev-features": [ +# "VIRTIO_NET_F_CTRL_MAC_ADDR: MAC address set through co= ntrol channel", +# "VIRTIO_NET_F_GUEST_ANNOUNCE: Driver sending gratuitous= packets supported", +# "VIRTIO_NET_F_CTRL_VLAN: Control channel VLAN filtering= supported", +# "VIRTIO_NET_F_CTRL_RX: Control channel RX mode supporte= d", +# "VIRTIO_NET_F_CTRL_VQ: Control channel available", +# "VIRTIO_NET_F_STATUS: Configuration status field availa= ble", +# "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffe= rs", +# "VIRTIO_NET_F_HOST_UFO: Device can receive UFO", +# "VIRTIO_NET_F_HOST_ECN: Device can receive TSO with ECN= ", +# "VIRTIO_NET_F_HOST_TSO6: Device can receive TSOv6", +# "VIRTIO_NET_F_HOST_TSO4: Device can receive TSOv4", +# "VIRTIO_NET_F_GUEST_UFO: Driver can receive UFO", +# "VIRTIO_NET_F_GUEST_ECN: Driver can receive TSO with EC= N", +# "VIRTIO_NET_F_GUEST_TSO6: Driver can receive TSOv6", +# "VIRTIO_NET_F_GUEST_TSO4: Driver can receive TSOv4", +# "VIRTIO_NET_F_MAC: Device has given MAC address", +# "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: Control channel offl= oading reconfig. supported", +# "VIRTIO_NET_F_GUEST_CSUM: Driver handling packets with = partial checksum supported", +# "VIRTIO_NET_F_CSUM: Device handling packets with partia= l checksum supported" +# ], +# "transports": [ +# "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields en= abled", +# "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supp= orted", +# "VIRTIO_F_VERSION_1: Device compliant for v1 spec (lega= cy)" +# ] +# }, +# "host-features": { +# "dev-features": [ +# "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol fe= atures negotation supported", +# "VIRTIO_NET_F_GSO: Handling GSO-type packets supported", +# "VIRTIO_NET_F_CTRL_MAC_ADDR: MAC address set through co= ntrol channel", +# "VIRTIO_NET_F_GUEST_ANNOUNCE: Driver sending gratuitous= packets supported", +# "VIRTIO_NET_F_CTRL_RX_EXTRA: Extra RX mode control supp= orted", +# "VIRTIO_NET_F_CTRL_VLAN: Control channel VLAN filtering= supported", +# "VIRTIO_NET_F_CTRL_RX: Control channel RX mode supporte= d", +# "VIRTIO_NET_F_CTRL_VQ: Control channel available", +# "VIRTIO_NET_F_STATUS: Configuration status field availa= ble", +# "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffe= rs", +# "VIRTIO_NET_F_HOST_UFO: Device can receive UFO", +# "VIRTIO_NET_F_HOST_ECN: Device can receive TSO with ECN= ", +# "VIRTIO_NET_F_HOST_TSO6: Device can receive TSOv6", +# "VIRTIO_NET_F_HOST_TSO4: Device can receive TSOv4", +# "VIRTIO_NET_F_GUEST_UFO: Driver can receive UFO", +# "VIRTIO_NET_F_GUEST_ECN: Driver can receive TSO with EC= N", +# "VIRTIO_NET_F_GUEST_TSO6: Driver can receive TSOv6", +# "VIRTIO_NET_F_GUEST_TSO4: Driver can receive TSOv4", +# "VIRTIO_NET_F_MAC: Device has given MAC address", +# "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: Control channel offl= oading reconfig. supported", +# "VIRTIO_NET_F_GUEST_CSUM: Driver handling packets with = partial checksum supported", +# "VIRTIO_NET_F_CSUM: Device handling packets with partia= l checksum supported" +# ], +# "transports": [ +# "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields en= abled", +# "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supp= orted", +# "VIRTIO_F_VERSION_1: Device compliant for v1 spec (lega= cy)", +# "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. la= youts", +# "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out = of avail. descs. on VQ" +# ] +# }, # "use-guest-notifier-mask": true, # "vm-running": true, # "queue-sel": 2, @@ -288,3 +440,62 @@ 'data': { 'path': 'str' }, 'returns': 'VirtioStatus', 'features': [ 'unstable' ] } + +## +# @VirtioDeviceStatus: +# +# A structure defined to list the configuration statuses of a virtio +# device +# +# @statuses: List of decoded configuration statuses of the virtio +# device +# +# @unknown-statuses: Virtio device statuses bitmap that have not been deco= ded +# +# Since: 7.1 +## + +{ 'struct': 'VirtioDeviceStatus', + 'data': { 'statuses': [ 'str' ], + '*unknown-statuses': 'uint8' } } + +## +# @VhostDeviceProtocols: +# +# A structure defined to list the vhost user protocol features of a +# Vhost User device +# +# @protocols: List of decoded vhost user protocol features of a vhost +# user device +# +# @unknown-protocols: Vhost user device protocol features bitmap that +# have not been decoded +# +# Since: 7.1 +## + +{ 'struct': 'VhostDeviceProtocols', + 'data': { 'protocols': [ 'str' ], + '*unknown-protocols': 'uint64' } } + +## +# @VirtioDeviceFeatures: +# +# The common fields that apply to most Virtio devices. Some devices +# may not have their own device-specific features (e.g. virtio-rng). +# +# @transports: List of transport features of the virtio device +# +# @dev-features: List of device-specific features (if the device has +# unique features) +# +# @unknown-dev-features: Virtio device features bitmap that have not +# been decoded +# +# Since: 7.1 +## + +{ 'struct': 'VirtioDeviceFeatures', + 'data': { 'transports': [ 'str' ], + '*dev-features': [ 'str' ], + '*unknown-dev-features': 'uint64' } } diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h index 61b957e927..d7eb557885 100644 --- a/include/hw/virtio/vhost.h +++ b/include/hw/virtio/vhost.h @@ -5,6 +5,9 @@ #include "hw/virtio/virtio.h" #include "exec/memory.h" =20 +#define VHOST_F_DEVICE_IOTLB 63 +#define VHOST_USER_F_PROTOCOL_FEATURES 30 + /* Generic structures common for any vhost based device. */ =20 struct vhost_inflight { diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index 9eeb958e39..f41b4a7e64 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -82,6 +82,11 @@ typedef struct VirtQueueElement #define TYPE_VIRTIO_DEVICE "virtio-device" OBJECT_DECLARE_TYPE(VirtIODevice, VirtioDeviceClass, VIRTIO_DEVICE) =20 +typedef struct { + int virtio_bit; + const char *feature_desc; +} qmp_virtio_feature_map_t; + enum virtio_device_endian { VIRTIO_DEVICE_ENDIAN_UNKNOWN, VIRTIO_DEVICE_ENDIAN_LITTLE, diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 696e19126a..6c530567b0 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -34,10 +34,433 @@ #include "sysemu/dma.h" #include "sysemu/runstate.h" #include "standard-headers/linux/virtio_ids.h" +#include "standard-headers/linux/vhost_types.h" +#include "standard-headers/linux/virtio_blk.h" +#include "standard-headers/linux/virtio_console.h" +#include "standard-headers/linux/virtio_gpu.h" +#include "standard-headers/linux/virtio_net.h" +#include "standard-headers/linux/virtio_scsi.h" +#include "standard-headers/linux/virtio_i2c.h" +#include "standard-headers/linux/virtio_balloon.h" +#include "standard-headers/linux/virtio_iommu.h" +#include "standard-headers/linux/virtio_mem.h" +#include "standard-headers/linux/virtio_vsock.h" +#include CONFIG_DEVICES =20 /* QAPI list of realized VirtIODevices */ static QTAILQ_HEAD(, VirtIODevice) virtio_list; =20 +/* + * Maximum size of virtio device config space + */ +#define VHOST_USER_MAX_CONFIG_SIZE 256 + +#define FEATURE_ENTRY(name, desc) (qmp_virtio_feature_map_t) \ + { .virtio_bit =3D name, .feature_desc =3D desc } + +enum VhostUserProtocolFeature { + VHOST_USER_PROTOCOL_F_MQ =3D 0, + VHOST_USER_PROTOCOL_F_LOG_SHMFD =3D 1, + VHOST_USER_PROTOCOL_F_RARP =3D 2, + VHOST_USER_PROTOCOL_F_REPLY_ACK =3D 3, + VHOST_USER_PROTOCOL_F_NET_MTU =3D 4, + VHOST_USER_PROTOCOL_F_SLAVE_REQ =3D 5, + VHOST_USER_PROTOCOL_F_CROSS_ENDIAN =3D 6, + VHOST_USER_PROTOCOL_F_CRYPTO_SESSION =3D 7, + VHOST_USER_PROTOCOL_F_PAGEFAULT =3D 8, + VHOST_USER_PROTOCOL_F_CONFIG =3D 9, + VHOST_USER_PROTOCOL_F_SLAVE_SEND_FD =3D 10, + VHOST_USER_PROTOCOL_F_HOST_NOTIFIER =3D 11, + VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD =3D 12, + VHOST_USER_PROTOCOL_F_RESET_DEVICE =3D 13, + VHOST_USER_PROTOCOL_F_INBAND_NOTIFICATIONS =3D 14, + VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS =3D 15, + VHOST_USER_PROTOCOL_F_MAX +}; + +/* Virtio transport features mapping */ +static qmp_virtio_feature_map_t virtio_transport_map[] =3D { + /* Virtio device transport features */ +#ifndef VIRTIO_CONFIG_NO_LEGACY + FEATURE_ENTRY(VIRTIO_F_NOTIFY_ON_EMPTY, \ + "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out of avai= l. " + "descs. on VQ"), + FEATURE_ENTRY(VIRTIO_F_ANY_LAYOUT, \ + "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. layouts"), +#endif /* !VIRTIO_CONFIG_NO_LEGACY */ + FEATURE_ENTRY(VIRTIO_F_VERSION_1, \ + "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)"), + FEATURE_ENTRY(VIRTIO_F_IOMMU_PLATFORM, \ + "VIRTIO_F_IOMMU_PLATFORM: Device can be used on IOMMU platform= "), + FEATURE_ENTRY(VIRTIO_F_RING_PACKED, \ + "VIRTIO_F_RING_PACKED: Device supports packed VQ layout"), + FEATURE_ENTRY(VIRTIO_F_IN_ORDER, \ + "VIRTIO_F_IN_ORDER: Device uses buffers in same order as made " + "available by driver"), + FEATURE_ENTRY(VIRTIO_F_ORDER_PLATFORM, \ + "VIRTIO_F_ORDER_PLATFORM: Memory accesses ordered by platform"= ), + FEATURE_ENTRY(VIRTIO_F_SR_IOV, \ + "VIRTIO_F_SR_IOV: Device supports single root I/O virtualizati= on"), + /* Virtio ring transport features */ + FEATURE_ENTRY(VIRTIO_RING_F_INDIRECT_DESC, \ + "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported"), + FEATURE_ENTRY(VIRTIO_RING_F_EVENT_IDX, \ + "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled"), + { -1, "" } +}; + +/* Vhost-user protocol features mapping */ +static qmp_virtio_feature_map_t vhost_user_protocol_map[] =3D { + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_MQ, \ + "VHOST_USER_PROTOCOL_F_MQ: Multiqueue protocol supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_LOG_SHMFD, \ + "VHOST_USER_PROTOCOL_F_LOG_SHMFD: Shared log memory fd support= ed"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_RARP, \ + "VHOST_USER_PROTOCOL_F_RARP: Vhost-user back-end RARP broadcas= ting " + "supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_REPLY_ACK, \ + "VHOST_USER_PROTOCOL_F_REPLY_ACK: Requested operation status a= ck. " + "supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_NET_MTU, \ + "VHOST_USER_PROTOCOL_F_NET_MTU: Expose host MTU to guest suppo= rted"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_SLAVE_REQ, \ + "VHOST_USER_PROTOCOL_F_SLAVE_REQ: Socket fd for back-end initi= ated " + "requests supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_CROSS_ENDIAN, \ + "VHOST_USER_PROTOCOL_F_CROSS_ENDIAN: Endianness of VQs for leg= acy " + "devices supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_CRYPTO_SESSION, \ + "VHOST_USER_PROTOCOL_F_CRYPTO_SESSION: Session creation for cr= ypto " + "operations supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_PAGEFAULT, \ + "VHOST_USER_PROTOCOL_F_PAGEFAULT: Request servicing on userfau= ltfd " + "for accessed pages supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_CONFIG, \ + "VHOST_USER_PROTOCOL_F_CONFIG: Vhost-user messaging for virtio= " + "device configuration space supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_SLAVE_SEND_FD, \ + "VHOST_USER_PROTOCOL_F_SLAVE_SEND_FD: Slave fd communication " + "channel supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_HOST_NOTIFIER, \ + "VHOST_USER_PROTOCOL_F_HOST_NOTIFIER: Host notifiers for speci= fied " + "VQs supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD, \ + "VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD: Shared inflight I/O buf= fers " + "supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_RESET_DEVICE, \ + "VHOST_USER_PROTOCOL_F_RESET_DEVICE: Disabling all rings and " + "resetting internal device state supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_INBAND_NOTIFICATIONS, \ + "VHOST_USER_PROTOCOL_F_INBAND_NOTIFICATIONS: In-band messaging= " + "supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, \ + "VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS: Configuration for " + "memory slots supported"), + { -1, "" } +}; + +/* virtio device configuration statuses */ +static qmp_virtio_feature_map_t virtio_config_status_map[] =3D { + FEATURE_ENTRY(VIRTIO_CONFIG_S_DRIVER_OK, \ + "VIRTIO_CONFIG_S_DRIVER_OK: Driver setup and ready"), + FEATURE_ENTRY(VIRTIO_CONFIG_S_FEATURES_OK, \ + "VIRTIO_CONFIG_S_FEATURES_OK: Feature negotiation complete"), + FEATURE_ENTRY(VIRTIO_CONFIG_S_DRIVER, \ + "VIRTIO_CONFIG_S_DRIVER: Guest OS compatible with device"), + FEATURE_ENTRY(VIRTIO_CONFIG_S_NEEDS_RESET, \ + "VIRTIO_CONFIG_S_NEEDS_RESET: Irrecoverable error, device need= s " + "reset"), + FEATURE_ENTRY(VIRTIO_CONFIG_S_FAILED, \ + "VIRTIO_CONFIG_S_FAILED: Error in guest, device failed"), + FEATURE_ENTRY(VIRTIO_CONFIG_S_ACKNOWLEDGE, \ + "VIRTIO_CONFIG_S_ACKNOWLEDGE: Valid virtio device found"), + { -1, "" } +}; + +/* virtio-blk features mapping */ +qmp_virtio_feature_map_t virtio_blk_feature_map[] =3D { + FEATURE_ENTRY(VIRTIO_BLK_F_SIZE_MAX, \ + "VIRTIO_BLK_F_SIZE_MAX: Max segment size is size_max"), + FEATURE_ENTRY(VIRTIO_BLK_F_SEG_MAX, \ + "VIRTIO_BLK_F_SEG_MAX: Max segments in a request is seg_max"), + FEATURE_ENTRY(VIRTIO_BLK_F_GEOMETRY, \ + "VIRTIO_BLK_F_GEOMETRY: Legacy geometry available"), + FEATURE_ENTRY(VIRTIO_BLK_F_RO, \ + "VIRTIO_BLK_F_RO: Device is read-only"), + FEATURE_ENTRY(VIRTIO_BLK_F_BLK_SIZE, \ + "VIRTIO_BLK_F_BLK_SIZE: Block size of disk available"), + FEATURE_ENTRY(VIRTIO_BLK_F_TOPOLOGY, \ + "VIRTIO_BLK_F_TOPOLOGY: Topology information available"), + FEATURE_ENTRY(VIRTIO_BLK_F_MQ, \ + "VIRTIO_BLK_F_MQ: Multiqueue supported"), + FEATURE_ENTRY(VIRTIO_BLK_F_DISCARD, \ + "VIRTIO_BLK_F_DISCARD: Discard command supported"), + FEATURE_ENTRY(VIRTIO_BLK_F_WRITE_ZEROES, \ + "VIRTIO_BLK_F_WRITE_ZEROES: Write zeroes command supported"), +#ifndef VIRTIO_BLK_NO_LEGACY + FEATURE_ENTRY(VIRTIO_BLK_F_BARRIER, \ + "VIRTIO_BLK_F_BARRIER: Request barriers supported"), + FEATURE_ENTRY(VIRTIO_BLK_F_SCSI, \ + "VIRTIO_BLK_F_SCSI: SCSI packet commands supported"), + FEATURE_ENTRY(VIRTIO_BLK_F_FLUSH, \ + "VIRTIO_BLK_F_FLUSH: Flush command supported"), + FEATURE_ENTRY(VIRTIO_BLK_F_CONFIG_WCE, \ + "VIRTIO_BLK_F_CONFIG_WCE: Cache writeback and writethrough mod= es " + "supported"), +#endif /* !VIRTIO_BLK_NO_LEGACY */ + FEATURE_ENTRY(VHOST_F_LOG_ALL, \ + "VHOST_F_LOG_ALL: Logging write descriptors supported"), + FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ + "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " + "negotiation supported"), + { -1, "" } +}; + +/* virtio-serial features mapping */ +qmp_virtio_feature_map_t virtio_serial_feature_map[] =3D { + FEATURE_ENTRY(VIRTIO_CONSOLE_F_SIZE, \ + "VIRTIO_CONSOLE_F_SIZE: Host providing console size"), + FEATURE_ENTRY(VIRTIO_CONSOLE_F_MULTIPORT, \ + "VIRTIO_CONSOLE_F_MULTIPORT: Multiple ports for device support= ed"), + FEATURE_ENTRY(VIRTIO_CONSOLE_F_EMERG_WRITE, \ + "VIRTIO_CONSOLE_F_EMERG_WRITE: Emergency write supported"), + { -1, "" } +}; + +/* virtio-gpu features mapping */ +qmp_virtio_feature_map_t virtio_gpu_feature_map[] =3D { + FEATURE_ENTRY(VIRTIO_GPU_F_VIRGL, \ + "VIRTIO_GPU_F_VIRGL: Virgl 3D mode supported"), + FEATURE_ENTRY(VIRTIO_GPU_F_EDID, \ + "VIRTIO_GPU_F_EDID: EDID metadata supported"), + FEATURE_ENTRY(VIRTIO_GPU_F_RESOURCE_UUID, \ + "VIRTIO_GPU_F_RESOURCE_UUID: Resource UUID assigning supported= "), + FEATURE_ENTRY(VIRTIO_GPU_F_RESOURCE_BLOB, \ + "VIRTIO_GPU_F_RESOURCE_BLOB: Size-based blob resources support= ed"), + FEATURE_ENTRY(VIRTIO_GPU_F_CONTEXT_INIT, \ + "VIRTIO_GPU_F_CONTEXT_INIT: Context types and synchronization " + "timelines supported"), + FEATURE_ENTRY(VHOST_F_LOG_ALL, \ + "VHOST_F_LOG_ALL: Logging write descriptors supported"), + FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ + "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " + "negotiation supported"), + { -1, "" } +}; + +/* virtio-input features mapping */ +qmp_virtio_feature_map_t virtio_input_feature_map[] =3D { + FEATURE_ENTRY(VHOST_F_LOG_ALL, \ + "VHOST_F_LOG_ALL: Logging write descriptors supported"), + FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ + "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " + "negotiation supported"), + { -1, "" } +}; + +/* virtio-net features mapping */ +qmp_virtio_feature_map_t virtio_net_feature_map[] =3D { + FEATURE_ENTRY(VIRTIO_NET_F_CSUM, \ + "VIRTIO_NET_F_CSUM: Device handling packets with partial check= sum " + "supported"), + FEATURE_ENTRY(VIRTIO_NET_F_GUEST_CSUM, \ + "VIRTIO_NET_F_GUEST_CSUM: Driver handling packets with partial= " + "checksum supported"), + FEATURE_ENTRY(VIRTIO_NET_F_CTRL_GUEST_OFFLOADS, \ + "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: Control channel offloading " + "reconfig. supported"), + FEATURE_ENTRY(VIRTIO_NET_F_MTU, \ + "VIRTIO_NET_F_MTU: Device max MTU reporting supported"), + FEATURE_ENTRY(VIRTIO_NET_F_MAC, \ + "VIRTIO_NET_F_MAC: Device has given MAC address"), + FEATURE_ENTRY(VIRTIO_NET_F_GUEST_TSO4, \ + "VIRTIO_NET_F_GUEST_TSO4: Driver can receive TSOv4"), + FEATURE_ENTRY(VIRTIO_NET_F_GUEST_TSO6, \ + "VIRTIO_NET_F_GUEST_TSO6: Driver can receive TSOv6"), + FEATURE_ENTRY(VIRTIO_NET_F_GUEST_ECN, \ + "VIRTIO_NET_F_GUEST_ECN: Driver can receive TSO with ECN"), + FEATURE_ENTRY(VIRTIO_NET_F_GUEST_UFO, \ + "VIRTIO_NET_F_GUEST_UFO: Driver can receive UFO"), + FEATURE_ENTRY(VIRTIO_NET_F_HOST_TSO4, \ + "VIRTIO_NET_F_HOST_TSO4: Device can receive TSOv4"), + FEATURE_ENTRY(VIRTIO_NET_F_HOST_TSO6, \ + "VIRTIO_NET_F_HOST_TSO6: Device can receive TSOv6"), + FEATURE_ENTRY(VIRTIO_NET_F_HOST_ECN, \ + "VIRTIO_NET_F_HOST_ECN: Device can receive TSO with ECN"), + FEATURE_ENTRY(VIRTIO_NET_F_HOST_UFO, \ + "VIRTIO_NET_F_HOST_UFO: Device can receive UFO"), + FEATURE_ENTRY(VIRTIO_NET_F_MRG_RXBUF, \ + "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers"), + FEATURE_ENTRY(VIRTIO_NET_F_STATUS, \ + "VIRTIO_NET_F_STATUS: Configuration status field available"), + FEATURE_ENTRY(VIRTIO_NET_F_CTRL_VQ, \ + "VIRTIO_NET_F_CTRL_VQ: Control channel available"), + FEATURE_ENTRY(VIRTIO_NET_F_CTRL_RX, \ + "VIRTIO_NET_F_CTRL_RX: Control channel RX mode supported"), + FEATURE_ENTRY(VIRTIO_NET_F_CTRL_VLAN, \ + "VIRTIO_NET_F_CTRL_VLAN: Control channel VLAN filtering suppor= ted"), + FEATURE_ENTRY(VIRTIO_NET_F_CTRL_RX_EXTRA, \ + "VIRTIO_NET_F_CTRL_RX_EXTRA: Extra RX mode control supported"), + FEATURE_ENTRY(VIRTIO_NET_F_GUEST_ANNOUNCE, \ + "VIRTIO_NET_F_GUEST_ANNOUNCE: Driver sending gratuitous packet= s " + "supported"), + FEATURE_ENTRY(VIRTIO_NET_F_MQ, \ + "VIRTIO_NET_F_MQ: Multiqueue with automatic receive steering " + "supported"), + FEATURE_ENTRY(VIRTIO_NET_F_CTRL_MAC_ADDR, \ + "VIRTIO_NET_F_CTRL_MAC_ADDR: MAC address set through control " + "channel"), + FEATURE_ENTRY(VIRTIO_NET_F_HASH_REPORT, \ + "VIRTIO_NET_F_HASH_REPORT: Hash reporting supported"), + FEATURE_ENTRY(VIRTIO_NET_F_RSS, \ + "VIRTIO_NET_F_RSS: RSS RX steering supported"), + FEATURE_ENTRY(VIRTIO_NET_F_RSC_EXT, \ + "VIRTIO_NET_F_RSC_EXT: Extended coalescing info supported"), + FEATURE_ENTRY(VIRTIO_NET_F_STANDBY, \ + "VIRTIO_NET_F_STANDBY: Device acting as standby for primary " + "device with same MAC addr. supported"), + FEATURE_ENTRY(VIRTIO_NET_F_SPEED_DUPLEX, \ + "VIRTIO_NET_F_SPEED_DUPLEX: Device set linkspeed and duplex"), +#ifndef VIRTIO_NET_NO_LEGACY + FEATURE_ENTRY(VIRTIO_NET_F_GSO, \ + "VIRTIO_NET_F_GSO: Handling GSO-type packets supported"), +#endif /* !VIRTIO_NET_NO_LEGACY */ + FEATURE_ENTRY(VHOST_NET_F_VIRTIO_NET_HDR, \ + "VHOST_NET_F_VIRTIO_NET_HDR: Virtio-net headers for RX and TX " + "packets supported"), + FEATURE_ENTRY(VHOST_F_LOG_ALL, \ + "VHOST_F_LOG_ALL: Logging write descriptors supported"), + FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ + "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " + "negotiation supported"), + { -1, "" } +}; + +/* virtio-scsi features mapping */ +qmp_virtio_feature_map_t virtio_scsi_feature_map[] =3D { + FEATURE_ENTRY(VIRTIO_SCSI_F_INOUT, \ + "VIRTIO_SCSI_F_INOUT: Requests including read and writable dat= a " + "buffers suppoted"), + FEATURE_ENTRY(VIRTIO_SCSI_F_HOTPLUG, \ + "VIRTIO_SCSI_F_HOTPLUG: Reporting and handling hot-plug events= " + "supported"), + FEATURE_ENTRY(VIRTIO_SCSI_F_CHANGE, \ + "VIRTIO_SCSI_F_CHANGE: Reporting and handling LUN changes " + "supported"), + FEATURE_ENTRY(VIRTIO_SCSI_F_T10_PI, \ + "VIRTIO_SCSI_F_T10_PI: T10 info included in request header"), + FEATURE_ENTRY(VHOST_F_LOG_ALL, \ + "VHOST_F_LOG_ALL: Logging write descriptors supported"), + FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ + "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " + "negotiation supported"), + { -1, "" } +}; + +/* virtio/vhost-user-fs features mapping */ +qmp_virtio_feature_map_t virtio_fs_feature_map[] =3D { + FEATURE_ENTRY(VHOST_F_LOG_ALL, \ + "VHOST_F_LOG_ALL: Logging write descriptors supported"), + FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ + "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " + "negotiation supported"), + { -1, "" } +}; + +/* virtio/vhost-user-i2c features mapping */ +qmp_virtio_feature_map_t virtio_i2c_feature_map[] =3D { + FEATURE_ENTRY(VIRTIO_I2C_F_ZERO_LENGTH_REQUEST, \ + "VIRTIO_I2C_F_ZERO_LEGNTH_REQUEST: Zero length requests suppor= ted"), + FEATURE_ENTRY(VHOST_F_LOG_ALL, \ + "VHOST_F_LOG_ALL: Logging write descriptors supported"), + FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ + "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " + "negotiation supported"), + { -1, "" } +}; + +/* virtio/vhost-vsock features mapping */ +qmp_virtio_feature_map_t virtio_vsock_feature_map[] =3D { + FEATURE_ENTRY(VIRTIO_VSOCK_F_SEQPACKET, \ + "VIRTIO_VSOCK_F_SEQPACKET: SOCK_SEQPACKET supported"), + FEATURE_ENTRY(VHOST_F_LOG_ALL, \ + "VHOST_F_LOG_ALL: Logging write descriptors supported"), + FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ + "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " + "negotiation supported"), + { -1, "" } +}; + +/* virtio-balloon features mapping */ +qmp_virtio_feature_map_t virtio_balloon_feature_map[] =3D { + FEATURE_ENTRY(VIRTIO_BALLOON_F_MUST_TELL_HOST, \ + "VIRTIO_BALLOON_F_MUST_TELL_HOST: Tell host before reclaiming " + "pages"), + FEATURE_ENTRY(VIRTIO_BALLOON_F_STATS_VQ, \ + "VIRTIO_BALLOON_F_STATS_VQ: Guest memory stats VQ available"), + FEATURE_ENTRY(VIRTIO_BALLOON_F_DEFLATE_ON_OOM, \ + "VIRTIO_BALLOON_F_DEFLATE_ON_OOM: Deflate balloon when guest O= OM"), + FEATURE_ENTRY(VIRTIO_BALLOON_F_FREE_PAGE_HINT, \ + "VIRTIO_BALLOON_F_FREE_PAGE_HINT: VQ reporting free pages enab= led"), + FEATURE_ENTRY(VIRTIO_BALLOON_F_PAGE_POISON, \ + "VIRTIO_BALLOON_F_PAGE_POISON: Guest page poisoning enabled"), + FEATURE_ENTRY(VIRTIO_BALLOON_F_REPORTING, \ + "VIRTIO_BALLOON_F_REPORTING: Page reporting VQ enabled"), + { -1, "" } +}; + +/* virtio-crypto features mapping */ +qmp_virtio_feature_map_t virtio_crypto_feature_map[] =3D { + FEATURE_ENTRY(VHOST_F_LOG_ALL, \ + "VHOST_F_LOG_ALL: Logging write descriptors supported"), + { -1, "" } +}; + +/* virtio-iommu features mapping */ +qmp_virtio_feature_map_t virtio_iommu_feature_map[] =3D { + FEATURE_ENTRY(VIRTIO_IOMMU_F_INPUT_RANGE, \ + "VIRTIO_IOMMU_F_INPUT_RANGE: Range of available virtual addrs.= " + "available"), + FEATURE_ENTRY(VIRTIO_IOMMU_F_DOMAIN_RANGE, \ + "VIRTIO_IOMMU_F_DOMAIN_RANGE: Number of supported domains " + "available"), + FEATURE_ENTRY(VIRTIO_IOMMU_F_MAP_UNMAP, \ + "VIRTIO_IOMMU_F_MAP_UNMAP: Map and unmap requests available"), + FEATURE_ENTRY(VIRTIO_IOMMU_F_BYPASS, \ + "VIRTIO_IOMMU_F_BYPASS: Endpoints not attached to domains are = in " + "bypass mode"), + FEATURE_ENTRY(VIRTIO_IOMMU_F_PROBE, \ + "VIRTIO_IOMMU_F_PROBE: Probe requests available"), + FEATURE_ENTRY(VIRTIO_IOMMU_F_MMIO, \ + "VIRTIO_IOMMU_F_MMIO: VIRTIO_IOMMU_MAP_F_MMIO flag available"), + FEATURE_ENTRY(VIRTIO_IOMMU_F_BYPASS_CONFIG, \ + "VIRTIO_IOMMU_F_BYPASS_CONFIG: Bypass field of IOMMU config " + "available"), + { -1, "" } +}; + +/* virtio-mem features mapping */ +qmp_virtio_feature_map_t virtio_mem_feature_map[] =3D { +#ifndef CONFIG_ACPI + FEATURE_ENTRY(VIRTIO_MEM_F_ACPI_PXM, \ + "VIRTIO_MEM_F_ACPI_PXM: node_id is an ACPI PXM and is valid"), +#endif /* !CONFIG_ACPI */ + FEATURE_ENTRY(VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE, \ + "VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE: Unplugged memory cannot = be " + "accessed"), + { -1, "" } +}; + +/* virtio-rng features mapping */ +qmp_virtio_feature_map_t virtio_rng_feature_map[] =3D { + FEATURE_ENTRY(VHOST_F_LOG_ALL, \ + "VHOST_F_LOG_ALL: Logging write descriptors supported"), + FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ + "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " + "negotiation supported"), + { -1, "" } +}; + /* * The alignment to use between consumer and producer parts of vring. * x86 pagesize again. This is the default, used by transports like PCI @@ -3984,6 +4407,203 @@ static VirtIODevice *virtio_device_find(const char = *path) return NULL; } =20 +#define CONVERT_FEATURES(type, map, is_status, bitmap) \ + ({ \ + type *list =3D NULL; \ + type *node; \ + for (i =3D 0; map[i].virtio_bit !=3D -1; i++) { \ + if (is_status) { \ + bit =3D map[i].virtio_bit; \ + } \ + else { \ + bit =3D 1ULL << map[i].virtio_bit; \ + } \ + if ((bitmap & bit) =3D=3D 0) { \ + continue; \ + } \ + node =3D g_new0(type, 1); \ + node->value =3D g_strdup(map[i].feature_desc); \ + node->next =3D list; \ + list =3D node; \ + bitmap ^=3D bit; \ + } \ + list; \ + }) + +static VirtioDeviceStatus *qmp_decode_status(uint8_t bitmap) +{ + VirtioDeviceStatus *status; + uint8_t bit; + int i; + + status =3D g_new0(VirtioDeviceStatus, 1); + status->statuses =3D CONVERT_FEATURES(strList, virtio_config_status_ma= p, + 1, bitmap); + status->has_unknown_statuses =3D bitmap !=3D 0; + if (status->has_unknown_statuses) { + status->unknown_statuses =3D bitmap; + } + + return status; +} + +static VhostDeviceProtocols *qmp_decode_protocols(uint64_t bitmap) +{ + VhostDeviceProtocols *vhu_protocols; + uint64_t bit; + int i; + + vhu_protocols =3D g_new0(VhostDeviceProtocols, 1); + vhu_protocols->protocols =3D + CONVERT_FEATURES(strList, + vhost_user_protocol_map, 0, bitmap); + vhu_protocols->has_unknown_protocols =3D bitmap !=3D 0; + if (vhu_protocols->has_unknown_protocols) { + vhu_protocols->unknown_protocols =3D bitmap; + } + + return vhu_protocols; +} + +static VirtioDeviceFeatures *qmp_decode_features(uint16_t device_id, + uint64_t bitmap) +{ + VirtioDeviceFeatures *features; + uint64_t bit; + int i; + + features =3D g_new0(VirtioDeviceFeatures, 1); + features->has_dev_features =3D true; + + /* transport features */ + features->transports =3D CONVERT_FEATURES(strList, virtio_transport_ma= p, 0, + bitmap); + + /* device features */ + switch (device_id) { +#ifdef CONFIG_VIRTIO_SERIAL + case VIRTIO_ID_CONSOLE: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_serial_feature_map, 0, bitmap= ); + break; +#endif +#ifdef CONFIG_VIRTIO_BLK + case VIRTIO_ID_BLOCK: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_blk_feature_map, 0, bitmap); + break; +#endif +#ifdef CONFIG_VIRTIO_GPU + case VIRTIO_ID_GPU: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_gpu_feature_map, 0, bitmap); + break; +#endif +#ifdef CONFIG_VIRTIO_NET + case VIRTIO_ID_NET: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_net_feature_map, 0, bitmap); + break; +#endif +#ifdef CONFIG_VIRTIO_SCSI + case VIRTIO_ID_SCSI: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_scsi_feature_map, 0, bitmap); + break; +#endif +#ifdef CONFIG_VIRTIO_BALLOON + case VIRTIO_ID_BALLOON: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_balloon_feature_map, 0, bitma= p); + break; +#endif +#ifdef CONFIG_VIRTIO_IOMMU + case VIRTIO_ID_IOMMU: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_iommu_feature_map, 0, bitmap); + break; +#endif +#ifdef CONFIG_VIRTIO_INPUT + case VIRTIO_ID_INPUT: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_input_feature_map, 0, bitmap); + break; +#endif +#ifdef CONFIG_VHOST_USER_FS + case VIRTIO_ID_FS: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_fs_feature_map, 0, bitmap); + break; +#endif +#ifdef CONFIG_VHOST_VSOCK + case VIRTIO_ID_VSOCK: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_vsock_feature_map, 0, bitmap); + break; +#endif +#ifdef CONFIG_VIRTIO_CRYPTO + case VIRTIO_ID_CRYPTO: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_crypto_feature_map, 0, bitmap= ); + break; +#endif +#ifdef CONFIG_VIRTIO_MEM + case VIRTIO_ID_MEM: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_mem_feature_map, 0, bitmap); + break; +#endif +#ifdef CONFIG_VIRTIO_I2C_ADAPTER + case VIRTIO_ID_I2C_ADAPTER: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_i2c_feature_map, 0, bitmap); + break; +#endif +#ifdef CONFIG_VIRTIO_RNG + case VIRTIO_ID_RNG: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_rng_feature_map, 0, bitmap); + break; +#endif + /* No features */ + case VIRTIO_ID_9P: + case VIRTIO_ID_PMEM: + case VIRTIO_ID_IOMEM: + case VIRTIO_ID_RPMSG: + case VIRTIO_ID_CLOCK: + case VIRTIO_ID_MAC80211_WLAN: + case VIRTIO_ID_MAC80211_HWSIM: + case VIRTIO_ID_RPROC_SERIAL: + case VIRTIO_ID_MEMORY_BALLOON: + case VIRTIO_ID_CAIF: + case VIRTIO_ID_SIGNAL_DIST: + case VIRTIO_ID_PSTORE: + case VIRTIO_ID_SOUND: + case VIRTIO_ID_BT: + case VIRTIO_ID_RPMB: + case VIRTIO_ID_VIDEO_ENCODER: + case VIRTIO_ID_VIDEO_DECODER: + case VIRTIO_ID_SCMI: + case VIRTIO_ID_NITRO_SEC_MOD: + case VIRTIO_ID_WATCHDOG: + case VIRTIO_ID_CAN: + case VIRTIO_ID_DMABUF: + case VIRTIO_ID_PARAM_SERV: + case VIRTIO_ID_AUDIO_POLICY: + case VIRTIO_ID_GPIO: + break; + default: + g_assert_not_reached(); + } + + features->has_unknown_dev_features =3D bitmap !=3D 0; + if (features->has_unknown_dev_features) { + features->unknown_dev_features =3D bitmap; + } + + return features; +} + VirtioStatus *qmp_x_query_virtio_status(const char *path, Error **errp) { VirtIODevice *vdev; @@ -3999,9 +4619,12 @@ VirtioStatus *qmp_x_query_virtio_status(const char *= path, Error **errp) status->name =3D g_strdup(vdev->name); status->device_id =3D vdev->device_id; status->vhost_started =3D vdev->vhost_started; - status->guest_features =3D vdev->guest_features; - status->host_features =3D vdev->host_features; - status->backend_features =3D vdev->backend_features; + status->guest_features =3D qmp_decode_features(vdev->device_id, + vdev->guest_features); + status->host_features =3D qmp_decode_features(vdev->device_id, + vdev->host_features); + status->backend_features =3D qmp_decode_features(vdev->device_id, + vdev->backend_features); =20 switch (vdev->device_endian) { case VIRTIO_DEVICE_ENDIAN_LITTLE: @@ -4016,7 +4639,7 @@ VirtioStatus *qmp_x_query_virtio_status(const char *p= ath, Error **errp) } =20 status->num_vqs =3D virtio_get_num_queues(vdev); - status->status =3D vdev->status; + status->status =3D qmp_decode_status(vdev->status); status->isr =3D vdev->isr; status->queue_sel =3D vdev->queue_sel; status->vm_running =3D vdev->vm_running; @@ -4039,10 +4662,14 @@ VirtioStatus *qmp_x_query_virtio_status(const char = *path, Error **errp) status->vhost_dev->n_tmp_sections =3D hdev->n_tmp_sections; status->vhost_dev->nvqs =3D hdev->nvqs; status->vhost_dev->vq_index =3D hdev->vq_index; - status->vhost_dev->features =3D hdev->features; - status->vhost_dev->acked_features =3D hdev->acked_features; - status->vhost_dev->backend_features =3D hdev->backend_features; - status->vhost_dev->protocol_features =3D hdev->protocol_features; + status->vhost_dev->features =3D + qmp_decode_features(vdev->device_id, hdev->features); + status->vhost_dev->acked_features =3D + qmp_decode_features(vdev->device_id, hdev->acked_features); + status->vhost_dev->backend_features =3D + qmp_decode_features(vdev->device_id, hdev->backend_features); + status->vhost_dev->protocol_features =3D + qmp_decode_protocols(hdev->protocol_features); status->vhost_dev->max_queues =3D hdev->max_queues; status->vhost_dev->backend_cap =3D hdev->backend_cap; status->vhost_dev->log_enabled =3D hdev->log_enabled; --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665426777; cv=none; d=zohomail.com; s=zohoarc; b=bwGIuk19HZqsCIpjZuOC+SeXXGhuI/ZBNDIP2dpnwZS6PpnQmhqH97B1raj+vBcVuKFGTVqbuyitWtyStLE7O6LKewllOA7LA87HznfCdtA6ACMh4jYvNcybvLim8vFL3GSYphY8Gc+nDtGeNbFdmVkOgeXzgSby8HdrnW21IFY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665426777; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Q2DyAjwNZswdZe2s9M+8f99z0iOSnLYVgOO5uF3ZNss=; b=XshSv9NTIBa6SBtB76NNyeScZ9N6O00XDlMLXlfmMCrV/oDy2XZtbtrZ3L/ja0bAwRaq2Cti0RaAwVMLtrQeXHfigkkBrNYlRhjv0tyc4ZxgbGo/IG/9ZS9yYozVVMXN4tkT3lDRHG+IVKLOxBOcBMNmXI1qcs8BoA0M8QQ2Mr4= 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 1665426777787310.31021434775903; Mon, 10 Oct 2022 11:32:57 -0700 (PDT) Received: from localhost ([::1]:59018 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxaC-0001a2-7r for importer@patchew.org; Mon, 10 Oct 2022 14:32:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55362) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcb-0003Bv-GU for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:21 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:32032) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcV-0007Gj-As for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:20 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-278-k9-yF9x1MyqUXWd6bf8_oQ-1; Mon, 10 Oct 2022 13:31:12 -0400 Received: by mail-wr1-f69.google.com with SMTP id s4-20020adfbc04000000b0022e03fc10a9so2956286wrg.15 for ; Mon, 10 Oct 2022 10:31:12 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id j26-20020adfd21a000000b0022cc0a2cbecsm9272521wrh.15.2022.10.10.10.31.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423073; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Q2DyAjwNZswdZe2s9M+8f99z0iOSnLYVgOO5uF3ZNss=; b=W+itwOzYpeHhkphzxKq0jnpzj9mZr5cio9PGYdskrYRHMN6R5dOBrwxLs72DsWwA1hUdYF 1k5OSCran03yRPPC5EvXUbxpWcBiJj/9ZvtQ2muVH5b4CS6RzuBWXy6c3tOdw+VhtaBEjc DTN9yjZTbpzC5Ksy34r23+wTiYyrbRA= X-MC-Unique: k9-yF9x1MyqUXWd6bf8_oQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Q2DyAjwNZswdZe2s9M+8f99z0iOSnLYVgOO5uF3ZNss=; b=XHSBjB/FLpN8l4tiKwzfsNK/GT7tM7aAJ7yd1WwkbCo718LUIvepMK0T+hYD60Ody/ cnkA73cR9cGPGKWad3OzV4pLRSGDJUPI0meh4ItJk3acmC4QtACbyG311dy81rPz309T IL/eEMy2fgB8fUrJmWwV7H6aOKSFAahicMrwrDRMqUWGjItS6pE0f5u6472Rtd0z+w9H qDNHyEVHbScQO+qVaNl8sKBQUWqALkg42z8+FTLziEKe4fxCstUfBCxv4O5mUCL/WSNZ 4D12JuFlJQ303Zjpv+Kd13HjH95wiDpQwSKVdpsLhNp8ZEcIDE3WpyuUIlvyv94+ygTd YM7w== X-Gm-Message-State: ACrzQf2LAZQCP3j0BfLeRZcXk+qadTdCQL/kwP3bvsBTzaDevoLAQt6I SXjEJi8zyIuV06PSNXqGBur/ShBjkSRo/D1aVx/DAT/F/IVHgYs9oBZQNXskzwhfyyphjyZQIsD 3CoBTVjwZGkAj6gSMsgZYTZSAS0+XQ7m7FTTN+x3ysfSmR1915Xyzy+ZWm8OH X-Received: by 2002:a05:600c:1e26:b0:3b4:a688:3c23 with SMTP id ay38-20020a05600c1e2600b003b4a6883c23mr13514080wmb.73.1665423070871; Mon, 10 Oct 2022 10:31:10 -0700 (PDT) X-Google-Smtp-Source: AMsMyM448UykqrQtiu1+YOWgqq3i7H3ttBNZJU5Izf/n/o1FtvSJ1dVhPeX4TI9MjL8KIlzKIg0OEA== X-Received: by 2002:a05:600c:1e26:b0:3b4:a688:3c23 with SMTP id ay38-20020a05600c1e2600b003b4a6883c23mr13514044wmb.73.1665423070300; Mon, 10 Oct 2022 10:31:10 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:05 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Laurent Vivier , Jonah Palmer , Eric Blake , Markus Armbruster Subject: [PULL 33/55] qmp: add QMP commands for virtio/vhost queue-status Message-ID: <20221010172813.204597-34-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665426778298100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Laurent Vivier These new commands show the internal status of a VirtIODevice's VirtQueue and a vhost device's vhost_virtqueue (if active). Signed-off-by: Laurent Vivier Signed-off-by: Jonah Palmer Message-Id: <1660220684-24909-5-git-send-email-jonah.palmer@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- qapi/virtio.json | 256 ++++++++++++++++++++++++++++++++++++++++ hw/virtio/virtio-stub.c | 14 +++ hw/virtio/virtio.c | 103 ++++++++++++++++ 3 files changed, 373 insertions(+) diff --git a/qapi/virtio.json b/qapi/virtio.json index c9c8201e66..d9050f3584 100644 --- a/qapi/virtio.json +++ b/qapi/virtio.json @@ -499,3 +499,259 @@ 'data': { 'transports': [ 'str' ], '*dev-features': [ 'str' ], '*unknown-dev-features': 'uint64' } } + +## +# @VirtQueueStatus: +# +# Information of a VirtIODevice VirtQueue, including most members of +# the VirtQueue data structure. +# +# @name: Name of the VirtIODevice that uses this VirtQueue +# +# @queue-index: VirtQueue queue_index +# +# @inuse: VirtQueue inuse +# +# @vring-num: VirtQueue vring.num +# +# @vring-num-default: VirtQueue vring.num_default +# +# @vring-align: VirtQueue vring.align +# +# @vring-desc: VirtQueue vring.desc (descriptor area) +# +# @vring-avail: VirtQueue vring.avail (driver area) +# +# @vring-used: VirtQueue vring.used (device area) +# +# @last-avail-idx: VirtQueue last_avail_idx or return of vhost_dev +# vhost_get_vring_base (if vhost active) +# +# @shadow-avail-idx: VirtQueue shadow_avail_idx +# +# @used-idx: VirtQueue used_idx +# +# @signalled-used: VirtQueue signalled_used +# +# @signalled-used-valid: VirtQueue signalled_used_valid flag +# +# Since: 7.1 +# +## + +{ 'struct': 'VirtQueueStatus', + 'data': { 'name': 'str', + 'queue-index': 'uint16', + 'inuse': 'uint32', + 'vring-num': 'uint32', + 'vring-num-default': 'uint32', + 'vring-align': 'uint32', + 'vring-desc': 'uint64', + 'vring-avail': 'uint64', + 'vring-used': 'uint64', + '*last-avail-idx': 'uint16', + '*shadow-avail-idx': 'uint16', + 'used-idx': 'uint16', + 'signalled-used': 'uint16', + 'signalled-used-valid': 'bool' } } + +## +# @x-query-virtio-queue-status: +# +# Return the status of a given VirtIODevice's VirtQueue +# +# @path: VirtIODevice canonical QOM path +# +# @queue: VirtQueue index to examine +# +# Features: +# @unstable: This command is meant for debugging. +# +# Returns: VirtQueueStatus of the VirtQueue +# +# Notes: last_avail_idx will not be displayed in the case where +# the selected VirtIODevice has a running vhost device and +# the VirtIODevice VirtQueue index (queue) does not exist for +# the corresponding vhost device vhost_virtqueue. Also, +# shadow_avail_idx will not be displayed in the case where +# the selected VirtIODevice has a running vhost device. +# +# Since: 7.1 +# +# Examples: +# +# 1. Get VirtQueueStatus for virtio-vsock (vhost-vsock running) +# +# -> { "execute": "x-query-virtio-queue-status", +# "arguments": { "path": "/machine/peripheral/vsock0/virtio-backend", +# "queue": 1 } +# } +# <- { "return": { +# "signalled-used": 0, +# "inuse": 0, +# "name": "vhost-vsock", +# "vring-align": 4096, +# "vring-desc": 5217370112, +# "signalled-used-valid": false, +# "vring-num-default": 128, +# "vring-avail": 5217372160, +# "queue-index": 1, +# "last-avail-idx": 0, +# "vring-used": 5217372480, +# "used-idx": 0, +# "vring-num": 128 +# } +# } +# +# 2. Get VirtQueueStatus for virtio-serial (no vhost) +# +# -> { "execute": "x-query-virtio-queue-status", +# "arguments": { "path": "/machine/peripheral-anon/device[0]/virtio-b= ackend", +# "queue": 20 } +# } +# <- { "return": { +# "signalled-used": 0, +# "inuse": 0, +# "name": "virtio-serial", +# "vring-align": 4096, +# "vring-desc": 5182074880, +# "signalled-used-valid": false, +# "vring-num-default": 128, +# "vring-avail": 5182076928, +# "queue-index": 20, +# "last-avail-idx": 0, +# "vring-used": 5182077248, +# "used-idx": 0, +# "shadow-avail-idx": 0, +# "vring-num": 128 +# } +# } +# +## + +{ 'command': 'x-query-virtio-queue-status', + 'data': { 'path': 'str', 'queue': 'uint16' }, + 'returns': 'VirtQueueStatus', + 'features': [ 'unstable' ] } + +## +# @VirtVhostQueueStatus: +# +# Information of a vhost device's vhost_virtqueue, including most +# members of the vhost_dev vhost_virtqueue data structure. +# +# @name: Name of the VirtIODevice that uses this vhost_virtqueue +# +# @kick: vhost_virtqueue kick +# +# @call: vhost_virtqueue call +# +# @desc: vhost_virtqueue desc +# +# @avail: vhost_virtqueue avail +# +# @used: vhost_virtqueue used +# +# @num: vhost_virtqueue num +# +# @desc-phys: vhost_virtqueue desc_phys (descriptor area phys. addr.) +# +# @desc-size: vhost_virtqueue desc_size +# +# @avail-phys: vhost_virtqueue avail_phys (driver area phys. addr.) +# +# @avail-size: vhost_virtqueue avail_size +# +# @used-phys: vhost_virtqueue used_phys (device area phys. addr.) +# +# @used-size: vhost_virtqueue used_size +# +# Since: 7.1 +# +## + +{ 'struct': 'VirtVhostQueueStatus', + 'data': { 'name': 'str', + 'kick': 'int', + 'call': 'int', + 'desc': 'uint64', + 'avail': 'uint64', + 'used': 'uint64', + 'num': 'int', + 'desc-phys': 'uint64', + 'desc-size': 'uint32', + 'avail-phys': 'uint64', + 'avail-size': 'uint32', + 'used-phys': 'uint64', + 'used-size': 'uint32' } } + +## +# @x-query-virtio-vhost-queue-status: +# +# Return information of a given vhost device's vhost_virtqueue +# +# @path: VirtIODevice canonical QOM path +# +# @queue: vhost_virtqueue index to examine +# +# Features: +# @unstable: This command is meant for debugging. +# +# Returns: VirtVhostQueueStatus of the vhost_virtqueue +# +# Since: 7.1 +# +# Examples: +# +# 1. Get vhost_virtqueue status for vhost-crypto +# +# -> { "execute": "x-query-virtio-vhost-queue-status", +# "arguments": { "path": "/machine/peripheral/crypto0/virtio-backend", +# "queue": 0 } +# } +# <- { "return": { +# "avail-phys": 5216124928, +# "name": "virtio-crypto", +# "used-phys": 5216127040, +# "avail-size": 2054, +# "desc-size": 16384, +# "used-size": 8198, +# "desc": 140141447430144, +# "num": 1024, +# "call": 0, +# "avail": 140141447446528, +# "desc-phys": 5216108544, +# "used": 140141447448640, +# "kick": 0 +# } +# } +# +# 2. Get vhost_virtqueue status for vhost-vsock +# +# -> { "execute": "x-query-virtio-vhost-queue-status", +# "arguments": { "path": "/machine/peripheral/vsock0/virtio-backend", +# "queue": 0 } +# } +# <- { "return": { +# "avail-phys": 5182261248, +# "name": "vhost-vsock", +# "used-phys": 5182261568, +# "avail-size": 262, +# "desc-size": 2048, +# "used-size": 1030, +# "desc": 140141413580800, +# "num": 128, +# "call": 0, +# "avail": 140141413582848, +# "desc-phys": 5182259200, +# "used": 140141413583168, +# "kick": 0 +# } +# } +# +## + +{ 'command': 'x-query-virtio-vhost-queue-status', + 'data': { 'path': 'str', 'queue': 'uint16' }, + 'returns': 'VirtVhostQueueStatus', + 'features': [ 'unstable' ] } diff --git a/hw/virtio/virtio-stub.c b/hw/virtio/virtio-stub.c index 0b432e8de7..13e5f93652 100644 --- a/hw/virtio/virtio-stub.c +++ b/hw/virtio/virtio-stub.c @@ -17,3 +17,17 @@ VirtioStatus *qmp_x_query_virtio_status(const char *path= , Error **errp) { return qmp_virtio_unsupported(errp); } + +VirtVhostQueueStatus *qmp_x_query_virtio_vhost_queue_status(const char *pa= th, + uint16_t queue, + Error **errp) +{ + return qmp_virtio_unsupported(errp); +} + +VirtQueueStatus *qmp_x_query_virtio_queue_status(const char *path, + uint16_t queue, + Error **errp) +{ + return qmp_virtio_unsupported(errp); +} diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 6c530567b0..da869e7b51 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -4679,6 +4679,109 @@ VirtioStatus *qmp_x_query_virtio_status(const char = *path, Error **errp) return status; } =20 +VirtVhostQueueStatus *qmp_x_query_virtio_vhost_queue_status(const char *pa= th, + uint16_t queue, + Error **errp) +{ + VirtIODevice *vdev; + VirtVhostQueueStatus *status; + + vdev =3D virtio_device_find(path); + if (vdev =3D=3D NULL) { + error_setg(errp, "Path %s is not a VirtIODevice", path); + return NULL; + } + + if (!vdev->vhost_started) { + error_setg(errp, "Error: vhost device has not started yet"); + return NULL; + } + + VirtioDeviceClass *vdc =3D VIRTIO_DEVICE_GET_CLASS(vdev); + struct vhost_dev *hdev =3D vdc->get_vhost(vdev); + + if (queue < hdev->vq_index || queue >=3D hdev->vq_index + hdev->nvqs) { + error_setg(errp, "Invalid vhost virtqueue number %d", queue); + return NULL; + } + + status =3D g_new0(VirtVhostQueueStatus, 1); + status->name =3D g_strdup(vdev->name); + status->kick =3D hdev->vqs[queue].kick; + status->call =3D hdev->vqs[queue].call; + status->desc =3D (uintptr_t)hdev->vqs[queue].desc; + status->avail =3D (uintptr_t)hdev->vqs[queue].avail; + status->used =3D (uintptr_t)hdev->vqs[queue].used; + status->num =3D hdev->vqs[queue].num; + status->desc_phys =3D hdev->vqs[queue].desc_phys; + status->desc_size =3D hdev->vqs[queue].desc_size; + status->avail_phys =3D hdev->vqs[queue].avail_phys; + status->avail_size =3D hdev->vqs[queue].avail_size; + status->used_phys =3D hdev->vqs[queue].used_phys; + status->used_size =3D hdev->vqs[queue].used_size; + + return status; +} + +VirtQueueStatus *qmp_x_query_virtio_queue_status(const char *path, + uint16_t queue, + Error **errp) +{ + VirtIODevice *vdev; + VirtQueueStatus *status; + + vdev =3D virtio_device_find(path); + if (vdev =3D=3D NULL) { + error_setg(errp, "Path %s is not a VirtIODevice", path); + return NULL; + } + + if (queue >=3D VIRTIO_QUEUE_MAX || !virtio_queue_get_num(vdev, queue))= { + error_setg(errp, "Invalid virtqueue number %d", queue); + return NULL; + } + + status =3D g_new0(VirtQueueStatus, 1); + status->name =3D g_strdup(vdev->name); + status->queue_index =3D vdev->vq[queue].queue_index; + status->inuse =3D vdev->vq[queue].inuse; + status->vring_num =3D vdev->vq[queue].vring.num; + status->vring_num_default =3D vdev->vq[queue].vring.num_default; + status->vring_align =3D vdev->vq[queue].vring.align; + status->vring_desc =3D vdev->vq[queue].vring.desc; + status->vring_avail =3D vdev->vq[queue].vring.avail; + status->vring_used =3D vdev->vq[queue].vring.used; + status->used_idx =3D vdev->vq[queue].used_idx; + status->signalled_used =3D vdev->vq[queue].signalled_used; + status->signalled_used_valid =3D vdev->vq[queue].signalled_used_valid; + + if (vdev->vhost_started) { + VirtioDeviceClass *vdc =3D VIRTIO_DEVICE_GET_CLASS(vdev); + struct vhost_dev *hdev =3D vdc->get_vhost(vdev); + + /* check if vq index exists for vhost as well */ + if (queue >=3D hdev->vq_index && queue < hdev->vq_index + hdev->nv= qs) { + status->has_last_avail_idx =3D true; + + int vhost_vq_index =3D + hdev->vhost_ops->vhost_get_vq_index(hdev, queue); + struct vhost_vring_state state =3D { + .index =3D vhost_vq_index, + }; + + status->last_avail_idx =3D + hdev->vhost_ops->vhost_get_vring_base(hdev, &state); + } + } else { + status->has_shadow_avail_idx =3D true; + status->has_last_avail_idx =3D true; + status->last_avail_idx =3D vdev->vq[queue].last_avail_idx; + status->shadow_avail_idx =3D vdev->vq[queue].shadow_avail_idx; + } + + return status; +} + static const TypeInfo virtio_device_info =3D { .name =3D TYPE_VIRTIO_DEVICE, .parent =3D TYPE_DEVICE, --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665425987; cv=none; d=zohomail.com; s=zohoarc; b=Z9zEFFbEuouUEHY/G96HS2prRRa63belYdgrdBToz07EEwHuIMptw5yCgZsHB1O9sBBf313/cnt3PvekzURdF15zV3OSd+CcWRGl/UsBVT09AW4WUYPFZuFTYHTlUykoDYV5a44THIHhGK/9zcIWnwImCPbI2OisvQxUkpYYr08= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665425987; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=L0vlmue0OBi9GjcNmLwk7PDumQATzafRURYGTl1dKsE=; b=Ph2D53rmUCGDPIdg67OXhqgbckzf3r4QCQKV+YIGoaT7wfB+szjtjZY4Ylt1snbh0CXhDykwhjRu34UXEe2+N2h6jrhIGG1qrzS7P7FoYIZ1NlMpckP0Ai+EUC5LPESFFigpAXI3bWS0wTTEtPMC7WtYhuark4aUKQ9AXrTn4E8= 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 1665425987295528.6688469527292; Mon, 10 Oct 2022 11:19:47 -0700 (PDT) Received: from localhost ([::1]:39776 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxNR-000698-KH for importer@patchew.org; Mon, 10 Oct 2022 14:19:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42886) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcw-0003Wc-Da for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:42 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:36204) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcZ-0007I9-8i for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:41 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-589-ZOi1lzHWM6WAQDTik6CB1w-1; Mon, 10 Oct 2022 13:31:16 -0400 Received: by mail-wm1-f69.google.com with SMTP id ay21-20020a05600c1e1500b003b45fd14b53so5820506wmb.1 for ; Mon, 10 Oct 2022 10:31:16 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id co11-20020a0560000a0b00b00228d52b935asm9617166wrb.71.2022.10.10.10.31.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423078; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=L0vlmue0OBi9GjcNmLwk7PDumQATzafRURYGTl1dKsE=; b=eJuKsmLQlCXElxUFNOQsN9osX5M+lbMdUvmSnPNGqCI9jKGUXzfWnQZTMim7poCbKG2lkE zVhQ8P8zN08FsXo0Bwl6NJ0WOCI0WH8WxUl4VvgZIvqqjOF04vzunqGtwKr1bNpYRUue61 j+uvONtMazMVxRwfFEF2g9legGw0zYY= X-MC-Unique: ZOi1lzHWM6WAQDTik6CB1w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=L0vlmue0OBi9GjcNmLwk7PDumQATzafRURYGTl1dKsE=; b=4TfIuBLJBop1h0zofGRZPDelMyX7vP4g73DSdfV6hXc/NJ9KMbuk/Tji8PI+icAYaB 1+58wdw2rLXCFOvQgR2Wwx9RPiYyt0GFimKM4fhMxXARZCKitQoE9vOrIEvZDOaBWtsh La0mrACqviIdbvzkB/6ZBP8c3lFTYkPS1DoEJd74OIO8s1jv3yUsYvBmefwdSOZc7evX sWblA6ZE1ze8As1QobvQg9SGiQfPQQyFCRbV06auad6mlv7UgHjM93sfq/+7zQaeS2Hx wgXA/ylocHk/xDmbm1O3p8OUrKZEqlTaH+F5+DJV8gXG35Us963NmHAn+uqK6AtBaDlv vPKw== X-Gm-Message-State: ACrzQf25be/GL2FUgDP8nmyt+0lnmw6PdU606jmo/LrVh71+WgCEiK7k s3ZZZxrz6WaSaqhzaRD6t3cCck+IvbYzmKNbVrPm5jzPmgKg9o/gs6VGNpkMkCqmOX09ZCOYLRy S1TCaRdq8DEPo1jNeoMarixVHGNSdCB9T8yOB1QdbLfgVKwGLQsR2V0lKYILV X-Received: by 2002:a7b:cbc6:0:b0:3c4:20c5:3fc5 with SMTP id n6-20020a7bcbc6000000b003c420c53fc5mr10148266wmi.9.1665423074906; Mon, 10 Oct 2022 10:31:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6+WMAKNCsp5/gRTBQ3BGrti7rhXscLJYKXTnmTWILyvpuaksoUIRoQzE7HGf29TBwQpNMxqQ== X-Received: by 2002:a7b:cbc6:0:b0:3c4:20c5:3fc5 with SMTP id n6-20020a7bcbc6000000b003c420c53fc5mr10148240wmi.9.1665423074571; Mon, 10 Oct 2022 10:31:14 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:10 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Laurent Vivier , Jonah Palmer , Eric Blake , Markus Armbruster Subject: [PULL 34/55] qmp: add QMP command x-query-virtio-queue-element Message-ID: <20221010172813.204597-35-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665425988542100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Laurent Vivier This new command shows the information of a VirtQueue element. [Note: Up until v10 of this patch series, virtio.json had many (15+) enums defined (e.g. decoded device features, statuses, etc.). In v10 most of these enums were removed and replaced with string literals. By doing this we get (1) simpler schema, (2) smaller generated code, and (3) less maintenance burden for when new things are added (e.g. devices, device features, etc.).] Signed-off-by: Laurent Vivier Signed-off-by: Jonah Palmer Message-Id: <1660220684-24909-6-git-send-email-jonah.palmer@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- qapi/virtio.json | 197 ++++++++++++++++++++++++++++++++++++++++ hw/virtio/virtio-stub.c | 9 ++ hw/virtio/virtio.c | 154 +++++++++++++++++++++++++++++++ 3 files changed, 360 insertions(+) diff --git a/qapi/virtio.json b/qapi/virtio.json index d9050f3584..e47a8fb2e0 100644 --- a/qapi/virtio.json +++ b/qapi/virtio.json @@ -755,3 +755,200 @@ 'data': { 'path': 'str', 'queue': 'uint16' }, 'returns': 'VirtVhostQueueStatus', 'features': [ 'unstable' ] } + +## +# @VirtioRingDesc: +# +# Information regarding the vring descriptor area +# +# @addr: Guest physical address of the descriptor area +# +# @len: Length of the descriptor area +# +# @flags: List of descriptor flags +# +# Since: 7.1 +# +## + +{ 'struct': 'VirtioRingDesc', + 'data': { 'addr': 'uint64', + 'len': 'uint32', + 'flags': [ 'str' ] } } + +## +# @VirtioRingAvail: +# +# Information regarding the avail vring (a.k.a. driver area) +# +# @flags: VRingAvail flags +# +# @idx: VRingAvail index +# +# @ring: VRingAvail ring[] entry at provided index +# +# Since: 7.1 +# +## + +{ 'struct': 'VirtioRingAvail', + 'data': { 'flags': 'uint16', + 'idx': 'uint16', + 'ring': 'uint16' } } + +## +# @VirtioRingUsed: +# +# Information regarding the used vring (a.k.a. device area) +# +# @flags: VRingUsed flags +# +# @idx: VRingUsed index +# +# Since: 7.1 +# +## + +{ 'struct': 'VirtioRingUsed', + 'data': { 'flags': 'uint16', + 'idx': 'uint16' } } + +## +# @VirtioQueueElement: +# +# Information regarding a VirtQueue's VirtQueueElement including +# descriptor, driver, and device areas +# +# @name: Name of the VirtIODevice that uses this VirtQueue +# +# @index: Index of the element in the queue +# +# @descs: List of descriptors (VirtioRingDesc) +# +# @avail: VRingAvail info +# +# @used: VRingUsed info +# +# Since: 7.1 +# +## + +{ 'struct': 'VirtioQueueElement', + 'data': { 'name': 'str', + 'index': 'uint32', + 'descs': [ 'VirtioRingDesc' ], + 'avail': 'VirtioRingAvail', + 'used': 'VirtioRingUsed' } } + +## +# @x-query-virtio-queue-element: +# +# Return the information about a VirtQueue's VirtQueueElement +# +# @path: VirtIODevice canonical QOM path +# +# @queue: VirtQueue index to examine +# +# @index: Index of the element in the queue +# (default: head of the queue) +# +# Features: +# @unstable: This command is meant for debugging. +# +# Returns: VirtioQueueElement information +# +# Since: 7.1 +# +# Examples: +# +# 1. Introspect on virtio-net's VirtQueue 0 at index 5 +# +# -> { "execute": "x-query-virtio-queue-element", +# "arguments": { "path": "/machine/peripheral-anon/device[1]/virtio-b= ackend", +# "queue": 0, +# "index": 5 } +# } +# <- { "return": { +# "index": 5, +# "name": "virtio-net", +# "descs": [ +# { +# "flags": ["write"], +# "len": 1536, +# "addr": 5257305600 +# } +# ], +# "avail": { +# "idx": 256, +# "flags": 0, +# "ring": 5 +# }, +# "used": { +# "idx": 13, +# "flags": 0 +# } +# } +# } +# +# 2. Introspect on virtio-crypto's VirtQueue 1 at head +# +# -> { "execute": "x-query-virtio-queue-element", +# "arguments": { "path": "/machine/peripheral/crypto0/virtio-backend", +# "queue": 1 } +# } +# <- { "return": { +# "index": 0, +# "name": "virtio-crypto", +# "descs": [ +# { +# "flags": [], +# "len": 0, +# "addr": 8080268923184214134 +# } +# ], +# "avail": { +# "idx": 280, +# "flags": 0, +# "ring": 0 +# }, +# "used": { +# "idx": 280, +# "flags": 0 +# } +# } +# } +# +# 3. Introspect on virtio-scsi's VirtQueue 2 at head +# +# -> { "execute": "x-query-virtio-queue-element", +# "arguments": { "path": "/machine/peripheral-anon/device[2]/virtio-b= ackend", +# "queue": 2 } +# } +# <- { "return": { +# "index": 19, +# "name": "virtio-scsi", +# "descs": [ +# { +# "flags": ["used", "indirect", "write"], +# "len": 4099327944, +# "addr": 12055409292258155293 +# } +# ], +# "avail": { +# "idx": 1147, +# "flags": 0, +# "ring": 19 +# }, +# "used": { +# "idx": 280, +# "flags": 0 +# } +# } +# } +# +## + +{ 'command': 'x-query-virtio-queue-element', + 'data': { 'path': 'str', 'queue': 'uint16', '*index': 'uint16' }, + 'returns': 'VirtioQueueElement', + 'features': [ 'unstable' ] } diff --git a/hw/virtio/virtio-stub.c b/hw/virtio/virtio-stub.c index 13e5f93652..7ddb22cc5e 100644 --- a/hw/virtio/virtio-stub.c +++ b/hw/virtio/virtio-stub.c @@ -31,3 +31,12 @@ VirtQueueStatus *qmp_x_query_virtio_queue_status(const c= har *path, { return qmp_virtio_unsupported(errp); } + +VirtioQueueElement *qmp_x_query_virtio_queue_element(const char *path, + uint16_t queue, + bool has_index, + uint16_t index, + Error **errp) +{ + return qmp_virtio_unsupported(errp); +} diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index da869e7b51..808446b4c9 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -823,6 +823,19 @@ static inline void vring_used_write(VirtQueue *vq, VRi= ngUsedElem *uelem, address_space_cache_invalidate(&caches->used, pa, sizeof(VRingUsedElem= )); } =20 +/* Called within rcu_read_lock(). */ +static inline uint16_t vring_used_flags(VirtQueue *vq) +{ + VRingMemoryRegionCaches *caches =3D vring_get_region_caches(vq); + hwaddr pa =3D offsetof(VRingUsed, flags); + + if (!caches) { + return 0; + } + + return virtio_lduw_phys_cached(vq->vdev, &caches->used, pa); +} + /* Called within rcu_read_lock(). */ static uint16_t vring_used_idx(VirtQueue *vq) { @@ -4782,6 +4795,147 @@ VirtQueueStatus *qmp_x_query_virtio_queue_status(co= nst char *path, return status; } =20 +static strList *qmp_decode_vring_desc_flags(uint16_t flags) +{ + strList *list =3D NULL; + strList *node; + int i; + + struct { + uint16_t flag; + const char *value; + } map[] =3D { + { VRING_DESC_F_NEXT, "next" }, + { VRING_DESC_F_WRITE, "write" }, + { VRING_DESC_F_INDIRECT, "indirect" }, + { 1 << VRING_PACKED_DESC_F_AVAIL, "avail" }, + { 1 << VRING_PACKED_DESC_F_USED, "used" }, + { 0, "" } + }; + + for (i =3D 0; map[i].flag; i++) { + if ((map[i].flag & flags) =3D=3D 0) { + continue; + } + node =3D g_malloc0(sizeof(strList)); + node->value =3D g_strdup(map[i].value); + node->next =3D list; + list =3D node; + } + + return list; +} + +VirtioQueueElement *qmp_x_query_virtio_queue_element(const char *path, + uint16_t queue, + bool has_index, + uint16_t index, + Error **errp) +{ + VirtIODevice *vdev; + VirtQueue *vq; + VirtioQueueElement *element =3D NULL; + + vdev =3D virtio_device_find(path); + if (vdev =3D=3D NULL) { + error_setg(errp, "Path %s is not a VirtIO device", path); + return NULL; + } + + if (queue >=3D VIRTIO_QUEUE_MAX || !virtio_queue_get_num(vdev, queue))= { + error_setg(errp, "Invalid virtqueue number %d", queue); + return NULL; + } + vq =3D &vdev->vq[queue]; + + if (virtio_vdev_has_feature(vdev, VIRTIO_F_RING_PACKED)) { + error_setg(errp, "Packed ring not supported"); + return NULL; + } else { + unsigned int head, i, max; + VRingMemoryRegionCaches *caches; + MemoryRegionCache indirect_desc_cache =3D MEMORY_REGION_CACHE_INVA= LID; + MemoryRegionCache *desc_cache; + VRingDesc desc; + VirtioRingDescList *list =3D NULL; + VirtioRingDescList *node; + int rc; int ndescs; + + RCU_READ_LOCK_GUARD(); + + max =3D vq->vring.num; + + if (!has_index) { + head =3D vring_avail_ring(vq, vq->last_avail_idx % vq->vring.n= um); + } else { + head =3D vring_avail_ring(vq, index % vq->vring.num); + } + i =3D head; + + caches =3D vring_get_region_caches(vq); + if (!caches) { + error_setg(errp, "Region caches not initialized"); + return NULL; + } + if (caches->desc.len < max * sizeof(VRingDesc)) { + error_setg(errp, "Cannot map descriptor ring"); + return NULL; + } + + desc_cache =3D &caches->desc; + vring_split_desc_read(vdev, &desc, desc_cache, i); + if (desc.flags & VRING_DESC_F_INDIRECT) { + int64_t len; + len =3D address_space_cache_init(&indirect_desc_cache, vdev->d= ma_as, + desc.addr, desc.len, false); + desc_cache =3D &indirect_desc_cache; + if (len < desc.len) { + error_setg(errp, "Cannot map indirect buffer"); + goto done; + } + + max =3D desc.len / sizeof(VRingDesc); + i =3D 0; + vring_split_desc_read(vdev, &desc, desc_cache, i); + } + + element =3D g_new0(VirtioQueueElement, 1); + element->avail =3D g_new0(VirtioRingAvail, 1); + element->used =3D g_new0(VirtioRingUsed, 1); + element->name =3D g_strdup(vdev->name); + element->index =3D head; + element->avail->flags =3D vring_avail_flags(vq); + element->avail->idx =3D vring_avail_idx(vq); + element->avail->ring =3D head; + element->used->flags =3D vring_used_flags(vq); + element->used->idx =3D vring_used_idx(vq); + ndescs =3D 0; + + do { + /* A buggy driver may produce an infinite loop */ + if (ndescs >=3D max) { + break; + } + node =3D g_new0(VirtioRingDescList, 1); + node->value =3D g_new0(VirtioRingDesc, 1); + node->value->addr =3D desc.addr; + node->value->len =3D desc.len; + node->value->flags =3D qmp_decode_vring_desc_flags(desc.flags); + node->next =3D list; + list =3D node; + + ndescs++; + rc =3D virtqueue_split_read_next_desc(vdev, &desc, desc_cache, + max, &i); + } while (rc =3D=3D VIRTQUEUE_READ_DESC_MORE); + element->descs =3D list; +done: + address_space_cache_destroy(&indirect_desc_cache); + } + + return element; +} + static const TypeInfo virtio_device_info =3D { .name =3D TYPE_VIRTIO_DEVICE, .parent =3D TYPE_DEVICE, --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665426976; cv=none; d=zohomail.com; s=zohoarc; b=isTczYOUXPWVfbc+A7KRLRSkVu4faAKPb6scQ05Wxqzup28jzxcRbHUX9TiQ/bq2wTH4ad3BkeurVQkIycRYXFPdhlAIdNaJtcw/SkOKuY0RiPOoqd2Sx7XEmy+EjgDupx04qAX4oB+LX3affIDRasfeAwA2v1NhtoBgR7C7G8k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665426976; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NUPG4lNCqJDLyGX2mAucaMvUUR3XwTkKiVtcCXM6r7c=; b=BYvXMsSktFAc7Mm8ml/efjVXt/1VkZpEpKPSMlCgDi1+yTohYFyI0ZoQrxYFgoPn7yij3MrLIWgQau5ZjejoscN1BRu63m7LK5rU45wnSV5uh2hV5K0y3+WIyiOQ1G3c5wT2d8dyKlJ0AfV7VgI/b5hVU8pBLQRcIO7rxcm4wuo= 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 1665426976413391.50834910725973; Mon, 10 Oct 2022 11:36:16 -0700 (PDT) Received: from localhost ([::1]:45750 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxdP-0004od-1y for importer@patchew.org; Mon, 10 Oct 2022 14:36:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52650) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwd4-0003bA-0U for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:30574) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcc-0007J1-Si for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:48 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-153-fPk0qxF6Pv6QZGJe_BU-ag-1; Mon, 10 Oct 2022 13:31:20 -0400 Received: by mail-wm1-f70.google.com with SMTP id c130-20020a1c3588000000b003b56be513e1so7310998wma.0 for ; Mon, 10 Oct 2022 10:31:20 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id y3-20020a7bcd83000000b003a3170a7af9sm5472815wmj.4.2022.10.10.10.31.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423082; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=NUPG4lNCqJDLyGX2mAucaMvUUR3XwTkKiVtcCXM6r7c=; b=IJLulGSo4nTYpHu3bDlp68eu4+ui7OAjis/7r2nfTln+OFfEawmCrE8uzkd28VaBMmg8ql iVbYeVuEua62oJPlFSX+bVoeQs8xBXvV0WApcMSpcVgb6tayL6z3NbDMMillV//NWsAb7u B1/GMJXUYFIRgWgY5g7bCE+QbncqYQo= X-MC-Unique: fPk0qxF6Pv6QZGJe_BU-ag-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NUPG4lNCqJDLyGX2mAucaMvUUR3XwTkKiVtcCXM6r7c=; b=RvRHooluvOIW4BjvF0Zd9f4RN8N7NKhNBpWXa6D5PMIYQbBbaDewIQPQg0ZVqWFKCM 5BAMmSFI7r8wfn5pMrjzHLprN69fy/l1iC1kCvQiljUuwb5uZSS7MQGrmT6NnQYo90ZO OulW+Hw7d8pakLC2YY8Z6pLBKa+nudw3aeJv6qwQLBfkflxNJnrU7uuF/bsiLHbgFmew I5H893Jn/ypvjZTBgX8Bsq1yGZgj+1cEvcauL5ixIIa8jDBQ+HxqModKNyiABB3F1GfS EKFjXFX+RVyZ9Uze0ptA0AWn7m5HhZCzi8tOn31WC4V2CDBMzny0r3Icvo1RN0yGFipB ki+w== X-Gm-Message-State: ACrzQf0X7lo0bI+Bvz/D77CebQ3HjMWjsEJoN1wWZ68KY48J5lQGCX0e Td+pwM97nEnjLHUSY5gtObGzyDpHRO+nPZvoFK7FivZaqp0u16hXSUBeao43dI9PxcQSybQtiBw WWFsPOc14DisHjk77rFuL9AxvWFB+L0uV+z6B5OZTJ4RDtbCR0ge/Dl2pBtQQ X-Received: by 2002:a5d:5149:0:b0:22e:8b85:3d7d with SMTP id u9-20020a5d5149000000b0022e8b853d7dmr11621237wrt.55.1665423079329; Mon, 10 Oct 2022 10:31:19 -0700 (PDT) X-Google-Smtp-Source: AMsMyM62wMOyH5DfF4tQXFueD6QRQcxDgvaT2yJxYQ6vZTtowkutm1/5K/LUdCWvPNDbLx+WAF0KOQ== X-Received: by 2002:a5d:5149:0:b0:22e:8b85:3d7d with SMTP id u9-20020a5d5149000000b0022e8b853d7dmr11621218wrt.55.1665423078978; Mon, 10 Oct 2022 10:31:18 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:14 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Laurent Vivier , Jonah Palmer , "Dr. David Alan Gilbert" Subject: [PULL 35/55] hmp: add virtio commands Message-ID: <20221010172813.204597-36-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665426978027100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Laurent Vivier This patch implements the HMP versions of the virtio QMP commands. [Jonah: Adjusted hmp monitor output format for features / statuses with their descriptions.] Signed-off-by: Laurent Vivier Signed-off-by: Jonah Palmer Message-Id: <1660220684-24909-7-git-send-email-jonah.palmer@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/monitor/hmp.h | 5 + monitor/hmp-cmds.c | 310 ++++++++++++++++++++++++++++++++++++++++++ hmp-commands-info.hx | 70 ++++++++++ 3 files changed, 385 insertions(+) diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index a618eb1e4e..a9cf064ee8 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -95,6 +95,11 @@ void hmp_qom_list(Monitor *mon, const QDict *qdict); void hmp_qom_get(Monitor *mon, const QDict *qdict); void hmp_qom_set(Monitor *mon, const QDict *qdict); void hmp_info_qom_tree(Monitor *mon, const QDict *dict); +void hmp_virtio_query(Monitor *mon, const QDict *qdict); +void hmp_virtio_status(Monitor *mon, const QDict *qdict); +void hmp_virtio_queue_status(Monitor *mon, const QDict *qdict); +void hmp_vhost_queue_status(Monitor *mon, const QDict *qdict); +void hmp_virtio_queue_element(Monitor *mon, const QDict *qdict); void object_add_completion(ReadLineState *rs, int nb_args, const char *str= ); void object_del_completion(ReadLineState *rs, int nb_args, const char *str= ); void device_add_completion(ReadLineState *rs, int nb_args, const char *str= ); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index f90eea8d01..bab86c5537 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -43,6 +43,8 @@ #include "qapi/qapi-commands-stats.h" #include "qapi/qapi-commands-tpm.h" #include "qapi/qapi-commands-ui.h" +#include "qapi/qapi-commands-virtio.h" +#include "qapi/qapi-visit-virtio.h" #include "qapi/qapi-visit-net.h" #include "qapi/qapi-visit-migration.h" #include "qapi/qmp/qdict.h" @@ -2472,3 +2474,311 @@ exit: exit_no_print: error_free(err); } + +static void hmp_virtio_dump_protocols(Monitor *mon, + VhostDeviceProtocols *pcol) +{ + strList *pcol_list =3D pcol->protocols; + while (pcol_list) { + monitor_printf(mon, "\t%s", pcol_list->value); + pcol_list =3D pcol_list->next; + if (pcol_list !=3D NULL) { + monitor_printf(mon, ",\n"); + } + } + monitor_printf(mon, "\n"); + if (pcol->has_unknown_protocols) { + monitor_printf(mon, " unknown-protocols(0x%016"PRIx64")\n", + pcol->unknown_protocols); + } +} + +static void hmp_virtio_dump_status(Monitor *mon, + VirtioDeviceStatus *status) +{ + strList *status_list =3D status->statuses; + while (status_list) { + monitor_printf(mon, "\t%s", status_list->value); + status_list =3D status_list->next; + if (status_list !=3D NULL) { + monitor_printf(mon, ",\n"); + } + } + monitor_printf(mon, "\n"); + if (status->has_unknown_statuses) { + monitor_printf(mon, " unknown-statuses(0x%016"PRIx32")\n", + status->unknown_statuses); + } +} + +static void hmp_virtio_dump_features(Monitor *mon, + VirtioDeviceFeatures *features) +{ + strList *transport_list =3D features->transports; + while (transport_list) { + monitor_printf(mon, "\t%s", transport_list->value); + transport_list =3D transport_list->next; + if (transport_list !=3D NULL) { + monitor_printf(mon, ",\n"); + } + } + + monitor_printf(mon, "\n"); + strList *list =3D features->dev_features; + if (list) { + while (list) { + monitor_printf(mon, "\t%s", list->value); + list =3D list->next; + if (list !=3D NULL) { + monitor_printf(mon, ",\n"); + } + } + monitor_printf(mon, "\n"); + } + + if (features->has_unknown_dev_features) { + monitor_printf(mon, " unknown-features(0x%016"PRIx64")\n", + features->unknown_dev_features); + } +} + +void hmp_virtio_query(Monitor *mon, const QDict *qdict) +{ + Error *err =3D NULL; + VirtioInfoList *list =3D qmp_x_query_virtio(&err); + VirtioInfoList *node; + + if (err !=3D NULL) { + hmp_handle_error(mon, err); + return; + } + + if (list =3D=3D NULL) { + monitor_printf(mon, "No VirtIO devices\n"); + return; + } + + node =3D list; + while (node) { + monitor_printf(mon, "%s [%s]\n", node->value->path, + node->value->name); + node =3D node->next; + } + qapi_free_VirtioInfoList(list); +} + +void hmp_virtio_status(Monitor *mon, const QDict *qdict) +{ + Error *err =3D NULL; + const char *path =3D qdict_get_try_str(qdict, "path"); + VirtioStatus *s =3D qmp_x_query_virtio_status(path, &err); + + if (err !=3D NULL) { + hmp_handle_error(mon, err); + return; + } + + monitor_printf(mon, "%s:\n", path); + monitor_printf(mon, " device_name: %s %s\n", + s->name, s->has_vhost_dev ? "(vhost)" : ""); + monitor_printf(mon, " device_id: %d\n", s->device_id); + monitor_printf(mon, " vhost_started: %s\n", + s->vhost_started ? "true" : "false"); + monitor_printf(mon, " bus_name: %s\n", s->bus_name); + monitor_printf(mon, " broken: %s\n", + s->broken ? "true" : "false"); + monitor_printf(mon, " disabled: %s\n", + s->disabled ? "true" : "false"); + monitor_printf(mon, " disable_legacy_check: %s\n", + s->disable_legacy_check ? "true" : "false"); + monitor_printf(mon, " started: %s\n", + s->started ? "true" : "false"); + monitor_printf(mon, " use_started: %s\n", + s->use_started ? "true" : "false"); + monitor_printf(mon, " start_on_kick: %s\n", + s->start_on_kick ? "true" : "false"); + monitor_printf(mon, " use_guest_notifier_mask: %s\n", + s->use_guest_notifier_mask ? "true" : "false"); + monitor_printf(mon, " vm_running: %s\n", + s->vm_running ? "true" : "false"); + monitor_printf(mon, " num_vqs: %"PRId64"\n", s->num_v= qs); + monitor_printf(mon, " queue_sel: %d\n", + s->queue_sel); + monitor_printf(mon, " isr: %d\n", s->isr); + monitor_printf(mon, " endianness: %s\n", + s->device_endian); + monitor_printf(mon, " status:\n"); + hmp_virtio_dump_status(mon, s->status); + monitor_printf(mon, " Guest features:\n"); + hmp_virtio_dump_features(mon, s->guest_features); + monitor_printf(mon, " Host features:\n"); + hmp_virtio_dump_features(mon, s->host_features); + monitor_printf(mon, " Backend features:\n"); + hmp_virtio_dump_features(mon, s->backend_features); + + if (s->has_vhost_dev) { + monitor_printf(mon, " VHost:\n"); + monitor_printf(mon, " nvqs: %d\n", + s->vhost_dev->nvqs); + monitor_printf(mon, " vq_index: %"PRId64"\n", + s->vhost_dev->vq_index); + monitor_printf(mon, " max_queues: %"PRId64"\n", + s->vhost_dev->max_queues); + monitor_printf(mon, " n_mem_sections: %"PRId64"\n", + s->vhost_dev->n_mem_sections); + monitor_printf(mon, " n_tmp_sections: %"PRId64"\n", + s->vhost_dev->n_tmp_sections); + monitor_printf(mon, " backend_cap: %"PRId64"\n", + s->vhost_dev->backend_cap); + monitor_printf(mon, " log_enabled: %s\n", + s->vhost_dev->log_enabled ? "true" : "false"); + monitor_printf(mon, " log_size: %"PRId64"\n", + s->vhost_dev->log_size); + monitor_printf(mon, " Features:\n"); + hmp_virtio_dump_features(mon, s->vhost_dev->features); + monitor_printf(mon, " Acked features:\n"); + hmp_virtio_dump_features(mon, s->vhost_dev->acked_features); + monitor_printf(mon, " Backend features:\n"); + hmp_virtio_dump_features(mon, s->vhost_dev->backend_features); + monitor_printf(mon, " Protocol features:\n"); + hmp_virtio_dump_protocols(mon, s->vhost_dev->protocol_features); + } + + qapi_free_VirtioStatus(s); +} + +void hmp_vhost_queue_status(Monitor *mon, const QDict *qdict) +{ + Error *err =3D NULL; + const char *path =3D qdict_get_try_str(qdict, "path"); + int queue =3D qdict_get_int(qdict, "queue"); + VirtVhostQueueStatus *s =3D + qmp_x_query_virtio_vhost_queue_status(path, queue, &err); + + if (err !=3D NULL) { + hmp_handle_error(mon, err); + return; + } + + monitor_printf(mon, "%s:\n", path); + monitor_printf(mon, " device_name: %s (vhost)\n", + s->name); + monitor_printf(mon, " kick: %"PRId64"\n", s->kick); + monitor_printf(mon, " call: %"PRId64"\n", s->call); + monitor_printf(mon, " VRing:\n"); + monitor_printf(mon, " num: %"PRId64"\n", s->num); + monitor_printf(mon, " desc: 0x%016"PRIx64"\n", s->desc); + monitor_printf(mon, " desc_phys: 0x%016"PRIx64"\n", + s->desc_phys); + monitor_printf(mon, " desc_size: %"PRId32"\n", s->desc_size); + monitor_printf(mon, " avail: 0x%016"PRIx64"\n", s->avail); + monitor_printf(mon, " avail_phys: 0x%016"PRIx64"\n", + s->avail_phys); + monitor_printf(mon, " avail_size: %"PRId32"\n", s->avail_size); + monitor_printf(mon, " used: 0x%016"PRIx64"\n", s->used); + monitor_printf(mon, " used_phys: 0x%016"PRIx64"\n", + s->used_phys); + monitor_printf(mon, " used_size: %"PRId32"\n", s->used_size); + + qapi_free_VirtVhostQueueStatus(s); +} + +void hmp_virtio_queue_status(Monitor *mon, const QDict *qdict) +{ + Error *err =3D NULL; + const char *path =3D qdict_get_try_str(qdict, "path"); + int queue =3D qdict_get_int(qdict, "queue"); + VirtQueueStatus *s =3D qmp_x_query_virtio_queue_status(path, queue, &e= rr); + + if (err !=3D NULL) { + hmp_handle_error(mon, err); + return; + } + + monitor_printf(mon, "%s:\n", path); + monitor_printf(mon, " device_name: %s\n", s->name); + monitor_printf(mon, " queue_index: %d\n", s->queue_index); + monitor_printf(mon, " inuse: %d\n", s->inuse); + monitor_printf(mon, " used_idx: %d\n", s->used_idx); + monitor_printf(mon, " signalled_used: %d\n", + s->signalled_used); + monitor_printf(mon, " signalled_used_valid: %s\n", + s->signalled_used_valid ? "true" : "false"); + if (s->has_last_avail_idx) { + monitor_printf(mon, " last_avail_idx: %d\n", + s->last_avail_idx); + } + if (s->has_shadow_avail_idx) { + monitor_printf(mon, " shadow_avail_idx: %d\n", + s->shadow_avail_idx); + } + monitor_printf(mon, " VRing:\n"); + monitor_printf(mon, " num: %"PRId32"\n", s->vring_num); + monitor_printf(mon, " num_default: %"PRId32"\n", + s->vring_num_default); + monitor_printf(mon, " align: %"PRId32"\n", + s->vring_align); + monitor_printf(mon, " desc: 0x%016"PRIx64"\n", + s->vring_desc); + monitor_printf(mon, " avail: 0x%016"PRIx64"\n", + s->vring_avail); + monitor_printf(mon, " used: 0x%016"PRIx64"\n", + s->vring_used); + + qapi_free_VirtQueueStatus(s); +} + +void hmp_virtio_queue_element(Monitor *mon, const QDict *qdict) +{ + Error *err =3D NULL; + const char *path =3D qdict_get_try_str(qdict, "path"); + int queue =3D qdict_get_int(qdict, "queue"); + int index =3D qdict_get_try_int(qdict, "index", -1); + VirtioQueueElement *e; + VirtioRingDescList *list; + + e =3D qmp_x_query_virtio_queue_element(path, queue, index !=3D -1, + index, &err); + if (err !=3D NULL) { + hmp_handle_error(mon, err); + return; + } + + monitor_printf(mon, "%s:\n", path); + monitor_printf(mon, " device_name: %s\n", e->name); + monitor_printf(mon, " index: %d\n", e->index); + monitor_printf(mon, " desc:\n"); + monitor_printf(mon, " descs:\n"); + + list =3D e->descs; + while (list) { + monitor_printf(mon, " addr 0x%"PRIx64" len %d", + list->value->addr, list->value->len); + if (list->value->flags) { + strList *flag =3D list->value->flags; + monitor_printf(mon, " ("); + while (flag) { + monitor_printf(mon, "%s", flag->value); + flag =3D flag->next; + if (flag) { + monitor_printf(mon, ", "); + } + } + monitor_printf(mon, ")"); + } + list =3D list->next; + if (list) { + monitor_printf(mon, ",\n"); + } + } + monitor_printf(mon, "\n"); + monitor_printf(mon, " avail:\n"); + monitor_printf(mon, " flags: %d\n", e->avail->flags); + monitor_printf(mon, " idx: %d\n", e->avail->idx); + monitor_printf(mon, " ring: %d\n", e->avail->ring); + monitor_printf(mon, " used:\n"); + monitor_printf(mon, " flags: %d\n", e->used->flags); + monitor_printf(mon, " idx: %d\n", e->used->idx); + + qapi_free_VirtioQueueElement(e); +} diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx index e012035541..754b1e8408 100644 --- a/hmp-commands-info.hx +++ b/hmp-commands-info.hx @@ -923,3 +923,73 @@ SRST ``stats`` Show runtime-collected statistics ERST + + { + .name =3D "virtio", + .args_type =3D "", + .params =3D "", + .help =3D "List all available virtio devices", + .cmd =3D hmp_virtio_query, + .flags =3D "p", + }, + +SRST + ``info virtio`` + List all available virtio devices +ERST + + { + .name =3D "virtio-status", + .args_type =3D "path:s", + .params =3D "path", + .help =3D "Display status of a given virtio device", + .cmd =3D hmp_virtio_status, + .flags =3D "p", + }, + +SRST + ``info virtio-status`` *path* + Display status of a given virtio device +ERST + + { + .name =3D "virtio-queue-status", + .args_type =3D "path:s,queue:i", + .params =3D "path queue", + .help =3D "Display status of a given virtio queue", + .cmd =3D hmp_virtio_queue_status, + .flags =3D "p", + }, + +SRST + ``info virtio-queue-status`` *path* *queue* + Display status of a given virtio queue +ERST + + { + .name =3D "virtio-vhost-queue-status", + .args_type =3D "path:s,queue:i", + .params =3D "path queue", + .help =3D "Display status of a given vhost queue", + .cmd =3D hmp_vhost_queue_status, + .flags =3D "p", + }, + +SRST + ``info virtio-vhost-queue-status`` *path* *queue* + Display status of a given vhost queue +ERST + + { + .name =3D "virtio-queue-element", + .args_type =3D "path:s,queue:i,index:i?", + .params =3D "path queue [index]", + .help =3D "Display element of a given virtio queue", + .cmd =3D hmp_virtio_queue_element, + .flags =3D "p", + }, + +SRST + ``info virtio-queue-element`` *path* *queue* [*index*] + Display element of a given virtio queue +ERST --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665426318; cv=none; d=zohomail.com; s=zohoarc; b=QDM7AHnQsMUo8d23CJ2Be0PSzZoVAj1zI/8cbRrA5Cl6K57idhJrfCQNAj7vpnZ2dOcM0d0hB+TCiJw8Fy3HZLmcx/EyJDRuLJpDd8KmwKl7B0Jh2O5W8VMpYqmrk6qsSaLCLJRojHbp9CtqyUWoCBkLZ6yPLuT7yQ4MKvexBa8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665426318; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9qGZK5jOcaN2rqu7K9/IEN4BfTBmzsuWuby5Dy3BdJ8=; b=mllhO7PQo5y034BywRUouYZGLZ0gVJzNbMxJnZkd0Tgn7lmEbkprOP8FLwlw0clUETGGMtN1mEoiSzuWWnH0mprJwqiSPrPoaiuRqirUYXZUxdCV/GtyuA4CftWVH7r+CWWoweSLVe7RVrO2HJaYcIaJTajrkGheaCp5hN0lfU0= 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 166542631847122.982142959066778; Mon, 10 Oct 2022 11:25:18 -0700 (PDT) Received: from localhost ([::1]:45518 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxSn-0003hq-2a for importer@patchew.org; Mon, 10 Oct 2022 14:25:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52656) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwd7-0003fE-0o for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:51180) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcg-0007Jp-FE for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:52 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-6-RdqmnPJLPNqgZPDpkCT17Q-1; Mon, 10 Oct 2022 13:31:24 -0400 Received: by mail-wr1-f70.google.com with SMTP id j8-20020adfa548000000b0022e2bf8f48fso2980849wrb.23 for ; Mon, 10 Oct 2022 10:31:24 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id n19-20020a05600c4f9300b003b4cba4ef71sm17313837wmq.41.2022.10.10.10.31.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423085; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=9qGZK5jOcaN2rqu7K9/IEN4BfTBmzsuWuby5Dy3BdJ8=; b=X5FSGc7Avb11wFITVh9ruelHA9APR0yXnMLRQZrM2F424guMPpBAkjLotiRzsJWeoH/3VR HY6dACD5r/T4JHs4DGGOg96DLPmXbKQAolIjdadxaEYw1QQ8nFSSdLPsv0JfOI2tZ21ZCp eT5kArXbYYfPNhUIyGirM+bhi3VlWfo= X-MC-Unique: RdqmnPJLPNqgZPDpkCT17Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=9qGZK5jOcaN2rqu7K9/IEN4BfTBmzsuWuby5Dy3BdJ8=; b=BhX8yGH8W8vShUYYveho9J6ZkLmuNVu81nxjb5omeehSxDM+QFitDsCKqxaJfzZEpL 7uSUlSol9iCBG8DpiNvyKsZjD6ApOCiII7exwG6ROBuNw2ZYO/6E4OPXnsywnbNK4rCO rgWoXxoDPODUUfCp0lqJbyEn+B1Pt8UU9aLB5zGc2HKOE35oAP4eteF3rVyuz6v5w7bi R1PoV/lNy5OS/BLipT8rMbKMkN66t/KJLWajG36bgcXqa65zA8WVFalNRTisWPW8seEl rs/Ps9tNBLezNF/+E/36g6MVrpm0Ufz3kNUW0jDQCqHybWo9Y0oY59BZKavxCkxOPffl zh2w== X-Gm-Message-State: ACrzQf1GlUNbhvnndlqdd7zdIV1LHnacwQrPoPBKW8BWtxov4GDZxiNi RGwDV0Bv5DNVDzoN2328/BtOIBX+7qCXh5ALb1ZQtciKi6h5n7XuU5XIFU18MoA2vbWiYYpLx7H 8L+Qny+t9rbgYUQO1vnunuxUrY0SLB7J0tiS0pqpd+uIzuiR7rqpcGBYXN8N/ X-Received: by 2002:a05:6000:170a:b0:22e:bd9c:2630 with SMTP id n10-20020a056000170a00b0022ebd9c2630mr11236374wrc.655.1665423083345; Mon, 10 Oct 2022 10:31:23 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5P2tm8bX0GffdRfciSvunEJ8UPB4Aw8wgQaPXEGf+IP2rS+HdvGirJMWymQ1gdImvwGFu5mg== X-Received: by 2002:a05:6000:170a:b0:22e:bd9c:2630 with SMTP id n10-20020a056000170a00b0022ebd9c2630mr11236352wrc.655.1665423083101; Mon, 10 Oct 2022 10:31:23 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:19 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Richard Henderson , Paolo Bonzini , Marcel Apfelbaum Subject: [PULL 36/55] pci: Remove unused pci_get_*_by_mask() functions Message-ID: <20221010172813.204597-37-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665426319619100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peter Maydell The helper functions pci_get_{byte,word,long,quad}_by_mask() were added in 2012 in commit c9f50cea70a1596. In the decade since we have never added a single use of them. The helpers clearly aren't that helpful, so drop them rather than carrying around dead code. Reviewed-by: Richard Henderson Signed-off-by: Peter Maydell Message-Id: <20220818135421.2515257-2-peter.maydell@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Paolo Bonzini --- include/hw/pci/pci.h | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index b54b6ef88f..c79144bc5e 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -692,13 +692,6 @@ pci_set_byte_by_mask(uint8_t *config, uint8_t mask, ui= nt8_t reg) pci_set_byte(config, (~mask & val) | (mask & rval)); } =20 -static inline uint8_t -pci_get_byte_by_mask(uint8_t *config, uint8_t mask) -{ - uint8_t val =3D pci_get_byte(config); - return (val & mask) >> ctz32(mask); -} - static inline void pci_set_word_by_mask(uint8_t *config, uint16_t mask, uint16_t reg) { @@ -707,13 +700,6 @@ pci_set_word_by_mask(uint8_t *config, uint16_t mask, u= int16_t reg) pci_set_word(config, (~mask & val) | (mask & rval)); } =20 -static inline uint16_t -pci_get_word_by_mask(uint8_t *config, uint16_t mask) -{ - uint16_t val =3D pci_get_word(config); - return (val & mask) >> ctz32(mask); -} - static inline void pci_set_long_by_mask(uint8_t *config, uint32_t mask, uint32_t reg) { @@ -722,13 +708,6 @@ pci_set_long_by_mask(uint8_t *config, uint32_t mask, u= int32_t reg) pci_set_long(config, (~mask & val) | (mask & rval)); } =20 -static inline uint32_t -pci_get_long_by_mask(uint8_t *config, uint32_t mask) -{ - uint32_t val =3D pci_get_long(config); - return (val & mask) >> ctz32(mask); -} - static inline void pci_set_quad_by_mask(uint8_t *config, uint64_t mask, uint64_t reg) { @@ -737,13 +716,6 @@ pci_set_quad_by_mask(uint8_t *config, uint64_t mask, u= int64_t reg) pci_set_quad(config, (~mask & val) | (mask & rval)); } =20 -static inline uint64_t -pci_get_quad_by_mask(uint8_t *config, uint64_t mask) -{ - uint64_t val =3D pci_get_quad(config); - return (val & mask) >> ctz32(mask); -} - PCIDevice *pci_new_multifunction(int devfn, bool multifunction, const char *name); PCIDevice *pci_new(int devfn, const char *name); --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427274; cv=none; d=zohomail.com; s=zohoarc; b=Y174n2ZDVZPfMzAKYtC1akMemWMbbmYYh/+ZCnHyTMVctGYYPWGFxYwPV0rnjufNqpIyscs97SMkOpfb4eo7Jan3b+g8A5jUp1C84sEimlJliMWBTajkis4tllE6oyV4gaOAtYUjzoyfJF7v7pRqfJqiYRCmNr5YnroUuZx7sBk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427274; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jYG4D+Osh2qvpF6MQt1stca/DHn+PvzorECJ71JvQWM=; b=XM7v+MMQCjLT+dcHp/YeHS707xXtZKN4V0pH7qduBausKtz//SUg6/qm9IPsRIisEivjAvSMt/pFKX/8fyQTGwrAjhU+0aL0zq+qx/2/hYkB6uTPy2pabblfQ0HKe43RaXlGp7WOUun2vACtshEVqyv0x95rVmr69U8SqhOnAHY= 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 1665427274647129.17742465105732; Mon, 10 Oct 2022 11:41:14 -0700 (PDT) Received: from localhost ([::1]:48004 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxiC-00047M-GS for importer@patchew.org; Mon, 10 Oct 2022 14:41:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52660) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwd8-0003jv-Vm for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:42926) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcn-0007NO-Fr for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:54 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-349-qvfJG8OrOpKhJODw-K60WQ-1; Mon, 10 Oct 2022 13:31:29 -0400 Received: by mail-wr1-f70.google.com with SMTP id m20-20020adfa3d4000000b0022e2fa93dd1so2943298wrb.2 for ; Mon, 10 Oct 2022 10:31:29 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id k24-20020a05600c1c9800b003c6c182bef9sm951399wms.36.2022.10.10.10.31.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423090; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=jYG4D+Osh2qvpF6MQt1stca/DHn+PvzorECJ71JvQWM=; b=Oy+/1iUdA8+SsxhdsBVflis/gX5Mx9C1zUWZ5dr1f7CWtf7GGanmJmQysrxKiGzMgyh5jS +k94HLJX8VtrdmdgJK4Ki2aPGTzWKVbpSIVz46uMUObBHLVbxm2tAOJVdix25RbezAO02W PvB3IQckmfKiDTOtw0ATsKnVfyPrN90= X-MC-Unique: qvfJG8OrOpKhJODw-K60WQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jYG4D+Osh2qvpF6MQt1stca/DHn+PvzorECJ71JvQWM=; b=gJTGkPdVnYBLEHXvegJZFk9AI51X2AHENygDbusaC2jr0S+K9HHnPBX/Q9Z84AcF9i a1pkkvNn5WKDbaWP9oeu685fa1Pfjw3xFluNShTHu0RMrHlLQmhPsrgiVC4HHg1CUpAZ DFKc4FN2CUAWrYwO0pBWDsG89zFEVyLRudG+r3+6qGXMwid2OVozXxbDycwIVAvl3/IU zmXZuZEbVMjfY6m4ZK8cN0VGUqmWopuZVxLfMHev0Y8Or4ZQWiUGDblnckmYySiXj6GY Roq6Aspq08vLIOFpK402MbY8THqg+4ApCrOeAIxEwxLrT/D2uLZ/5YF89phlgU3s/8Pk GCZQ== X-Gm-Message-State: ACrzQf2/lHDXwpnCeV7Jf6ytz8sSdE5qAUEjXYdaASW0hdl4K1IyEM8p 5/2LNGdyQ/1wahN5krHkIpx0K039D8NDE/IW/8on1JNzr/UMAH5+57X/e93MWu9l6VoQ4Imb59e /9YGUDFXAatvp3VNJ+X0f3AYW2atUoKO9hiL5C9jny0jlVRHdPqFopS/T4LZn X-Received: by 2002:a05:6000:711:b0:22e:7b01:db9f with SMTP id bs17-20020a056000071100b0022e7b01db9fmr12847178wrb.38.1665423087884; Mon, 10 Oct 2022 10:31:27 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4WXI6ZWkViW1XvrKl2414fvtQI0BYQ8zPv0RVdJX3DcCeoN5+o+c0IVrONCQc/2OSSc6mNJg== X-Received: by 2002:a05:6000:711:b0:22e:7b01:db9f with SMTP id bs17-20020a056000071100b0022e7b01db9fmr12847165wrb.38.1665423087540; Mon, 10 Oct 2022 10:31:27 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:23 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Richard Henderson , Paolo Bonzini , Marcel Apfelbaum Subject: [PULL 37/55] pci: Sanity check mask argument to pci_set_*_by_mask() Message-ID: <20221010172813.204597-38-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427275625100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Peter Maydell Coverity complains that in functions like pci_set_word_by_mask() we might end up shifting by more than 31 bits. This is true, but only if the caller passes in a zero mask. Help Coverity out by asserting that the mask argument is valid. Fixes: CID 1487168 Reviewed-by: Richard Henderson Signed-off-by: Peter Maydell Message-Id: <20220818135421.2515257-3-peter.maydell@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Paolo Bonzini --- include/hw/pci/pci.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index c79144bc5e..97937cc922 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -688,7 +688,10 @@ static inline void pci_set_byte_by_mask(uint8_t *config, uint8_t mask, uint8_t reg) { uint8_t val =3D pci_get_byte(config); - uint8_t rval =3D reg << ctz32(mask); + uint8_t rval; + + assert(mask); + rval =3D reg << ctz32(mask); pci_set_byte(config, (~mask & val) | (mask & rval)); } =20 @@ -696,7 +699,10 @@ static inline void pci_set_word_by_mask(uint8_t *config, uint16_t mask, uint16_t reg) { uint16_t val =3D pci_get_word(config); - uint16_t rval =3D reg << ctz32(mask); + uint16_t rval; + + assert(mask); + rval =3D reg << ctz32(mask); pci_set_word(config, (~mask & val) | (mask & rval)); } =20 @@ -704,7 +710,10 @@ static inline void pci_set_long_by_mask(uint8_t *config, uint32_t mask, uint32_t reg) { uint32_t val =3D pci_get_long(config); - uint32_t rval =3D reg << ctz32(mask); + uint32_t rval; + + assert(mask); + rval =3D reg << ctz32(mask); pci_set_long(config, (~mask & val) | (mask & rval)); } =20 @@ -712,7 +721,10 @@ static inline void pci_set_quad_by_mask(uint8_t *config, uint64_t mask, uint64_t reg) { uint64_t val =3D pci_get_quad(config); - uint64_t rval =3D reg << ctz32(mask); + uint64_t rval; + + assert(mask); + rval =3D reg << ctz32(mask); pci_set_quad(config, (~mask & val) | (mask & rval)); } =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427072; cv=none; d=zohomail.com; s=zohoarc; b=cOSTWLvKLOkNrGVNMR1PGW+ZQy8PjTvb5iaAwavY2L83dodZJ9A/8WTXHMosjcBb4egcOE20u8hx4Cj1j0CRijVMlvVV3ASNqYD5TU5UTL6ZiYjkFAG/bFA27VPl4AYBcFdu8yHaThiZtGojD3ZDzR6Pwt7SX1kIXkl34wCzKKY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427072; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lSdj0c5Xx/hwF/JVH5if+X58Jg6X9O17WP0jnK/PzJ0=; b=eb7cQ6PsjFT6x+Yyas76q5/e3WJfDGzV3bNYqfDeVVFBGl/45LY+X3oSaJ5sjU+H0ZYr5m+BAF+jvNJ5e8wLlJPYOgDfNKvhZOnwL0rfdfyOXWnChHKe2vjFJ6f9By1h/GEHFjdES5B2hHHGznkMnyX+Knhuj1DK+v8uEjxAmbo= 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 1665427072055788.6503593585163; Mon, 10 Oct 2022 11:37:52 -0700 (PDT) Received: from localhost ([::1]:55488 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxew-0007Wq-LD for importer@patchew.org; Mon, 10 Oct 2022 14:37:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52658) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwd8-0003jP-Pz for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:54 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:22818) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcr-0007Q6-7F for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:54 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-417-hRhkOg_INRWJC3AaT9hWCg-1; Mon, 10 Oct 2022 13:31:35 -0400 Received: by mail-wr1-f69.google.com with SMTP id h17-20020adfaa91000000b0022e9f2245c8so2080739wrc.19 for ; Mon, 10 Oct 2022 10:31:34 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id d18-20020adffbd2000000b0022860e8ae7csm9563259wrs.77.2022.10.10.10.31.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423096; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=lSdj0c5Xx/hwF/JVH5if+X58Jg6X9O17WP0jnK/PzJ0=; b=BEmAjY6ZjsIqS7rPxVS1iI307t8XHUlEKY/T0a5SG2FkZhfW0I8XW/BjyDvDqhdDqLRbZx GEiKP/zBmuNv9oepiIt19jUgYRyjZsWSznYMslQEOwg4GUSHtAEmLPeOm3tewPb+RAOpgn ibkQGxuj6E+Tm+McabUNz5H1cPpL+0g= X-MC-Unique: hRhkOg_INRWJC3AaT9hWCg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=lSdj0c5Xx/hwF/JVH5if+X58Jg6X9O17WP0jnK/PzJ0=; b=xQTAsGhgr+oZc+5y2Lgn4S62LeFP44ZT9Bv1LJQxF571wB3Dss0+18oKJVBuAV7QG4 0iHN7Y7hibFh1p5t5YY+Cc4d4ZqzacipmRD2nBV9twIG9IP2aTZlTL1QpG6W81rFz+PD 3ZWxfuVTz3VrzwZ9lPpdKTbRuty4JjV6LdZJA7XWw5SvPH5Vhvfu1nTJA9dd6GmASxef a4zWAOVpT+dMz0FxbMeGApBOJVYjaDkzBc7W8czvCwCb9utkvKAHbNwsGnzvuOzHeeRh Dhb7icart7MOsKRNkcHb8OWh5CMmZm56dwPM4iTEx1uWkOihhcGS93/8AwQuS5TWDP4z xuEQ== X-Gm-Message-State: ACrzQf1E0Rin0P1pOnViRV0TIqJ2REyi5j8UWe6diwXByuAjgXpsWTvK Qea/UQB5l+dylNa/EyFpESUM+UMplQmbxOQRfpEV5aFXlmFrFldVNqIWBJVdELS1Q6JrWn6JHeD +j4pQ3H5FQ4K6qtwH6HZGQ/CI8n7Jr5hzrgjOxTe9Om0Xq1WaetJQ4BuyAOmd X-Received: by 2002:a05:600c:3b8b:b0:3c0:a1a7:bd1e with SMTP id n11-20020a05600c3b8b00b003c0a1a7bd1emr17844401wms.159.1665423093630; Mon, 10 Oct 2022 10:31:33 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4eOEa1YHARkh1ufpZIO1P0DO0MiAKMyazfi1tR/WKnFP76Q0NRl/+X25xtCZ5QYHygMerAow== X-Received: by 2002:a05:600c:3b8b:b0:3c0:a1a7:bd1e with SMTP id n11-20020a05600c3b8b00b003c0a1a7bd1emr17844380wms.159.1665423093318; Mon, 10 Oct 2022 10:31:33 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:27 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Hal Martin , Igor Mammedov , Ani Sinha Subject: [PULL 38/55] hw/smbios: support for type 8 (port connector) Message-ID: <20221010172813.204597-39-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427072319100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hal Martin PATCH v1: add support for SMBIOS type 8 to qemu PATCH v2: incorporate patch v1 feedback and add smbios type=3D8 to qemu-opt= ions internal_reference: internal reference designator external_reference: external reference designator connector_type: hex value for port connector type (see SMBIOS 7.9.2) port_type: hex value for port type (see SMBIOS 7.9.3) After studying various vendor implementationsi (Dell, Lenovo, MSI), the value of internal connector type was hard-coded to 0x0 (None). Example usage: -smbios type=3D8,internal_reference=3DJUSB1,external_reference=3DUSB1,conne= ctor_type=3D0x12,port_type=3D0x10 \ -smbios type=3D8,internal_reference=3DJAUD1,external_reference=3D"Audio Jac= k",connector_type=3D0x1f,port_type=3D0x1d \ -smbios type=3D8,internal_reference=3DLAN,external_reference=3DEthernet,con= nector_type=3D0x0b,port_type=3D0x1f \ -smbios type=3D8,internal_reference=3DPS2,external_reference=3DMouse,connec= tor_type=3D0x0f,port_type=3D0x0e \ -smbios type=3D8,internal_reference=3DPS2,external_reference=3DKeyboard,con= nector_type=3D0x0f,port_type=3D0x0d Signed-off-by: Hal Martin Message-Id: <20220812135153.17859-1-hal.martin@gmail.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/firmware/smbios.h | 10 ++++++ hw/smbios/smbios.c | 63 ++++++++++++++++++++++++++++++++++++ qemu-options.hx | 2 ++ 3 files changed, 75 insertions(+) diff --git a/include/hw/firmware/smbios.h b/include/hw/firmware/smbios.h index 4b7ad77a44..e7d386f7c8 100644 --- a/include/hw/firmware/smbios.h +++ b/include/hw/firmware/smbios.h @@ -189,6 +189,16 @@ struct smbios_type_4 { uint16_t processor_family2; } QEMU_PACKED; =20 +/* SMBIOS type 8 - Port Connector Information */ +struct smbios_type_8 { + struct smbios_structure_header header; + uint8_t internal_reference_str; + uint8_t internal_connector_type; + uint8_t external_reference_str; + uint8_t external_connector_type; + uint8_t port_type; +} QEMU_PACKED; + /* SMBIOS type 11 - OEM strings */ struct smbios_type_11 { struct smbios_structure_header header; diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c index 4c9f664830..51437ca09f 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c @@ -111,6 +111,13 @@ static struct { .processor_id =3D 0, }; =20 +struct type8_instance { + const char *internal_reference, *external_reference; + uint8_t connector_type, port_type; + QTAILQ_ENTRY(type8_instance) next; +}; +static QTAILQ_HEAD(, type8_instance) type8 =3D QTAILQ_HEAD_INITIALIZER(typ= e8); + static struct { size_t nvalues; char **values; @@ -337,6 +344,29 @@ static const QemuOptDesc qemu_smbios_type4_opts[] =3D { { /* end of list */ } }; =20 +static const QemuOptDesc qemu_smbios_type8_opts[] =3D { + { + .name =3D "internal_reference", + .type =3D QEMU_OPT_STRING, + .help =3D "internal reference designator", + }, + { + .name =3D "external_reference", + .type =3D QEMU_OPT_STRING, + .help =3D "external reference designator", + }, + { + .name =3D "connector_type", + .type =3D QEMU_OPT_NUMBER, + .help =3D "connector type", + }, + { + .name =3D "port_type", + .type =3D QEMU_OPT_NUMBER, + .help =3D "port type", + }, +}; + static const QemuOptDesc qemu_smbios_type11_opts[] =3D { { .name =3D "value", @@ -718,6 +748,26 @@ static void smbios_build_type_4_table(MachineState *ms= , unsigned instance) smbios_type4_count++; } =20 +static void smbios_build_type_8_table(void) +{ + unsigned instance =3D 0; + struct type8_instance *t8; + + QTAILQ_FOREACH(t8, &type8, next) { + SMBIOS_BUILD_TABLE_PRE(8, T0_BASE + instance, true); + + SMBIOS_TABLE_SET_STR(8, internal_reference_str, t8->internal_refer= ence); + SMBIOS_TABLE_SET_STR(8, external_reference_str, t8->external_refer= ence); + /* most vendors seem to set this to None */ + t->internal_connector_type =3D 0x0; + t->external_connector_type =3D t8->connector_type; + t->port_type =3D t8->port_type; + + SMBIOS_BUILD_TABLE_POST; + instance++; + } +} + static void smbios_build_type_11_table(void) { char count_str[128]; @@ -1030,6 +1080,7 @@ void smbios_get_tables(MachineState *ms, smbios_build_type_4_table(ms, i); } =20 + smbios_build_type_8_table(); smbios_build_type_11_table(); =20 #define MAX_DIMM_SZ (16 * GiB) @@ -1348,6 +1399,18 @@ void smbios_entry_add(QemuOpts *opts, Error **errp) UINT16_MAX); } return; + case 8: + if (!qemu_opts_validate(opts, qemu_smbios_type8_opts, errp)) { + return; + } + struct type8_instance *t; + t =3D g_new0(struct type8_instance, 1); + save_opt(&t->internal_reference, opts, "internal_reference"); + save_opt(&t->external_reference, opts, "external_reference"); + t->connector_type =3D qemu_opt_get_number(opts, "connector_typ= e", 0); + t->port_type =3D qemu_opt_get_number(opts, "port_type", 0); + QTAILQ_INSERT_TAIL(&type8, t, next); + return; case 11: if (!qemu_opts_validate(opts, qemu_smbios_type11_opts, errp)) { return; diff --git a/qemu-options.hx b/qemu-options.hx index 95b998a13b..c0bb74655c 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2572,6 +2572,8 @@ DEF("smbios", HAS_ARG, QEMU_OPTION_smbios, " [,asset=3Dstr][,part=3Dstr][,max-speed=3D%d][,current-s= peed=3D%d]\n" " [,processor-id=3D%d]\n" " specify SMBIOS type 4 fields\n" + "-smbios type=3D8[,external_reference=3Dstr][,internal_reference=3Dstr= ][,connector_type=3D%d][,port_type=3D%d]\n" + " specify SMBIOS type 8 fields\n" "-smbios type=3D11[,value=3Dstr][,path=3Dfilename]\n" " specify SMBIOS type 11 fields\n" "-smbios type=3D17[,loc_pfx=3Dstr][,bank=3Dstr][,manufacturer=3Dstr][,= serial=3Dstr]\n" --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427288; cv=none; d=zohomail.com; s=zohoarc; b=HFb6lxVPlXI2T44/7kyi7y845zm08wXWOgb8vQGPwy2Py4tJpephcSTnH1Y0r+DLjuwjhDOvLJj39kUbJMejy9sgeXt/z+npFOGgreBZEeLxTVdUW+pMC+3UF0KZ/sy+ZDYCYLnF4olUHnjsuvuV76t8TkYXAF/u/++IxHRzxbk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427288; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=32CBbVp680iYoU+SUH6pe2/fRG2LzO4/S5nMJMyYIIw=; b=I0URnhdhbQOnHnk9u0eRLzwzZXy/gyCYLXMgR3G+11IYeEMSF/6u38YIK7uDwnnasLToH9xfuCdhA5tnVOgN15ZqSxal0VU+VoOL+Ovq+VsBh1dsG5lt/TZPIfWFhLmPrOvljRkUFMalt+KvnyLjV2YfFwWrzE3nmDDFzGwh7Yk= 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 1665427288277981.1272415851307; Mon, 10 Oct 2022 11:41:28 -0700 (PDT) Received: from localhost ([::1]:53922 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxiP-0004nH-QG for importer@patchew.org; Mon, 10 Oct 2022 14:41:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44368) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdD-0003uo-55 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:59 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:43660) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcx-0007Sy-W3 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:31:58 -0400 Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-146-bGdUhLXLNrmJRZOBSNBsbw-1; Mon, 10 Oct 2022 13:31:39 -0400 Received: by mail-wr1-f71.google.com with SMTP id h17-20020adfaa91000000b0022e9f2245c8so2080819wrc.19 for ; Mon, 10 Oct 2022 10:31:39 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id j5-20020a05600c1c0500b003b477532e66sm37346932wms.2.2022.10.10.10.31.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423103; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=32CBbVp680iYoU+SUH6pe2/fRG2LzO4/S5nMJMyYIIw=; b=dCeBnTuBXp9yv1WtnacAltq8X4+sLvcvVkJDgGm/AQ7zBdYNwfD40Y/7dZywYhKFJZ6QPD 2At0ovwTEBgyAH9waEgfT6MsTgU8RzVckier/4A19deAym8l3ZcInALLQJywA6WDckp793 Jh306oUoyyzAEsrGHnCzeHFmfjpcqrQ= X-MC-Unique: bGdUhLXLNrmJRZOBSNBsbw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=32CBbVp680iYoU+SUH6pe2/fRG2LzO4/S5nMJMyYIIw=; b=1MzgnHHT8vfkpjcUoRw2DhweAMB3rFf7J22t8I95nYroNbOBnJJ2/wsgVGwMshUQJc yXlkmBunD0dC3tcDFnDWQWpaeVE9pcRlCyMdljVJqBLDiakudkZYMdI8JKBphy3IC3o+ 4oillLBkJ4R2ImmJaYjcUXAE6w1Zmhfl/v7hSVUi3FokteS2JoP+yVpwgmascv3toR5t 2kxeTALOHd7BUndiqGcRDKUofHwprMyo72612pm5QUpsebpX6vy/vmblUkTgEUjxchyt aCrBcf/EtsFnMXy2Xd8VlhUVVLZG75xEs1FZIvA6SE99F772jccrQTwjBO349/UlnoFD s/Eg== X-Gm-Message-State: ACrzQf2XBGfGENHstKzAJkaVIFpZ173QPRDsGN6um09o1pLJLyu1/On7 WleEf/5d6mjFkvdfYndzcVKbgNgXn0nncXmU1eSSk4uOfnMryDwoaBJkLVT7xE5hIPE2S13OFXe frbW+DDdVyTBuc3QIv7/DuRbKRovEoJQF2LIUgXNISfaqWH6LgU+t8SNOS1jU X-Received: by 2002:a05:600c:643:b0:3b4:a1fe:d20a with SMTP id p3-20020a05600c064300b003b4a1fed20amr20512389wmm.61.1665423098098; Mon, 10 Oct 2022 10:31:38 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4wjyfKjOAdPviArDWZyi2hLIh/4N1jfli+JDJ+1xnfgl+/BuASDWvfSKiw25KTJ73vQZ9H+w== X-Received: by 2002:a05:600c:643:b0:3b4:a1fe:d20a with SMTP id p3-20020a05600c064300b003b4a1fed20amr20512363wmm.61.1665423097799; Mon, 10 Oct 2022 10:31:37 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:33 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 39/55] tests: acpi: whitelist pc/q35 DSDT due to HPET AML move Message-ID: <20221010172813.204597-40-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427289623100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-2-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/bios-tables-test-allowed-diff.h | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index dfb8523c8b..a7aa428fab 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,33 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/pc/DSDT", +"tests/data/acpi/pc/DSDT.acpierst", +"tests/data/acpi/pc/DSDT.acpihmat", +"tests/data/acpi/pc/DSDT.bridge", +"tests/data/acpi/pc/DSDT.cphp", +"tests/data/acpi/pc/DSDT.dimmpxm", +"tests/data/acpi/pc/DSDT.hpbridge", +"tests/data/acpi/pc/DSDT.hpbrroot", +"tests/data/acpi/pc/DSDT.ipmikcs", +"tests/data/acpi/pc/DSDT.memhp", +"tests/data/acpi/pc/DSDT.numamem", +"tests/data/acpi/pc/DSDT.roothp", +"tests/data/acpi/q35/DSDT", +"tests/data/acpi/q35/DSDT.acpierst", +"tests/data/acpi/q35/DSDT.acpihmat", +"tests/data/acpi/q35/DSDT.applesmc", +"tests/data/acpi/q35/DSDT.bridge", +"tests/data/acpi/q35/DSDT.cphp", +"tests/data/acpi/q35/DSDT.cxl", +"tests/data/acpi/q35/DSDT.dimmpxm", +"tests/data/acpi/q35/DSDT.ipmibt", +"tests/data/acpi/q35/DSDT.ipmismbus", +"tests/data/acpi/q35/DSDT.ivrs", +"tests/data/acpi/q35/DSDT.memhp", +"tests/data/acpi/q35/DSDT.mmio64", +"tests/data/acpi/q35/DSDT.multi-bridge", +"tests/data/acpi/q35/DSDT.numamem", +"tests/data/acpi/q35/DSDT.pvpanic-isa", +"tests/data/acpi/q35/DSDT.tis.tpm12", +"tests/data/acpi/q35/DSDT.tis.tpm2", +"tests/data/acpi/q35/DSDT.viot", +"tests/data/acpi/q35/DSDT.xapic", --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427451; cv=none; d=zohomail.com; s=zohoarc; b=HZWqpkR6PF8ORyEHCh9UsU88pbm3Si3zqv33h8tG7BODZPJzgg34NoeFlUYcoomxYsI9LBIdVL5w6HkEMxw4DjaVAA9Fg/TIn1ByWuSIVoleuKFUCm3QBwau1/UuKRwWHte9QsHbpjt/fYdqzgA8CsDE/GpwTq4owyZ+u/FGoDI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427451; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BlHcYu74UwkxKBo2ey1MBoltBMhBVKcIr1id+vxwvXY=; b=bzc+76bZQVMOji3fF/TsGQHoknX3S9PNCwe5fOhlftocKWF1+iwoM3U52SH+PTMO+fF7WQojro5vsapRn+nk19MPldNlpVZIhDfEh0kZ5LvednxArq5Qy6esWxMusz2gDxG3IiBe435NY4mf0kdzacgrCd+gmwn4ju0/TYcYK/I= 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 1665427451358914.5267131180325; Mon, 10 Oct 2022 11:44:11 -0700 (PDT) Received: from localhost ([::1]:42368 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxl3-0001yE-2J for importer@patchew.org; Mon, 10 Oct 2022 14:44:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44372) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdF-0003zU-7f for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:01 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:29871) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwcz-0007TJ-TK for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:00 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-79-MTjA-EbeMhaQFz1q2h22zw-1; Mon, 10 Oct 2022 13:31:44 -0400 Received: by mail-wm1-f70.google.com with SMTP id o18-20020a05600c339200b003bf24961658so7288591wmp.6 for ; Mon, 10 Oct 2022 10:31:43 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id co11-20020a0560000a0b00b00228d52b935asm9618110wrb.71.2022.10.10.10.31.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423105; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=BlHcYu74UwkxKBo2ey1MBoltBMhBVKcIr1id+vxwvXY=; b=UoqkAoQtwa9v6ks8AbRrQISzwRCZlTS9UBIKfnvZyjuqk7BN/8FdsDerk/sytefyeQYXxm kAuMWMwAkzcj0LPAmLxzUdX5p2oiHDQlPT2M7ZwYyHylnAkazGbz1CD2OZ/+xyAZzqteCw 6kRYKduQ9KeEYiGlvU4ILPY23iTROCQ= X-MC-Unique: MTjA-EbeMhaQFz1q2h22zw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=BlHcYu74UwkxKBo2ey1MBoltBMhBVKcIr1id+vxwvXY=; b=DaUkCWWQl2/Yq1NcKSSnMYIWib8pV99XL9TXHO+ADaqYIXviRwEEofWO40iX+2a/NA UCxA7bFflpFmD4uTm/B0VQi2oOgmhGv+81zyeNgFA3gjVkMwXZMemMTd+HQeJET2QMeW z2F1FMN5lEL8VjhX5YCyfnlCWXjnAKkX8zpCa1stiOjLoBfvnFoscuWc1oDKiV6/AKoN /KWDFPmUINNKVCDPrVVIXLbEiZNBHJqus0pOPXEU8/zmJDEFjeBfwXllqbO6LIathvo8 pmR3JSqZw2dcZJ0xiD1b2GfFTEhowqTUxzF3i8Co1RKfO95/ScW0ozoNRJz2BVgX084s tOqQ== X-Gm-Message-State: ACrzQf3/ZkVcphYq529T+yb/gqluvoT40WXkoT+EVf4UVQJK9r0g/vI1 kcbjCBhRZDws5wKpR5H7Y/g17LZub6TRzqjFQbBSBH1wyGxgBnHR2kzn92SK1koL1cZwWmcWiq5 T6akK46DrNYR0YOXu8o7w2Au/wSVgHL7LFjS+kKpJPVEe/+arKsayryzGaY6d X-Received: by 2002:a5d:43c8:0:b0:22e:632a:9bbf with SMTP id v8-20020a5d43c8000000b0022e632a9bbfmr12039723wrr.481.1665423102854; Mon, 10 Oct 2022 10:31:42 -0700 (PDT) X-Google-Smtp-Source: AMsMyM77YkdIxnSoiY5xO1T1VvPK3EzCO9M+U2sMr6d3ikd+e+q9xDImrxNk+Isc1gqAcvKyKesvWw== X-Received: by 2002:a5d:43c8:0:b0:22e:632a:9bbf with SMTP id v8-20020a5d43c8000000b0022e632a9bbfmr12039706wrr.481.1665423102587; Mon, 10 Oct 2022 10:31:42 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:38 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 40/55] acpi: x86: deduplicate HPET AML building Message-ID: <20221010172813.204597-41-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427452570100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov HPET AML doesn't depend on piix4 nor q35, move code buiding it to common scope to avoid duplication. Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-3-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-build.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 0355bd3dda..67b532f5a5 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1467,9 +1467,6 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, aml_append(sb_scope, dev); aml_append(dsdt, sb_scope); =20 - if (misc->has_hpet) { - build_hpet_aml(dsdt); - } build_piix4_isa_bridge(dsdt); if (pm->pcihp_bridge_en || pm->pcihp_root_en) { build_x86_acpi_pci_hotplug(dsdt, pm->pcihp_io_base); @@ -1515,9 +1512,6 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, =20 aml_append(dsdt, sb_scope); =20 - if (misc->has_hpet) { - build_hpet_aml(dsdt); - } build_q35_isa_bridge(dsdt); if (pm->pcihp_bridge_en) { build_x86_acpi_pci_hotplug(dsdt, pm->pcihp_io_base); @@ -1528,6 +1522,10 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, } } =20 + if (misc->has_hpet) { + build_hpet_aml(dsdt); + } + if (vmbus_bridge) { sb_scope =3D aml_scope("_SB"); aml_append(sb_scope, build_vmbus_device_aml(vmbus_bridge)); --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665426767; cv=none; d=zohomail.com; s=zohoarc; b=bxWvt46RztUTBPSx7btKDZaLkFg9Mo/WmrsXx+v0JIjs00GAZbFS8wOpYX7RsBFLNT9qMrnjAFDdInQD+1dUVMYd2+ogLfFyv0moZmImYOh6tjkS2BCi1I+nrFhd6nYBQqg5iWQERSQCd/v6XVZyE4uaSXsYmTf7rnfG2R+0bWA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665426767; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/uDuOboLUbGT8ltfg6VbHHBLEZD3jPfpwj8L5f+Uk+4=; b=fJGEAoORrsmu+I9gLIhUpjMH8bisKxOQIFJn1LQ2o7eGil3EODuoC36tOv8f76sCrO0Bz+16k+j/rtSNpAFCsSmbr5D3GpDJ3KPGuLz/nfyNVQ0MxzCgJ02Ng/wjU0Wys0JIJVe3JdzmD7GP6CwIgNGOErTsBcSZc8yHfUcK5n0= 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 1665426767068299.6743349603921; Mon, 10 Oct 2022 11:32:47 -0700 (PDT) Received: from localhost ([::1]:59016 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxa0-0001Ml-Hg for importer@patchew.org; Mon, 10 Oct 2022 14:32:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44374) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdG-00041B-H2 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:24105) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwd6-0007UI-Nd for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:01 -0400 Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-505-hHUYGD2FN4uV7i5OrKuZCQ-1; Mon, 10 Oct 2022 13:31:49 -0400 Received: by mail-wr1-f72.google.com with SMTP id l16-20020adfc790000000b00230c2505f96so785879wrg.4 for ; Mon, 10 Oct 2022 10:31:48 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id l12-20020a05600c2ccc00b003b47e8a5d22sm13636450wmc.23.2022.10.10.10.31.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423110; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=/uDuOboLUbGT8ltfg6VbHHBLEZD3jPfpwj8L5f+Uk+4=; b=ASHsuqvBQEjajF1Tl3yVcggAh93g4PHH+S/DflawQdLVe+iIyckdtYrvkLmRUa3BRBUX76 dFKtXIt/Y/GhKvEvMlnpQi637DrvHl43A2RIfFlcWEltEgiT3mTmq+9Op3x1d/zf5Ds+ln yfQkyVOVhtSRtC071WoAGAckHdI3+4I= X-MC-Unique: hHUYGD2FN4uV7i5OrKuZCQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/uDuOboLUbGT8ltfg6VbHHBLEZD3jPfpwj8L5f+Uk+4=; b=7X3g/JwkwRVud1y35YjgnEi6AfMxTUc78mxtvW8EpqMf9JE2h7FW0/o2CX4lJN+ywW 3doQL6IZRjSKKPDqzNnMlKhYbZmfAyTbgam9EdHxFGUs/nUGAoH+XHrHvKjfpym3ICRc yat/y1dRLRkXvA7BY39ipBAHCdhz1VV5/Oue/2Bawq2xMCOC0xLIloDuPP21t1rFZ7mV GfLmcWBDdwFh20rCu+QfdQzSy3RsfmisjorRDPbEbSUxYxewF1W4sb6u2HvoQXduVA6b 0WvFVO1cN+rBs+VZ9KMU5CtGs8JYf0Og+71To8+EslXziOhe2i+9z94JcFG2uPrX3N4m vGhg== X-Gm-Message-State: ACrzQf0DGhtzrIv8435xuTCK6Rs5EHLfsUkYTSOBUOC6Ra6dWZb6Efay RO3iT3OcrYKdAquarbKPjZYMTc8szv5b1L1dotdFft9qfnFxfxkHyfbE6pal37qwo3+eP3Q5Vbl jOK6widUi51WQHdIXuKyev/RtnZb+8Djv0LORmv0651F7DJJkT4RdmYGqW6sz X-Received: by 2002:adf:e198:0:b0:22e:ab4d:935b with SMTP id az24-20020adfe198000000b0022eab4d935bmr11105195wrb.306.1665423107379; Mon, 10 Oct 2022 10:31:47 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4Opn7GF8JHUD6RdmGa3m7CB/NBIwcd2sjX0hj7WduTbc7phlP8w2jgZ+XpvCE02MoHiQ6wFg== X-Received: by 2002:adf:e198:0:b0:22e:ab4d:935b with SMTP id az24-20020adfe198000000b0022eab4d935bmr11105169wrb.306.1665423106923; Mon, 10 Oct 2022 10:31:46 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:42 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 41/55] tests: acpi: update expected blobs after HPET move Message-ID: <20221010172813.204597-42-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665426768478100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov HPET AML moved after PCI host bridge description (no functional change) diff example for PC machine: @@ -54,47 +54,6 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPC ", 0x= 00000001) } } - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _H= ID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 =3D VEND /* \_SB_.HPET.VEND */ - Local1 =3D PRD /* \_SB_.HPET.PRD_ */ - Local0 >>=3D 0x10 - If (((Local0 =3D=3D Zero) || (Local0 =3D=3D 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 =3D=3D Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Set= tings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - Scope (_SB.PCI0) { Device (ISA) @@ -529,6 +488,47 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPC ", = 0x00000001) } } + Scope (_SB) + { + Device (HPET) + { + Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _H= ID: Hardware ID + Name (_UID, Zero) // _UID: Unique ID + OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) + Field (HPTM, DWordAcc, Lock, Preserve) + { + VEND, 32, + PRD, 32 + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Local0 =3D VEND /* \_SB_.HPET.VEND */ + Local1 =3D PRD /* \_SB_.HPET.PRD_ */ + Local0 >>=3D 0x10 + If (((Local0 =3D=3D Zero) || (Local0 =3D=3D 0xFFFF))) + { + Return (Zero) + } + + If (((Local1 =3D=3D Zero) || (Local1 > 0x05F5E100))) + { + Return (Zero) + } + + Return (0x0F) + } + + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Set= tings + { + Memory32Fixed (ReadOnly, + 0xFED00000, // Address Base + 0x00000400, // Address Length + ) + }) + } + } + Scope (_SB) { Device (\_SB.PCI0.PRES) Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-4-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/bios-tables-test-allowed-diff.h | 32 -------------------- tests/data/acpi/pc/DSDT | Bin 5987 -> 5987 bytes tests/data/acpi/pc/DSDT.acpierst | Bin 5954 -> 5954 bytes tests/data/acpi/pc/DSDT.acpihmat | Bin 7312 -> 7312 bytes tests/data/acpi/pc/DSDT.bridge | Bin 8653 -> 8653 bytes tests/data/acpi/pc/DSDT.cphp | Bin 6451 -> 6451 bytes tests/data/acpi/pc/DSDT.dimmpxm | Bin 7641 -> 7641 bytes tests/data/acpi/pc/DSDT.hpbridge | Bin 5954 -> 5954 bytes tests/data/acpi/pc/DSDT.hpbrroot | Bin 3069 -> 3069 bytes tests/data/acpi/pc/DSDT.ipmikcs | Bin 6059 -> 6059 bytes tests/data/acpi/pc/DSDT.memhp | Bin 7346 -> 7346 bytes tests/data/acpi/pc/DSDT.numamem | Bin 5993 -> 5993 bytes tests/data/acpi/pc/DSDT.roothp | Bin 6195 -> 6195 bytes tests/data/acpi/q35/DSDT | Bin 8274 -> 8274 bytes tests/data/acpi/q35/DSDT.acpierst | Bin 8291 -> 8291 bytes tests/data/acpi/q35/DSDT.acpihmat | Bin 9599 -> 9599 bytes tests/data/acpi/q35/DSDT.applesmc | Bin 8320 -> 8320 bytes tests/data/acpi/q35/DSDT.bridge | Bin 10988 -> 10988 bytes tests/data/acpi/q35/DSDT.cphp | Bin 8738 -> 8738 bytes tests/data/acpi/q35/DSDT.cxl | Bin 9600 -> 9600 bytes tests/data/acpi/q35/DSDT.dimmpxm | Bin 9928 -> 9928 bytes tests/data/acpi/q35/DSDT.ipmibt | Bin 8349 -> 8349 bytes tests/data/acpi/q35/DSDT.ipmismbus | Bin 8363 -> 8363 bytes tests/data/acpi/q35/DSDT.ivrs | Bin 8291 -> 8291 bytes tests/data/acpi/q35/DSDT.memhp | Bin 9633 -> 9633 bytes tests/data/acpi/q35/DSDT.mmio64 | Bin 9404 -> 9404 bytes tests/data/acpi/q35/DSDT.multi-bridge | Bin 8568 -> 8568 bytes tests/data/acpi/q35/DSDT.numamem | Bin 8280 -> 8280 bytes tests/data/acpi/q35/DSDT.pvpanic-isa | Bin 8375 -> 8375 bytes tests/data/acpi/q35/DSDT.tis.tpm12 | Bin 8880 -> 8880 bytes tests/data/acpi/q35/DSDT.tis.tpm2 | Bin 8906 -> 8906 bytes tests/data/acpi/q35/DSDT.viot | Bin 9383 -> 9383 bytes tests/data/acpi/q35/DSDT.xapic | Bin 35637 -> 35637 bytes 33 files changed, 32 deletions(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index a7aa428fab..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,33 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/pc/DSDT", -"tests/data/acpi/pc/DSDT.acpierst", -"tests/data/acpi/pc/DSDT.acpihmat", -"tests/data/acpi/pc/DSDT.bridge", -"tests/data/acpi/pc/DSDT.cphp", -"tests/data/acpi/pc/DSDT.dimmpxm", -"tests/data/acpi/pc/DSDT.hpbridge", -"tests/data/acpi/pc/DSDT.hpbrroot", -"tests/data/acpi/pc/DSDT.ipmikcs", -"tests/data/acpi/pc/DSDT.memhp", -"tests/data/acpi/pc/DSDT.numamem", -"tests/data/acpi/pc/DSDT.roothp", -"tests/data/acpi/q35/DSDT", -"tests/data/acpi/q35/DSDT.acpierst", -"tests/data/acpi/q35/DSDT.acpihmat", -"tests/data/acpi/q35/DSDT.applesmc", -"tests/data/acpi/q35/DSDT.bridge", -"tests/data/acpi/q35/DSDT.cphp", -"tests/data/acpi/q35/DSDT.cxl", -"tests/data/acpi/q35/DSDT.dimmpxm", -"tests/data/acpi/q35/DSDT.ipmibt", -"tests/data/acpi/q35/DSDT.ipmismbus", -"tests/data/acpi/q35/DSDT.ivrs", -"tests/data/acpi/q35/DSDT.memhp", -"tests/data/acpi/q35/DSDT.mmio64", -"tests/data/acpi/q35/DSDT.multi-bridge", -"tests/data/acpi/q35/DSDT.numamem", -"tests/data/acpi/q35/DSDT.pvpanic-isa", -"tests/data/acpi/q35/DSDT.tis.tpm12", -"tests/data/acpi/q35/DSDT.tis.tpm2", -"tests/data/acpi/q35/DSDT.viot", -"tests/data/acpi/q35/DSDT.xapic", diff --git a/tests/data/acpi/pc/DSDT b/tests/data/acpi/pc/DSDT index e80bef30317b5ef3bf0d2fb7aaabd6def109adb6..2d543fbf94e42f03814019c146b= 49f94e76bf15d 100644 GIT binary patch delta 19 bcmaE?_gHVjq|FM9s%#S{^=3D)=3D#mlFU0Q=3DbPS delta 19 bcmaE?_gHVjq{-Xa`Zi8dW!vn^E++s0T|@`I diff --git a/tests/data/acpi/pc/DSDT.acpierst b/tests/data/acpi/pc/DSDT.acp= ierst index d5a2ca51652dfc3637a817bac4a02d6ff6dc8ac2..798349aa3f85e0803396471237e= 94604d00a1f90 100644 GIT binary patch delta 19 bcmX@4cSvu-q|FM9s%#S{^=3D)=3D#|H}^mP`C%a delta 19 bcmX@4cSvu-q{-Xa`Zi8dW!vn^{+AyBT3rZQ diff --git a/tests/data/acpi/pc/DSDT.acpihmat b/tests/data/acpi/pc/DSDT.acp= ihmat index f86c743c4d64041c7fbd9999cc700e88416770b7..2b0fd3433b586fd7665b9a0b5b2= f8bb3fcc09b44 100644 GIT binary patch delta 19 bcmbPWIl*$mq|FM9s%#S{^=3D)=3D#_Z9^JNyrAo delta 19 bcmbPWIl*$mq{-Xa`Zi8dW!vn^?kx%cQ*8%e diff --git a/tests/data/acpi/pc/DSDT.bridge b/tests/data/acpi/pc/DSDT.bridge index 14ed0d995a9f6540deae5a25a7853ed4493a6e06..56398fc0147c9ab9d59947e24cd= db08380b6a13e 100644 GIT binary patch delta 19 bcmX@>eAaowq|FM9s%#S{^=3D)=3D#?~nojR4)gV delta 19 bcmX@>eAaowq{-Xa`Zi8dW!vn^-XR45UDOCL diff --git a/tests/data/acpi/pc/DSDT.cphp b/tests/data/acpi/pc/DSDT.cphp index c653302a84a42d063a74a22c6adf910beeba7c60..38cb47c675edb6d4797b008d2de= ae656739230ef 100644 GIT binary patch delta 19 bcmdmNwApCFq|FM9s%#S{^=3D)=3D#e{#Sg$q|FM9Y^)O}^=3D(#TyUq##Q{o4f delta 19 bcmew>{#Sg$q{%Z_`!-HuW8JLAcAXUfTxbXq diff --git a/tests/data/acpi/pc/DSDT.ipmikcs b/tests/data/acpi/pc/DSDT.ipmi= kcs index f0d9e75841ea3d69fed9384e439bc4e94c7a4c4e..be7f22f1c29f25351bcb5620dcf= e8f955bd083d7 100644 GIT binary patch delta 19 bcmZ3jzgmC7q|FM9xoi_B^=3DHq)$ diff --git a/tests/data/acpi/q35/DSDT.bridge b/tests/data/acpi/q35/DSDT.bri= dge index d820098355e0b79dc69d714817fe906064852f4d..40457ec74d272f4ce971b66a1b1= 9a397ed9af770 100644 GIT binary patch delta 21 dcmaD8`X+QkDC6eGjEoYKLmB%vKau1R1ORKJ2zdYi delta 21 dcmaD8`X+QkDC6WX$-d2@jEoYSpGa~D0sv@b2m}BC diff --git a/tests/data/acpi/q35/DSDT.cphp b/tests/data/acpi/q35/DSDT.cphp index ac8456a43d54209d77917163b282954d7429b331..fe87e060d5cf41b20cf1a37928e= d31ca9b15ed66 100644 GIT binary patch delta 21 dcmZ4FvdCpaDC6eGjEoYKLmB%vKasTK003R^2k-y@ delta 21 dcmZ4FvdCpaDC6WX$-d2@jEoYSpGewq003ID2YUbj diff --git a/tests/data/acpi/q35/DSDT.cxl b/tests/data/acpi/q35/DSDT.cxl index 369ae90196113ec666a4acec7bb7a93be5b60e75..82d7563a73f6b7a4ead15ca0933= d0e57ae8be48e 100644 GIT binary patch delta 21 dcmZqhZt&g^%DDM4BcsIRP{zK^PbBAX0{~iS2pa$Z delta 21 ccmZqhZt&g^$~ZYpvTt)JBcsITCz5lx0aq&rrT_o{ diff --git a/tests/data/acpi/q35/DSDT.dimmpxm b/tests/data/acpi/q35/DSDT.di= mmpxm index bb0eadf869fe366fc139f8b0fd2ed811d3b16814..304c8229d81e333ed7564423cf5= 0ad2b963b0a2e 100644 GIT binary patch delta 21 dcmX@%d%|}^DC6eGjEoYKLmB%vKaqUG0{~`*2>1X1 delta 21 dcmX@%d%|}^DC6WX$-d2@jEoYSpGZF80RUr22!j9s diff --git a/tests/data/acpi/q35/DSDT.ipmibt b/tests/data/acpi/q35/DSDT.ipm= ibt index bb258279506e78b50545f6f9030bd25afe433c29..b9a5ae240c62f29d952d94a280b= c97d608b3c2e5 100644 GIT binary patch delta 21 dcmbR1IM;DQDC6eGj6M>RLmB%v>r3Ua0RUZm2c-Z2 delta 21 dcmbR1IM;DQDC6XXl6{*)8GR%+>r3Ua0RUX#2YUbj diff --git a/tests/data/acpi/q35/DSDT.ipmismbus b/tests/data/acpi/q35/DSDT.= ipmismbus index 15000c357fdabf1bceef6f860bd35e9a33024927..a0eeae95c07fe3708509c3e652c= 3aeff9c21ac82 100644 GIT binary patch delta 21 dcmZ4OxY}_;DC6eGj8PJkLmB%v+e+oJ0RUir2i*Vw delta 21 dcmZ4OxY}_;DC6Yyl6{*)8KWdN+e+oJ0RUiO2f+XU diff --git a/tests/data/acpi/q35/DSDT.ivrs b/tests/data/acpi/q35/DSDT.ivrs index 0bc5de80652ae7328fdc07ccda34afff39ade56f..f768380c1c2aa8fcd6ff6bc1048= e0ccd2037eb2c 100644 GIT binary patch delta 21 dcmaFt@YrEPDC6eGjEoYKLmB%vKas3w0|00M2&n)7 delta 21 dcmaFt@YrEPDC6WX$-d2@jEoYSpGelT0RUve2s8iy diff --git a/tests/data/acpi/q35/DSDT.memhp b/tests/data/acpi/q35/DSDT.memhp index 663456fc0d3c71a51b541f5ab952e05c9dac01e6..b4a9f5a0fe5cf3b44ebe7659a2b= f3687e1073482 100644 GIT binary patch delta 21 dcmZ4Jz0i9@DC6eGjEoYKLmB%vKat$a4FF%$2z~$n delta 21 dcmZ4Jz0i9@DC6WX$-d2@jEoYSpGfZI1^`@@2nhfH diff --git a/tests/data/acpi/q35/DSDT.mmio64 b/tests/data/acpi/q35/DSDT.mmi= o64 index 91afd01d598c7c2c733387dfb5140d0fcad54adb..3af5ef2ea473322d8697281d3a2= 0f7282f3238ac 100644 GIT binary patch delta 21 dcmdnvxyN%uDC6eGjEoYKLmB%vKasq_1ps682+9Be delta 21 dcmdnvxyN%uDC6WX$-d2@jEoYSpGe-|0svsP2vq<8 diff --git a/tests/data/acpi/q35/DSDT.multi-bridge b/tests/data/acpi/q35/DS= DT.multi-bridge index afde339a181628ae9153251eee026b437ab685bc..238668b95f33e831d66e2e2fa5e= 952f00ea7260b 100644 GIT binary patch delta 21 dcmez2^uuXGDC6eGjEoYKLmB%vKarfm4ghPv2<-p> delta 21 dcmez2^uuXGDC6WX$-d2@jEoYSpGZz&2LNb+2zUSh diff --git a/tests/data/acpi/q35/DSDT.numamem b/tests/data/acpi/q35/DSDT.nu= mamem index e537669949a07adbaa4255021ea14bb4a9dc672f..37fa4c3a45b0d7db0d3d368df5e= 027e7e1acf9d2 100644 GIT binary patch delta 21 dcmccNaKm9kDC6eGjEoYKLmB%vKanh90{~_+2#5dx delta 21 dcmccNaKm9kDC6WX$-d2@jEoYSpGcOl0RUq32onGR diff --git a/tests/data/acpi/q35/DSDT.pvpanic-isa b/tests/data/acpi/q35/DSD= T.pvpanic-isa index cc545b5d2505246d33f83d2482273968aa1be032..8705309748d1d7352c6623b32c2= 8eab7fbbce2a4 100644 GIT binary patch delta 21 dcmdn)xZQC>DC6eGjA;^+LmB%vdrIZ80RUqX2n_%L delta 21 dcmdn)xZQC>DC6Yal6{*)8Pg;-drIZ80RUrR2mJs5 diff --git a/tests/data/acpi/q35/DSDT.tis.tpm12 b/tests/data/acpi/q35/DSDT.= tis.tpm12 index a97d884c50485f848054c6ac95ecfa055ff59e5b..7408f03e4b571c352f9fdf2afc8= 718aa7b37da06 100644 GIT binary patch delta 21 dcmdnsy1{irDC6eGjKNZqLmB%vo5@tM0RUmA2k`&^ delta 21 dcmdnsy1{irDC6W6(tVpl8H1%Zo5@tM0RUlJ2hacj diff --git a/tests/data/acpi/q35/DSDT.tis.tpm2 b/tests/data/acpi/q35/DSDT.t= is.tpm2 index 1f5392919b5ea69696b49ff13aab5c37d0615919..134c2fbccacd0e9383df094f9b4= deb03b4e46abb 100644 GIT binary patch delta 21 dcmX@*ddhV}DC6eGjJZ;iLmB%w2g+2k0RU%32wDID delta 21 dcmX@*ddhV}DC6Wq(*2vm7;~gH2gp>h0RU&{2vYz6 diff --git a/tests/data/acpi/q35/DSDT.viot b/tests/data/acpi/q35/DSDT.viot index e20e4ee5e92e11ccf890a18fbdd78181c43f3b5c..be4a254e93a9cb360f42a25121c= 5fcefbd47480f 100644 GIT binary patch delta 21 dcmZ4Px!iL@DC6eGjEoYKLmB%vKao7l1pr`z2#Wv! delta 21 dcmZ4Px!iL@DC6WX$-d2@jEoYSpGY3&0svh^2o?YU diff --git a/tests/data/acpi/q35/DSDT.xapic b/tests/data/acpi/q35/DSDT.xapic index 3cab5956eee60363251a6fab0cc981bbbda64443..2327152da1b7d777c1f3da358ae= 5ae1406384d11 100644 GIT binary patch delta 23 fcmdlwjcMyNrVXKtn;$bWN=3Dy!A?A!cAGO!Q;anuPq delta 23 fcmdlwjcMyNrVXKtlfxwYHit4YN^E{28CVDaZk7ne --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427689; cv=none; d=zohomail.com; s=zohoarc; b=kBBHky5cI52UqnaBTaZe6Makp3XBLQjlsdyPFRTQPN7TGrbk1R209OdUE54HK41hEM/zFu8FEwzmhgpjfi+PxdM54cDYBCA7T0PU0rISXGSdUcJUpJYgv5NdKqdWuxZPQENl4U3D4o2JJQFZ8rnjBlZZwwVaQfoi4ajY5Qex2Rs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427689; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=RqPtGI6BYMsOWdKedgX5Yf7/fys2F2dn200Fm9RGsDY=; b=Lq1Ju+sHXfX5/J6OeIwiWxk+1/3FaiussLUW19yXMBqbmLSB1PbU89K8t+oLTHpEn6Zj+BamuYsMwx8ozE/DS6mLONfGdgX2XuTCCB+IhgGzr8MfYrX7phQHvV7dbn4aRFll/+6jZQjfgSGblNucJCsSIZYX6huvbL/gIQIgHM4= 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 1665427689137869.635202279688; Mon, 10 Oct 2022 11:48:09 -0700 (PDT) Received: from localhost ([::1]:41538 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxot-0007ii-FF for importer@patchew.org; Mon, 10 Oct 2022 14:48:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44376) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdH-00043r-9L for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:03 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:48166) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwd8-0007Uo-4L for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:03 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-504-a1mSmGW9PfSy2nDl3MHikQ-1; Mon, 10 Oct 2022 13:31:52 -0400 Received: by mail-wm1-f69.google.com with SMTP id g8-20020a05600c4ec800b003b4bcbdb63cso7288914wmq.7 for ; Mon, 10 Oct 2022 10:31:52 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id ay34-20020a05600c1e2200b003b4de550e34sm4602302wmb.40.2022.10.10.10.31.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423113; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=RqPtGI6BYMsOWdKedgX5Yf7/fys2F2dn200Fm9RGsDY=; b=idAq4p9ggdNQQOPYDYCQX90iCsXWhoOthvR50jkn5MQ2zp/qlRhql7qs1nz3qCdDTsBr3h c6RaK1OCyHTkGaDAiNaOZYOH/XW8r0aYpmWRlKJCPK5ISBDJNP6lk0FOCpLafcGjQEb900 2w48+zelzmI7I505ACmiO7u+Fm11/Wc= X-MC-Unique: a1mSmGW9PfSy2nDl3MHikQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=RqPtGI6BYMsOWdKedgX5Yf7/fys2F2dn200Fm9RGsDY=; b=VY1gZ9LzS4owUilaqo3543pj0ZjyXXQoUtQAjRd5Oii8fOtP+EahqEbIwClaqfjZXa ERBx6NrnniMPmnaof2mitJQCbij42Vn6PoFNXnXVQgmaGX+b4h3zUmJhuN3cPwtLoqXE ZDK03LKw7npqFAyLUgs74ITl0UQ3JNml4EQXGx33aqg1eoekZm5AnjxufYm+T4elqlSk uJ6MSRNXTlZso7JPZgcXa/JP6dS0UNAd4Fe37i/EhCnpGp3mudWdoxueDiO2GmXIxFTO VpsG5Bk1QuTfUE/e9ZBx7mUR0Z51G2ICMp/t8ds9DSjqf3krTW+OApIQYipgj56Py3QW LuGg== X-Gm-Message-State: ACrzQf3VYo7rukUaSzy7AkM/QVZRgZC1ZgUcMy3oeqnPo0wBWpcTJOfy +7w7KYJkm00I8sk6+9ITwNFJ+gQLu3s3yKaSURY+A0Zt5cxIDZF5cDj9WKdGtlTYrutmBkKoUM9 kdJwmZDpwXYLAa9VzOWYvqAjimKbreLg3LAUxZsbB2M6d/OWklN37hjYFbYEQ X-Received: by 2002:a05:6000:1683:b0:230:d0b5:72c9 with SMTP id y3-20020a056000168300b00230d0b572c9mr2863923wrd.336.1665423110799; Mon, 10 Oct 2022 10:31:50 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4g9K9ZjXSSOaRVgLzBCigGN7c/2he5TVdECoF9JWRS4InvIfwNKPIxl60pu0OJ6phN93toHA== X-Received: by 2002:a05:6000:1683:b0:230:d0b5:72c9 with SMTP id y3-20020a056000168300b00230d0b572c9mr2863903wrd.336.1665423110479; Mon, 10 Oct 2022 10:31:50 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:47 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 42/55] tests: acpi: whitelist pc/q35 DSDT due to HPET AML move Message-ID: <20221010172813.204597-43-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427690454100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-5-imammedo@redhat.com> --- tests/qtest/bios-tables-test-allowed-diff.h | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index dfb8523c8b..452145badd 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,35 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/pc/DSDT", +"tests/data/acpi/pc/DSDT.acpierst", +"tests/data/acpi/pc/DSDT.acpihmat", +"tests/data/acpi/pc/DSDT.bridge", +"tests/data/acpi/pc/DSDT.cphp", +"tests/data/acpi/pc/DSDT.dimmpxm", +"tests/data/acpi/pc/DSDT.hpbridge", +"tests/data/acpi/pc/DSDT.hpbrroot", +"tests/data/acpi/pc/DSDT.ipmikcs", +"tests/data/acpi/pc/DSDT.memhp", +"tests/data/acpi/pc/DSDT.numamem", +"tests/data/acpi/pc/DSDT.roothp", +"tests/data/acpi/q35/DSDT", +"tests/data/acpi/q35/DSDT.acpierst", +"tests/data/acpi/q35/DSDT.acpihmat", +"tests/data/acpi/q35/DSDT.applesmc", +"tests/data/acpi/q35/DSDT.bridge", +"tests/data/acpi/q35/DSDT.cphp", +"tests/data/acpi/q35/DSDT.cxl", +"tests/data/acpi/q35/DSDT.dimmpxm", +"tests/data/acpi/q35/DSDT.ipmibt", +"tests/data/acpi/q35/DSDT.ipmismbus", +"tests/data/acpi/q35/DSDT.ivrs", +"tests/data/acpi/q35/DSDT.memhp", +"tests/data/acpi/q35/DSDT.mmio64", +"tests/data/acpi/q35/DSDT.multi-bridge", +"tests/data/acpi/q35/DSDT.numamem", +"tests/data/acpi/q35/DSDT.pvpanic-isa", +"tests/data/acpi/q35/DSDT.tis.tpm12", +"tests/data/acpi/q35/DSDT.tis.tpm2", +"tests/data/acpi/q35/DSDT.viot", +"tests/data/acpi/q35/DSDT.xapic", +"tests/data/acpi/q35/DSDT.nohpet", +"tests/data/acpi/pc/DSDT.nohpet", --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427063; cv=none; d=zohomail.com; s=zohoarc; b=dMzrbs8gXoKEPhndRJ5pyjA62RAuVvuNQa/8XPkwaTfgTv7g66ilcPoRU8W/Ae+RI4gHvg5erzk6Mb3GeNJGn+HzWDPpkUG7FshmE7+qSk3hUsLejzLjP0/K2zVo+N+cMLVUDmnN3Cppf1rANZ+4LJMeTmd81tQSFyOLvq82RpU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427063; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fPZ+ymEuIQsc1zeD4U7XDpJ3N7mtZLBvgFwV1A1BZFc=; b=jLj0l0tbDGnSOOjx+JaVdnhWBlRriF2dypju5CVrkiLbtrxvK0U+9bNdS28UATRQY49NrJKsyhDmPOuMyPgN8jN+id4DLF6ENCSsNjrnZEL7zdwszRRiO+tzXbduz31jeE3hTUfXxSI3Q03Esbq4oz2GGrYBnLDLgLIpfOJgZo8= 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 1665427063627658.0242319589147; Mon, 10 Oct 2022 11:37:43 -0700 (PDT) Received: from localhost ([::1]:54834 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxeo-0007Am-Gx for importer@patchew.org; Mon, 10 Oct 2022 14:37:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44378) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdH-000457-LM for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:04 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:22860) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdD-0007Vs-Qe for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:03 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-572-Qk0nuXNnM9euAtwIsUWo0Q-1; Mon, 10 Oct 2022 13:31:58 -0400 Received: by mail-wm1-f69.google.com with SMTP id fc12-20020a05600c524c00b003b5054c70d3so7294339wmb.5 for ; Mon, 10 Oct 2022 10:31:58 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id da5-20020a056000408500b00225239d9265sm9947404wrb.74.2022.10.10.10.31.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:31:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423119; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=fPZ+ymEuIQsc1zeD4U7XDpJ3N7mtZLBvgFwV1A1BZFc=; b=hGBPmDzynXZwapXt5FgkFfvPco/W5qPue0CnmOBpKiHv3NEBiqFASj5jLB1qsjFJxABAgx 9FhGBTsZ9R3M6vWWE2Q1JMGya8qXZoQiLgRwPWY9PE3WJWfAQK3raCCAs/cc4ziwXpary8 gSRX7I9qi7ekP5gQpKaXRWSph/wKHdA= X-MC-Unique: Qk0nuXNnM9euAtwIsUWo0Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=fPZ+ymEuIQsc1zeD4U7XDpJ3N7mtZLBvgFwV1A1BZFc=; b=HcAJ6VZQNw5Sunr7WuQdhqZjRrfrGbqPqRgeiORutEzi+kAgLDw20L4zgiblAgDoim N1DfG/Zo2lDhR5ujDa4YhyuZR4kFTa65vg/M53N+eRzsvwRxFJmSOXYTEGyNRz2F54vb yO4lNHNR/ninovybRp7GhAQFpYqUkpcUa5ItTVIPzXVcttK6TWHZ2OGpm/rsyyQ+0kRv V+bB7UyHN3R2tGmrU0Zakn9i7Zc8JpRr5RpqB3ZZpzPfU780WYRb1mQoFeX9PsoP4kYB 0OND+w3fzv7QbDPAB6mI1kVPLnbKbzQ1cf2yTJQAgPLREcWMwIUoY3bUGabyO6Oelm5E DSmw== X-Gm-Message-State: ACrzQf3hBeVG3BHyuxRYuDxLGQGPWFb6VHaAkU0ZGtJHipGJZ+WD/ujl wmmefvAcL+TZIPP69Qe8LR/+bBDix8zJ0HZU02VLBYcaXAOdWTBfBJsqfjd6Hw/QZZm9y/dqB8v nmBFlyNFwrItTFaTe6om0djQc/4UILBYPtJVHroMbAs3UMHeve9KpLUmHcbuK X-Received: by 2002:a05:600c:244:b0:3c6:bc2f:421b with SMTP id 4-20020a05600c024400b003c6bc2f421bmr3092908wmj.32.1665423116740; Mon, 10 Oct 2022 10:31:56 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5RjrwOabE2OG+sdReZHchMUzZs3taN/7b2tizTMbe5XjB27iFuB1xWCXA4tApvRpZjM434tQ== X-Received: by 2002:a05:600c:244:b0:3c6:bc2f:421b with SMTP id 4-20020a05600c024400b003c6bc2f421bmr3092884wmj.32.1665423116471; Mon, 10 Oct 2022 10:31:56 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:50 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 43/55] acpi: x86: refactor PDSM method to reduce nesting Message-ID: <20221010172813.204597-44-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427064313100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov .., it will help with code readability and make easier to extend method in followup patches Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-6-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-build.c | 139 ++++++++++++++++++++++++------------------- 1 file changed, 77 insertions(+), 62 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 67b532f5a5..6d02eed12c 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -574,9 +574,12 @@ static void build_append_pci_bus_devices(Aml *parent_s= cope, PCIBus *bus, =20 Aml *aml_pci_device_dsm(void) { - Aml *method, *UUID, *ifctx, *ifctx1, *ifctx2, *ifctx3, *elsectx; - Aml *acpi_index =3D aml_local(0); + Aml *method, *UUID, *ifctx, *ifctx1; + Aml *ret =3D aml_local(0); + Aml *caps =3D aml_local(1); + Aml *acpi_index =3D aml_local(2); Aml *zero =3D aml_int(0); + Aml *one =3D aml_int(1); Aml *bnum =3D aml_arg(4); Aml *func =3D aml_arg(2); Aml *rev =3D aml_arg(1); @@ -584,73 +587,85 @@ Aml *aml_pci_device_dsm(void) =20 method =3D aml_method("PDSM", 6, AML_SERIALIZED); =20 - /* - * PCI Firmware Specification 3.1 - * 4.6. _DSM Definitions for PCI - */ - UUID =3D aml_touuid("E5C937D0-3553-4D7A-9117-EA4D19C3434D"); - ifctx =3D aml_if(aml_equal(aml_arg(0), UUID)); + /* get supported functions */ + ifctx =3D aml_if(aml_equal(func, zero)); { - aml_append(ifctx, aml_store(aml_call2("AIDX", bnum, sunum), acpi_i= ndex)); - ifctx1 =3D aml_if(aml_equal(func, zero)); + uint8_t byte_list[1] =3D { 0 }; /* nothing supported yet */ + aml_append(ifctx, aml_store(aml_buffer(1, byte_list), ret)); + aml_append(ifctx, aml_store(zero, caps)); + + /* + * PCI Firmware Specification 3.1 + * 4.6. _DSM Definitions for PCI + */ + UUID =3D aml_touuid("E5C937D0-3553-4D7A-9117-EA4D19C3434D"); + ifctx1 =3D aml_if(aml_lnot(aml_equal(aml_arg(0), UUID))); { - uint8_t byte_list[1]; + /* call is for unsupported UUID, bail out */ + aml_append(ifctx1, aml_return(ret)); + } + aml_append(ifctx, ifctx1); =20 - ifctx2 =3D aml_if(aml_equal(rev, aml_int(2))); - { - /* - * advertise function 7 if device has acpi-index - * acpi_index values: - * 0: not present (default value) - * FFFFFFFF: not supported (old QEMU without PIDX reg) - * other: device's acpi-index - */ - ifctx3 =3D aml_if(aml_lnot( - aml_or(aml_equal(acpi_index, zero), - aml_equal(acpi_index, aml_int(0xFFFFFFFF)), NUL= L) - )); - { - byte_list[0] =3D - 1 /* have supported functions */ | - 1 << 7 /* support for function 7 */ - ; - aml_append(ifctx3, aml_return(aml_buffer(1, byte_list)= )); - } - aml_append(ifctx2, ifctx3); - } - aml_append(ifctx1, ifctx2); + ifctx1 =3D aml_if(aml_lless(rev, aml_int(2))); + { + /* call is for unsupported REV, bail out */ + aml_append(ifctx1, aml_return(ret)); + } + aml_append(ifctx, ifctx1); =20 - byte_list[0] =3D 0; /* nothing supported */ - aml_append(ifctx1, aml_return(aml_buffer(1, byte_list))); - } - aml_append(ifctx, ifctx1); - elsectx =3D aml_else(); - /* - * PCI Firmware Specification 3.1 - * 4.6.7. _DSM for Naming a PCI or PCI Express Device Under - * Operating Systems - */ - ifctx1 =3D aml_if(aml_equal(func, aml_int(7))); - { - Aml *pkg =3D aml_package(2); - Aml *ret =3D aml_local(1); + aml_append(ifctx, + aml_store(aml_call2("AIDX", bnum, sunum), acpi_index)); + /* + * advertise function 7 if device has acpi-index + * acpi_index values: + * 0: not present (default value) + * FFFFFFFF: not supported (old QEMU without PIDX reg) + * other: device's acpi-index + */ + ifctx1 =3D aml_if(aml_lnot( + aml_or(aml_equal(acpi_index, zero), + aml_equal(acpi_index, aml_int(0xFFFFFFFF)), NU= LL) + )); + { + /* have supported functions */ + aml_append(ifctx1, aml_or(caps, one, caps)); + /* support for function 7 */ + aml_append(ifctx1, + aml_or(caps, aml_shiftleft(one, aml_int(7)), caps)); + } + aml_append(ifctx, ifctx1); =20 - aml_append(pkg, zero); - /* - * optional, if not impl. should return null string - */ - aml_append(pkg, aml_string("%s", "")); - aml_append(ifctx1, aml_store(pkg, ret)); - /* - * update acpi-index to actual value - */ - aml_append(ifctx1, aml_store(acpi_index, aml_index(ret, zero)= )); - aml_append(ifctx1, aml_return(ret)); - } - aml_append(elsectx, ifctx1); - aml_append(ifctx, elsectx); + aml_append(ifctx, aml_store(caps, aml_index(ret, zero))); + aml_append(ifctx, aml_return(ret)); } aml_append(method, ifctx); + + /* handle specific functions requests */ + /* + * PCI Firmware Specification 3.1 + * 4.6.7. _DSM for Naming a PCI or PCI Express Device Under + * Operating Systems + */ + ifctx =3D aml_if(aml_equal(func, aml_int(7))); + { + Aml *pkg =3D aml_package(2); + + aml_append(pkg, zero); + /* + * optional, if not impl. should return null string + */ + aml_append(pkg, aml_string("%s", "")); + aml_append(ifctx, aml_store(pkg, ret)); + + aml_append(ifctx, aml_store(aml_call2("AIDX", bnum, sunum), acpi_in= dex)); + /* + * update acpi-index to actual value + */ + aml_append(ifctx, aml_store(acpi_index, aml_index(ret, zero))); + } + + aml_append(method, ifctx); + aml_append(method, aml_return(ret)); return method; } =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427968; cv=none; d=zohomail.com; s=zohoarc; b=OqNaeAhkrP2R/vTz9e7oK8/mSb2/XBC577Zb4ctg4cOchaegAC+2svnc11qdAykoYAuVN3W6F0D8SdM4RlF10ssSA3fhjHq3Q3B+bC371R/X96JgRmVYwvmBlKFARg5OuFGjeSLIIc+7/LPbmHWgDYZfM0Ojaulsl/RCvR07ehk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427968; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=usPkxvTH7QvAvChQcJRZywVhPddBwQYaDj8J2SS1D1c=; b=OMqIR3WNP6mHJk4OZfOxt4tLdrvQHu6aMJzYflxfuNyXjCV9RbuvUDoRFuoU74Eqf2dwaJeD5llzl28u7QAOgzpUjm3pUvkiAmI+HEAcIs8WN6NcR7LhkRGkU6BZiB/Tg8OvhBnhsAsK0viGKl+yU0qfrzYQ3Ek4TF2BQdLw0og= 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 1665427968024126.6475677047722; Mon, 10 Oct 2022 11:52:48 -0700 (PDT) Received: from localhost ([::1]:32922 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxtL-00052r-TI for importer@patchew.org; Mon, 10 Oct 2022 14:52:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50144) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdL-00049K-1W for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:29323) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdJ-0007XF-En for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:06 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-518-Ygj5TACZOcOzeQa6EQ9XFw-1; Mon, 10 Oct 2022 13:32:03 -0400 Received: by mail-wm1-f69.google.com with SMTP id v125-20020a1cac83000000b003bd44dc5242so9284680wme.7 for ; Mon, 10 Oct 2022 10:32:03 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id iv19-20020a05600c549300b003b47b913901sm38953308wmb.1.2022.10.10.10.31.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423124; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=usPkxvTH7QvAvChQcJRZywVhPddBwQYaDj8J2SS1D1c=; b=ifENLsqW3nS+kfbmZWjWTsSvIULyToJHU9AkBk2EBFiY9Co+2a7MEKtQ/Yup/3dWZG5m8b XZcFh4X9PTzZ/A2/XJNcBvjCISuR/J+9KvutjStEC5Fragx1C8tyBgJgab5BC82hGaWT5u psAXVC0VgPhM4pyB1qD/LiGG2iOqnhQ= X-MC-Unique: Ygj5TACZOcOzeQa6EQ9XFw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=usPkxvTH7QvAvChQcJRZywVhPddBwQYaDj8J2SS1D1c=; b=rbFz8FkKVA0vzir9yTC10JuT2ujLO8F6iOKCPbUPgMd4KNvlvFZ1GyObtpAgwYnPeW y7hsHniX8bPHEwM1zdWD+Hj+gukz0dKJzoGMdqhBpXTbORs0A3jDTOhFKZGkKD0/pqlP xi/qI70UgXMPZy/TIOnC8s9LR79GaDKh8hmlK6eas47AQiFm04MoAOcfyXiG7+3r5Y9G qR1T/eHc9ts8xcAqAQsM0wmLGDqwcQUER8Cc75ogZHlHdlKQmRDNl4hbyHLx15RYCNEK 9lmw7EXI67IDmLwsCO+TUpTKN9aQ5+k4hraBsyn0lgolA80BwJfBT1RleEo05NGx3v2R omaQ== X-Gm-Message-State: ACrzQf1apOkxy+kLk3vl9yiKpoj9k7rGwiltKU8DRJp8NizheA6aU2RB sIgKrLa8bcVnMpJ96bquHSvWuyh5MsWu70nTMdy12qAc9FDHTHbd91rhUQ2yz8zWgwYZu+62T4n m8Rfm39V7hT+BDBvEA4vFFTEu1osm1EjsptpnS5b2uvuui+VikrpkVtuW1AJY X-Received: by 2002:a5d:5109:0:b0:22f:ed4:65da with SMTP id s9-20020a5d5109000000b0022f0ed465damr9081657wrt.688.1665423121382; Mon, 10 Oct 2022 10:32:01 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5+5V1yYoi02UPda3TFFWY4+Zo1T2XfYLrMFbZPhG22dg1G1gAdyDBK7yM3rWS1wJdjcIkGqA== X-Received: by 2002:a5d:5109:0:b0:22f:ed4:65da with SMTP id s9-20020a5d5109000000b0022f0ed465damr9081640wrt.688.1665423121114; Mon, 10 Oct 2022 10:32:01 -0700 (PDT) Date: Mon, 10 Oct 2022 13:31:56 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 44/55] x86: acpi: _DSM: use Package to pass parameters Message-ID: <20221010172813.204597-45-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427968606100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Numer of possible arguments to pass to a method is limited in ACPI. The following patches will need to pass over more parameters to PDSM method, will hit that limit. Prepare for this by passing structure (Package) to method, which let us workaround arguments limitation. Pass to PDSM all standard arguments of _DSM as is, and pack custom parameters into Package that is passed as the last argument to PDSM. Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-7-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-build.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 6d02eed12c..a19900c4e4 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -431,11 +431,17 @@ static void build_append_pci_bus_devices(Aml *parent_= scope, PCIBus *bus, ); aml_append(dev, method); method =3D aml_method("_DSM", 4, AML_SERIALIZED); - aml_append(method, - aml_return(aml_call6("PDSM", aml_arg(0), aml_arg(1), - aml_arg(2), aml_arg(3), - aml_name("BSEL"), aml_name("_SUN"= ))) - ); + { + Aml *params =3D aml_local(0); + Aml *pkg =3D aml_package(2); + aml_append(pkg, aml_name("BSEL")); + aml_append(pkg, aml_name("_SUN")); + aml_append(method, aml_store(pkg, params)); + aml_append(method, + aml_return(aml_call5("PDSM", aml_arg(0), aml_arg(1= ), + aml_arg(2), aml_arg(3), param= s)) + ); + } aml_append(dev, method); aml_append(parent_scope, dev); =20 @@ -480,10 +486,17 @@ static void build_append_pci_bus_devices(Aml *parent_= scope, PCIBus *bus, */ aml_append(dev, aml_name_decl("ASUN", aml_int(slot))); method =3D aml_method("_DSM", 4, AML_SERIALIZED); - aml_append(method, aml_return( - aml_call6("PDSM", aml_arg(0), aml_arg(1), aml_arg(2), - aml_arg(3), aml_name("BSEL"), aml_name("ASUN")) - )); + { + Aml *params =3D aml_local(0); + Aml *pkg =3D aml_package(2); + aml_append(pkg, aml_name("BSEL")); + aml_append(pkg, aml_name("ASUN")); + aml_append(method, aml_store(pkg, params)); + aml_append(method, aml_return( + aml_call5("PDSM", aml_arg(0), aml_arg(1), aml_arg(2), + aml_arg(3), params) + )); + } aml_append(dev, method); } =20 @@ -580,12 +593,13 @@ Aml *aml_pci_device_dsm(void) Aml *acpi_index =3D aml_local(2); Aml *zero =3D aml_int(0); Aml *one =3D aml_int(1); - Aml *bnum =3D aml_arg(4); Aml *func =3D aml_arg(2); Aml *rev =3D aml_arg(1); - Aml *sunum =3D aml_arg(5); + Aml *params =3D aml_arg(4); + Aml *bnum =3D aml_derefof(aml_index(params, aml_int(0))); + Aml *sunum =3D aml_derefof(aml_index(params, aml_int(1))); =20 - method =3D aml_method("PDSM", 6, AML_SERIALIZED); + method =3D aml_method("PDSM", 5, AML_SERIALIZED); =20 /* get supported functions */ ifctx =3D aml_if(aml_equal(func, zero)); @@ -662,10 +676,10 @@ Aml *aml_pci_device_dsm(void) * update acpi-index to actual value */ aml_append(ifctx, aml_store(acpi_index, aml_index(ret, zero))); + aml_append(ifctx, aml_return(ret)); } =20 aml_append(method, ifctx); - aml_append(method, aml_return(ret)); return method; } =20 --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427437; cv=none; d=zohomail.com; s=zohoarc; b=FcVLKc8KhCsmPxiTPN+rjvt4X+HZuwsU0GgCBPMRagGY7f7ga/gdkBqkiDYDfxOWfV5T9XgfhTfza65ml2tWKtz8lisvdH+XSQIlXlBOhF3D2k9YfvyOjD/DNBDROSHQBmiNo/V9hUWTOwbLUdGwV9uL1ny5S/1nCdxKVO1X19g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427437; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MMhesCiaEL22+rYIJMiKtV9ezaSZJdXsGwAzhglkeLs=; b=iw/q7foix0QobQtGEIAxJHm/wkW0BHntEoIuk3zJgUrI76nVVUqkq0CfvjMlbB7WZC1tgeSsg6e5LRKjRBTCVW5fWbpSaHLDig4UQxQqZLJCvZmuLOfm+mgyv0mxIGn6bbc/8S3lDfu5XbjJle1QsiP/e+pM+OThd1lU4TbZfPQ= 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 166542743755924.299639670895658; Mon, 10 Oct 2022 11:43:57 -0700 (PDT) Received: from localhost ([::1]:49694 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxko-0001TO-3q for importer@patchew.org; Mon, 10 Oct 2022 14:43:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50148) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdS-0004TO-Lt for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:14 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:20611) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdN-0007YL-Ha for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:14 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-530-sFhdUVBiOw-mhCrC5zDKlw-1; Mon, 10 Oct 2022 13:32:07 -0400 Received: by mail-wm1-f71.google.com with SMTP id az35-20020a05600c602300b003c5273b79fdso3669846wmb.3 for ; Mon, 10 Oct 2022 10:32:07 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id j5-20020a05600c1c0500b003b477532e66sm37348515wms.2.2022.10.10.10.32.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423129; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=MMhesCiaEL22+rYIJMiKtV9ezaSZJdXsGwAzhglkeLs=; b=N/vNyd9e4ENIxqPbVnL1BcZfY82RSZRWeyigkr1W1+bDPiuii5PtnwHY++XdPVjVSGDaww 2TOscaQrvnIf3nk+Ofqg3wrtr3pa986Dmjtrmc4LePVTK1N05+6DM4gWBSAf/jyhsP0mEM GRTzUUv4AMn+rJ0sz3YGsc3Mk/IpHkY= X-MC-Unique: sFhdUVBiOw-mhCrC5zDKlw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=MMhesCiaEL22+rYIJMiKtV9ezaSZJdXsGwAzhglkeLs=; b=siHdSaQ3T9p1SFnP3U2ZU9m8Z63kKNLLRmBt3KAvICubd3yS8ZZQy7tjJTUreYf80L 4aZYz+GcOxc5udRhpcQjwKfhbv72kqgp03lQnceRuwbHcdawi9uYnHw4p2o6WMZHzi6b DVZyiZ3t8Vm3uZ/ICiJsCo522V1OBAtGkrtZBjsn+nE4Mq/VOc+qEfXjCpE2JRSGUWGo M4aotMGrcyAs6H2rd3WQHTOX5ell6MeRkbnsEcylT8L6KZ60Aky3O89UvnfKB/Jx+YR8 mY3ma4GDbyf15/xXm7vPtfKf9qdMMpWaCmBOEGAAVhSuXV7x3IWZ97smPAzmnXIf3FlW wT8Q== X-Gm-Message-State: ACrzQf2JNdDncbe2B1xRbOmA35/N/b41CCbTQymkhpJ711apEoDFSwmV M31I683o6p7GOV5Sp7l19DgfEXLQVHj8utwvFIQcp+mSnTERQbISy/2E4Kwg/BsyQEAtULoTkvB ZbsSoMPrWeDm9SlPAneCQ5sK21+t4A3BZBApF/oA/JmUg58ETZe7IiYLgUb5k X-Received: by 2002:a05:6000:18a2:b0:22e:72fd:c5d0 with SMTP id b2-20020a05600018a200b0022e72fdc5d0mr12052738wri.682.1665423125903; Mon, 10 Oct 2022 10:32:05 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6fOQubk3814Rkia6GzvMJiitA0wWZ5N4e/Mi6yJ10sLgnfv/4nvxLbJ1vjoYwLwesxB5dysA== X-Received: by 2002:a05:6000:18a2:b0:22e:72fd:c5d0 with SMTP id b2-20020a05600018a200b0022e72fdc5d0mr12052708wri.682.1665423125385; Mon, 10 Oct 2022 10:32:05 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:01 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 45/55] tests: acpi: update expected blobs Message-ID: <20221010172813.204597-46-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, LOTS_OF_MONEY=0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427438496100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov An intermediate blobs update to keep changes (last 2 patches) reviewable. Includes refactored PDSM that uses Package argument for custom parameters. =3D=3D=3D=3D=3D PDSM taking package as arguments Return (Local0) } - Method (PDSM, 6, Serialized) + Method (PDSM, 5, Serialized) { - If ((Arg0 =3D=3D ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d= ") /* Device Labeling Interface */)) + If ((Arg2 =3D=3D Zero)) { - Local0 =3D AIDX (Arg4, Arg5) - If ((Arg2 =3D=3D Zero)) - { - If ((Arg1 =3D=3D 0x02)) + Local0 =3D Buffer (One) { - If (!((Local0 =3D=3D Zero) | (Local0 =3D=3D 0xFFFF= FFFF))) - { - Return (Buffer (One) - { - 0x81 = // . - }) - } + 0x00 = // . } + Local1 =3D Zero + If ((Arg0 !=3D ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c343= 4d") /* Device Labeling Interface */)) + { + Return (Local0) + } - Return (Buffer (One) - { - 0x00 = // . - }) + If ((Arg1 < 0x02)) + { + Return (Local0) } - ElseIf ((Arg2 =3D=3D 0x07)) + + Local2 =3D AIDX (DerefOf (Arg4 [Zero]), DerefOf (Arg4 [One] + )) + If (!((Local2 =3D=3D Zero) | (Local2 =3D=3D 0xFFFFFFFF))) { - Local1 =3D Package (0x02) - { - Zero, - "" - } - Local1 [Zero] =3D Local0 - Return (Local1) + Local1 |=3D One + Local1 |=3D (One << 0x07) } + + Local0 [Zero] =3D Local1 + Return (Local0) + } + + If ((Arg2 =3D=3D 0x07)) + { + Local0 =3D Package (0x02) + { + Zero, + "" + } + Local2 =3D AIDX (DerefOf (Arg4 [Zero]), DerefOf (Arg4 [One] + )) + Local0 [Zero] =3D Local2 + Return (Local0) } } } =3D=3D=3D=3D=3D PCI slot using Package to pass arguments to _DSM Name (ASUN, Zero) Method (_DSM, 4, Serialized) // _DSM: Device-Specific Met= hod { - Return (PDSM (Arg0, Arg1, Arg2, Arg3, BSEL, ASUN)) + Local0 =3D Package (0x02) + { + BSEL, + ASUN + } + Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0)) } } =3D=3D=3D=3D=3D hotpluggable PCI slot using Package to pass arguments to _= DSM Method (_DSM, 4, Serialized) // _DSM: Device-Specific Met= hod { - Return (PDSM (Arg0, Arg1, Arg2, Arg3, BSEL, _SUN)) + Local0 =3D Package (0x02) + { + BSEL, + _SUN + } + Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0)) } } Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-8-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/bios-tables-test-allowed-diff.h | 34 -------------------- tests/data/acpi/pc/DSDT | Bin 5987 -> 6219 bytes tests/data/acpi/pc/DSDT.acpierst | Bin 5954 -> 6186 bytes tests/data/acpi/pc/DSDT.acpihmat | Bin 7312 -> 7544 bytes tests/data/acpi/pc/DSDT.bridge | Bin 8653 -> 9078 bytes tests/data/acpi/pc/DSDT.cphp | Bin 6451 -> 6683 bytes tests/data/acpi/pc/DSDT.dimmpxm | Bin 7641 -> 7873 bytes tests/data/acpi/pc/DSDT.hpbridge | Bin 5954 -> 6186 bytes tests/data/acpi/pc/DSDT.ipmikcs | Bin 6059 -> 6291 bytes tests/data/acpi/pc/DSDT.memhp | Bin 7346 -> 7578 bytes tests/data/acpi/pc/DSDT.nohpet | Bin 5845 -> 6077 bytes tests/data/acpi/pc/DSDT.numamem | Bin 5993 -> 6225 bytes tests/data/acpi/pc/DSDT.roothp | Bin 6195 -> 6434 bytes tests/data/acpi/q35/DSDT | Bin 8274 -> 8320 bytes tests/data/acpi/q35/DSDT.acpierst | Bin 8291 -> 8337 bytes tests/data/acpi/q35/DSDT.acpihmat | Bin 9599 -> 9645 bytes tests/data/acpi/q35/DSDT.applesmc | Bin 8320 -> 8366 bytes tests/data/acpi/q35/DSDT.bridge | Bin 10988 -> 11227 bytes tests/data/acpi/q35/DSDT.cphp | Bin 8738 -> 8784 bytes tests/data/acpi/q35/DSDT.cxl | Bin 9600 -> 9646 bytes tests/data/acpi/q35/DSDT.dimmpxm | Bin 9928 -> 9974 bytes tests/data/acpi/q35/DSDT.ipmibt | Bin 8349 -> 8395 bytes tests/data/acpi/q35/DSDT.ipmismbus | Bin 8363 -> 8409 bytes tests/data/acpi/q35/DSDT.ivrs | Bin 8291 -> 8337 bytes tests/data/acpi/q35/DSDT.memhp | Bin 9633 -> 9679 bytes tests/data/acpi/q35/DSDT.mmio64 | Bin 9404 -> 9450 bytes tests/data/acpi/q35/DSDT.multi-bridge | Bin 8568 -> 8628 bytes tests/data/acpi/q35/DSDT.nohpet | Bin 8132 -> 8178 bytes tests/data/acpi/q35/DSDT.numamem | Bin 8280 -> 8326 bytes tests/data/acpi/q35/DSDT.pvpanic-isa | Bin 8375 -> 8421 bytes tests/data/acpi/q35/DSDT.tis.tpm12 | Bin 8880 -> 8926 bytes tests/data/acpi/q35/DSDT.tis.tpm2 | Bin 8906 -> 8952 bytes tests/data/acpi/q35/DSDT.viot | Bin 9383 -> 9429 bytes tests/data/acpi/q35/DSDT.xapic | Bin 35637 -> 35683 bytes 34 files changed, 34 deletions(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index 452145badd..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,35 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/pc/DSDT", -"tests/data/acpi/pc/DSDT.acpierst", -"tests/data/acpi/pc/DSDT.acpihmat", -"tests/data/acpi/pc/DSDT.bridge", -"tests/data/acpi/pc/DSDT.cphp", -"tests/data/acpi/pc/DSDT.dimmpxm", -"tests/data/acpi/pc/DSDT.hpbridge", -"tests/data/acpi/pc/DSDT.hpbrroot", -"tests/data/acpi/pc/DSDT.ipmikcs", -"tests/data/acpi/pc/DSDT.memhp", -"tests/data/acpi/pc/DSDT.numamem", -"tests/data/acpi/pc/DSDT.roothp", -"tests/data/acpi/q35/DSDT", -"tests/data/acpi/q35/DSDT.acpierst", -"tests/data/acpi/q35/DSDT.acpihmat", -"tests/data/acpi/q35/DSDT.applesmc", -"tests/data/acpi/q35/DSDT.bridge", -"tests/data/acpi/q35/DSDT.cphp", -"tests/data/acpi/q35/DSDT.cxl", -"tests/data/acpi/q35/DSDT.dimmpxm", -"tests/data/acpi/q35/DSDT.ipmibt", -"tests/data/acpi/q35/DSDT.ipmismbus", -"tests/data/acpi/q35/DSDT.ivrs", -"tests/data/acpi/q35/DSDT.memhp", -"tests/data/acpi/q35/DSDT.mmio64", -"tests/data/acpi/q35/DSDT.multi-bridge", -"tests/data/acpi/q35/DSDT.numamem", -"tests/data/acpi/q35/DSDT.pvpanic-isa", -"tests/data/acpi/q35/DSDT.tis.tpm12", -"tests/data/acpi/q35/DSDT.tis.tpm2", -"tests/data/acpi/q35/DSDT.viot", -"tests/data/acpi/q35/DSDT.xapic", -"tests/data/acpi/q35/DSDT.nohpet", -"tests/data/acpi/pc/DSDT.nohpet", diff --git a/tests/data/acpi/pc/DSDT b/tests/data/acpi/pc/DSDT index 2d543fbf94e42f03814019c146b49f94e76bf15d..cb718f1a8a591b27ca841f70f40= 762562c15c837 100644 GIT binary patch delta 1368 zcmaE?ciMo!c zNf2e5-I-aqJe}6Y#0NXY3wW&waP~Cda0+(yVTf+h4>mA}=3DZJT731Z-I3=3DZ{U5Rr`s zx}T>&h>HoN1SFQQ1mvZR%&hE$=3Dq3l&$$h+HvUpWZ-pwn^=3DrQ>wua*L;x_ETcJSNNX z5uqrN7)48oQS_1+MY{Y%xT%mBMO%qc^phAxwgN=3DBsgW2(M~P9yDM*BMzQib+NQ|PZ z#3+&!BEn6v#3))wjH0K+DAE)r!cDovDB4JjqOZg#vJ@f0O|`@*I!KHnR#76X^Ay!W OD>Kl_g3Vo`HyHuis-Nrt delta 1204 zcmX?Y@K}$_CDa|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!V&k^tF62!pa7#!-yAR-5urOt@-iV-HKoOJbr0O0lbDMzOW(#Xttx`o@O=3DEzJMl|1i{drh7r*p${L&BcOKXd1 OiQ~v)n~TJ5G6DeTf_9hy diff --git a/tests/data/acpi/pc/DSDT.acpierst b/tests/data/acpi/pc/DSDT.acp= ierst index 798349aa3f85e0803396471237e94604d00a1f90..aebb29c2a4ae67b732bef3eb8e7= 2c5665bb3a7b3 100644 GIT binary patch delta 1385 zcmX@4x5|LaCD!c zNf2e5-I-aqJRMiZ#0NXY3wW*yaP~Cda0+(yVTf+h4>mA}=3DZJT731Z-I3=3DZ{U5Rr`s zx}T>&h>HoN1SFQQ1mvZR%&hE$=3Dq3l&$$h+HvUpWZ-pwm(ZW3&00Wq0}fq@xfIu|n` z<2@#G@@XlcnjVkt29L?U#3-6bjH0W=3DD3atS!cDQnC|XF2qNl_t(i9-VO}WG<+DMF| zuf!;_6ePk;wZteoNQ@#@AtJ2vBt}s$F^Vn{qexVk2scF%qi8NMiXIZ9NL7RgH)Rr| aXe}{{J`$tIR8$MC5JAi4o6AJcFaiL0S)o4w delta 1221 zcmZ2wa7d5KCDNE4JQI_j;ACy49rZ430WQJ5d<%S7Cuax>a|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!V&k^tF62!pa7#!-yAR-84*YHsM()004zr-(XER5IgTKv+-@kc(SdiF}z`y|1syaD~i@iXIm5G5DXbs2!VI&g@ zk|4@9yE7Z|*E_9^i4S&)7w}pW;OuF@;S}uZ!w}u1A8cR{&k^tF62!pa7#!-yAR-$N zbU#ml5Em0j2}mqq3CK$snOWHh(M=3DAl!G=3D&BJPZs>5M5kM__c{}#7}-LB*o}4nN3(r z0o8_hbQ?S-dl93kj~GRlh*2aaLWG;5h*30;7)6hWQKTkHgqyO6QM8U2MW2XKWF|(0 zo2rOWw2v4?OyWdX=3DSGa8E@Bj&BSw*s1QBiuBSz6IViesYMv;;v5pGH&M$sx_6ul!x Wk&zS;ZYq<~lEqsVY~C()lMw*;SEL>Q delta 1186 zcmexiHNle0CDV(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li2{CR@xe~<0^VE!&YlJ$E?n^eK_LtULQD+_ zn&k^tF62!pa7#!-yAR-I4>ojRSi%5e7{M6EAVzeP(_{x>Eh#KI3#U6IVABK9)w?d4u0up_@xb`@Y-F4U-}4sX+CMZhDS(iiQ~v)o99d4 GWCQ>bvvXkp diff --git a/tests/data/acpi/pc/DSDT.bridge b/tests/data/acpi/pc/DSDT.bridge index 56398fc0147c9ab9d59947e24cddb08380b6a13e..e04b5b2035fb665b1e75075d4c4= 7776a51fa77e2 100644 GIT binary patch literal 9078 zcmeHL&2Jmm5ue8oY57P>OKNS&RvZ(ujW$hTla#-L0)@z3N}?rFYcA!aSfN~!3QD;K zvT&jzvS5^^3r8_fpeduGhaMP%xmw2_TcD@j{3oP`UV2Q?*q26~+2x~TN>1cG^&kOS z?aaLQo8QcPZ{DmlLo5I4902=3Doc1fK#65023HGw}20O+0m%K5+wm`yD^S7BjafSC`% z&O1J`lJa9MyFADK*s%U!Ss#63v8oNVC-Qc!YCqhvYCwb5Yc}WfB2QI}Y{hI%>S{hI zRp#?rB=3Dd~>rAkICfmB(}Yaq{_x=3D4d)gxShZutMD*m1F!3LPE^M$45{;bilmu5*kI0Z6|%1E=3DC z+NU^-Xrq7Q!lh{^IPNz9&PL)%r}wC`294{G-2-D(ZEAL<>sUB^M80Kj5#L4(!K`F5Rk zV(lsq^wkEeei7|U85|UA*SW8+$@Vnb@=3DRMnRg^B;U<-&y}f;_mw&ez1PG{{DwxGF4w(=3D#}Xx=3DW`5p zV24HU*1|3B)a4x>F(3SpgbXB9Jy&FEzGyJDRJg^kx+du{%fPRy1q~~BoJRUpBe$5q z;aaAgP$HFlF)!IbO56_9D^Br8LN3W@M%DAlWGYEC+)F&D#MJWa&wL%;ZonfonM|%J z^Fw$wWJ2b-l}myBfl>fe+XvO?%m%A-x;<#15Ntk*HT{5PaiMD|g&>9XdXCs26e1jo zugsoQ4Yeq}A`D3_=3DH89_c5SHJZ1ss2Z?7^NYbtYU`C{aEZHsN!QDxcnL6=3DUzgGyYK z&iMAA7MG>|WhaEieiz+*X&+|C3t>=3DA>u%S#h$9tpWc9_h&XohhoSlKoSLc5FKw{8{ z^VaLs*yRFlXGefFsMC^TY;`krcyI@>kk5MU@H7`f>XK28yduqq@0J7jm^^!JFbSAD zoBIZ}H1zhM5{Dkj&U|>C_B0)206ZSJuca>SZae{nOgR?j5=3DhjcqIIN#afB%tXsq2< zCh_ph>A6ZSnTFnpr-MX$N?r<($*D-aGnKpw$~!nV1(b+>eQ?{MeF|MII!s?0A*+ge zQt764ThS!4DOTQMwT`e@}FSXig08`+$+EKlzCo`A=3D zw*ZoUU*&Uq->@5(Q~AEy`D%v+2;@dUpVv!nB3}l(>GrnK0#H9ds@7R~4bcHNLUjE5mvdz}T*>}}hm%zoBo~9tPlm^&I<4an+Ow)_m(*A6uuDcu%5kC~jC-;9hqD15vt)?3Q zQFlLvlz4^i9O~<7Oa(0iP^5Y(ra1&52B^oD3qKB#2Llg4^8q(G2t?hJi{$f))T7k< zV0CiijZ>Nyj5uLW<8lgk~fO4 zA_-0*ffVwHbVYFD0*QM?5}dF=3DxY30@B3%`nA_6Jm6-jW43Z$qwjIGq(pXI~#lDW1`870bR(c(cLa5j9b3 zoycYbn@$w2_k;in*zLI%i3DMhQNXsswIoOomKhZAa(69F637zWY=3Dp6=3DdSu`o+mp!C z<-Uzv;a%6Wk*_O#8#%)}r)MK?SNk?{hqb?FBY)S(HoDnxnmClP3JV!KYLxfv*jGO? zup$aOeo~>lXO~IF>Llz5N8Yo~kc^c=3D*qe^LXLlmTQ!DJ)FF!KWeRhf(Pf*`ZacleR z6glqZzCA(mKKl&HxU>59Cdp`5&e8`P*o^+4O$&`Z|1#^nXxwkMuvI;73$Z8uzHbA} z({WpPv^*WRg-6TNaa(w_JRP@%N6XW3TX?iQ9k+$wnZr{{!R>?|A?K delta 2214 zcmez7cGj88CDV(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li2{CR@xe~<0^VE!&YlJ$E?n^eK_LtULQD+_ znv7 z8JStxAax*#=3Dq4|gU_+=3D{9tH*`hz?(b8 l8JQTJCXePblp+^WwmD56&1YDHWi+2*4HkU)Y=3DPo6MgUdmwrT(X diff --git a/tests/data/acpi/pc/DSDT.cphp b/tests/data/acpi/pc/DSDT.cphp index 38cb47c675edb6d4797b008d2deae656739230ef..3e8a202b0f32d585b38d4f8c852= 47124de5ec73d 100644 GIT binary patch delta 1368 zcmdmNG~0yBCDzaneREc_tc(SdiF}z`y|1syaD~i@iXIm5G5DXbs2!VI&g@ zk|4@9yE9+m_HLQtxtm{>(PQ#Tek}!5b@Aw?c}#vw zj3Pq;B1|eJM$t}U6#XSek)t3HZfYe)(Me(y@d^=3DPT_7=3DvrV^v*CNYX+g^6%eA~A}V z5~JuPF^Y6Wh;UOOF^aYlqv$6wifl!Ra8n~OijESah*OLR>wJk(G?5rZSBX(1DXxW9 OW}uY?o1?^UG6Dd56QI=3Dq delta 1204 zcmbPjve}5sCDV(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li2{CR@xe~<0^VE!&YlJ$E?n^eK_LtULQD+_ zndHxtMTi5aEaqHgsWF!T@3zx$r|-#vq~SCa1}d`L(35 z*cA`9%W1N%0AA^G{L%;UOLGh2H9Qo*^nCo%FY!wo3*oi97Qggy{L+HLcny!nFTE7M z^n3i$mLhoVZpJTt7QeK(C|<)8@k_79FZ~t2w7nQ!yF2kqU&b#jD~{Ljbo|mA@k{>} P*AmB($2L1j+++j*x9fJ^ diff --git a/tests/data/acpi/pc/DSDT.dimmpxm b/tests/data/acpi/pc/DSDT.dimm= pxm index 06a7aa59465238bfbf715ae83540f68b1f2f3ea5..f7d6ca1448cf0ae3c609fc1e139= 1cccc2d7221fc 100644 GIT binary patch delta 1387 zcmcac(SdiF}z`y|1syaD~i@iXIm5G5DXbs2!VI&g@ zk|4@9yE9h_)H|(>i4S&)7w}pW;OuF@;S}uZ!w}u1A8cR{&k^tF62!pa7#!-yAR-$N zbU#ml5Em0j2}mqq3CK$snOWHh(M=3DAl!G=3D&BJPZs>5M5kM__c{}#7{O6kz(|i>@T9F zfNDcLx(yzaCljOSIx&i*MTxL3o)|@oiBa^N7)9D*M7SxR7)6_jQS_Y{Mb_d(xT&5P zMTdz|#4bUEb>74%>L*6gWnvVGOA_IxXkrx2Cq~g@Vic)M5#gq6Vic_>M$u;*!sObomXi3JHAi3|)&5(WIs;)9*y1-!WeoIMRhT)5%`fdHxtMTi5aEaqHgsWF!T@3zxlFDS;bU}~+$o|Zg~f(=3D zunkU=3DFXNY%6~(JN9l!KO{L;ViOS_8UwYwj`^iBNI%Hntp&&4mj9ltcA1YX0v@k>v| zFMS`sw5B9pyNmHl@5L|8E``_dK>X6P@k>9&FRd?)*X~OE(ueU&^UB~gJRHCDLK!V_ M9C>W>3z?gY07V3KG5`Po diff --git a/tests/data/acpi/pc/DSDT.hpbridge b/tests/data/acpi/pc/DSDT.hpb= ridge index 798349aa3f85e0803396471237e94604d00a1f90..aebb29c2a4ae67b732bef3eb8e7= 2c5665bb3a7b3 100644 GIT binary patch delta 1385 zcmX@4x5|LaCD!c zNf2e5-I-aqJRMiZ#0NXY3wW*yaP~Cda0+(yVTf+h4>mA}=3DZJT731Z-I3=3DZ{U5Rr`s zx}T>&h>HoN1SFQQ1mvZR%&hE$=3Dq3l&$$h+HvUpWZ-pwm(ZW3&00Wq0}fq@xfIu|n` z<2@#G@@XlcnjVkt29L?U#3-6bjH0W=3DD3atS!cDQnC|XF2qNl_t(i9-VO}WG<+DMF| zuf!;_6ePk;wZteoNQ@#@AtJ2vBt}s$F^Vn{qexVk2scF%qi8NMiXIZ9NL7RgH)Rr| aXe}{{J`$tIR8$MC5JAi4o6AJcFaiL0S)o4w delta 1221 zcmZ2wa7d5KCDNE4JQI_j;ACy49rZ430WQJ5d<%S7Cuax>a|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!V&k^tF62!pa7#!-yAR-84*YHsM()004zr-(XER5IgTKv+-@k;o1Dc^Ajr(fkWj#o zxIk*sD~d!bm0* zBtevI?q_DY(M@6$$qEtSrbJ>CEhR?LOJWr13KQX`LShtcB}UOtViehm i5aFgqViX-EMiHkd5!U$n~VTXH>qd< delta 1167 zcmbPixLTjfCD;*!sObomXi3JHAi3|)&5;yN=3DZBHurR>c(}2S%*wu$2 zx=3DAzGz#yI@-q9t9fx|I4)Q>?#JRayEo+Th>Wn^Y$gVcc}qMN)}f(@Z+c^DX&AnLi8 zaA^?Xhz~Y&VOYWdVi>th_Tl4WbebH^rzM5OhIp_IPLr47mwu05+L9ly;m!D^&*GOB z7r<+HB7W)B_@%$%m$nzgYj-Dp>C5<~Wrgq>o{nF7BYx@M_@!Ni@!H*wU-~9~X=3DM?- qhUem!-i}|IQ53J?-uR`b;+MXUUs_WPuieFBTH-kJ*ydegHyHsB4Q@aH diff --git a/tests/data/acpi/pc/DSDT.memhp b/tests/data/acpi/pc/DSDT.memhp index b81e3dd8ecd89f4690d69a90096df095fe218425..63fdfe8c025f8b2f19411792817= cd21b506fa984 100644 GIT binary patch delta 1387 zcmdmFIm?>MCDc(SdiF}z`y|1syaD~i@iXIm5G5DXbs2!VI&g@ zk|4@9yE6y#*E_9^i4S&)7w}pW;OuF@;S}uZ!w}u1A8cR{&k^tF62!pa7#!-yAR-$N zbU#ml5Em0j2}mqq3CK$snOWHh(M=3DAl!G=3D&BJPZs>5M5kM__c{}#82iGmSXgntRbwW zfNDcLx(yzabBIy2ffz+!h*4xALWG-Yh*5Na7)30iL|ErRjG`W56kQ-jk%$-(Zi*mA z(HvqFJs?JriZ~H&${J>vHs6%G$p`@bk)nP8 delta 1186 zcmbPby~&cxCDV(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li2{CR@xe~<0^VE!&YlJ$E?n^eK_LtULQD+_ zn&k^tF62!pa7#!-yAR-yXVmJ}A9@nDmkCa=3DLS z{SCjgg9u*3yYNe2!7nW*ir4TA{L-87OaH+y?IwoT?g{v%Z{e3#5yxwI9)9T^_@$X7 z@EY!eUwRsT=3D?D0wwIuP{U4mbFAAV^LDZGXU;g_C+U-}t-X#;7zc2`MjiQ~v)n-5Cg GWCQ@s6m!7< diff --git a/tests/data/acpi/pc/DSDT.nohpet b/tests/data/acpi/pc/DSDT.nohpet index cb7bf7d850f340e12a7237c987f570300fd9c92b..281b0955ca223a1bd2c24f5e58f= b8b73ae37a957 100644 GIT binary patch delta 1367 zcmcbryH}sfCD;o1Dc^Ajr(fkWj#o zxIk*sD~d!bm0* zBtevIc4sc*^mJMq6CdmpFW|K%z}eG)!ztL+hatL2KiI$^o+IATC5VB;F*wwZK}0ql z=3Dzg98AucA65|CKJ5|EcNGPAN1qMIC8C-I8O;#D+Rmsgh2W3o4|mIA7}cyz-&CifGg z=3DrS>i#QBJ@E}9rc^NCUPm>5Os{6x4Zn;1pwiBa^K7)9m+M7XJ%7)ASuQN%1rgmv!3 zDC#Cg(RpGN2@4V7rf^~u%_c_CePR?T3lrg{bYc{(CPvYFViXyR5aFhBVifHb(LyUT N(8_|%e?)FF0syVjpr`-< delta 1194 zcmdn1e^r;uCDV(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li2{CR@xe~<0^VE!&YlJ$E?n^eK_LtULQD+_ zn&k^tF62!pa7#!-yAR-!e(CS{r5*Y4+TD#``YL{Dc>%nJXX2OMj9>aMerb0>ymn8- zFMS)ow5kwZ!}IY=3D@5C?7ER5H1U;NV3@k>9%FRd+t*X~mM();mCbBf|MJQ%<9Tv07? M9C>W>6VaQD0Dwkx9smFU diff --git a/tests/data/acpi/pc/DSDT.numamem b/tests/data/acpi/pc/DSDT.numa= mem index 230aaae37169ec2f78ebeae735ccc905a112d284..34914bf1ed362ebd07f0dbc2243= 4dfddd26d9a82 100644 GIT binary patch delta 1388 zcmaEc(SdiF}z`y|1syaD~i@iXIm5G5DXbs2!VI&g@ zk|4@9yEAif)jO??i4S&)7w}pW;OuF@;S}uZ!w}u1A8cR{&k^tF62!pa7#!-yAR-$N zbU#ml5Em0j2}mqq3CK$snOWHh(M=3DAl!G=3D&BJPZs>5M5kM__c{}#7{oLE5+zB`980f z0;&!1=3Dr(vvR^}r@Q93b-RuiM>Ju!-m`H65-IWdZM6Qk%qF^Zf8h;UOoF^WzTqljOS z2a|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!V&k^tF62!pa7#!-yAR- LJhr()>?R`sl%I1@ diff --git a/tests/data/acpi/pc/DSDT.roothp b/tests/data/acpi/pc/DSDT.roothp index 7091ee019191d822869f9a9f35ebd635eea4a9eb..bba1612c972948911ca5f5b301b= 10a380b8d83b7 100644 GIT binary patch delta 1407 zcmdmNu*itZCD!c zNf2e5-I-aqxIA~o#0NXY3pnnY9Lj4i<-aA^&?25A-q9t9hk=3D2afx{`-)rTRv$(d#H zT3!_e*?6EYcnXBLm_Xw3!J&Q$OF$mW$jr)4h;DM9{F+yjkRp%CdVE@h6%`SqXd5w# zei5U{j-LoOH4&re7%_^t1cDNMsg4*$hlo+cCPIXDUc@NsBSz6BVibvq65*yOVie6IM$sctEm^!p K&t_#Y0VV)Uf2(8w delta 1194 zcmZ2vwAp~mCDa|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!Vt_@!^-msS

>7DqcnFaA0?u%b~I)3Sg_@%Xl@Y-F9UwS`&X-;9hh6m%9o{L}lIeuwF5xjO+ rjrgTci)o4D$iSP0#08iDx-NI% diff --git a/tests/data/acpi/q35/DSDT b/tests/data/acpi/q35/DSDT index a85c608022b9e0878bcedc785b9bdf27e50a760b..3870958969b1c0e29f9dd26a125= 6359e90897d3e 100644 GIT binary patch delta 179 zcmccQ(BR1B66_MvpuoVu=3D(Le5o{7mvWO6psj(R7~0GD82-UTjfld~8K1eqBb5(*d+ z7f4N-oFOR8C2+y~;66_KZq`<(ycx@wBJQI_j;N)zk9rZ430WQJ5d<%S7Cuax>a|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!V;o1Dc^Ajr(fkWj#o zxIk*sD~d!bm0* NBtevIZfCwD0|0JNI!yoo delta 159 zcmbQ}_}GEVCDa|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!V5i&CX diff --git a/tests/data/acpi/q35/DSDT.acpihmat b/tests/data/acpi/q35/DSDT.a= cpihmat index 51e79b3b0754224aa6cd1e1257b404182506f1d1..a32e90b5d913d07bc9ed9aca521= 420305559f357 100644 GIT binary patch delta 179 zcmezGwbq-;o1Dc^Ajr(fkWj#o zxIk*sD~d!bm0* NBtevIZfE|X2ms6HI`{wp delta 159 zcmZ4M{ojkrCDp4cqS%4!O7W7JL+B70$hT9`4;%FPRV(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li5vl*&Tb4MJn=3Dx9u^c(SdiF}z`y|1syaD~i@iXIm5G5DXbs2!VI&g@ Nk|4@9Z)H9$0{|KaIqv`f delta 159 zcmZ4I*x<V(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li5vl*&Tb4MJn=3Dx9u^c(SdiF}z`y|1syaD~i@iXIm5G5DXbs2!VI&g@ zk|4@9w=3D>tuaCz>Ei4S&)7jWD)nNPu<$$!gae+4lnXO_un3MvY+@jyrO6bNxKIR(4=3D z#0Q7^B`g8?BO@~_J0ZHseex0oO+t!1CO=3DouBCJSTkqAZk#3mCD;*!sObomXi3JHAi3|)&5;+1qo!uBjc;bOHV?hRpC(swk7$58uzxe`l zk_?x}x)=3D~gz+v5F8wGnwzZJoT2Jsy6jxIqw3=3DB*R98STmJ`B-KHj}3+s7Q&&10Bq> z1mx_D%&csXTzqh-Uv!h>lg_~}y$!GQBqh9Nd*PR!f?xU`erXM5 zymlAim)?V4noR|-;Q{!iXW^HAf?rxs6|dbD_@xiwm*!E!Yj_xb=3D>_0emCDc(SdiF}z`y|1syaD~i@iXIm5G5DXbs2!VI&g@ Nk|4@9w=3D>U{0{|dEIhX(d delta 159 zcmccMvdD$YCDa|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!V!c NNf2e5+nIkV0ssJjImiG2 delta 159 zcmZ4I-QdmT66_Mvpvu6&cyA+DJQI_j;N)zk9rZ430WQJ5d<%S7Cuax>a|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!V;o1Dc^Ajr(fkWj#o zxIk*sD~d!bm0* NBtevIZfAB>1^~m2IyC?Q delta 159 zcmez7d%~B?CDV(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li5vl*&Tb4MJn=3Dx9u^sN$r*yeTml!&Pd*Jct@52H{>oSKu(R)ygazzVGr5?SBosJ$xV(cLv12sVr^n2BNsbEVnJd@0s{k3tLo$|F7^T;Rwf2spfw-^gpo`r NNP;Nae2MwA3;>&(I?(_C delta 131 zcmX@@IM%eTOXb#jKFFqgmu^OH}5 zO{;t-iof!eJnZaS;OOZRk&~OSKzVW&!ve|4nOsZ@geTQbPGFdv!1Esn7?ub!Gd6+< ihK1q_L?>r)u@?xjGBNNnBo-ueBr-58N!-M8S_S}whAYtk diff --git a/tests/data/acpi/q35/DSDT.ipmismbus b/tests/data/acpi/q35/DSDT.= ipmismbus index a0eeae95c07fe3708509c3e652c3aeff9c21ac82..479df48cd37af888317d63eac8f= 565f370201490 100644 GIT binary patch delta 179 zcmZ4Oc+-)~CD;o1Dc^Ajr(fkWj#o zxIk*sD~d!bm0* NBtevIZf91J1pt!1InDq8 delta 159 zcmccVxZ07+CDV(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li5vl*&Tb4MJn=3Dx9u^;o1Dc^Ajr(fkWj#o zxIk*sD~d!bm0* NBtevIZfCwD0|0JNI!yoo delta 159 zcmbQ}_}GEVCDa|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!V5i&CX diff --git a/tests/data/acpi/q35/DSDT.memhp b/tests/data/acpi/q35/DSDT.memhp index b4a9f5a0fe5cf3b44ebe7659a2bf3687e1073482..a5730b8ab8abb2602334633cd6c= 760f79915e564 100644 GIT binary patch delta 179 zcmZ4JecqePCDc(SdiF}z`y|1syaD~i@iXIm5G5DXbs2!VI&g@ Nk|4@9w=3D+vA0RS{(IX3_R delta 159 zcmX@_z0jM>CD;*!sObomXi3JHAi3|)&5;+1qo!uBjc;bOHV?hRpC(swk7$58uzxe|5 Ge?;o1Dc^Ajr(fkWj#o zxIk*sD~d!bm0* NBtevIZf7=3DC1OVaDI#~b! delta 159 zcmaFmxyO^sCDV(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li5vl*&Tb4MJn=3Dx9u^;o1Dc^Ajr(fkWj#o zxIk*sD~d!bm0* zBtevIZfCBQ;c}9Qi4S&)7w{6F%%@<_=3Dr`F51NJQI_j;N)zk9rZ430WQJ5d<%S7Cuax>a|v89KlwD+ zw90p)_$yz@!_K}1j-D$;Grlcv9`;1cu28JpX}!VTm9!VSSbKhUjDc(SdiF}z`y|1syaD~i@iXIm5G5DXbs2!VI&g@ Nk|4@9w=3D>(y002%mId=3Dd6 delta 159 zcmexlf5e{4CD;*!sObomXi3JHAi3|)&5;+1qo!uBjc;bOHV?hRpC(swk7$58uzxe{Q Gk_-T9Q8HZs diff --git a/tests/data/acpi/q35/DSDT.numamem b/tests/data/acpi/q35/DSDT.nu= mamem index 37fa4c3a45b0d7db0d3d368df5e027e7e1acf9d2..414b8af67bdf79238915de0d609= ce45e150eb958 100644 GIT binary patch delta 179 zcmccN(B{bH66_Mvroh0!_+}$lJQI_T$mDFM9raF}0WQJ5ybD~|CTB4e2r@G=3DBor_t zE|8iuIYUsGOW=3Da}$)~}lRlXC&U-?QNcJ^J8uz-DPCKuC^gaSuTmx$($90mp;!N`yV z)KWV+iD7aQ&wn6bs7+){tWB(B!c NNf2e5+nF!Q003SRIx7GG delta 159 zcmZp3yy3v*66_KZp}@ev*szf+o{7m%aB?=3D&j(Qii0GD82z6Cz4lQRT`xdbklpL`l@ zTID-Y{FSfdVQ1e0M^BfCoZN&3%9FDg7D!Ick74p8r6=3DutboVu@OWt zEEHcLIysAry+DYSiGi0Pu^^!%k%3`JB1eFyvm1j5Pdt!jEXV-y1o|QwD^%e%mZZE_Yvfgm#@LqY*V z;sU8jlQRT`xdbklpL`l@TID-Y{FSfdVQ1eZ2@BY#W^yqtNhomibcty0$YEdr5{wK< zKrOYClNcr^@%#q@hT25N#M;D4MlN=3DS#Dc_*1O^76R@KQ_T`F830PWJNEzp delta 115 zcmaFrxZRP1CDD^%e%mZZE_Yvfgm#@LqY*V z;sU8jlj~WsN$r*yeTml!&Pd*Jct@52H{>oSKu(R)ygazzVGr5?SBosJ$xV(cLv12sVr^n2BNsbEVnJd@0s{k3tLo$|F7^T;Rwf2spfw-^gpo`r NNP;Na{F(K-3;+_8JFx%& delta 132 zcmez2ddii{CD%eTOXb#jKFFqgmu^OH}5 zO{;t-iof!eJnZaS;OOZRk&~OSKzVW&!ve|4nOsZ@geTQbPGFdv!1Esn7?ub!Gd6+< jhK1q_L?>r)u@?xjGBNNnBo-ueBr-58N!+Z+c3lPl1?w!b diff --git a/tests/data/acpi/q35/DSDT.viot b/tests/data/acpi/q35/DSDT.viot index be4a254e93a9cb360f42a25121c5fcefbd47480f..3f14b57f0797ab13fc4c90dd294= 9cf4bd6c30896 100644 GIT binary patch delta 179 zcmZ4PdDWB4CD;o1Dc^Ajr(fkWj#o zxIk*sD~d!bm0* NBtevIZf90d1OT<%Is^a! delta 159 zcmccWx!jY>CDV(c!xBMe#zqjq zuuyz~=3D;SOe_5vYRCI()H#Dav5Li5vl*&Tb4MJn=3Dx9u^{Bzjn3g0IIC{E7G0eOn!osvzd0(yRZeg1pD$W@L`>tAt=3DlxaKZfK z(_qso--+U{d?gP%`xZEQx=3DeKG I0`uf{0IEYXmH+?% --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665428133; cv=none; d=zohomail.com; s=zohoarc; b=IV+n2FQ6EzxsSsSIVd4JqXIPXRkZ2CcEdVol7ArZ7vOWVlt8D/+3P4G6P0BpAyb3mP4YLsVIyBpsJlJdpaqmlO4KvqsVNR6ZFzkyWOgKCAOLfc0rqeDUcI/m0WDomLQRoY0C7Z4FSi7V8L6WrAJskYaF+j0P15UFlWcaCKVrd1E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665428133; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KuON6KR8v4ZyhUPw0ahXTTbszD75BcPXFV2vpPKexgE=; b=YcJmhhAA2HAvhv7Virvkj3mkx9HFM7Pe+DLziGi2/pxzNedrtSa/eSe9M3Nu3t+Y2tpckesw8qDOle6oIqeQvlYLsQeDjk8YOJFBrXWap9s1X1RftkKyopCQovR6fitgEVycf80cTudER4Gct98GhsiIUEGQc8xJDlhPqknWY1g= 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 1665428133244356.7602194615671; Mon, 10 Oct 2022 11:55:33 -0700 (PDT) Received: from localhost ([::1]:60254 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxw1-0001Uz-3w for importer@patchew.org; Mon, 10 Oct 2022 14:55:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51674) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdW-0004ev-T2 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:18 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:39361) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdR-0007ZO-7b for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:18 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-614-JkKpmZVbN_OKsamsc78bmw-1; Mon, 10 Oct 2022 13:32:11 -0400 Received: by mail-wm1-f72.google.com with SMTP id az35-20020a05600c602300b003c5273b79fdso3669947wmb.3 for ; Mon, 10 Oct 2022 10:32:11 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id w5-20020a5d6805000000b002285f73f11dsm11817884wru.81.2022.10.10.10.32.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423132; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KuON6KR8v4ZyhUPw0ahXTTbszD75BcPXFV2vpPKexgE=; b=Hyu2+uGhSpkGMP0VXPb0m2dtwLD+4+bbt+rQrGjZ7IBHLsP8cJ28lQgNLVhsmD7RTY994k wZonheAziNvM5h2/N3wUJW1KAN1DFptjXMH2IQzwLtUvnsunX6bTh7DpASvZnk/cQ8puxF ZUWS/qcfsDvu3Vq5BZTD6HlCOaf7lHA= X-MC-Unique: JkKpmZVbN_OKsamsc78bmw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KuON6KR8v4ZyhUPw0ahXTTbszD75BcPXFV2vpPKexgE=; b=WMorxX/eui1lnUehFatKi5rKUsnna2c84SIoBN+gvhX6C55ngUonr2oBZ6B/Yy6GpI lSpzqjfPR7PHkyi9z+DN4PZl8o/b5Ie8h9DLIRrkDw9nZwxZM5sewjVv5lrA1xbPFU3l FkQuRgaVIGCF+Qd2bJAvZ+vNpsKQFPC69lH1zRiUtdidTcVtMhULpOjuLG5iOX6wR8OK IjZ/4UQDF7lFQhlNUn44rjlDU3CyaLEutjeWkVR+SEBMsksf8SQkbjR9m9WZYo8a07Zl h6j87MYu6GjNEgwQsB9hyVZ2Moc54eY7DnCYx44yYYR0AxEmfzLK5C7/mkaFi63yiyyd iucg== X-Gm-Message-State: ACrzQf3Ighl3p/AnRxsmxHdWk4J4LjtTrXCElMabxhPDzcra3D+AAVzW aNkohM9MSWAJvT3o0XXRJg+ExtH7jdgdewwF6DRfzeir8RWoPt+r1KI9fIUH8PrtsOKQFJBck+R y+wZ8UiYcJPOtmnvv7G842UupNr7WL+2uOzQ/NVBVlmsr9b/1P2s3ETc98kpX X-Received: by 2002:a1c:2743:0:b0:3b3:4066:fa61 with SMTP id n64-20020a1c2743000000b003b34066fa61mr21153026wmn.79.1665423130018; Mon, 10 Oct 2022 10:32:10 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4jRbngvm8L40/nBxpye2owivpE7hrNVN3I5ANfhpxVKGwVH33lvqGf1hejitkYXOkhmb92jQ== X-Received: by 2002:a1c:2743:0:b0:3b3:4066:fa61 with SMTP id n64-20020a1c2743000000b003b34066fa61mr21152993wmn.79.1665423129738; Mon, 10 Oct 2022 10:32:09 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:05 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 46/55] tests: acpi: whitelist pc/q35 DSDT before switching _DSM to use ASUN Message-ID: <20221010172813.204597-47-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665428135333100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-9-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/bios-tables-test-allowed-diff.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index dfb8523c8b..1983fa596b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,15 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/pc/DSDT", +"tests/data/acpi/pc/DSDT.acpierst", +"tests/data/acpi/pc/DSDT.acpihmat", +"tests/data/acpi/pc/DSDT.bridge", +"tests/data/acpi/pc/DSDT.cphp", +"tests/data/acpi/pc/DSDT.dimmpxm", +"tests/data/acpi/pc/DSDT.hpbridge", +"tests/data/acpi/pc/DSDT.ipmikcs", +"tests/data/acpi/pc/DSDT.memhp", +"tests/data/acpi/pc/DSDT.nohpet", +"tests/data/acpi/pc/DSDT.numamem", +"tests/data/acpi/pc/DSDT.roothp", +"tests/data/acpi/q35/DSDT.bridge", +"tests/data/acpi/q35/DSDT.multi-bridge", --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427784; cv=none; d=zohomail.com; s=zohoarc; b=luGWvgLugS9W4Av1bsdvZsRb4QXOYXgBcST4TxWKGOKhC48Aaw9bllNadghcoJMviB11tOZKAfv0/gTS/BAqos3ja6McVrGSDtggo7ZXnUgqLJN+fcToYQYZhrE1+XL78oqYXme8hid4mgE2wUuNVuak8mraRZPzyGP6loVHVHA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427784; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8LtbWC4TRYOxMw/Xs0vATAQEBjGtMGazJ9tDVXsGFzE=; b=K+2cgMCZE2a0VrhxsmeR96Y6CNXeCUqUMiRw24BoSSkNOaV+hUKScKfgzpTHDBvGpYKb1OSIFs2QX7NfMX8WHYSyZDprOCa5Jg0DByczeCznlib65npBxISvXuD2KKnu5hd9Fn2HiK3LnbWXunfATJ/DFLLy8peQsykMxqtni4k= 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 1665427784804515.7452100739565; Mon, 10 Oct 2022 11:49:44 -0700 (PDT) Received: from localhost ([::1]:36326 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxqQ-00017y-DT for importer@patchew.org; Mon, 10 Oct 2022 14:49:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51676) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdX-0004fx-J9 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:34735) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdV-0007aC-TP for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:19 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-383-_Jr2wz_tP1OSIdEDcriwrQ-1; Mon, 10 Oct 2022 13:32:16 -0400 Received: by mail-wm1-f70.google.com with SMTP id v191-20020a1cacc8000000b003bdf7b78dccso7298888wme.3 for ; Mon, 10 Oct 2022 10:32:15 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id q22-20020a7bce96000000b003c21ba7d7d6sm11552899wmj.44.2022.10.10.10.32.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423137; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=8LtbWC4TRYOxMw/Xs0vATAQEBjGtMGazJ9tDVXsGFzE=; b=G/4XXpkpypuj0x5iXc8q81yB3kUT53C5rldQCsZu0boNtQsWMAnEteYEU3wghjdin8uhcM ZK/d9y3ngh95JfCgi9KlNhGfjF1/b5+nykkGJlSGcg6fBy3+EshPixPtN6vN3/jQi78npJ 4lXe0qWfxo9jCq8KR8+/1j0Dvdeqh3c= X-MC-Unique: _Jr2wz_tP1OSIdEDcriwrQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=8LtbWC4TRYOxMw/Xs0vATAQEBjGtMGazJ9tDVXsGFzE=; b=Eywgao3rI8CHQX6RdLg9U9Ebo8IRHu5lTlFw7X0SJ/5PqLNw85MkMj5WHCDpIxyjnY GAsfYs2qBo+we1pvhJqiejbMkVuZ/tB2xEvGAy+Z3GayHaSf0eZK78XZTCvJmtcJIj2y /ZrX79W2xWlrxoTzBhoH+1Zsz6URG2YaDKbk20HzbZxGHhBZMYz8FDXmGGkQbO5YWtP7 RaMexF5th2Y+q1JFQ5A1+Cj99SBMk4L/XPxbAgnT4NWmbzhq05kI85vp1Tx0GyH8CMUZ l2qHiSqrtX7Fi2GyVtCCYh4z+Xc+nV64zGNn6zXSE7BDHD5NZZCxspXggJwlGza6y9uK 3TIA== X-Gm-Message-State: ACrzQf254OUrUusVtK9mRIoJGKxkNywfdzufM5TFEX5kNDdPwaTN4e4R ISuTtUMI4lGKPGoodEvF7rzxvpcY6uFsFxBSs09nU6S30ESehnwg6ha9dWIMXuy5yFHdw4xSyU/ MwSjr78un53HUSa5oP9KBJZwAoJXbbGGx/QUA+2Y1NKjNu8B2qGV+IEQBc0L1 X-Received: by 2002:a05:6000:1866:b0:22f:2616:5613 with SMTP id d6-20020a056000186600b0022f26165613mr8683152wri.145.1665423134677; Mon, 10 Oct 2022 10:32:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5tX0DZMi289p+RyrFYG5anzF9TgWYOuca2FLAhp/2bxrtXtFs1H1JAjgex4HsDpYnInE0lHw== X-Received: by 2002:a05:6000:1866:b0:22f:2616:5613 with SMTP id d6-20020a056000186600b0022f26165613mr8683132wri.145.1665423134344; Mon, 10 Oct 2022 10:32:14 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:10 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 47/55] x86: acpi: cleanup PCI device _DSM duplication Message-ID: <20221010172813.204597-48-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427786882100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov add ASUN variable to hotpluggable slots and use it instead of _SUN which has the same value to reuse _DMS code on both branches (hot- and non-hotpluggable). No functional change. Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-10-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-build.c | 56 +++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index a19900c4e4..eb92b05197 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -374,6 +374,25 @@ build_facs(GArray *table_data) g_array_append_vals(table_data, reserved, 40); /* Reserved */ } =20 +Aml *aml_pci_device_dsm(void) +{ + Aml *method; + + method =3D aml_method("_DSM", 4, AML_SERIALIZED); + { + Aml *params =3D aml_local(0); + Aml *pkg =3D aml_package(2); + aml_append(pkg, aml_name("BSEL")); + aml_append(pkg, aml_name("ASUN")); + aml_append(method, aml_store(pkg, params)); + aml_append(method, + aml_return(aml_call5("PDSM", aml_arg(0), aml_arg(1), + aml_arg(2), aml_arg(3), params)) + ); + } + return method; +} + static void build_append_pcihp_notify_entry(Aml *method, int slot) { Aml *if_ctx; @@ -423,26 +442,17 @@ static void build_append_pci_bus_devices(Aml *parent_= scope, PCIBus *bus, break; } dev =3D aml_device("S%.02X", devfn); - aml_append(dev, aml_name_decl("_SUN", aml_int(slot))); + aml_append(dev, aml_name_decl("ASUN", aml_int(slot))); aml_append(dev, aml_name_decl("_ADR", aml_int(adr))); + aml_append(dev, aml_name_decl("_SUN", aml_int(slot))); method =3D aml_method("_EJ0", 1, AML_NOTSERIALIZED); aml_append(method, aml_call2("PCEJ", aml_name("BSEL"), aml_name("_SUN")) ); aml_append(dev, method); - method =3D aml_method("_DSM", 4, AML_SERIALIZED); - { - Aml *params =3D aml_local(0); - Aml *pkg =3D aml_package(2); - aml_append(pkg, aml_name("BSEL")); - aml_append(pkg, aml_name("_SUN")); - aml_append(method, aml_store(pkg, params)); - aml_append(method, - aml_return(aml_call5("PDSM", aml_arg(0), aml_arg(1= ), - aml_arg(2), aml_arg(3), param= s)) - ); - } - aml_append(dev, method); + + aml_append(dev, aml_pci_device_dsm()); + aml_append(parent_scope, dev); =20 build_append_pcihp_notify_entry(notify_method, slot); @@ -485,19 +495,7 @@ static void build_append_pci_bus_devices(Aml *parent_s= cope, PCIBus *bus, * enumeration order in linux kernel, so use another variable = for it */ aml_append(dev, aml_name_decl("ASUN", aml_int(slot))); - method =3D aml_method("_DSM", 4, AML_SERIALIZED); - { - Aml *params =3D aml_local(0); - Aml *pkg =3D aml_package(2); - aml_append(pkg, aml_name("BSEL")); - aml_append(pkg, aml_name("ASUN")); - aml_append(method, aml_store(pkg, params)); - aml_append(method, aml_return( - aml_call5("PDSM", aml_arg(0), aml_arg(1), aml_arg(2), - aml_arg(3), params) - )); - } - aml_append(dev, method); + aml_append(dev, aml_pci_device_dsm()); } =20 if (pc->class_id =3D=3D PCI_CLASS_DISPLAY_VGA) { @@ -585,7 +583,7 @@ static void build_append_pci_bus_devices(Aml *parent_sc= ope, PCIBus *bus, qobject_unref(bsel); } =20 -Aml *aml_pci_device_dsm(void) +static Aml *aml_pci_pdsm(void) { Aml *method, *UUID, *ifctx, *ifctx1; Aml *ret =3D aml_local(0); @@ -1368,7 +1366,7 @@ static void build_x86_acpi_pci_hotplug(Aml *table, ui= nt64_t pcihp_addr) aml_append(method, aml_return(aml_local(0))); aml_append(scope, method); =20 - aml_append(scope, aml_pci_device_dsm()); + aml_append(scope, aml_pci_pdsm()); =20 aml_append(table, scope); } --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427161; cv=none; d=zohomail.com; s=zohoarc; b=V2UR+t6NAN/oUMY6ktGEWeE6hCNJhUe8z1o5BEPMzZsrlsJjnwsjp5bdp5xMwuCNSUV2wBxv7UiID3lWeY269tuqByuEugc2PIYcthA8nGHLY4oJw3kpl8IEaGm+N11KAVeuk3mZZMHsXB4NtRU8d8TC654uxsRvEdMc79Xhh9I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427161; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zvXCf8qkkFDdUiGZXobQDZMUIVQTzfnb4ghL0RQe0Nw=; b=ZH/73s5Ecg2nKJ5WvAC9MWlRxPhYw64yUWrIi0l6S99CvB/Kvc6W+N08clSYD9kDH1c5iWgwOYPtfcoL/ibX1jgEwHxVYrjYjAIooRz/BPANn+ou03K3AxJ3mr+H2VCGhrjGC5DS74e0pSHss/nmIMSfPK8S/zYxHnsjzDyLBHo= 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 1665427161300488.5486749235324; Mon, 10 Oct 2022 11:39:21 -0700 (PDT) Received: from localhost ([::1]:57458 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxgM-0001aW-W6 for importer@patchew.org; Mon, 10 Oct 2022 14:39:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41222) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdi-000514-Ab for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:30 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:34112) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdb-0007ba-E4 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:29 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-44-CBLbUO5ZOe-LLu-iMu4F3w-1; Mon, 10 Oct 2022 13:32:21 -0400 Received: by mail-wm1-f71.google.com with SMTP id 3-20020a05600c020300b003c5eefe54adso985027wmi.9 for ; Mon, 10 Oct 2022 10:32:21 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id w3-20020a5d4043000000b0022b1d74dc56sm9209829wrp.79.2022.10.10.10.32.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423142; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=zvXCf8qkkFDdUiGZXobQDZMUIVQTzfnb4ghL0RQe0Nw=; b=gymFiaYAeXXFjNQT/B4A0mH3CnfhTleKBWadS+8qjt0JsRa9bUV5dQm8544Ib32XZsO/y9 vuEGfn7B4SgDJI7Pr8fjvkQ/eTHgiZRLWQlaZG+qU+SKePgoVMF1PwZrV1Ken/kiOgVyr2 bQB0iU9USvpdfbpIpKoCSEFDHifW0Nk= X-MC-Unique: CBLbUO5ZOe-LLu-iMu4F3w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=zvXCf8qkkFDdUiGZXobQDZMUIVQTzfnb4ghL0RQe0Nw=; b=1P+59ehvcXhI3e33zNLqPc/i2+1ybVn4uSGa5cRQJDCsQxfdujnGW1FaZwwZTsUa6E aLi3KYDLxtpA0ZlznK6Nga4ELWly7yHs7lRh/Nc1F9ZRqAzD573NuUqgurw1gKECvD98 W6UhfvMqmlqdMaRVd7DyBz2hqKhx4iq90DfMWBukBdw6Y6Uy44Xk01+bKG24FsgJ+zou zq+aD+/P7lYdJlGYuOpS7CIfQtL9oZ7PpImu7LeRY6YAuEW8NG13+y3ejlkjIupr7+RK blfB86RGS7AoF/kR9iOwAiNS4495KZZ9fJdkv4ST0s3kTTzOJt7r6QzEZG1XHSDpArKb yswQ== X-Gm-Message-State: ACrzQf1RdisvvWdLdyC9KbbD7i/jvgydCe0VpY3/ZK5iMoEyxWdBVWi8 IjO6N8QvqJG3xo7FmF5txy4//vECHUsmhvdMWPD8MclX36xH1ytQTELjjayBt7dltFsIJOqDb/A CQspyHwDaX0x5fRVz6/UMs/vUWfPPrXyPCbPPcf62whzDo6Au3JxczpA6wwaV X-Received: by 2002:a7b:c056:0:b0:3b4:e007:2050 with SMTP id u22-20020a7bc056000000b003b4e0072050mr20730309wmc.38.1665423139374; Mon, 10 Oct 2022 10:32:19 -0700 (PDT) X-Google-Smtp-Source: AMsMyM67GZVP+EvKwYEV8g4pqeikIeTUYTdMmdmBmdLb0V93fu67Tm/Kfp+cPlrC+ydpBHLDsNH0VA== X-Received: by 2002:a7b:c056:0:b0:3b4:e007:2050 with SMTP id u22-20020a7bc056000000b003b4e0072050mr20730280wmc.38.1665423138889; Mon, 10 Oct 2022 10:32:18 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:14 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 48/55] tests: acpi: update expected blobs Message-ID: <20221010172813.204597-49-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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, T_FILL_THIS_FORM_SHORT=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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427163175100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov It's expected that hotpluggable slots will, get ASUN variable and use that instead of _SUN with its _DSM method. For example: @@ -979,8 +979,9 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPC ",= 0x00000001) Device (S18) { - Name (_SUN, 0x03) // _SUN: Slot User Number + Name (ASUN, 0x03) Name (_ADR, 0x00030000) // _ADR: Address + Name (_SUN, 0x03) // _SUN: Slot User Number Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device { PCEJ (BSEL, _SUN) @@ -991,7 +992,7 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPC ",= 0x00000001) Local0 =3D Package (0x02) { BSEL, - _SUN + ASUN } Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0)) } Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-11-imammedo@redhat.com> --- tests/qtest/bios-tables-test-allowed-diff.h | 14 -------------- tests/data/acpi/pc/DSDT | Bin 6219 -> 6422 bytes tests/data/acpi/pc/DSDT.acpierst | Bin 6186 -> 6382 bytes tests/data/acpi/pc/DSDT.acpihmat | Bin 7544 -> 7747 bytes tests/data/acpi/pc/DSDT.bridge | Bin 9078 -> 9496 bytes tests/data/acpi/pc/DSDT.cphp | Bin 6683 -> 6886 bytes tests/data/acpi/pc/DSDT.dimmpxm | Bin 7873 -> 8076 bytes tests/data/acpi/pc/DSDT.hpbridge | Bin 6186 -> 6382 bytes tests/data/acpi/pc/DSDT.ipmikcs | Bin 6291 -> 6494 bytes tests/data/acpi/pc/DSDT.memhp | Bin 7578 -> 7781 bytes tests/data/acpi/pc/DSDT.nohpet | Bin 6077 -> 6280 bytes tests/data/acpi/pc/DSDT.numamem | Bin 6225 -> 6428 bytes tests/data/acpi/pc/DSDT.roothp | Bin 6434 -> 6656 bytes tests/data/acpi/q35/DSDT.bridge | Bin 11227 -> 11449 bytes tests/data/acpi/q35/DSDT.multi-bridge | Bin 8628 -> 8640 bytes 15 files changed, 14 deletions(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index 1983fa596b..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,15 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/pc/DSDT", -"tests/data/acpi/pc/DSDT.acpierst", -"tests/data/acpi/pc/DSDT.acpihmat", -"tests/data/acpi/pc/DSDT.bridge", -"tests/data/acpi/pc/DSDT.cphp", -"tests/data/acpi/pc/DSDT.dimmpxm", -"tests/data/acpi/pc/DSDT.hpbridge", -"tests/data/acpi/pc/DSDT.ipmikcs", -"tests/data/acpi/pc/DSDT.memhp", -"tests/data/acpi/pc/DSDT.nohpet", -"tests/data/acpi/pc/DSDT.numamem", -"tests/data/acpi/pc/DSDT.roothp", -"tests/data/acpi/q35/DSDT.bridge", -"tests/data/acpi/q35/DSDT.multi-bridge", diff --git a/tests/data/acpi/pc/DSDT b/tests/data/acpi/pc/DSDT index cb718f1a8a591b27ca841f70f40762562c15c837..8282d449ceaefd914b419f507a1= 3f3fb7b318aaf 100644 GIT binary patch delta 1170 zcmY++OHRU207l^w3Y0=3D=3D%cD>pC2<9aFC2o!nHsImOu7UUx8MRCkhlsHV;r#tSKw}p z=3D0C~3(~~dfd-1mP^CG`bQpc&hfBH{>f3<%si%l7A_q&(iHM?<(!&T|6i-&8!>XqyK zuI)Hg$1DHC?lwHweFX6zTQ0<0m@DR5j9U#>6RVl*h+7?27pq&0TLab*Ynbeqn+Nm6 zJd1H_!kS`Dlbvw$VZNAeF>WnbORQzGQ*LcoTdZv{ZUHP13ru##tpn?bbu7j$goR?E z$yVGVSR@u%j9Uzg#bT44bL+yoVqJ@I>%n?rJ(I1u^w4F>W*1Ol)Sd YOKuq~6U!{dZ4R4@&Bem6=3Dj5mI3(bW3jsO4v delta 1329 zcmaLPIZnd>6aZ0MaT3R|9cQ((OR1cIN|u5%00*Fm#0e;&KpcaE za19nQ<^S#IX`UyaV<$?}P$c5-$$ zOHN(G$Qg@!f3)-)=3DPxHodUSPtb34Cy_`#F$KeoV@f;s2Gc^R*9E`SRP=3D3E39WxUSW z2HOheTmqM5yusN4I|}Ap2A5^L$=3DLj6qH3f67gX=3DP$ac+Pc3g+AdH)R}iZh>10<{W}U8Sik8z>$JEx4~^0C!9Orj)FON k!Ce{ea_)h93g+Ag_hr1tc>o?LnDY=3Dk{KIDUu@Zin-wNzyDF6Tf diff --git a/tests/data/acpi/pc/DSDT.acpierst b/tests/data/acpi/pc/DSDT.acp= ierst index aebb29c2a4ae67b732bef3eb8e72c5665bb3a7b3..9520f3b7303a43091e8c77b64d1= f76407e85f1f4 100644 GIT binary patch delta 1131 zcmY++OG?8~07l^y`bck+Cg~$hUn#hP`mV#))R_uKXJVG%B3wdu;Y38x6*zO^M!E(; z{sZ?;4o^B_=3DNKiJXA2}5qR{6ZSxVuU-mC@|70cr diff --git a/tests/data/acpi/pc/DSDT.acpihmat b/tests/data/acpi/pc/DSDT.acp= ihmat index b7c5de46346d2777b33f7fc464d319bd762fda8d..33169838bed50710495d45e0d94= 86ac59b4e504c 100644 GIT binary patch delta 1170 zcmY++yGp}g07vl@dr8x@x%Hkl1)spXRb1MpZYmhvgv>sTLsvl`L2>HrQwTnYqbUCa z-?tuqoS*a03okG7yH(~mmB)AQIrgr$4`s0|!}WIa7C&V-)nb2Mx{Koe+S_r~6l}=3D#L%jiB(}$v8u(m)nGNTn#m5i)nRq9y2ZFPU=3D6W`$&R?WFjvgA z7`G;@Db_UEF*gt9iFp>|)`GRfS|&T;=3DEHn3-(uX_u(nv+WT)IZu#Q;AV%!2)AQqTx z&Mkz6Vxh&jMX*RLGT9lo7#54g7UPz{60yW&3vOLlSFCF>Zar8}tY@+%w?3>d*0&h9 z0c;>PFxiUR5H=3DJWT8!HWHWC||Eax_cjm5?mLNHQC_aJ@ zk@Hc9JG%H<4kOpRe}4XUETzER8ew@M-?y-315vba|9nS$ckK z=3Dd5g;oH~Y)Gv*Ke!s2h7KAt4$(d_c-dU|pDgIAXRaUPskFy{ieAmdfeMQ~BUoJ-)6 zjMq3@U`xTA%iyw%*E!o@Tfv+w;EIelI6GiR!JMn$s*E=3D|*T6LebFPEyG9Gbu!LEWi zH^2=3DUZ*lg(o`N|y!A%*DIs0H=3D!JJ#*mW*T0ZE#z`oC9zm<6X`ja7V$MyWp;j6V5$w oPr;n~;J%FaIEUa+!JH#-B;$R~1Mon>oQL4yA2zeMN%&!Y1Jnj424aS~^|X7iH8VG(`U15^nn5=3DelAp$d|ZK%F*1NK_!XfewxkaR#oy zQK*@a|C5-hDbtLmc=3DT4*H~t>IoUu5GuY-+TPI;ZNJIi>QD7R@cOx=3De`c5gka!_UmK zkNi_D>Ge{5klbA4^mGtk@sr=3DPnY*4H+DjT^;jM-PcSdSEfh6Cji4q$6bpa_f&~$7qgVti5-ds(#S&nNU`d2KDC&SZ zL0y6wtBFbqS)_0BjI!h;WFa z2j~&>B#5F9=3Do9osc#L8I7!V93h++sB5)4Hcqu2y&5^PEk#TH;s4*b(6f#RxDW7)cPtE?}2n7x3fJSJa3P+H!vQgTUv0IX{11xjsIi<^0V56xecp N_)`4q{JgDxDL<$GC>sC( literal 9078 zcmeHL&2Jmm5ue8oY57P>OKNS&RvZ(ujW$hTla#-L0)@z3N}?rFYcA!aSfN~!3QD;K zvT&jzvS5^^3r8_fpeduGhaMP%xmw2_TcD@j{3oP`UV2Q?*q26~+2x~TN>1cG^&kOS z?aaLQo8QcPZ{DmlLo5I4902=3Doc1fK#65023HGw}20O+0m%K5+wm`yD^S7BjafSC`% z&O1J`lJa9MyFADK*s%U!Ss#63v8oNVC-Qc!YCqhvYCwb5Yc}WfB2QI}Y{hI%>S{hI zRp#?rB=3Dd~>rAkICfmB(}Yaq{_x=3D4d)gxShZutMD*m1F!3LPE^M$45{;bilmu5*kI0Z6|%1E=3DC z+NU^-Xrq7Q!lh{^IPNz9&PL)%r}wC`294{G-2-D(ZEAL<>sUB^M80Kj5#L4(!K`F5Rk zV(lsq^wkEeei7|U85|UA*SW8+$@Vnb@=3DRMnRg^B;U<-&y}f;_mw&ez1PG{{DwxGF4w(=3D#}Xx=3DW`5p zV24HU*1|3B)a4x>F(3SpgbXB9Jy&FEzGyJDRJg^kx+du{%fPRy1q~~BoJRUpBe$5q z;aaAgP$HFlF)!IbO56_9D^Br8LN3W@M%DAlWGYEC+)F&D#MJWa&wL%;ZonfonM|%J z^Fw$wWJ2b-l}myBfl>fe+XvO?%m%A-x;<#15Ntk*HT{5PaiMD|g&>9XdXCs26e1jo zugsoQ4Yeq}A`D3_=3DH89_c5SHJZ1ss2Z?7^NYbtYU`C{aEZHsN!QDxcnL6=3DUzgGyYK z&iMAA7MG>|WhaEieiz+*X&+|C3t>=3DA>u%S#h$9tpWc9_h&XohhoSlKoSLc5FKw{8{ z^VaLs*yRFlXGefFsMC^TY;`krcyI@>kk5MU@H7`f>XK28yduqq@0J7jm^^!JFbSAD zoBIZ}H1zhM5{Dkj&U|>C_B0)206ZSJuca>SZae{nOgR?j5=3DhjcqIIN#afB%tXsq2< zCh_ph>A6ZSnTFnpr-MX$N?r<($*D-aGnKpw$~!nV1(b+>eQ?{MeF|MII!s?0A*+ge zQt764ThS!4DOTQMwT`e@}FSXig08`+$+EKlzCo`A=3D zw*ZoUU*&Uq->@5(Q~AEy`D%v+2;@dUpVv!nB3}l(>GrnK0#H9ds@7R~4bcHNLUjE5mvdz}T*>}}hm%zoBo~9tPlm^&I<4an+Ow)_m(*A6uuDcu%5kC~jC-;9hqD15vt)?3Q zQFlLvlz4^i9O~<7Oa(0iP^5Y(ra1&52B^oD3qKB#2Llg4^8q(G2t?hJi{$f))T7k< zV0CiijZ>Nyj5uLW<8lgk~fO4 zA_-0*ffVwHbVYFD0*QM?5}dF=3DxY30@B3%`nA_6Jm6-jW43Z$qwjIGq(pXI~#lDW1`870bR(c(cLa5j9b3 zoycYbn@$w2_k;in*zLI%i3DMhQNXsswIoOomKhZAa(69F637zWY=3Dp6=3DdSu`o+mp!C z<-Uzv;a%6Wk*_O#8#%)}r)MK?SNk?{hqb?FBY)S(HoDnxnmClP3JV!KYLxfv*jGO? zup$aOeo~>lXO~IF>Llz5N8Yo~kc^c=3D*qe^LXLlmTQ!DJ)FF!KWeRhf(Pf*`ZacleR z6glqZzCA(mKKl&HxU>59Cdp`5&e8`P*o^+4O$&`Z|1#^nXxwkMuvI;73$Z8uzHbA} z({WpPv^*WRg-6TNaa(w_JRP@%N6XW3TX?iQ9k+$wnZr{{!R>?|A?K diff --git a/tests/data/acpi/pc/DSDT.cphp b/tests/data/acpi/pc/DSDT.cphp index 3e8a202b0f32d585b38d4f8c85247124de5ec73d..013de154913063ed1ce3f154444= b9e11f4608eac 100644 GIT binary patch delta 1170 zcmY++OHRU207l^w3bdurmS-tYqATzLiX#ISXKG?~X40j&1P2UVg>l4E+yLt^n*SvC zPEWp^&*gCy6lL*p%p9kddG`I8Y^290F`7Awm z4WnQz&-|6u-#C9hO|#?0&F$U%>i!3Bto>sPY$=3D#?5nPn?)XZ4P2A)Hs?CHu3*j{*pu;;vk&$a%(($>$asfy z6WmlV=3DN7mn;~D2RxUFE$9dJj+3Fj`jt6|C{{9tyn%@v~V8s9c diff --git a/tests/data/acpi/pc/DSDT.dimmpxm b/tests/data/acpi/pc/DSDT.dimm= pxm index f7d6ca1448cf0ae3c609fc1e1391cccc2d7221fc..289ec07c07734f6fb10e1f1f3de= 7b3de2a4642fd 100644 GIT binary patch delta 1226 zcmZ9^y-vbl7>3~z3Y3pRTUyFrX^ltVzc?5J7B@AqI!V%VaVBBtkr*dN&%zUM@DOy; znCBVZcfE7ve!tvYnY_p!H<@MCeqPOIXl{4wvRIb>YFB-S+w|Tp4(Fw_D4y<2-6(8G=3DN4y9y^2`z>b7xJi3G~psOH{UBWJ4SHg21dxSl}o`O7j zgdU(L;haaG&@|Y23fEl3w_LY3pegScr1^oa3 delta 1329 zcmaLPyH3IY7(n4R6ey)Yp+L)}5S$#ni-R%LYK)1-Se-N}qnB53ayD_`6?D_V_yjzR z@fqB_#54Z?dh+Ew?98{FBu&od1H&-y-kcBLiC-_XG|s%km)V#97#vvX@;I}z^!(V# z+1VsHbqynD%tqnD;%}Tjoh0ee)%DHo^y2;puPpsz3v4Nva~_rI5)rz1#|YnzKkcFo8YE`Ik&(q8ONO4;I@J}2jD=3D)yPQLCs9??=3Da7V@o=3DPtOb nV9q^oPsV$k`{2HUIY;0~#`~NH;DLfU55dDfY-aDz(Wm(h&iY-i diff --git a/tests/data/acpi/pc/DSDT.hpbridge b/tests/data/acpi/pc/DSDT.hpb= ridge index aebb29c2a4ae67b732bef3eb8e72c5665bb3a7b3..9520f3b7303a43091e8c77b64d1= f76407e85f1f4 100644 GIT binary patch delta 1131 zcmY++OG?8~07l^y`bck+Cg~$hUn#hP`mV#))R_uKXJVG%B3wdu;Y38x6*zO^M!E(; z{sZ?;4o^B_=3DNKiJXA2}5qR{6ZSxVuU-mC@|70cr diff --git a/tests/data/acpi/pc/DSDT.ipmikcs b/tests/data/acpi/pc/DSDT.ipmi= kcs index a7b4760817e07cb36e13c835d04abd7bedcabe7a..59a6d5860887b511b7ce5f17d70= 44a08c14f0f60 100644 GIT binary patch delta 1226 zcmZ9^O-{mK6h`3^3Y3rjQA(lw6ypMnASw>Q;!I7fjx=3D@+Zov&O=3Dt_(OLtKIzaO7Gv z=3D6whEPEVekYW}k@d6C~grj#+O~NK%Q$ZeEge}09gi9VB zLI=3D=3DMkjFM*8?Y_mDUXKG02&2(>=3D1SUI})Dp=3Dn}esu7W&zgdU(L;W>{!p%3UQ$YVel z00t7Scnk?cz)(RRyM$f9u7npnMuZVyq#%zy!X98x!ZnXEVGI~6$YY94g3TN|*ws66QRP2uFY;1$i73jseFKZh4##P5>tg@;D`& c0!}5o;xQx405b)7oDt3dXMo}RXYyV91&d7xh5!Hn delta 1329 zcmaLPIZnd>6aZ0MaT3R|6FZxoU815SVGCu9K?n&17%GsQGQa`oxd4T)KnVpxfMc_7+t{PrY2T5lTMz;fz82q1>?kG;uYLHfY&fa z^M8`}U7!5&Je_`@`FWAwK4gwld4BcZWB+n%n?rJ(DfD^Lf`Sy}W~iFW|t&?5Klr_aS@- z<7;?{XZ-*5ekARRwddfon1zajt{w3g+AZ zH)OoS*#mnD=3DG+7~WjyBWgM9^aZh>1ejybo%Z3S}=3DFO0|j#)f`@%5eZ32o5aBaR?j=3D4o$e?I0B9YM;7Eb e295>CCcNM{0Zs%b7UVbuP6ele@%wl3S@;EQTN7^p delta 1329 zcmaLPyGp}w7(nra-qJK})3i-`FF3hrz1FcYiU^7rofQ7<=3DH)G%+#LD@f};-N+=3Dp@U z2?R$kc*gHr4?oWRXtClZX>zuREX)3Sb>BTVez`PhZ2ZIL`KR{~9c0td*f=3DIVKXx;Y znIxy4Wo4}SELd9pjnk)-Bt5#izPX)V-2LFS)qk7?XBEsj2hPcOopTNMZuh_;Hr$roPDsbV9qsg zO~yN%18|^V&UJ8I#uLsBa6`eIo8YF5W6mKsR50fV9Lac>a|_&3Fy}V7E#ri92i#FG m=3DPtM_<2}wja8JRU`{2He_c;&10|j#)f`@3zX8*ax1q2#wS3$;RqHtHL>cVNuR>O)y>I))x}3JPCSO258*>- z%>NAEx1RiRzGiQ8Kg+Y5bl^CpyAS^{^e?s#MZPNH^>*_TzD};(e1B1R%l!7z-|>oN zb{#m*j^h>oVe=3DmCZGOUN_x|}0&S!!y&=3Dqto$gvD83zkiIz_9|X2v#h}u?nmTR!w-w z(F1ydo&`D9fHlFI36D7XKwr?eAjdkeE?76=3DF~-i$0=3D|sI2DXPpOWv=3DFViFjBMtgZjX`O9gN9xrZg@8(wzKX^R)#}?R9Fy}ltFXK(l1#m&ZoQvS1jJG)3 zU|YeQOW=3D}>C!8IyqhQWua9PINoL#W1V9p-clkpDc3b>+R&Q)+###7Ed*jF&;03678 zmvaqVQ!wW`xGv)v=3DLWc;V9rf&Q^qmp7PzHg&LKFI@gC<094VM{8{C$0!np(PD425> k+?DY@=3DN`DHV9tGTU&aTV2jGE%IS;|ZKWt|2lkm&@27uLTz5oCK diff --git a/tests/data/acpi/pc/DSDT.roothp b/tests/data/acpi/pc/DSDT.roothp index bba1612c972948911ca5f5b301b10a380b8d83b7..f9a5164e0cba7c209bd3e52020c= b855e8688f682 100644 GIT binary patch delta 1703 zcmZ|JO-{l<7{>8wDNu%%md`?glIT{$hp4zR#iB70F;-WYl%*dFuVC;9+`xDN;|<*C zar6eZ@;)o`ZYGnN`Mv*n89WVT5C&Jm6++p1laHo6`MQb1ab(XvSI_2Qclr_bN0A=3D+ z!KEQYO6cQoawg`>Q!VWEBHa(K&&A(uyvF<0x3#&Q94=3Dljf^d3!cmJ@MFQ@V2ct~=3Dt zV3e{3%Ie43=3D>8KkE$q{Hse-6$B30f{MW$flA1D8kDb@_o(O@((8gI}^!=3D%ZiS+j#q z1|~x$!y9z6Fj+EL)(p|nVRSM&Z_vrXdqHhmHYbkTH0J zjtOIuFH z8XuhsOodE^H|SJhs${CH8KYB!sgbGi1|0{+A>**-2%S1iolKoK=3Drmv&WE!jq&~ag0 zGA?h>X~HzgG+8r2rv=3Dj@)8Y*}ZJ0KhHfxU2@nAeM9&ga;z;wuT5~KLe=3D|H{;|s=3DoSPdT(9F)86%3MJeOV|=3DKkoWQFizhuJ$-in@c1;H%#M~Ucwg=3DfB1S+r|IuSh zcUDCwgbm4dm32(4DcUYw3v0=3DiZWtRD?Ka&AHX>WPQEXJSJ-Rm5mMz^FHYVB~x(?Qn zE!{XaF4|qX32Z{PbX}|~+C92SY*My#Q`nSf`*hRTv~1~Suo=3D9(+~z#9JNcc~fr1)C(Bwg3PC diff --git a/tests/data/acpi/q35/DSDT.bridge b/tests/data/acpi/q35/DSDT.bri= dge index d03e14b24d0841b4003e7954b70cd7601e571902..f8a0bc150f5a249bd5d09be6949= c97160de1ef82 100644 GIT binary patch delta 1703 zcmZ|KNlpSm7>40)XrL(?Xy$nkH=3D1a`850u&wi*)=3DV{44T1eOk`kSlNnFJN4;aN|br z;4M6X4Se6q{F_SUuX^fD{oGFPl;b+r(=3D|=3Dgf8W$fU7dd458dw2?te`V>W9tVr@PS_ zn!}EBWoepEGrR8bxi%P|8E(s)cifu`ZGP&l-hT43w7fnWj$SVvxA*Y)^gJ4jd*0>t z;b~aZ&60bgMD4%RlQGOafj9)aH_=3DYlQ3>ZT;>;z~6FagnQ zu@j^T!USc*PKYK16B5lfJ0^_@W6Fk|FijXHESep56peyWvSBAe6M>0{W|tj{#)7eA z!%mbY3KJF09y>9b7)(qy?8Ir}Fmche*|BMC7+W^%Bxn*a3DNAclcY()BxS=3D+iY5h< z5>1DlG))>NEgN<+G#QwTXu9lVX|ga`*|3wN$-(4AbHq-bCJ&RB4Lb#z0!%?P4m(Af zB1};>?38FqFeT9(vs0!i!<1#iPKBldQxVMxJ5`!0OjS1Q)M#ojwVBa7?;opG-yboi Bw*3GA delta 1482 zcmaLRNlpSm6oBFCrh%rJ=3DeZ%ekl+R!F)=3DYf%A}ktKX;Dqvg2H{cKwZ&Hl0)b?ajK?72NJ(Vb3?>nF{dAGh7|Ot0(QMTF3W z*>eY%VmR&_Zfh}jAFjo6D<?IM zhNXjb1zv|OAJ`|yJL}(C2G~$w%6_n4j&~^szySrO90UjDc#pCPHWiq12pp2*eaaTt zQeetqa9EBHC`Z5%1*RMYN9FjCats_(V9IfDT#h@G6X1jbQ%-`Da(qNN1x_h28*D2u4*mf?a(WqnkWgf(?M;j=3D`aR3}9Ix31m-RqM*#^IQfKvGgzl3R3{??Gejo?A)OJ5 FF#zFGBxwKu delta 142 zcmX@$yv3QzCD;*)I@>^1#3f(;GgIpQ5%f_NAh zm>4*mf?a(Wqnn&rf(=3D08!J&Q(VA;tIipq@flg}wQgY{TK^)NCpL-a7<)1x`LSJ4;% D?2jW; --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427280; cv=none; d=zohomail.com; s=zohoarc; b=SDPIt1XiSoKLUT1zWpNjAO8hRN4Q4LhVzCtXWOSeFhUwxn4waRa/e0K/Kvc/mTu9NreCCzDR+pAvrexxtD17UAdrn0CkZ4FElUsI5N2q0//iRH5exSwr2C2FuUtuZPwgpn/ODHfWYNaCtTJ9JLlLpxwtLAgC6IptnBxxene8qmc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427280; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FyepswVi7aJ7F+kxJMGvV8mkdvSxEu9CCU92Vf0iWNw=; b=V1L8Oa4yaXCiXOR725r5aqzOCvIMUfrrhe/AP26WmhYILwRjc8nl5fY6dgzY/7+kLNoojg7WWm4XdZxD0WHbuIi3Z6jv9ZjV2Gf6TpnXJ2F9T/1SU3549sNMevS4e5PsyRsM7drblg5Mm5AwVi9EUukYnC/G99jgLVdBZueCN+E= 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 1665427280413157.58822682426285; Mon, 10 Oct 2022 11:41:20 -0700 (PDT) Received: from localhost ([::1]:53150 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxiJ-0004UG-9d for importer@patchew.org; Mon, 10 Oct 2022 14:41:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41226) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdk-00055n-O4 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:33 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:50427) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwde-0007c8-Gt for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:31 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-54-fhFyGLd5M1e-BRgFe_TZPA-1; Mon, 10 Oct 2022 13:32:24 -0400 Received: by mail-wm1-f70.google.com with SMTP id g8-20020a05600c4ec800b003b4bcbdb63cso7289492wmq.7 for ; Mon, 10 Oct 2022 10:32:24 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id w5-20020a5d6805000000b002285f73f11dsm11818334wru.81.2022.10.10.10.32.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423146; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=FyepswVi7aJ7F+kxJMGvV8mkdvSxEu9CCU92Vf0iWNw=; b=SEEjDAW1XaOTp3IyR4nAn7nG9S/B2mXSFkE+3H4kk718LO7tPuLe5pyT20mGpxZZhoWLok XpsWh9xYwDL/NAdDcK842FajCC+sTjnskX92sOoAVufBo/ERkRQlljfEzUWyNeK96axYRb 9tr6+MeZMqOaYZKV4i+4SQXQR6d8TiY= X-MC-Unique: fhFyGLd5M1e-BRgFe_TZPA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=FyepswVi7aJ7F+kxJMGvV8mkdvSxEu9CCU92Vf0iWNw=; b=BpbQ/4ifDfJXLBGoB4gudbLow42SxH0+ZMJllF3G9AmQohqZGsSjETmkW4haFMc0Jb OM/YIqL7KbVTi0WAWZ8NMkjWQASJQss/+NMttoiw/stvhIe9HPDWj9aXVrahzuE6V+BN vhspIrAoiyHvTcslV5xZc2RVcHG+FyUqcOx9wZzt9m/VNOmcR0Od1hikXb5VHxw337qk S2fWocorViFGMdY6afRu+/+LUTFjpnwBfzfrEKtZoL/nUbCgw0e3ztaHN/yTRVbjfTpn XzFT5QjBjU8CkCsAwfnIS17IHdol+lO5bLQdnBwkwTuBVrWCL/V+7Z208xx5Rqq/7ivA xzzA== X-Gm-Message-State: ACrzQf0zFXbjJz6pANVsjicTLD+ws3IBjhmpl0PzhwQ8oWm9TnvnCURv ahHnU6Vbt10MTPyET1FG2fy+eEisDLXHyWxVx6HUdA/3zQ0BexwfnRqdd4OPA0WN34hXY8g3Xy8 7NOJcKiNgpO7HCpTRNONburZ5DGG1bS8soFOtI1zksD681fIB5zT5Ga6Iq3Fj X-Received: by 2002:a05:600c:474c:b0:3c5:dbf4:ba94 with SMTP id w12-20020a05600c474c00b003c5dbf4ba94mr5825668wmo.21.1665423143171; Mon, 10 Oct 2022 10:32:23 -0700 (PDT) X-Google-Smtp-Source: AMsMyM54flTNZofEMFbmhyNJf71aGYC1xrJLLcksaQlDrwmZot+4lLYFnQ3DGATl64Eabm3aRr1BDg== X-Received: by 2002:a05:600c:474c:b0:3c5:dbf4:ba94 with SMTP id w12-20020a05600c474c00b003c5dbf4ba94mr5825651wmo.21.1665423142929; Mon, 10 Oct 2022 10:32:22 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:19 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 49/55] tests: acpi: whitelist pc/q35 DSDT before moving _ADR field Message-ID: <20221010172813.204597-50-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427281689100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-12-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/qtest/bios-tables-test-allowed-diff.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index dfb8523c8b..1983fa596b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,15 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/pc/DSDT", +"tests/data/acpi/pc/DSDT.acpierst", +"tests/data/acpi/pc/DSDT.acpihmat", +"tests/data/acpi/pc/DSDT.bridge", +"tests/data/acpi/pc/DSDT.cphp", +"tests/data/acpi/pc/DSDT.dimmpxm", +"tests/data/acpi/pc/DSDT.hpbridge", +"tests/data/acpi/pc/DSDT.ipmikcs", +"tests/data/acpi/pc/DSDT.memhp", +"tests/data/acpi/pc/DSDT.nohpet", +"tests/data/acpi/pc/DSDT.numamem", +"tests/data/acpi/pc/DSDT.roothp", +"tests/data/acpi/q35/DSDT.bridge", +"tests/data/acpi/q35/DSDT.multi-bridge", --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427575; cv=none; d=zohomail.com; s=zohoarc; b=QASD5Yh97vYuNOFaLTXjrIFNAA8nQZCEK8fDK4elJL32rtb3PMbKOe/1tLJp0UHzlPWKNxx7XDMR6xpU5wZedhkWa0i67IGXHVR6J/b/KQuR0Q/Lz3eskZnUE9lEjcVDl6qX+z1LYPGSBHeuvdJ0x5v7MEVRlkWo+ytb/bvECTY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427575; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=DRZb10+OLNSkM4ALj8UzLa2WATEyeYfJxoFKuX0oSVc=; b=MXJGIeQ23bDdp4CXqAlcXM+fQI9wil71GDLs15nbPLgERo++LEGl8IXu29NjrjKkqfdgfehyAt7I3l8DNISXTiiL5mRjv5EygNSBsQQrJOhpEdjamlctPv/xFOZQYccdYrUZaZ+Ue33AQ66uVkmeix50O6j1E9vU9Vf5RCoCN38= 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 1665427575739155.65221397505059; Mon, 10 Oct 2022 11:46:15 -0700 (PDT) Received: from localhost ([::1]:36930 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxn4-0004Qm-Ih for importer@patchew.org; Mon, 10 Oct 2022 14:46:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44446) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdz-0005Ju-5r for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:47 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:45972) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdi-0007dB-Se for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:46 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-392-NdOl9qWrMrygnVZJdMPJNg-1; Mon, 10 Oct 2022 13:32:29 -0400 Received: by mail-wm1-f70.google.com with SMTP id h129-20020a1c2187000000b003bf635eac31so4258095wmh.4 for ; Mon, 10 Oct 2022 10:32:28 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id g13-20020adfe40d000000b0022e3d7c9887sm9120270wrm.101.2022.10.10.10.32.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423150; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=DRZb10+OLNSkM4ALj8UzLa2WATEyeYfJxoFKuX0oSVc=; b=G/WoJw96pU8su/SswutzXCRX9I4yyKOE+Wo8T60C1UBuIk2etNUvnI7z6N0IOQ1JV9+Hm2 iaGIR2RSIeDC9/By9Fxivfq+HfwXdp4qCn52/qNUZbN+ZRAP1GeEzp3KXdm33guQKRbtnt yvBLJmomQDGsfmf9qH3dBT1YFmhJFRg= X-MC-Unique: NdOl9qWrMrygnVZJdMPJNg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=DRZb10+OLNSkM4ALj8UzLa2WATEyeYfJxoFKuX0oSVc=; b=CZ6O/6ggvFQOU8HMQNPRzadYezvr4UnKS8YXBagU8AIAUvrLr5qZa9VrjWVOw8DC8e ydhJJ+Zb2J3PAZzGzEDCZyRyhNbz079PnS5arrzIYAou2ETGaXmiwjs+WSVbLz03gWHb hifTWZKLhcFphyA8pNtn9kMi3vtmSc2625DsO2l+2HQLdDLttc+Gmtx2RX91OgCFetkd YIHpV8Ro+sKrFyPXvk3yh51gIQArnL6PgOrIw6UcS999+pmzVt7pph44GKQZn9eCArDn o4QcB4lYsHuL4Mtz5mqcq/SmEgy+kdLmcidEb16wKcqhQ3IZtDV4HagRgv8FwY3/oI6y xoRA== X-Gm-Message-State: ACrzQf1zLtP1Dv6dXDzsWjVFO9zsLFuVeOufkmpS+CuitrkE8Y3UlyDS OKe3pDahxin2pcgWW+zc5TD1hcML4UX+XS5+/Je7f1/P+2lBzE9NEHL/dw2LhCpuobIa4XYhbU5 q4ItjSr/+vlAbJT3kv3F7AKiOVF1qPOntyNwCpEyxyahnAp6U5Na7PXymnQH+ X-Received: by 2002:adf:d84a:0:b0:22e:3f73:372c with SMTP id k10-20020adfd84a000000b0022e3f73372cmr11998667wrl.500.1665423147840; Mon, 10 Oct 2022 10:32:27 -0700 (PDT) X-Google-Smtp-Source: AMsMyM47nBQq2oVgheuXJCFVUVZxxuJ20wPJS3SNlP3WxJrcu033onzxavjApNC8lRqJj9KaeYlH2w== X-Received: by 2002:adf:d84a:0:b0:22e:3f73:372c with SMTP id k10-20020adfd84a000000b0022e3f73372cmr11998648wrl.500.1665423147542; Mon, 10 Oct 2022 10:32:27 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:23 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 50/55] x86: pci: acpi: reorder Device's _ADR and _SUN fields Message-ID: <20221010172813.204597-51-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427577265100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov no functional change, align order of fields in empty slot descriptor with a populated slot ordering. Expected diff: - Name (_SUN, 0x0X) // _SUN: Slot User Number Name (_ADR, 0xY) // _ADR: Address ... + Name (_SUN, 0xX) // _SUN: Slot User Number that will eliminate contextual changes (causing test failures) when follow up patches merge code generating populated and empty slots descriptors. Put mandatory _ADR as the 1st field, then ASUN as it can be present for both pupulated and empty slots and only then _SUN which is present only when slot is hotpluggable. Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-13-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-build.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index eb92b05197..6342467af4 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -442,8 +442,8 @@ static void build_append_pci_bus_devices(Aml *parent_sc= ope, PCIBus *bus, break; } dev =3D aml_device("S%.02X", devfn); - aml_append(dev, aml_name_decl("ASUN", aml_int(slot))); aml_append(dev, aml_name_decl("_ADR", aml_int(adr))); + aml_append(dev, aml_name_decl("ASUN", aml_int(slot))); aml_append(dev, aml_name_decl("_SUN", aml_int(slot))); method =3D aml_method("_EJ0", 1, AML_NOTSERIALIZED); aml_append(method, --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665427370; cv=none; d=zohomail.com; s=zohoarc; b=BFf4zmZyLlxd9CmJL951aSW9eweUG4ZbdkFHspxqP8pRY35Uh7Tq4/j+BvgSa4J33KCSU9qBGNap0DXSqmV1xRQs6sXkm+ETey3EK7F4Bx820wtFTT4yAVhEBp30VxFtiAmhtUkSyaKcmmYCG3UuS7UMLiGQQ1P/7T8JixLykjU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665427370; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NtyP7ytxL9h0BfmDPBVaAKYQBVzFxNdIxa/Yf31ijto=; b=L07YKB/lyEj1aXJZttA72U50BjTAmaJ8w/PL4SO1SB/5QODdMeFPDyLxQswGOsfM8DXyMD9/AqSZSbzdBDMHNAbPdWTxp3tSa31+Q0n1jsLQGtRk5fRzJ7XhvK+YBh8hvyJemu4+Qvy6nM/qkyLlrvF+Qv5DKXfDMA8ne/v3CHk= 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 1665427370598547.0424177175754; Mon, 10 Oct 2022 11:42:50 -0700 (PDT) Received: from localhost ([::1]:46394 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxjj-0007SV-OA for importer@patchew.org; Mon, 10 Oct 2022 14:42:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43994) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdr-0005E3-3O for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:29283) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdn-0007f5-2Q for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:38 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-441-lJrPybFZPOChfGLc39XuiQ-1; Mon, 10 Oct 2022 13:32:33 -0400 Received: by mail-wm1-f72.google.com with SMTP id l15-20020a05600c4f0f00b003b4bec80edbso7285324wmq.9 for ; Mon, 10 Oct 2022 10:32:32 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id l22-20020a05600c089600b003c43dc42b4dsm7817916wmp.16.2022.10.10.10.32.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423154; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=NtyP7ytxL9h0BfmDPBVaAKYQBVzFxNdIxa/Yf31ijto=; b=BEDzutBw86WpDJHjOvC4MM7VTH8bIytvWTTY1wdWomthwSSLXr+IuoOiRA2bXXCO7p++cP mn9/6wne6gOB11wAfmBtKGW/aDkv+j4gWenXSUrmFwwdUE+99E7YEjJUhvQjG6HiXk9UuS kqyXm5ni2+/6oMw6AUhAOGkxm7UlsNY= X-MC-Unique: lJrPybFZPOChfGLc39XuiQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NtyP7ytxL9h0BfmDPBVaAKYQBVzFxNdIxa/Yf31ijto=; b=BG2Wpg+CeXjkQ/KMaVoFQ6sCuUNuNScHB418RZVAepoSq12NMgORREBvYEg7XNNGeA o0XKdFGmhLZ86k0UAnN7VFRd9xv4eFwo8uGxKiyttLsjIWSYHVSFhB1MQ53+1Of+uQNj xn46JsxY4Or+zLlofyZDu9OA82h9SZQ6x64CshnOHVG+pn3d6VEmK6KYmUr3+cEU3DS6 CM1DsxPPi6tQlofB/oujLWhH6mv7WhG5KVYRjXKEtI6jzzczVMr/17A/dFOfnC7qhSxD hEsav58OCQ/ZPVQRWLYb9+6pdIymKkGcCHQMW//BGWKdG2OQxHxhutCuttPdhxoCg+Dh 7jkg== X-Gm-Message-State: ACrzQf0aNPCeBxHgLlc+osRSppWamf+GWHIflgYuqCO4DaV4Ljxme2an tE757mdn5UxtPfsNgpsFU7MZqdT1TiL4PmJWhF1WBLQsjl79v8MqLmOW2UaJUH8dApmnrbHb0SJ LAQWWDDacp3KU5xNSSBgv+fjj0vP5E8gbD+/AkSQ+LQi4BhtvrFQZAW1DqcSG X-Received: by 2002:adf:e6cc:0:b0:22c:e0b9:ef60 with SMTP id y12-20020adfe6cc000000b0022ce0b9ef60mr12780131wrm.404.1665423151523; Mon, 10 Oct 2022 10:32:31 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5OIJ8a3itRHdLFsUEokGswqd9Cpp7kCXbTDFJnOmb6XQ3uTqU2mMmRfq/P494q5Pdyh80UHg== X-Received: by 2002:adf:e6cc:0:b0:22c:e0b9:ef60 with SMTP id y12-20020adfe6cc000000b0022ce0b9ef60mr12780100wrm.404.1665423151055; Mon, 10 Oct 2022 10:32:31 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:27 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 51/55] tests: acpi: update expected blobs Message-ID: <20221010172813.204597-52-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, LOTS_OF_MONEY=0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427372309100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Expected change: - Name (_SUN, 0x0X) // _SUN: Slot User Number Name (_ADR, 0xY) // _ADR: Address ... + Name (_SUN, 0xX) // _SUN: Slot User Number Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-14-imammedo@redhat.com> --- tests/qtest/bios-tables-test-allowed-diff.h | 14 -------------- tests/data/acpi/pc/DSDT | Bin 6422 -> 6422 bytes tests/data/acpi/pc/DSDT.acpierst | Bin 6382 -> 6382 bytes tests/data/acpi/pc/DSDT.acpihmat | Bin 7747 -> 7747 bytes tests/data/acpi/pc/DSDT.bridge | Bin 9496 -> 9496 bytes tests/data/acpi/pc/DSDT.cphp | Bin 6886 -> 6886 bytes tests/data/acpi/pc/DSDT.dimmpxm | Bin 8076 -> 8076 bytes tests/data/acpi/pc/DSDT.hpbridge | Bin 6382 -> 6382 bytes tests/data/acpi/pc/DSDT.ipmikcs | Bin 6494 -> 6494 bytes tests/data/acpi/pc/DSDT.memhp | Bin 7781 -> 7781 bytes tests/data/acpi/pc/DSDT.nohpet | Bin 6280 -> 6280 bytes tests/data/acpi/pc/DSDT.numamem | Bin 6428 -> 6428 bytes tests/data/acpi/pc/DSDT.roothp | Bin 6656 -> 6656 bytes tests/data/acpi/q35/DSDT.bridge | Bin 11449 -> 11449 bytes tests/data/acpi/q35/DSDT.multi-bridge | Bin 8640 -> 8640 bytes 15 files changed, 14 deletions(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index 1983fa596b..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,15 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/pc/DSDT", -"tests/data/acpi/pc/DSDT.acpierst", -"tests/data/acpi/pc/DSDT.acpihmat", -"tests/data/acpi/pc/DSDT.bridge", -"tests/data/acpi/pc/DSDT.cphp", -"tests/data/acpi/pc/DSDT.dimmpxm", -"tests/data/acpi/pc/DSDT.hpbridge", -"tests/data/acpi/pc/DSDT.ipmikcs", -"tests/data/acpi/pc/DSDT.memhp", -"tests/data/acpi/pc/DSDT.nohpet", -"tests/data/acpi/pc/DSDT.numamem", -"tests/data/acpi/pc/DSDT.roothp", -"tests/data/acpi/q35/DSDT.bridge", -"tests/data/acpi/q35/DSDT.multi-bridge", diff --git a/tests/data/acpi/pc/DSDT b/tests/data/acpi/pc/DSDT index 8282d449ceaefd914b419f507a13f3fb7b318aaf..fd79a602a2aaac0f7d91d2ee2b1= af8f2e6cdd4b3 100644 GIT binary patch delta 758 zcmYk(y-LGi6vpvN(>6`>{pO=3D-zHY!lJG6Ch2&kij;v8>4a26a~osMjK@aXy9keFc02_4YHa_A2 zaX?=3DZhloQeJpJYfaYQ!~O+=3DGEB#sfsrU)F-qtah5MvUoKVuF~^ex%<_5mUOCI7OV&x5NxFqdL~}8RCp?CFY1Zea8AX s6^I3&QFLdX%9$m+WG}Z)FNyw56})1vy8W5#Yk19GZ~XB6IQ`lC1Mb_IlmGw# delta 758 zcmYMxJ5Iw;5QX7EaT3R|uOHWsIDTz_0#YQQps)m#6d-D|0VHZ93R)`ANU2!@h#rX=3D zi5{^TlIuC5{Xd^#d^d~D;x$)UdwF&44D7Bwxp0XFWOpX;gIei>&Ngg;E#f=3DX1||*> zhs0lqBg7GL>C2a6#4+&=3DqK#-1e;`f}C&Ydra|h8OzDArPPKn=3Dwwm-u~bma_pd&aU@ zuH_C7?umOl=3Dcmx>_X@7WmD#Vb_u;;{Z+wma6u<-Vpm*#;cqkqkKf*qON8(ZM*lV~J z*Zi#ipD6~%#E)A3UV@kq|01S{De-T6ouh{ocR5o_-&_vY=3D{I2TZ@n-NFdfOfd=3DT}HWG;jXn+P-!Init3CMF# ze7FCnGt$hQHmA+;F^GnK|K!bP#?0!UUmhHThM+&kIpUm-5*LUIx(NFma}&|DhVc}W ze&TI?eKlBc3vRJnqtkb2ocA`|X1DeJM)nTeVRzVXr}JI7%kFC5%HD%}>>j)9eYnr=3D zYv0K}fCucs=3DxQhX5FXN3JUw587|}YJVvHEmo5Tb$p-+h^VoF^)%@v}eSBXo+C4ETD z5HpI^^iMfr&iBamJ@4e61-xJ{MyEeD{Zk1q*-O3O%f5nF>=3DnDbQw^`#Ywh>4Z{Q7k e!!G+4-m>$nU%mfk#^pcHH=3D{rR delta 772 zcmXxhyG;W@6ougnT6^E`@xFImfD&k19!xo+4(!R%-)5&;;!D`VDG^_anJazobSVZabNom`v4w@2gb1v;h}h_ zeUE(vkHn+d)gJp89ut41@_Y$mLcGZ&ridx=3D8)Al-5q~1)h&l0)%UmHU;#b5K;)?hK zu|O<{QzidYB9?NGQs46q_pIQRcr`o!Dfy=3DwUW?ayf55(hH{y+Pyi*Hr#ar$7*mv+w fyfcn{5AVf$?MLhf_#i&au8!ER;cI&TEv(CbKs2L3 diff --git a/tests/data/acpi/pc/DSDT.acpihmat b/tests/data/acpi/pc/DSDT.acp= ihmat index 33169838bed50710495d45e0d9486ac59b4e504c..973320cb25120818a45ddb3d8e3= b3211f0c00adc 100644 GIT binary patch delta 760 zcmYMxy-LGS7{>8PlQvC1@^z9lP1;<79|frpkQ8we2gSL&SK$o^!n+9$u1*Cnp;yq+ zMQ|3p0T<1ApPqLL{C{}}=3DVV)N>&<1Ht(%LRp=3DEU}x4FH$_B!rbKj>AR7AHq*7jDCC zcAI@^+<`mnj`oG@yYMc1w{^9UeGlHFXVnDwsEg>*x5PeTpX$WC=3D^=3DXbC~<%|pihZI z#33D~W;+S@6v%e=3DF(dTpc`kYHSX8;e_gVt%2+53G657|S#Ka+g~kJux2 zxu+N&v&Y&S*(xKsurX|KvKj>92Dp5UWGRx2xk)dh&a?i1c_`=3DYuHMz#t0-;m?r)rd-8PrEF42JORtJ7lXT|ApYil>)hPcuD zTHJ)2;->Z$_7>a{w>noV?1%6n@r!DF{i8ObP5gs6LL3p-v3%(uI>b+iW5hA>7ov;k z5-$^(PY@@>kBC#mDe*pO`gigWJ-Nfvcdl`#5BJ6W&Uu>}{XT#P;(^|uV;{mp@vwKi zQv{F1Bkc|L3a-Re@7TxiSUlFg!9IZ};z{RfgMA85iQhAMz8T_-_zy8d%!sdZ`7%e$ uiC+;5#De%2u|zD1FAAB@5$D9uhzrC8@pmErQ-xT`9o7FGCm#>x=3Dg|R&$ew!u diff --git a/tests/data/acpi/pc/DSDT.bridge b/tests/data/acpi/pc/DSDT.bridge index 407066e1ac46922751969b823000e4fdfa542662..9583da4e4f558cb0bf6912733fb= e8db7c1ad255f 100644 GIT binary patch delta 1438 zcmeIyOG?8~6vpu+O`9}*B~6>8P1;zT3T;t*fQX@v3OcX|&bkFRAkGExaVEu?I}o}8 zHy}f*q5I2_2TiE3$CwlvXsI)|PUJ(qU6tLZkLuA}R8)lQa}2j=3DOG zu>dSkFHC%l8$d%m-pIawi(k(~H$^wo{t)TQ@gj0jZtMtlP1J)>Z<+u&B>4MP#I`qO=3D2iEDQE5}`+O9!#U2CzZ5j7?yZ zz8F2AN5eI_ZXf82efinCN4&5AJrF%eJJ~(C?-qJX^cFpNfA`%+ZquVDUpWMZ^vxIn yBii@n$qukXH;i3imp&O|U_9>!huZSmt?pv_dtcqf>~HV??;`bsz4>VUUHt`{a3nzh delta 1438 zcmeIwOG?8~6vpwBG;Pz{SJJde+N6!esn8b12Z$KzsGtLj;H+D41L9l|A7@gWxdWjq za0BARks!{+J=3Di4Y!zDQBq?F(Pp5$`Kd@`RrpV#bodUitQEIvA2{wDwV-rfw4jp=3DZA zW+qWfV}(e|4rt2*+remI0Ne+Z3iyo6kmTw3NG2h$2!5ntPKxiYX!`~j>0 zE5sWOIavi(i7$aQV2$_{SO?aLBS*$9phbKEw1GD93$Ouf5dZXK+yOeo2a#YC*d)FM zwty|-FQ5x_iAQU)ZV%|mzPxnZV=3DT-^_oe$uXR9y!ZlkxQxB1Ea+jj@KL;UE=3DZv w{0$6&A@RN^C%eEd@eQyC>=3DAzgBVa^}fq$s4zQxtIsQ&+3z>% diff --git a/tests/data/acpi/pc/DSDT.cphp b/tests/data/acpi/pc/DSDT.cphp index 013de154913063ed1ce3f154444b9e11f4608eac..27d1fc90f5f51c48a44bace866a= 19a42d7170129 100644 GIT binary patch delta 758 zcmYk(J4yp#6o%nQCdp(n_sQHcw=3DKjX7Yo4wwGb3kY-~n%;1=3D9~Ag2`EfK9;FSlI;x z!3|iL%=3Dz*ktAY37E6)7u*?PA6a^j{wzA`(VZbz@LZ!V0k-n1XObQi(2(ZL#6qcgX5 z5qpR|dXd;i?9;cz0pfrTJvG-6b$XIGL>$tmL<7;FsjucE#1TFE_3jK4(d0AC%^CA- zzEpQuaEsmAI^6}@Zg0bFcDvm#WbeQocBl2F{3jRgvb*fE_uwA8*ZP6%eYnr=3Dv&%k! z2kZgehyR~x3?9>MsD4z47}A@>2r;5xi7{eK=3DaHHxhzY$)Oc7K1kvKt|&{3@B8Dd7y uv3jN)G3PV#_RJGGvw#=3Du#n$N|QO{JuOZKwepUS?1SM1fs_usAbWA6{Dl9@*U delta 758 zcmYMxJ4ypl6vpu*nIx0RJnqb7UYXYxVv&c1;DA~P3Mw`>qdRa5Za|Pz3U0tA;A*Vw z0)pTMEKKg458MBbuQ>N^=3D9~HY%S)Q;n+vOFw$1UCP1GZ^)qyY7GMu%hW&>;xpQ%Ra z*hlOWzaS0}2gKiqL&PERp)Ye2(IkFC93hT~KM^fNi+C2ue2h3IehixK3>(pwGwkgd zi+r(?I~=3D$p?(CfJLZjQea97;b`z7`s+!Ob-ukcO^uEbU6*!yr_+}D19eE<){gU+!J z;h}iQ_tF11O~4c4+ejWNLX3#t5M#uc_!lujOo-28nWu;;@hf76m=3DXUVP7$ZXM~TdH x#GLp!k#8yx3pu0EXP)595?+dzJLiW~zNvy&;+5W?Vqe2+@p|j~?@soy_Xi(rnMVKs diff --git a/tests/data/acpi/pc/DSDT.dimmpxm b/tests/data/acpi/pc/DSDT.dimm= pxm index 289ec07c07734f6fb10e1f1f3de7b3de2a4642fd..efa46bc7860f0b026f23175ccf3= ef1e1eba59c15 100644 GIT binary patch delta 790 zcmYk(J5Iwu6op}nIDR{^@~aW8+gOs mD8G??3vbz5cG-9Ej=3DiIk?*A{%!E-w9^g}HW7hf-3eDDj{aG22m delta 790 zcmYMxJ5Iwu6oug{;@IO?V#n{Xoj^+!1O&Rs5LzTaw0Hq5fh|Nr;x2$CfJDopSOR!_ zk7)l-XQY|gZ};2J*EH%L9&f#g>bu>2Kr|tKPrET%h!*h=3D;uLX8++|&1<~E{Dsvpj? z`Ka8~rT6ouh{ocR5o_-&_vY=3D{I2TZ@n-NFdfOfd=3DT}HWG;jXn+P-!Init3CMF# ze7FCnGt$hQHmA+;F^GnK|K!bP#?0!UUmhHThM+&kIpUm-5*LUIx(NFma}&|DhVc}W ze&TI?eKlBc3vRJnqtkb2ocA`|X1DeJM)nTeVRzVXr}JI7%kFC5%HD%}>>j)9eYnr=3D zYv0K}fCucs=3DxQhX5FXN3JUw587|}YJVvHEmo5Tb$p-+h^VoF^)%@v}eSBXo+C4ETD z5HpI^^iMfr&iBamJ@4e61-xJ{MyEeD{Zk1q*-O3O%f5nF>=3DnDbQw^`#Ywh>4Z{Q7k e!!G+4-m>$nU%mfk#^pcHH=3D{rR delta 772 zcmXxhyG;W@6ougnT6^E`@xFImfD&k19!xo+4(!R%-)5&;;!D`VDG^_anJazobSVZabNom`v4w@2gb1v;h}h_ zeUE(vkHn+d)gJp89ut41@_Y$mLcGZ&ridx=3D8)Al-5q~1)h&l0)%UmHU;#b5K;)?hK zu|O<{QzidYB9?NGQs46q_pIQRcr`o!Dfy=3DwUW?ayf55(hH{y+Pyi*Hr#ar$7*mv+w fyfcn{5AVf$?MLhf_#i&au8!ER;cI&TEv(CbKs2L3 diff --git a/tests/data/acpi/pc/DSDT.ipmikcs b/tests/data/acpi/pc/DSDT.ipmi= kcs index 59a6d5860887b511b7ce5f17d7044a08c14f0f60..67b60cc44a6ebff029524abc27e= f48f90868f948 100644 GIT binary patch delta 791 zcmYk(IZnes6vlCjcz5D`ca|$eW^E`8sgOV{qMfXw^i zNBjTj8);^??Y8|~`(fX$?#G%o((LZx@x~p|i{BN9I-+j(JJabdI%(Ro-i8}+gWcFU z-3I!8Z^BJ>Q|%9BZ^12gOZm}qINyfb>^8gX9k|2pC_k3H3wPOFcG-JykKOz8(?sTD z@R+WmZvRjd#0kAi^bvjfmKY!gbRG}$5HX}Ti4kH%UlL=3D)n3l;fPY@G&O@?nu5mUZK zs;=3D3|H8Xg|p6#5T)8U(Pc+Q@y{e|occ)?yMzm#_>;U#;?F8c~zu~*7hvajJad(AHU m2HvnYw9fy3(-b_Vr+j#*8RCpSB+e1%^doVBxY%45(ZMh8bDdxS delta 791 zcmYMxIZnes6vpu+*12P?5FUl_*D7PTK;dtZE;&W_72<;ca$Gv@4{ViS3C9|+!Ocy{4~Yf z2m8cVaj!3GhBzaBM+^`H;%~$dF(f`uWF8?##BYc(Vodynm>?#^>s00`VoLm)$}?q% znH(ci$Lw*;9G;8kqw{kn&s4w*@j~q{urJ}Ic&Ypn_f)|v@k%@PHM|zDm2a?b;Ei~r q9s3sEinqKi{-0?Mo)bS6a#0J!1@Q;s5^+iVgSbLm(eAp84}Jk;O`Tu> diff --git a/tests/data/acpi/pc/DSDT.memhp b/tests/data/acpi/pc/DSDT.memhp index 47d63dec8f997417d7512a694a4825fee874d995..084957e53fb51e313dc824e5a87= 33f02ff77542c 100644 GIT binary patch delta 759 zcmYMxO-jR16o%nS(>6`>pPQul$El;*fmZ0ifH)LXoEn@7f*WuPjywxda4NU~H{b%g z4^7V3dq#ox;TxQr-FCPAc#P7ny|}SQqw&aWZ||v#Kek3jtmsI6?o*`!REHOvS>04rfSdd@nd5Kuk nL!tjug;?<&)o|yf+*!kG_PTdEFZF+F;0=3D58@5i67%5G@uR5)vC=3D3sl^NfJBSL2G{@# z$Uea1d)oigDelaEx8Hp{Cb_=3D7yK*LWuP<&~q6yi(34Ewds?EB$jazU_+!|bMw&GLx zl(PjRLX_r?9ed7WG1K7a?}f!S}d580drw-nUcmIC;`C9)T`~k~;lsNzZ diff --git a/tests/data/acpi/pc/DSDT.nohpet b/tests/data/acpi/pc/DSDT.nohpet index 47e4bf62ebe742304783e76984045d7322c3a421..46827e285421d4fb38160f6c15d= c9134d7da5446 100644 GIT binary patch delta 770 zcmYMxO-{m46o%m%3Y7l;(LxJ!3osCvnAilJ=3D|JPeNp%Nq!5N8(i8(_PH{d`LSL4VH zn79E4(tAGcnZ8fIruTNc*e-TYUf9%|E7veOhE-qRT-qIa_3A@35l#A$*hTEpiLamR zA@=3DB5Vjr7ylyPG19#Y+*6A)Z4|^Bx zvb$=3D(l)VS{*gfT|xqiP7_t|}R*$41|Jy5=3DueFzWPLw4Cm@Q6Ly`zn!n436nG))$o^ zCiE^bMNH{W;t+927m1!{h#9>}%n@_?l{i8i(P^sZW5hANr201%hy@>`P{-WJF-v&K vUbapTL;ag3@Co}w?ayRCg-_Y1%FpGVX7CyNj9vB>ykf8RzWDsezK;F@Q0JT} delta 770 zcmXxhOG?8~6vpu*P1`i@ciKF+&}|L$ZYy6e<^2xa5qAd1-i5p3uJR4`9^4c62FKoq`{Mq=3D*CFNsI3T_aWaZY?1$$WvhAbyGDH)V*K93xZ5+~Sxy vJQvS<=3DZ9E+Qvol;3$;JPzJ!0! diff --git a/tests/data/acpi/pc/DSDT.numamem b/tests/data/acpi/pc/DSDT.numa= mem index 1c4e0c80216b53463fbec8fc548007f0326c1829..ebdccc880def932fcba0cef8a7c= f47ff7cc67f53 100644 GIT binary patch delta 791 zcmYk(J5Iwu6op}nIF8@(D}KaDyaZ5yK!*&WLlhutZ-pfw-8O81Du|AXEP*Ak0X9Gb zo_jKv_Wyh=3D&CF)GS#Fy!>e}_4Zx{o^Ztov%-2okj?LL}_COt|VA`a;@YzxdSM9c2_ zzgYAduj=3DFT&W4ZRBlc16v>luKy$!e7ZM8p}T*9`;1-obNHNnPP_d7GcCXide8OkHHgidSHuUuW5%QY delta 791 zcmYMxJ5Iwu6oug{;`sfx{f#{{hkkqO63vKLem_MGQ6qjpoFmSOKm9&ea~)A9a~S`p z^Gmd;kIn{DxdAuCjnR1@Xw%+=3Do8qS0A7gL9Epbcv$)Wt;hTG!ygBT))#MiNW86if*Plz#MO#F?QAST4;iOf^P zl=3Du;Gfw&<4O5~X`#7vHnsbgN?m^nNb&qwF?RGz7T7vhE5Ut(XvOYu_q7WY)aEAeV_ r>}z-}UMs)CzJWL5&E(j(@K(I#kL>@Mmf$7vTPC;HA$IiY zk1fO&eM)R2w&~E*cXkjv^dzy1*rgANJ;WXzC_Oh3O?p&igjeb#_RaO~09Kz$cbOi~ z*CyP8TkKZlbmO=3D8`vH8wKB)Ig+1qfN-DWTJ^BuUu?$mxFdl&AqyX>;};2yhIdm(!T zSL~|tppd-}_vvb+ztj+MNLz^`#1Z{U3=3Dji43-mlh4Cz(k7;#Kr5+lTj=3DAoWX5GV8; z>i-lY#(a*rKIcl#nZOhFq;h%~>;II(Q}(ppU&ua#XY3ife5V|qv*)#6%6^p)q$ZJRVr(}x=3DnD%2Vf!9aE3Ktyp|x8Me(js+)Y*i8s7#0?1I zSO+e_-kb9c^Z(@wxyg39UA}!sesy<$P41>z-||mX#pbeMFGHdR@u@o3ruhz{L;Rwu zIyMoT#Gi;Q#1`>kEO)jM+r&?Z9mEdt2VxhoOMIYZ?jpLxkGjh2D|v|C{s873J+9QM zI9_aA>pt8U_l@&SuT}2@cpx6w{R;aK9*T#xm-74w9*IZRPq0^TC9Z16K8DBQvGo#r z4cFq@cv52DgZGH92J)r)h<)N6;s9|#{EL_%Cd6ln%u~da_!V)8I3)f;%n&o;MJn?V z;)wV;mH(6@=3D5mhQo^y?Jj^ShRv2lJF%6}^0g?M527uZkW6Y)vy_)b&!RD5dv68jl^ UCO)ej`#F3rKHvM%`(LJ=3Df7IirEdT%j diff --git a/tests/data/acpi/q35/DSDT.bridge b/tests/data/acpi/q35/DSDT.bri= dge index f8a0bc150f5a249bd5d09be6949c97160de1ef82..37ef245f673bcbd5385cb332cc0= ccf06d5355485 100644 GIT binary patch delta 846 zcmYk(y-vbV7{>9o6k5txODW|W3}Uc}2}q*oWQ~K9gT{f0cmpKPCfhRS8uPQV4Ysw8g6=3Dbe`C1o>`U|Uf__F$lu6kzOjc8=3D zxziJx?b$KZV)ZP=3Do|SobzFfQT96ZOKQ+_T~2p+LV z$}eT#gg4on?6QyHF?&qu^#3!pz%4qT>WgY4w&_J;2eCun61#|9Iy%(z9%7H4CH4{f V^d)hCIG|CY=3DR?Hd`(tu#{Q@-vsJZ|E delta 846 zcmYMxOG?8~6vpw>Jeo9pB~8=3Dx-AJv}fY4gd>d1%#M-CJR9ThhqI2PQ1!!vUgf}@Vy zfZztiwV2#{KAeQ`|M5ZY&2F>XyuT$uc6Wb6?l!x+&7Z|PFQ+U1O`NEZl9C!xNoy(B z6JG3DaiN|8HZ*%i;e+LR>nbxm;8au}A!h*hlOW{~!(!2gFB*G9MxiiC+*$ Yh$G@}#4+NSI7wwbL7dRXQ+jRu0kUnVx&QzG diff --git a/tests/data/acpi/q35/DSDT.multi-bridge b/tests/data/acpi/q35/DS= DT.multi-bridge index df91b798f79d4564b049e8a7dbeaa5bb99abe635..e9b67e9ebe1e3b4de513b68129f= 719018ebeeb2f 100644 GIT binary patch delta 41 lcmX@$e873bECsH3N0%T54#(h7zsXjL!IQr$SfUEG0RSXw4F>=3DK delta 41 lcmX@$e873bECnvd;7~sXj(A6xpvhK>!IQr$SfUEG0RSX+4F>=3DK --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665428033; cv=none; d=zohomail.com; s=zohoarc; b=E5WkBH31qfg6AanRzNa72vjnSWXpjeIEivs9qjWu7ylNm+emz2wW/Kt788E+trUyZThHSqM5oRqiiQqHpITSV3Ihz+sRM3p6z9O9oJDRCT/05/O85hTfqjew4UDybipBbH5aHPKPlgmGTp95pe/PYQmq5/IJqcFbtilHRWtnzY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665428033; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BOj9XvWCERiBlfj57YO9Kmbr44NjG5pXJPMDv7Q0wso=; b=kSB8zKKz0k2gjGANds+Lg+YOEnahbs3CclMVvr55t0cVnjEy/NoU7ifafOO1hgzEzbXchr7P1YSa+Ei/LOY/AbvhbbuvwfzM/ae+Nzaaab0REPq+WJibEy/EjivGUkJrcMilyxal9hBEPq+/oE+Or8ROG9GY5Kmc3cBW9JrfIlY= 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 1665428033780866.0224531586334; Mon, 10 Oct 2022 11:53:53 -0700 (PDT) Received: from localhost ([::1]:51192 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxuS-0006d6-Db for importer@patchew.org; Mon, 10 Oct 2022 14:53:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49934) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwe9-0005Mc-8L for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:59 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:46947) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwe1-0007hO-H5 for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:57 -0400 Received: from mail-lj1-f198.google.com (mail-lj1-f198.google.com [209.85.208.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-78-L2t2rwSVMaWeFdWhshC6zg-1; Mon, 10 Oct 2022 13:32:47 -0400 Received: by mail-lj1-f198.google.com with SMTP id q22-20020a2eb4b6000000b0026befa4f871so4705498ljm.18 for ; Mon, 10 Oct 2022 10:32:46 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id k13-20020adff28d000000b0022ac672654dsm9134082wro.58.2022.10.10.10.32.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423168; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=BOj9XvWCERiBlfj57YO9Kmbr44NjG5pXJPMDv7Q0wso=; b=hMNUYjul1mU4DNEjwi7abLaUiXV1Q/9fz9S34b+0VqL5Cc7YUVJ7szE0GarDr4p9JITXr9 x/PWv7Z+zpty/gJVAAOm0CJ/G3arCOqTfaSlpAsxlFXW1Wcmly1s3GUH54C3TAY73sBya+ HHYfXOd3aA58Sz0PsYT/fJzLSExTvQo= X-MC-Unique: L2t2rwSVMaWeFdWhshC6zg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=BOj9XvWCERiBlfj57YO9Kmbr44NjG5pXJPMDv7Q0wso=; b=QtFN/Y2E3E0Pu9fPe1iXp9o3vamb4kUzMCykq1LE4zzZSTXXYWNBUTO02u8FSbfhTo QuwYDqcOcn6O3Di0vQgzj5e2McCsT7KSZpMKcrWyD4hytoUFrBhWTfiwnUMbuUEnrrH3 3lseJSgrLPAlqI1AHLyE7xnTLpnSMUjZUSwfLoPdNxkCTK0gHJW4816G4FaPcQBj2AyX MY7sZlcRmM8mV7c8M3l6jVNKJFdNZ0WjtM1xW50FloS+SJR1Eg1DYhcUGR9NPW25Yfbx CeQ7dZMivtwZRmSZOQcwKhK/Vm2X1mRcq5IQLqktz3WxgSMToLXYj+y0I1T4Uy01VU3j DoUQ== X-Gm-Message-State: ACrzQf0nNaPHbEAJGspPa4kFjCXgJbW/3SufA5QiSt3IJHLz2J1pkscH kR0triu4Ny10M6ERC71FVbp4smR3numbNo+wK9xAJM3c4/CgFSTQ7DGc+hmyJrQRo8JJlZ/SEgf wv8/RRcd3VbpJMt9gkOdzDl3In+MCicFscqV9ntyQI9zUCBF3UoKvG8vW/I03 X-Received: by 2002:a2e:92c8:0:b0:25d:6ddf:e71d with SMTP id k8-20020a2e92c8000000b0025d6ddfe71dmr7082453ljh.170.1665423165611; Mon, 10 Oct 2022 10:32:45 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4maYEaPmkVVzE0Hbc32Q1x3q6+WRTLZGirQ/WH0y6M/o2z5GNH9npOUF8gjDU3X3ONfauHRQ== X-Received: by 2002:a05:6000:168f:b0:22e:4c3:de09 with SMTP id y15-20020a056000168f00b0022e04c3de09mr12126091wrd.40.1665423154231; Mon, 10 Oct 2022 10:32:34 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:31 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 52/55] tests: acpi: whitelist pc/q35 DSDT before moving _ADR field Message-ID: <20221010172813.204597-53-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.133.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665428034742100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-15-imammedo@redhat.com> --- tests/qtest/bios-tables-test-allowed-diff.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index dfb8523c8b..1983fa596b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,15 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/pc/DSDT", +"tests/data/acpi/pc/DSDT.acpierst", +"tests/data/acpi/pc/DSDT.acpihmat", +"tests/data/acpi/pc/DSDT.bridge", +"tests/data/acpi/pc/DSDT.cphp", +"tests/data/acpi/pc/DSDT.dimmpxm", +"tests/data/acpi/pc/DSDT.hpbridge", +"tests/data/acpi/pc/DSDT.ipmikcs", +"tests/data/acpi/pc/DSDT.memhp", +"tests/data/acpi/pc/DSDT.nohpet", +"tests/data/acpi/pc/DSDT.numamem", +"tests/data/acpi/pc/DSDT.roothp", +"tests/data/acpi/q35/DSDT.bridge", +"tests/data/acpi/q35/DSDT.multi-bridge", --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665428294; cv=none; d=zohomail.com; s=zohoarc; b=Y4Q5x77RavSPXgHzqRwYabvR/+e5vbtZdoPkISPTYPK1K+TgfkNwRocr6/8PDi5LDO+xsmXQMjLX16S6Ygrt0TWsAy7edM8ckmAkYSV5LG7nxA9fUfYOGri/SnSWq9oJEYXWZglTKyfU6V727xNBU/1gtFAB8UDi+vGVvBT/neA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665428294; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PdDcqo/vteTiMjRxJUlBBydYcyovYfp9We8szNh6y9w=; b=Ef5EEqdYI2yVRKRCp41Fu2kEF1vPy4OvI0+nXGSjEgRBQpn+cZPPxfPh6n08nfg+/9DPKvoCQz3sahdZt/wSKWB7AV73phKbok1nk5+8eVdWdLy0ULkViHTIamtTRF9Rds1pDvzME1N7kzJW7D0s1dfmlfSWMwdlMTld0hexip4= 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 1665428294574279.5925679015601; Mon, 10 Oct 2022 11:58:14 -0700 (PDT) Received: from localhost ([::1]:50698 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxye-00058J-9z for importer@patchew.org; Mon, 10 Oct 2022 14:58:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44444) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdz-0005Jt-0i for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:47 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:58760) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdu-0007g6-8D for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:46 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-449-iknCpxTJMvSbn14tGHYykQ-1; Mon, 10 Oct 2022 13:32:40 -0400 Received: by mail-wm1-f72.google.com with SMTP id r132-20020a1c448a000000b003c3a87d8abdso4388441wma.2 for ; Mon, 10 Oct 2022 10:32:40 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id c18-20020adfed92000000b0022e2c38f8basm9516064wro.14.2022.10.10.10.32.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423161; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=PdDcqo/vteTiMjRxJUlBBydYcyovYfp9We8szNh6y9w=; b=X8nuKlP5y0RbCqqBB9rFcuUUBf/nY7O4srlirKQSeXTff7vH9yEToDOWmt2L/dXZfXNcVl fpTXpEe3QXgJ2W8deihgpwkZYELIA7dSKzH0TYEa7j7BA3EocGgLXT2ykvyl1iCFhRkaI/ o3qwi3IrRhn6zx8XyFlCNMd4j1ffyMs= X-MC-Unique: iknCpxTJMvSbn14tGHYykQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=PdDcqo/vteTiMjRxJUlBBydYcyovYfp9We8szNh6y9w=; b=IQ5Q+8oCCbwpbSA80tLqC7W0vsGXCV0tZVmahgZDKeIKX3X6KrM03d+QiBT/0igZG8 YMJ9L/bEeLDzBMhvBmiRUJSYHLnW4AsHQmx2EBT+b2WLQQcPQLjj7R/QUunFgTCHijbr Ug+fhuTm6DXm8WV/Imsfl1J/A1/oJ53NA/JOxO2GqR4Rh28XW3KsZAppus8KA+bKJ2v7 z2aNCaJcyXojHT9bjPCSjfCKOv72oEw2pb/PnTOh0ymo1K+arieMGVE+DuNuhxt7Pztq 3ZkhEZs6Ieok4CZnUhKIh5r74aqsrkPhv6HG2p3rdzx5Z6I7eBu+CNJawaDDw3CQLYl9 LEMw== X-Gm-Message-State: ACrzQf35ZqvlMYNB6gY9O4qiAj+jZk9clJ2FQIDUm3dWblQNUWahn0F3 5O0wNMa+jx0Uq2nCWBcKkebVFVcVQXVZTFSx8ZrjuMNd6hPXEPbhX+/AM6dOfEBRBLUCyLGKV3y 2geKSm4Mjcodl+PxDEVzEAzyqEr5+unkQmO782jQH9/Y9pU4cW//w+7IB4Y7p X-Received: by 2002:a05:600c:1906:b0:3b4:c979:e686 with SMTP id j6-20020a05600c190600b003b4c979e686mr13867628wmq.107.1665423159228; Mon, 10 Oct 2022 10:32:39 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5rxTJDAWzhsqpiq6rNAeeO+5QGde/0/xBmACJ+AOlqazmEJXXJ8/TcZ/DRdNpj81zZUn6iWA== X-Received: by 2002:a05:600c:1906:b0:3b4:c979:e686 with SMTP id j6-20020a05600c190600b003b4c979e686mr13867597wmq.107.1665423158867; Mon, 10 Oct 2022 10:32:38 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:34 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 53/55] x86: pci: acpi: reorder Device's _DSM method Message-ID: <20221010172813.204597-54-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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, T_FILL_THIS_FORM_SHORT=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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665428296261100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov align _DSM method in empty slot descriptor with a populated slot position. Expected change: + Device (SE8) + { + Name (_ADR, 0x001D0000) // _ADR: Address + Name (ASUN, 0x1D) Method (_DSM, 4, Serialized) // _DSM: Device-Specific M= ethod { Local0 =3D Package (0x02) { BSEL, ASUN } Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0)) } - } - Device (SE8) - { - Name (_ADR, 0x001D0000) // _ADR: Address - Name (ASUN, 0x1D) Name (_SUN, 0x1D) // _SUN: Slot User Number Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device { PCEJ (BSEL, _SUN) } + } i.e. put _DSM right after ASUN, with _SUN/_EJ0 following it. that will eliminate contextual changes (causing test failures) when follow up patches merge code generating populated and empty slots descriptors. Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-16-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-build.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 6342467af4..fc23cb08c3 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -444,15 +444,13 @@ static void build_append_pci_bus_devices(Aml *parent_= scope, PCIBus *bus, dev =3D aml_device("S%.02X", devfn); aml_append(dev, aml_name_decl("_ADR", aml_int(adr))); aml_append(dev, aml_name_decl("ASUN", aml_int(slot))); + aml_append(dev, aml_pci_device_dsm()); aml_append(dev, aml_name_decl("_SUN", aml_int(slot))); method =3D aml_method("_EJ0", 1, AML_NOTSERIALIZED); aml_append(method, aml_call2("PCEJ", aml_name("BSEL"), aml_name("_SUN")) ); aml_append(dev, method); - - aml_append(dev, aml_pci_device_dsm()); - aml_append(parent_scope, dev); =20 build_append_pcihp_notify_entry(notify_method, slot); --=20 MST From nobody Thu Dec 18 08:06:58 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=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1665428010; cv=none; d=zohomail.com; s=zohoarc; b=kXtveZA1dR+SaVdW8r5bjDcT6ZwLNHcGtzAG/LDHQ97MQ7z0sukamtDwZPbX1LZEEcROig/tJztw6IXWIuYtYqWoZKaFeALHyRPLRzo0b3H9+0U0OsPWU7em/k54VvQmZ6o1QrZU2+uOuzveo5ElW1JK5kqSOVXXUn4DB76w2FY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665428010; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IDBo91oRwmEPRkeCAunt7k0JY86OJfBlL6lG6/lMqdA=; b=AbG5ToxmL+HJfxCCNQZPOWWQkLFbOgUML7fhQo4v0howRLhq2vJnhVrDu0HI5RTmsfy2MtIFoOOymP3qcAFDPNzrpQyE8PEV8H0l/bbzyCS7NqkNi80cWZMxOruUI3Aw1IXMmOCznAE0V1PH59lVBaF1Cq8wcYQr+Kl6EjF6fFs= 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 1665428010016998.7068249025504; Mon, 10 Oct 2022 11:53:30 -0700 (PDT) Received: from localhost ([::1]:34028 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxu4-0006JX-Ri for importer@patchew.org; Mon, 10 Oct 2022 14:53:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44448) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwe5-0005Lv-AV for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:51182) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwdy-0007gi-Op for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:52 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-655-2E9kfM1qMAutGGHXOTS9UA-1; Mon, 10 Oct 2022 13:32:45 -0400 Received: by mail-wm1-f72.google.com with SMTP id n6-20020a7bc5c6000000b003c6bbe5d5cfso1409766wmk.4 for ; Mon, 10 Oct 2022 10:32:44 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id n25-20020a05600c3b9900b003c6237e867esm4627655wms.0.2022.10.10.10.32.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423166; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=IDBo91oRwmEPRkeCAunt7k0JY86OJfBlL6lG6/lMqdA=; b=HUuNTp3yHiWDhkQ3983sfeb9cYDblqmAaGw5yfIzyQ4sbPhlGWjshz3VbtSEWseLfzzI4X ezPi5E/fQ89EDh7h/I7pKRvDXrbejxyRBJL+QHQ/ufZbsl2ROzvDyCr1YYQrKhpDY6tjx3 Lcx/lZ6hmJvbRb4nPMsE/+olZXmCBLA= X-MC-Unique: 2E9kfM1qMAutGGHXOTS9UA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=IDBo91oRwmEPRkeCAunt7k0JY86OJfBlL6lG6/lMqdA=; b=ufQsZ3osvcQjC4uiDgzxKKZjgFliqIyViXljmz1GTae8m+jxJQDUIHI3vPWfZ65sLD G+83DuJPXLEIQJe5g9n82v/fzyLPHYucITW/FbXZ8dXeS0JOiUszLyzWuvaZh81QRNuD 0vkMbsdTmLvdFsNd31oR0fQazKta2BFZMCOoo0jye9KHXWpZUxcLxB6CWR2jTKWZgstN Weo0Ttm+bRLYECbojVjRGUdldC+34YZwgsp2NpJx84K9J5KKnRUpqVOMjuI8u8yw7mgm 6dM/D0PiHCx8SpHDacG279iDapDRTVXPG6noNoloYesmrqHjejJeTYX1GQEcvlN+66od nYtA== X-Gm-Message-State: ACrzQf1DJJ1hJFmHgU9lI4Mk2qA878sHwyesTk55bmbj/IVp14rQSx3k CilvZcH2krFsdkaVgWYkjcN4jiYH/E9mHmrEH67RFg9+mHN1rGJpOfH8VxidC5RMKK9xxMXQo/j TQlrA5EPlS/XAHkB8rSi1iX49hdmSG2qhq17oPwVUhyzxMEaJrq9zF/AE2R/C X-Received: by 2002:a05:6000:4084:b0:22e:5b99:4c4a with SMTP id da4-20020a056000408400b0022e5b994c4amr12940457wrb.538.1665423163458; Mon, 10 Oct 2022 10:32:43 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7htTVbQLL62aRSOs5W4Hchx4ZFZdXo0mOxVIoyRdt/H6Fp3hQmlGeTJ4OqGW5swOHaS3NPbQ== X-Received: by 2002:a05:6000:4084:b0:22e:5b99:4c4a with SMTP id da4-20020a056000408400b0022e5b994c4amr12940425wrb.538.1665423162923; Mon, 10 Oct 2022 10:32:42 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:39 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 54/55] tests: acpi: update expected blobs Message-ID: <20221010172813.204597-55-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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, T_FILL_THIS_FORM_SHORT=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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665428010800100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Expected change: + Device (SE8) + { + Name (_ADR, 0x001D0000) // _ADR: Address + Name (ASUN, 0x1D) Method (_DSM, 4, Serialized) // _DSM: Device-Specif= ic Method { Local0 =3D Package (0x02) { BSEL, ASUN } Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0)) } - } - Device (SE8) - { - Name (_ADR, 0x001D0000) // _ADR: Address - Name (ASUN, 0x1D) Name (_SUN, 0x1D) // _SUN: Slot User Number Method (_EJ0, 1, NotSerialized) // _EJx: Eject Devi= ce { PCEJ (BSEL, _SUN) } + } Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-17-imammedo@redhat.com> --- tests/qtest/bios-tables-test-allowed-diff.h | 14 -------------- tests/data/acpi/pc/DSDT | Bin 6422 -> 6422 bytes tests/data/acpi/pc/DSDT.acpierst | Bin 6382 -> 6382 bytes tests/data/acpi/pc/DSDT.acpihmat | Bin 7747 -> 7747 bytes tests/data/acpi/pc/DSDT.bridge | Bin 9496 -> 9496 bytes tests/data/acpi/pc/DSDT.cphp | Bin 6886 -> 6886 bytes tests/data/acpi/pc/DSDT.dimmpxm | Bin 8076 -> 8076 bytes tests/data/acpi/pc/DSDT.hpbridge | Bin 6382 -> 6382 bytes tests/data/acpi/pc/DSDT.ipmikcs | Bin 6494 -> 6494 bytes tests/data/acpi/pc/DSDT.memhp | Bin 7781 -> 7781 bytes tests/data/acpi/pc/DSDT.nohpet | Bin 6280 -> 6280 bytes tests/data/acpi/pc/DSDT.numamem | Bin 6428 -> 6428 bytes tests/data/acpi/pc/DSDT.roothp | Bin 6656 -> 6656 bytes tests/data/acpi/q35/DSDT.bridge | Bin 11449 -> 11449 bytes tests/data/acpi/q35/DSDT.multi-bridge | Bin 8640 -> 8640 bytes 15 files changed, 14 deletions(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index 1983fa596b..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,15 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/pc/DSDT", -"tests/data/acpi/pc/DSDT.acpierst", -"tests/data/acpi/pc/DSDT.acpihmat", -"tests/data/acpi/pc/DSDT.bridge", -"tests/data/acpi/pc/DSDT.cphp", -"tests/data/acpi/pc/DSDT.dimmpxm", -"tests/data/acpi/pc/DSDT.hpbridge", -"tests/data/acpi/pc/DSDT.ipmikcs", -"tests/data/acpi/pc/DSDT.memhp", -"tests/data/acpi/pc/DSDT.nohpet", -"tests/data/acpi/pc/DSDT.numamem", -"tests/data/acpi/pc/DSDT.roothp", -"tests/data/acpi/q35/DSDT.bridge", -"tests/data/acpi/q35/DSDT.multi-bridge", diff --git a/tests/data/acpi/pc/DSDT b/tests/data/acpi/pc/DSDT index fd79a602a2aaac0f7d91d2ee2b1af8f2e6cdd4b3..da2a3e5c0551ac2d1d8a0a40b92= d3235d5757475 100644 GIT binary patch delta 864 zcmY+?y-LGS90l-*wn@``wE1k(q;(Y(B-P?1MB7!t;^Yv006|wlL088>7hl5SE;tLi z3i=3D2>gx-Ho@=3Dw;o@1A=3D($vl}S&l^U*um-Y{%}$Th)%@PD^9v&oS$<=3DL!P&#{+AP`2 zlq{W`Xp+>BlvKzDiT6T`woB23Xp)Fbbd0z|hLA~I7Gj4x6bOaHYbm&+1<@j5c5urs zcc>65iStr$M;oF|Vo``OcW4lr5ZFi)8!dMkbC(XOSENpBK6YtMoHi)?sbwZ*TUOO| zD7&j=3DUCKUdnMK*UT|H}4c3sOHku6`H@~d6E+NA})ZLD~}3wRJ7iA|>v+~Gs`ByJ0F z$Q?b19*K`qa7O^K{O^V?ZkcdL2oX}pRVlcm578&_R){HgL=3Dce>_#P4OGUcuqGOoy& XR(%}&BV5C`xYDJ`Y+gVL6k4}0}MLaGvD!l4LPO(dQ?G(G|^K%!R?FOzWLB{V(=3D zXA=3D@%fQK-+GdtVsKfnF&?#wpd=3DAW02VV2A12kRUPH-Im12(M0pS&g#n<^8d?%x_Dx zEap$Prs>j>*`=3DccE66kKJXFkqvKYwj>nm~f~F?r5NBz{pc> zx#12Ag$3)1;EpDWChS!);SL*x4VkapGU1LEiWaPdfQ?VXbZAC!keMs9QJb76v$f28 zneAoPmRT0i*+6D1nRO@=3DODy=3DcA-*;gOAM=3DU#vhLmMgm3z#V%*u7$b~f*HI>P&sAL% zT{u<*cO)nhn1)KnoI6q!DST7}cl1#7;8zt3?&zcF!#GlIS#ZYy#Q@%ffL%m$9?}Hh ND6y-LGS7{>7gY;&wN&B=3DGFrh}t`);d&hNp)7RI634J^a2#b-Ray&!5h$76kHVq zXQ9`idGaRjIqRQao|Bv`$IJ1ebd@c0Rl39M>fwB4elRUXS)5+p(0T zG1+fLmqZuB9?-^wHyjd9B^*&!dye{%L4DdGZwZn@lcJL9YmjMe6>ZnkTMzBdXlrQi zM(d-Er2gzW+Ktg%w3oW6Pf6c3<+t_dZ9RPXj^7CWa!Eo$+&1EfH+&L4#9J$PBOnn# zuc>0SQk)Z%C+3 zcmWcg!QjrFxwI$eo|!xQ{=3DUB`ZA|SBYEC!(_AipF@Aq(*0I)& z!5te7G8)Jntuc^>Nrs7uZahfCBE!O}GVtr9rd1v$pW@pO4!hyjRjkQu%Iu8Unpulk z=3DBc;m%qGliW-DfnV%PsS$z@xYwsoroT_sk>%jM%9i5|Xu?KF>)^2zYAJ2IpZkP%=3DQ zXpKS|AsHd&M}{;aG9qksVGV76s;$*dQvw^z(&%(~1r%reE6H_1=3D!59yMsfB*mh diff --git a/tests/data/acpi/pc/DSDT.acpihmat b/tests/data/acpi/pc/DSDT.acp= ihmat index 973320cb25120818a45ddb3d8e3b3211f0c00adc..884d4871a2a0b87db2c0dd7e6f3= 2486ba9b7e424 100644 GIT binary patch delta 842 zcmY+>ze>YU7zOZ(Rns(WqDkBQYw`$o(ApuOrLB{Hz@m#o9>AAScSX6Ipy2Ex_yp1? zaC1_e1$_V=3D^qzdlce5UTIp5`EmdujJBU?P%(UO)<5BKzWaqrmT()N_BitN3VEgMmSy6`@x9~o{pxhBmul&7d|*^6T16YmE1GNbdG zxT8*@4)KUFma2gG2-3G#4A((InA?cqs&Tm?TUoXkSxqlTG0prOZM0UCLU>wmkLQHnQtd){$BE>Jh)%rB}OH;K!pC zN4$VX0{vpgCo$#@pM;N&+d^oY)Cm9p delta 847 zcmZ9}KTZNc6vy#3q72LON0e+E?3EC2ui diff --git a/tests/data/acpi/pc/DSDT.bridge b/tests/data/acpi/pc/DSDT.bridge index 9583da4e4f558cb0bf6912733fbe8db7c1ad255f..31a79aa47673c14f7e564475c39= bd38c872f8165 100644 GIT binary patch delta 1069 zcmbQ?HN$H|GT-DyymD+D@xh^f43j4c3QI&c`LYBXSj2P0JGun%FfcGOa5w@b87FTP zfU08zsbh(5@@JWRgx8oIte1-kAt=3DUY!Ui&riy0&~xtm`Sq<32-X8t#|aiIgosV<5|o-eR|aC{Z6Ny{l&vEqHQ8Pk zB3=3Dt*Pk^$|0of0sY~pJ zAp}5CBh70s0v}Q3OjkJ$+JZuZtVxM-$2<9fNWb)h`6DG)Z{)08yXJc;BdH) zA|?SAGY|vofvS@Pi#4K%NrA=3DIDniVDEhaVjACzq)E;ZR-2_oJLWG{fS?*Z8#p=3D^B# W>CG7u;!I%2k4EtDj9_QwtBe5r@-&P9 delta 1082 zcmeH^u}Z^G6o!+uV2sixxm9zMRBN4uxV1wm6{kQA8k{<0aB%Jm2lLhFXYhb^xFB*t3_(my13qz zBw12h;mxHC?_8jrUXTyZJRvAt&=3DjZ??M($5X+;i=3D9CWz>4@C-N`^Sb)#!KW=3DokG*$ z`90$S@*Cqha>bxqYQ&zTZNrsGHWQ&MGEHP-H}Q5vwsa}@Chu>SDU6T@j2Fmr#to9$ zq?Ycg<0d-ve;Mhn1{wy;vPM1aFwrom=3DwZDCqs?B>!YR{O-AzldPk4^!(k+mgcA>r}L|svYB1zMz*7SBFj#7-&@?AZ_RfP zQaO#2OI4B@k{k=3D!AaP%ay>Tg;5KR&vrQnVhM2o~>AGhpthYTT;xGe>Dv?1Cg-U|_N zhXSFH7!Pnu#2p=3Do4vA$UCfuPys6t>PRcw^+GT|-_QmaUf)?660CQf%Ld#YtU%6@B^ zPT9GgHAR-cI_6hfc(p|fJX+Z3m=3D~}iY!W}E;0_1EA#rA- zO-{l<6bJAcDJ`WH+R{%x^ay^{xE+LTjS^Q)>;X819>I42E&08?oP+O&@DWVlrk`QfqU@^rd~PjnA8Wf7vsc$J zOv4t(DN_!c1hW&oyH>D`unmr%AL~(Ym4(8BN*DLsVWY5N-4NW-LD7MOE(-2&P&iNq z+C2*H=3D%VPtN*52@;i7P1-w@p4q3}S2r&FK`X_*(aBUr1fr?P{}`YJ02H0!HurLsU} zdzFPM6A{f0D3hNk__h(=3DHj&15CS0XB^jh`lWuUF>kh`i{!uV^A zd24jZ=3D)w>IWz0CkBEyn~?UXXlst#kX?l$8rn@n3VZE03nm?+Evd(_w-*q6q7UVm_UX;H-_Gn-yH)oc!XeC|jjHV9>(yE>?t~-Sr?;_TSccQC-(N-+xRGu& zWDL+4fY6O4XAIF8Lf11m!$!jfGrqh6MV#4=3DIKS+`UmBdd!6&gRVh3U)Vs4^luZam_ zV`3e#8)9avW?jW@FFU#CwjQ?iWI<1fa(NAZe1hTxep79E4M+KC_%P2jy-LGS7{>7gY;&wN&B=3DGFrh}t`);d&hNp)7RI634J^a2#b-Ray&!5h$76kHVq zXQ9`idGaRjIqRQao|Bv`$IJ1ebd@c0Rl39M>fwB4elRUXS)5+p(0T zG1+fLmqZuB9?-^wHyjd9B^*&!dye{%L4DdGZwZn@lcJL9YmjMe6>ZnkTMzBdXlrQi zM(d-Er2gzW+Ktg%w3oW6Pf6c3<+t_dZ9RPXj^7CWa!Eo$+&1EfH+&L4#9J$PBOnn# zuc>0SQk)Z%C+3 zcmWcg!QjrFxwI$eo|!xQ{=3DUB`ZA|SBYEC!(_AipF@Aq(*0I)& z!5te7G8)Jntuc^>Nrs7uZahfCBE!O}GVtr9rd1v$pW@pO4!hyjRjkQu%Iu8Unpulk z=3DBc;m%qGliW-DfnV%PsS$z@xYwsoroT_sk>%jM%9i5|Xu?KF>)^2zYAJ2IpZkP%=3DQ zXpKS|AsHd&M}{;aG9qksVGV76s;$*dQvw^z(&%(~1r%reE6H_1=3D!59yMsfB*mh diff --git a/tests/data/acpi/pc/DSDT.ipmikcs b/tests/data/acpi/pc/DSDT.ipmi= kcs index 67b60cc44a6ebff029524abc27ef48f90868f948..e819ce69461a36b6fab5e2ffeba= 90dfe558724a7 100644 GIT binary patch delta 800 zcmY+CJ5Iwu5QdFp6BCHv51f$X3c*E43Xm)T1&APss8aY0J^~b!P`Css2Y>>J%TOg8 z03;3o687)0XSZ8@`sUx6*{((huy2X!U`Li%y9M?ru{PMJ#J0iqZPeyx zHqABWZadU%2a`Y5#sN=3DmkWuaCt1&pkB*R3;p+mP!IKv{tg7MH8oMDq;!&ukGlrtPM z92g^)Zkck1ONI;Mwl)&Z@W}8=3DgI>`qcT~M%!dX6}pSP1qfv0bp4 zFV;q2ONn*Cek9fdO9HWWuVhu%C){^v@HB2p zFCg>+1!>>BnV0RyH$Q$evn{s8_fo)03}7kpwElQD7sYL3HRZ!g&oE5GDi^PnZNjc) zOv&h=3D(Sfmh%77;~?OM%o>KyzaJm$g|u`aPcVivJ`Pt9HsTM@H~?TB3x8~bXur`XMD zpF3{rU|UBPbd)F;pYY-WMFDo8oo2#OE*dV>x-sPp4-F4CErTqf~L5gHNfTLx#uXv9!P@`-h%j@ef?f(@~R*n!v;u_{)xDX}%N0kJ)? zA+fTrX0H{KPkiLI8Me*j6SKBB=3Df!grb1CLZl;56n;t0hNyd^_;7unBe@_Y6VYPGlp diff --git a/tests/data/acpi/pc/DSDT.memhp b/tests/data/acpi/pc/DSDT.memhp index 084957e53fb51e313dc824e5a8733f02ff77542c..03a9decdc1563f5e759e34dffda= b4bb34645d9b3 100644 GIT binary patch delta 863 zcmY+?y-LGS90l+eOOvKaY)zW)M4Vj&>j&7SA37?vI0*)4L03Vi?k?s*EVv5#0J{4E zeGk3=3DoZSD-didRQFDF@#)}z&8x|Twy_2LSQyaOjOQt#9cO|tw@{3-1XIgHz|9rWj)G% zYFVGMEKtvGQT9;F9Lm0GnM+weRL>4XR=3D#?|ulDe2j}~|evC)JV@F9E>-<6nhM*tC! zNF#Jixg&%qf2#XR%(x?hh^XUJ3hsy@ViLU=3Dx14fE0+Eoom4Z7`h*SuC&6IaJ delta 861 zcmZ9}y-vbl6b9fDu`Q*bwWa@5oJov{zX>b|I%CV}KpTLKQuz;nXU{>d>7ErcJS?~GnzCJxY zDeZDJd2|iKH0;r~$y9|V!9>9;h898#zJhc+Qi(IEvQgO3@90808Ymht*TuPXI4B%g zSA=3DvlQ8b|lwJ8_U;i7P1RuR(CLeYYiE-s~`jiL=3D+^fv|i5iN6%b_8?I_BmT~=3D5bcU z^z8v>GtPX@R-6T#c?o^np-dg|T3#FCYeRL!@E?>Pj}S%*Mg-L@$I=3D)hjA4*!TOLbQ zf+B&1E+*2EqDbMpBBUcjk->4MO}UYd97PVV6(Jp66kYhx#jSJ{C<-{r)h!1(?evf~ J@V>}DYrlC)%KZQU diff --git a/tests/data/acpi/pc/DSDT.nohpet b/tests/data/acpi/pc/DSDT.nohpet index 46827e285421d4fb38160f6c15dc9134d7da5446..b413d9f31d483eca02f45ad09af= 2f556581ec381 100644 GIT binary patch delta 842 zcmY+>PfEi;6bA4JX_F>R+cbaLBwDY~Y74p$jLp^x7B?0Qu02IvbtOoag?a#86x@0c zcV0ly11M;|yyVSnKYsJgym_n9YP4Nj+0q_lYby*E_ZRB?V3_J@oLn{)MOE~8el;^x zh|fwKRiZ|s2657&jzjLKlc+;HRDwG+5*oxuDaPEPlh7fCZMtR59Ssrlprx14c@Pr`@TRDwHtBzh2ErI>O@ zpF|(x)TLXd+!2r{rhP0$!W|)rFz=3Du(hWQ^ATTHksA{hxX!f)Pr;wE;Hy-C>~GRqg; R0NIU{?f+-)>(+nY`2!^e#-IQI delta 839 zcmY+>Pfo%>6bA4b3oV8IW74FQ8K;o8*cndB- zLZENnn{L1S=3D9`)KmXqaV`|DbEHTx`_O9(vyU;a2Pzu(N+{as~OGXLlqhH2RHBusF; zOcPHeS}0mj>f(Vr+9=3DwvZV2wMP*`x##gsd26gCvT_KqocbWn6)rHe=3DIa8Nj~ZwT(_ zqUeGQ&bL4rq&TCVnh~rib16Ge=3D22FJ>a0)Min4&RJ!K(fvaineRd##c%`?AN;A=3D&_ zMA3wjKOP~BY8WY4Z(DL>j4+0U(5C#tRSAj&b`8ND0~7;rBdz0=3DJBBERFmDL%NKvG) x(M8T38H(&D)-K7pVuWA>@3nwMtVVjJ1^_$Ct|@a9<;IlFDZ5eG-zNFLI09ThzxDtC diff --git a/tests/data/acpi/pc/DSDT.numamem b/tests/data/acpi/pc/DSDT.numa= mem index ebdccc880def932fcba0cef8a7cf47ff7cc67f53..9e701b2983f9ec45af9c26d8015= 45c2b5d112a10 100644 GIT binary patch delta 800 zcmY+>O-_SA7{>9MP{0<;H%P1P5o+i{Tq#ZC%CFeCGKQ-dPoQC2P2ASRXk2=3DV?%a9- zJ%A>fd3fQS+5Yq6VHg(aB7GV6%9S%L$Gv`Xd2_1G)1AUB^4Yo7YH2MqpI@AGG>Gd) zWQ}N(XhW=3DOG2soJgf4_(7Gh5?UtPa?+l03al7=3DJ=3DAtp&hvLvm0o4RV$Y+-OVna)~3_i`0}4xWc=3Dk02?yfHqm7I=3DToNwCeJ%EQ!z1BA zd^LhMd=3DfsyzE5w-c_SbZK-@NhH$oC2#Ahw0yb+OzgrL6|i94$P;*_^ylCdOX+~#{A z-|!}y70N9^yHZ*o?OAC9v_GY7p`AtY-Zt8!(uSf{r#|FUkLc7R+(0)Tyv^c|wSNky B%^&~( delta 790 zcmY+B&rZTX5Ql40Xu;a;|5{Y)8)(YGa-(Rxp+w@zklwxd3cdlEDu`xUKEFdU$aR!!+z_^7_;^VR2-X zWHiudz*aYUoY6$12?L=3D`>2ZdIh6OWez?aA@yFN^|;UfqS-QbT{i`d9hUYpp0*eS6s zF^AZ|S8vaV&4{^*UH|Xoj@t@sD`Y{TM7g|@KklLE!F!;6yyPe!4IehT(dUc+jR2fb z%jk1Ph(-ug-KaPtLL-9Jk--@;8Zqp2W5^i^8VQUet;divQZ!OnN&_~LTJX8r5je48 t8L=3Ds`4zU%n3t~HBm&C@2%DW=3DAB-T|-9`TXe=3DGZouN6eM@eV_iG>;Xco#{2*P diff --git a/tests/data/acpi/pc/DSDT.roothp b/tests/data/acpi/pc/DSDT.roothp index f9aacee095bbb62251fc8231532f0d6e9f555a58..8c3956c9ecc63133cc800f1d2d0= 7a1392a35d548 100644 GIT binary patch delta 937 zcmY+>O-{l<7{+lv3X}>h^pjRaFJJsfPv7>P+5YpJr^B!uE{AV%Gg_G4C~o?l+3HG}_KxT3JRILN3WZ`p4X3x0 zBEX66`?J-xGVS+rP)dPTf>`ST37#mEC_{W^V!#^;2?gT7pp5}u+GMvX)bV!uUS8S;ioLWNl5f;Z|U>WQeS^Uc#}^(fS>^j9D8mPS$&q?X9&vh53P z3+-8I4YVJrHPOyY@vM&aC^ZA^TWT$|z9pV*CoR48h;MDutxdeZlSOYd;uo+;SP*e0 zLf)`R*bt{SZG^nxkZ>R#GI7ouE(sUnD;K=3Dsk?6bA6N6k00Kf6&sZ=3Dn<%5q8pMbJ0d0$S6%cB-hglc7H>1JSwHtOhf17EbyCJ-LgF&%;Hs{0p(k}DKYfIB~&CY*; zeqy?0*TwS1oM%H~hG33ya*iQkA|UtG5Z2(klm1N<;)bhC6edhvRd7cgMIF|vxaE!p ziU#Z}f;%h}7K}Y*%7{B`6gI3Xf;*Zhny^#F9d|e=3D9LW6B6qx#nC3bWscLZz7T9oZ6 zYg0B3cWRJrq6Is^XD5A`}rED}p;>6fw+t%9JPW=3D%eVvrXsi_L6N{g6%+1AQKXPZ;xCIx g?(|%40JfA}Py-vbV7{>962&EKg#Sds{`KTXQqtQgAi4zeSHA)=3D%?0`Ok6Pv7?KS^xQ+rzfZ5;duD^-0)9Yc19iz&W2 z1vm3=3DBC)#_3x$LN@fi!=3D$dkxJSWEPkJ>F1Bs1TR2;Ee)_0>pbHI=3DoRNQH0Qz=3D_?)H zD3K^ZTtvd-4UL2r2>K6N@J8Xgc)X>P)Du$2YwoWk|HLfXlhDd&ze1Zs+gweaokzPD z+5*~-&=3D%2}?c~`?(860E@U5$K>+pX+w&{&}`~n6E18+2m1#g%nOo)v&+BoEm8i^Xj lT`YLRB4I&%N21RgHVGS|;nG+7yiq4nhq!jlw->jR`UCcd%hdn? delta 891 zcmY+By-LGS6o6x`ZIY%xvHmnkleX4Wtxz1)779W!b`caT9g0KI7w`pyf^)&)tga4j zf>SqNKNcrf6^~gGL6r+mdn24Fe4WrZIyXSv0b+kc~Dsa%kkB zA-8zvei)EeO_&~1pvTorEwQ({G83u0@;T03HPo!Erf z2C+G@O=3D7iOF (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 1665427797525500.32462465724655; Mon, 10 Oct 2022 11:49:57 -0700 (PDT) Received: from localhost ([::1]:59024 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohxqe-0001dE-Bs for importer@patchew.org; Mon, 10 Oct 2022 14:49:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49932) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwe8-0005MW-Bs for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:58 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:42331) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohwe2-0007hc-Gs for qemu-devel@nongnu.org; Mon, 10 Oct 2022 13:32:56 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-487-Y47RBxDUObmp226iVFCZCw-1; Mon, 10 Oct 2022 13:32:48 -0400 Received: by mail-wr1-f70.google.com with SMTP id u20-20020adfc654000000b0022cc05e9119so2953661wrg.16 for ; Mon, 10 Oct 2022 10:32:48 -0700 (PDT) Received: from redhat.com ([2.55.183.131]) by smtp.gmail.com with ESMTPSA id u9-20020a5d4349000000b0022cdb687bf9sm12070076wrr.0.2022.10.10.10.32.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 10:32:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665423170; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=5bysEFpqvfb0vnOAHiSAOOyWiN95lODHFTH7Hy6GPk0=; b=ZJdiR2OQFpACFhtlPcQVBOhBVZj8sTR2gkILO6DU7QvxtFsc6Y1pDzMpZZgbvGBQ0dznQP mrydPsTZ01FlRskj85MpMg+RaaJ5D+jJFW22vq03RdNDtaffZcZKbTO/QWKWEf+lF+WvH/ Eb1BvvRcRAfd8/rrcM/JFQ7T1ZfoFXk= X-MC-Unique: Y47RBxDUObmp226iVFCZCw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=5bysEFpqvfb0vnOAHiSAOOyWiN95lODHFTH7Hy6GPk0=; b=v43blivVUdpqlwQn7M1J25ygvF6/HZMaJdWXG+2h1bJFRYHlmVnibC480jrjtG7IEY kzoaPyzt2MpvkQ1nqu6HaeRK00VkTvypFA2Ih8ukS94Ihb5LLNjpBfn/uI04FJcAoeKJ rm0bSMmi7AMfjNtO2tm2eVWqZ0GqxnN7ATMFW7bIEwQPP7VuZKShImb/hoNYz7OLFv4g fRX/S1wrY8u8YbawG5m1wxBoj0srfD00Aqws02HXD/xlkrpBxTVveVT67p5XaFb+U1ne mPAe/lcR1LPCpq+0RIpzIQJZAOcsP8TH91oLv116E3dEoNhUjtFSeXgetHwYRPZynfEQ H6Fw== X-Gm-Message-State: ACrzQf3sWjGrqHK4WGUbD8w157LWh02nAdn7imfEoGbMMvEj7I/NAA5E PGz7sPe6GihYPCKWO3S93PQHZTpEBbq1RLX3aPm8BNawwKHdDxudQrf8yDaGZNV3qOHL2qIxa7m 5ch3P9iAB8tvZzdx42Y2FYtBj4hqNxUZFw65hqsnVJfDw4VrKchgHF3bMFNqI X-Received: by 2002:a05:6000:1882:b0:230:9595:4131 with SMTP id a2-20020a056000188200b0023095954131mr3780874wri.17.1665423167546; Mon, 10 Oct 2022 10:32:47 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7D7cWCeXh7IB2Ej7acYNXoc972Z/js1NDAB4zMpAGmZBzQT6ytSfyf3hyMmZFMlfrOIr8kNg== X-Received: by 2002:a05:6000:1882:b0:230:9595:4131 with SMTP id a2-20020a056000188200b0023095954131mr3780851wri.17.1665423167245; Mon, 10 Oct 2022 10:32:47 -0700 (PDT) Date: Mon, 10 Oct 2022 13:32:43 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 55/55] x86: pci: acpi: consolidate PCI slots creation Message-ID: <20221010172813.204597-56-mst@redhat.com> References: <20221010172813.204597-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221010172813.204597-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent 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=170.10.129.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665427799190100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Igor Mammedov No functional changes nor AML bytecode changes. Consolidate code that generates empty and populated slot descriptors. Besides eliminating duplication, it helps consolidate conditions for generating parts of Device{} desriptor in one place, which makes code more compact and easier to read. Signed-off-by: Igor Mammedov Message-Id: <20220701133515.137890-18-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-build.c | 111 +++++++++++++++++++++---------------------- 1 file changed, 54 insertions(+), 57 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index fc23cb08c3..4f54b61904 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -427,13 +427,41 @@ static void build_append_pci_bus_devices(Aml *parent_= scope, PCIBus *bus, int func =3D PCI_FUNC(devfn); /* ACPI spec: 1.0b: Table 6-2 _ADR Object Bus Types, PCI type */ int adr =3D slot << 16 | func; - bool hotplug_enabled_dev; - bool bridge_in_acpi; - bool cold_plugged_bridge; + bool hotpluggbale_slot =3D false; + bool bridge_in_acpi =3D false; + bool cold_plugged_bridge =3D false; + bool is_vga =3D false; + + if (pdev) { + pc =3D PCI_DEVICE_GET_CLASS(pdev); + dc =3D DEVICE_GET_CLASS(pdev); + + if (pc->class_id =3D=3D PCI_CLASS_BRIDGE_ISA) { + continue; + } + + is_vga =3D pc->class_id =3D=3D PCI_CLASS_DISPLAY_VGA; =20 - if (!pdev) { /* - * add hotplug slots for non present devices. + * Cold plugged bridges aren't themselves hot-pluggable. + * Hotplugged bridges *are* hot-pluggable. + */ + cold_plugged_bridge =3D pc->is_bridge && !DEVICE(pdev)->hotplu= gged; + bridge_in_acpi =3D cold_plugged_bridge && pcihp_bridge_en; + + hotpluggbale_slot =3D bsel && dc->hotpluggable && + !cold_plugged_bridge; + + /* + * allow describing coldplugged bridges in ACPI even if they a= re not + * on function 0, as they are not unpluggable, for all other d= evices + * generate description only for function 0 per slot + */ + if (func && !bridge_in_acpi) { + continue; + } + } else { + /* * hotplug is supported only for non-multifunction device * so generate device description only for function 0 */ @@ -441,46 +469,11 @@ static void build_append_pci_bus_devices(Aml *parent_= scope, PCIBus *bus, if (pci_bus_is_express(bus) && slot > 0) { break; } - dev =3D aml_device("S%.02X", devfn); - aml_append(dev, aml_name_decl("_ADR", aml_int(adr))); - aml_append(dev, aml_name_decl("ASUN", aml_int(slot))); - aml_append(dev, aml_pci_device_dsm()); - aml_append(dev, aml_name_decl("_SUN", aml_int(slot))); - method =3D aml_method("_EJ0", 1, AML_NOTSERIALIZED); - aml_append(method, - aml_call2("PCEJ", aml_name("BSEL"), aml_name("_SUN")) - ); - aml_append(dev, method); - aml_append(parent_scope, dev); - - build_append_pcihp_notify_entry(notify_method, slot); + /* mark it as empty hotpluggable slot */ + hotpluggbale_slot =3D true; + } else { + continue; } - continue; - } - - pc =3D PCI_DEVICE_GET_CLASS(pdev); - dc =3D DEVICE_GET_CLASS(pdev); - - /* - * Cold plugged bridges aren't themselves hot-pluggable. - * Hotplugged bridges *are* hot-pluggable. - */ - cold_plugged_bridge =3D pc->is_bridge && !DEVICE(pdev)->hotplugged; - bridge_in_acpi =3D cold_plugged_bridge && pcihp_bridge_en; - - hotplug_enabled_dev =3D bsel && dc->hotpluggable && !cold_plugged_= bridge; - - if (pc->class_id =3D=3D PCI_CLASS_BRIDGE_ISA) { - continue; - } - - /* - * allow describing coldplugged bridges in ACPI even if they are n= ot - * on function 0, as they are not unpluggable, for all other devic= es - * generate description only for function 0 per slot - */ - if (func && !bridge_in_acpi) { - continue; } =20 /* start to compose PCI device descriptor */ @@ -496,7 +489,7 @@ static void build_append_pci_bus_devices(Aml *parent_sc= ope, PCIBus *bus, aml_append(dev, aml_pci_device_dsm()); } =20 - if (pc->class_id =3D=3D PCI_CLASS_DISPLAY_VGA) { + if (is_vga) { /* add VGA specific AML methods */ int s3d; =20 @@ -517,19 +510,10 @@ static void build_append_pci_bus_devices(Aml *parent_= scope, PCIBus *bus, method =3D aml_method("_S3D", 0, AML_NOTSERIALIZED); aml_append(method, aml_return(aml_int(s3d))); aml_append(dev, method); - } else if (hotplug_enabled_dev) { - aml_append(dev, aml_name_decl("_SUN", aml_int(slot))); - /* add _EJ0 to make slot hotpluggable */ - method =3D aml_method("_EJ0", 1, AML_NOTSERIALIZED); - aml_append(method, - aml_call2("PCEJ", aml_name("BSEL"), aml_name("_SUN")) - ); - aml_append(dev, method); + } =20 - if (bsel) { - build_append_pcihp_notify_entry(notify_method, slot); - } - } else if (bridge_in_acpi) { + bridge_in_acpi =3D cold_plugged_bridge && pcihp_bridge_en; + if (bridge_in_acpi) { /* * device is coldplugged bridge, * add child device descriptions into its scope @@ -538,6 +522,19 @@ static void build_append_pci_bus_devices(Aml *parent_s= cope, PCIBus *bus, =20 build_append_pci_bus_devices(dev, sec_bus, pcihp_bridge_en); } + + if (hotpluggbale_slot) { + aml_append(dev, aml_name_decl("_SUN", aml_int(slot))); + /* add _EJ0 to make slot hotpluggable */ + method =3D aml_method("_EJ0", 1, AML_NOTSERIALIZED); + aml_append(method, + aml_call2("PCEJ", aml_name("BSEL"), aml_name("_SUN")) + ); + aml_append(dev, method); + + build_append_pcihp_notify_entry(notify_method, slot); + } + /* device descriptor has been composed, add it into parent context= */ aml_append(parent_scope, dev); } --=20 MST