From nobody Sun May 19 12:00:57 2024 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=1696477378; cv=none; d=zohomail.com; s=zohoarc; b=Z8oj75R38NlMqJD9run/AmHYB4d5+J2ElHFVDexLhFq7aLfb6gZy2Uqj3UDN8qt46wp7V9xJwO6F1nqCRdjAxDws/Ka3bsUmqzgQLr8B1SH0RvAuaCRyXGgh/9WavE9SNxGPgqjpWsl4r4mivKFrFhyds70PZj/3vpPNw9ixrvM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477378; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UJkiTw8U/nk2edqHVe6dUwNUdcRD7I2JmYKj4vEBhwM=; b=N2QzW2SkTC36A1xct5PGzf7XUIeyKWafR9e85aeNiyBawWbL9ftEcSO70g/s2kjjRFPZp/ZfecCQURcmq95SPY8qSpn/orTXgnuwKoFjkRbjG5/jyb3xvZFup/144zG7j7m5wKObl4l4LWvPRSX8rzAd0FElQqB3g+tJV5aHjzM= 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 1696477378149265.0014176845376; Wed, 4 Oct 2023 20:42:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFG0-00019p-Vn; Wed, 04 Oct 2023 23:42:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFFz-00019a-Aw for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:35 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFFx-0007wj-P7 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:35 -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_256_GCM_SHA384) id us-mta-696-85p8N_1uPheITn2gAEQjgQ-1; Wed, 04 Oct 2023 23:42:29 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-40540179bcdso3382605e9.2 for ; Wed, 04 Oct 2023 20:42:29 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id v5-20020a05600c214500b003fbe791a0e8sm565825wml.0.2023.10.04.20.42.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:42:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477353; 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=UJkiTw8U/nk2edqHVe6dUwNUdcRD7I2JmYKj4vEBhwM=; b=GAM2KVdqgKsqgFXNcL6YSA9sKRyu8/1rBJYzrIgzyb3Iksk3oXDFtTsoLD0iTRchDEXgTt ZGxsL9Zd3WpUlzIUCH3UFzdM0woxLphJEAHQL5omIZFdQV8TMe6hT3Brh6L67pY+4R7enK dyvgveKRIClmJAMGtdM+dDPTJN76I0s= X-MC-Unique: 85p8N_1uPheITn2gAEQjgQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477348; x=1697082148; 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=UJkiTw8U/nk2edqHVe6dUwNUdcRD7I2JmYKj4vEBhwM=; b=PM8KrGKU3QXZ9nebzI1p3ryO9OvhYRkJqEepMeooKpbKbKCBc55KJtw4VXCKVAyNrJ H360KH11Bi+9HGCebOrbKFG+Wft0CWkVoI2soAN1FEtQ+NXRBiuza9h0s4WFZz24GtzU Iwx6C7O+ryxhDE5EJRh6B/S1pNAvXWlVpK8Z9cRfoPMTN4uZSCMA+rOSPeFENwqtsUXF oee29g0TON0I6NeiV22jQq7HtK1OIfPkLqZ3q+9uC/upivWUx7T1SvLBIw1I9I1l1+mL FmS2OhSz5+3wsr7HjEtuQe5942osAcAWk106v7SJ3Q9L7HQd46hfTF25LyhtAbs9KgIw iEoQ== X-Gm-Message-State: AOJu0YwPRrbcMH+5FchnZiKAV4rdfHwJyE5L9K8PtuQj4QlNmy85zG3B J4bb8MOwg3NlyjSbuxUsBoiZwj3Tl9fedoZOMecVe662ilwQjIDD1YlRujXbjyoh68TeLB2XYm+ rKbpNc6GEDyNtr6AWrS+wJWBzR/55VsGiLNmFebC/g66HU2knj9Nv4RlnUj4/V8pVmYpf X-Received: by 2002:a05:600c:ac1:b0:402:f501:447c with SMTP id c1-20020a05600c0ac100b00402f501447cmr3992978wmr.0.1696477347981; Wed, 04 Oct 2023 20:42:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGLT5fZnCd1dFYei8gXoiRZdCXg/s3Yc51U+iE7EdRXJzKyHChgfOxtL3dlFb6ep0EvbJ8QUg== X-Received: by 2002:a05:600c:ac1:b0:402:f501:447c with SMTP id c1-20020a05600c0ac100b00402f501447cmr3992962wmr.0.1696477347594; Wed, 04 Oct 2023 20:42:27 -0700 (PDT) Date: Wed, 4 Oct 2023 23:42:23 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Marcin Juszkiewicz , Eduardo Habkost , Marcel Apfelbaum , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Yanan Wang Subject: [PULL v2 01/53] pci: SLT must be RO Message-ID: <4565917bb034479a29c04f0b44124e7f61585ccf.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477379243100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" current code sets PCI_SEC_LATENCY_TIMER to RW, but for pcie to pcie bridges it must be RO 0 according to pci express spec which says: This register does not apply to PCI Express. It must be read-only and hardwired to 00h. For PCI Express to PCI/PCI-X Bridges, refer to the [PCIe-to-PCI-PCI-X-Bridge] for requirements for this register. also, fix typo in comment where it's made writeable - this typo is likely what prevented us noticing we violate this requirement in the 1st place. Reported-by: Marcin Juszkiewicz Message-Id: Tested-by: Marcin Juszkiewicz Signed-off-by: Michael S. Tsirkin --- include/hw/pci/pci_bridge.h | 3 +++ hw/core/machine.c | 5 ++++- hw/pci/pci.c | 2 +- hw/pci/pci_bridge.c | 14 ++++++++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/include/hw/pci/pci_bridge.h b/include/hw/pci/pci_bridge.h index ea54a81a15..5cd452115a 100644 --- a/include/hw/pci/pci_bridge.h +++ b/include/hw/pci/pci_bridge.h @@ -77,6 +77,9 @@ struct PCIBridge { =20 pci_map_irq_fn map_irq; const char *bus_name; + + /* SLT is RO for PCIE to PCIE bridges, but old QEMU versions had it RW= */ + bool pcie_writeable_slt_bug; }; =20 #define PCI_BRIDGE_DEV_PROP_CHASSIS_NR "chassis_nr" diff --git a/hw/core/machine.c b/hw/core/machine.c index cb38b8cf4c..9ae8f793ae 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -32,6 +32,7 @@ #include "qemu/error-report.h" #include "sysemu/qtest.h" #include "hw/pci/pci.h" +#include "hw/pci/pci_bridge.h" #include "hw/mem/nvdimm.h" #include "migration/global_state.h" #include "migration/vmstate.h" @@ -40,7 +41,9 @@ #include "hw/virtio/virtio-pci.h" #include "hw/virtio/virtio-net.h" =20 -GlobalProperty hw_compat_8_1[] =3D {}; +GlobalProperty hw_compat_8_1[] =3D { + { TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" }, +}; const size_t hw_compat_8_1_len =3D G_N_ELEMENTS(hw_compat_8_1); =20 GlobalProperty hw_compat_8_0[] =3D { diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 881d774fb6..b0d21bf43a 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -893,7 +893,7 @@ static void pci_init_w1cmask(PCIDevice *dev) static void pci_init_mask_bridge(PCIDevice *d) { /* PCI_PRIMARY_BUS, PCI_SECONDARY_BUS, PCI_SUBORDINATE_BUS and - PCI_SEC_LETENCY_TIMER */ + PCI_SEC_LATENCY_TIMER */ memset(d->wmask + PCI_PRIMARY_BUS, 0xff, 4); =20 /* base and limit */ diff --git a/hw/pci/pci_bridge.c b/hw/pci/pci_bridge.c index e7b9345615..6a4e38856d 100644 --- a/hw/pci/pci_bridge.c +++ b/hw/pci/pci_bridge.c @@ -38,6 +38,7 @@ #include "qapi/error.h" #include "hw/acpi/acpi_aml_interface.h" #include "hw/acpi/pci.h" +#include "hw/qdev-properties.h" =20 /* PCI bridge subsystem vendor ID helper functions */ #define PCI_SSVID_SIZEOF 8 @@ -385,6 +386,11 @@ void pci_bridge_initfn(PCIDevice *dev, const char *typ= ename) pci_bridge_region_init(br); QLIST_INIT(&sec_bus->child); QLIST_INSERT_HEAD(&parent->child, sec_bus, sibling); + + /* For express secondary buses, secondary latency timer is RO 0 */ + if (pci_bus_is_express(sec_bus) && !br->pcie_writeable_slt_bug) { + dev->wmask[PCI_SEC_LATENCY_TIMER] =3D 0; + } } =20 /* default qdev clean up function for PCI-to-PCI bridge */ @@ -466,10 +472,18 @@ int pci_bridge_qemu_reserve_cap_init(PCIDevice *dev, = int cap_offset, return 0; } =20 +static Property pci_bridge_properties[] =3D { + DEFINE_PROP_BOOL("x-pci-express-writeable-slt-bug", PCIBridge, + pcie_writeable_slt_bug, false), + DEFINE_PROP_END_OF_LIST(), +}; + static void pci_bridge_class_init(ObjectClass *klass, void *data) { AcpiDevAmlIfClass *adevc =3D ACPI_DEV_AML_IF_CLASS(klass); + DeviceClass *k =3D DEVICE_CLASS(klass); =20 + device_class_set_props(k, pci_bridge_properties); adevc->build_dev_aml =3D build_pci_bridge_aml; } =20 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477390; cv=none; d=zohomail.com; s=zohoarc; b=mlJujIkTKjfZAEQsEV0YGajJyJLJA6MRKLwKmMbNuDpHokc+MHp05qGX5dZp/yMQTpJUaqQgg2JLcGAS96kXTMaczme9mhtDSwwxJht607tHeBcnGJcSyz4lNq0FgkoFM0akt/DEB1+v+2ZZouq3B/GtkA6N5icoOAcOeLkNXJs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477390; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=W0fAAn8UFyb8KBtfxAsFqqpol8c8vZQYpO/ekzLxr6g=; b=fQI6Vy9zsvYP1aHdsHkpgFrtQ3mdbH+TdI6QIyq7Reccd8kaiMOtVi2kw+G14XZ9EJeTLHF/f1Y/dNX4ezVvER0ICI3rL2rk4WGAFWHN+aCRpn32MZXrSWsQTUv1av3x/Keo8ZSMsg0LRjvzy7UCBXkSQN+zXgr3UlkkSL+gGAM= 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 1696477390949908.799267943092; Wed, 4 Oct 2023 20:43:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFG2-0001AE-RI; Wed, 04 Oct 2023 23:42:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFG1-0001A5-Gs for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:37 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFG0-0007xF-0Z for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:37 -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_256_GCM_SHA384) id us-mta-534-Hkojnh9GNYKQkDE35m5k2Q-1; Wed, 04 Oct 2023 23:42:33 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-32588c87716so430461f8f.1 for ; Wed, 04 Oct 2023 20:42:33 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id e13-20020a5d500d000000b003259b068ba6sm634352wrt.7.2023.10.04.20.42.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:42:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477355; 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=W0fAAn8UFyb8KBtfxAsFqqpol8c8vZQYpO/ekzLxr6g=; b=JWXR5qL4UWo7BZTOvmocW8YzgwkBEenZbYRhpiPpr2MZZVVeDdSDjx/yFs6GCPkzUz094c qJATvfhcHjBoxo4PDdBF7TZtMn65bgpYL65TjXzETJrLPDhVSLI90jWsYo9i+CZzPiVp/d g+4Ybf2CVLgfSxeq9B56GDSzj0zC2Xs= X-MC-Unique: Hkojnh9GNYKQkDE35m5k2Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477351; x=1697082151; 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=W0fAAn8UFyb8KBtfxAsFqqpol8c8vZQYpO/ekzLxr6g=; b=CMFWN5RlBmOwU6XqCPOLSzofybEsS6Ge6Of6nUkXrvKurDLYN0rOUbB3qxVkdErM2P gU2zJuuz5njbkJa0IoyaQBkGgLKyRro82HvrbwiMN8OBHZxFssqZwu+VQ/3xpAihOKH+ LWSaIK4f9YU56aJA2V/AV3P5HXQMbywxZ/iyUSRrIc069JsQpkq1GSb3Z7xaSCyvFLdX IAdje/kEwVQQTooC0n9KbUSzZG9hdsi69pFZM5Dn2kjUNFkU9IigJh7a2O4wZ3KhP2UT F1nIkP/5GJ5mQhYL/501iPRcX5d6A/WfpONP263ZVak2MUv5WDMMixRRikDrwP2TqOp8 mjDw== X-Gm-Message-State: AOJu0YwNxZNjcdwdOkklWpGdfDVFbwgoG0DjfjQoc5QblIz67N6RKO2q tM9u3lX6Cn5AsgObawZNLGGwlDC9p63njLmRoaw7cX31+iHRoLRFZE67QyUqfGL1o++FSJAR8EV Ov9SNBMwq/oc/13TJAkQ1u5gvIDR1+QEgdY83UwZH38MHVuO1AgP8kk8rRlt+WEkcmXiY X-Received: by 2002:adf:f546:0:b0:317:634c:46e9 with SMTP id j6-20020adff546000000b00317634c46e9mr3908353wrp.43.1696477351812; Wed, 04 Oct 2023 20:42:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFFsJQquQ+V5syOPO0SSiz4lL198OwfkGojX68SrafA6ntH9Ta6NOiTqkdxT6NSG/iXu65jJA== X-Received: by 2002:adf:f546:0:b0:317:634c:46e9 with SMTP id j6-20020adff546000000b00317634c46e9mr3908343wrp.43.1696477351504; Wed, 04 Oct 2023 20:42:31 -0700 (PDT) Date: Wed, 4 Oct 2023 23:42:27 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL v2 02/53] hw/virtio: Propagate page_mask to vhost_vdpa_listener_skipped_section() Message-ID: <961d60e934e793a6065fb17d2312d5bced25031e.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477393097100007 From: Philippe Mathieu-Daud=C3=A9 In order to make vhost-vdpa.c a target-agnostic source unit, we need to remove the TARGET_PAGE_SIZE / TARGET_PAGE_MASK / TARGET_PAGE_ALIGN uses. TARGET_PAGE_SIZE will be replaced by the runtime qemu_target_page_size(). The other ones will be deduced from TARGET_PAGE_SIZE. Since the 3 macros are used in 3 related functions (sharing the same call tree), we'll refactor them to only depend on TARGET_PAGE_MASK. Having the following call tree: vhost_vdpa_listener_region_del() -> vhost_vdpa_listener_skipped_section() -> vhost_vdpa_section_end() The first step is to propagate TARGET_PAGE_MASK to vhost_vdpa_listener_skipped_section(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20230710094931.84402-2-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/vhost-vdpa.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 42f2a4bae9..118c588205 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -42,7 +42,8 @@ static Int128 vhost_vdpa_section_end(const MemoryRegionSe= ction *section) =20 static bool vhost_vdpa_listener_skipped_section(MemoryRegionSection *secti= on, uint64_t iova_min, - uint64_t iova_max) + uint64_t iova_max, + int page_mask) { Int128 llend; =20 @@ -313,7 +314,7 @@ static void vhost_vdpa_listener_region_add(MemoryListen= er *listener, int ret; =20 if (vhost_vdpa_listener_skipped_section(section, v->iova_range.first, - v->iova_range.last)) { + v->iova_range.last, TARGET_PAG= E_MASK)) { return; } if (memory_region_is_iommu(section->mr)) { @@ -398,7 +399,7 @@ static void vhost_vdpa_listener_region_del(MemoryListen= er *listener, int ret; =20 if (vhost_vdpa_listener_skipped_section(section, v->iova_range.first, - v->iova_range.last)) { + v->iova_range.last, TARGET_PAG= E_MASK)) { return; } if (memory_region_is_iommu(section->mr)) { --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477467; cv=none; d=zohomail.com; s=zohoarc; b=MrmGcwWPTfSFB8o85ggOF7J2VhvxfkWeB4KrEuxu7eY4rL0LEN56YahKUqiW/5KVSTNm+ZCJvnoudPd/RSybr8OplxYYzdZZzzbPzmfIoS7EmWT/Z5LP7BP9a13wHIjo7aUCN1glOOkgmmxTFSCz7b76C/Hkk6YgyA39fjskLQo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477467; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ZPz4GnJfkENcst/YvbRzP3MUYaB7CKMx8l9nJBdXF6s=; b=jVrW03fDOqC+KDOB7iMxmFWXoUXTgSUv64iy5Vq6YXGxrzriWZP6mh2hvVhkbtzmndH4y5NZp0YHAhJLyaS6iEG1rK+UXkpLJYzhCaM7JbBG72YblXNeeTeRQ+F69ysnJw9/FZl4brrYe/6tY+putpy6iMZUHzsrVioJN9Gc/uY= 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 1696477467784179.52242487774538; Wed, 4 Oct 2023 20:44:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGH-0001Dd-Gj; Wed, 04 Oct 2023 23:42:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGF-0001D7-7U for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGD-0007yr-R3 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:50 -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_256_GCM_SHA384) id us-mta-196-FSkK6sFWPy-HU0h3q1V0Aw-1; Wed, 04 Oct 2023 23:42:37 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-326f05ed8f9so478398f8f.0 for ; Wed, 04 Oct 2023 20:42:37 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id c7-20020a5d4f07000000b00317e77106dbsm628436wru.48.2023.10.04.20.42.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:42:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477369; 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=ZPz4GnJfkENcst/YvbRzP3MUYaB7CKMx8l9nJBdXF6s=; b=UKy/ksWekDirJnj5y2rG8YFQsfDO0qn+i6iVQ1DxYn6kcFLrE8Lt7OYa/4SHbfp0pH/zFc gei2OyPDYZDALU3CPstRyk3OEFmiY5cqYp8pqytdUgpGfGWQ25dgvAoyEOqhbj206nhLrC YPNpG5vY7qBYLukbh0uup3fKylVOaG0= X-MC-Unique: FSkK6sFWPy-HU0h3q1V0Aw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477356; x=1697082156; 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=ZPz4GnJfkENcst/YvbRzP3MUYaB7CKMx8l9nJBdXF6s=; b=Vyg7uPOMm7eIewO0qpull5mlxTktenTBvYPKfZiDXcQIv3DmXZPpCzP8TKCvRE/rfZ cwp8pK/ZgHGFCdBKYtlSBa6gjNwhZOgZSaDKSYYSffOJRSiCJI88MFIW8+INwi+s2vzK kjllrc7LJ8oB9xqIARAfz1fDDUCYTfHx0V7kEU9alDqm0qA7/f/SvUytotbQPs3/it0f YJ8Iq3z07Sb6kBE8xUAo3BZRMDSKwm6/fbk+EJ3CANBpfQgNYjOvJRHXueH/L/1Hwz4K 6nNhOel+Dg9Dt1ze1A5BvfR8Tpy+58CziPkQnxTgPUuZ4amjbCHzH0jYVJjdOM1o8+/0 9NlQ== X-Gm-Message-State: AOJu0YyCRzrfeBIubbboOat8cqkPwXzOP3GcGQIC1Q5UYl9uultDFenv TSAUo9AOH4amL9j+5Io+8sWIziiNRTVAgZp3x2ENcVkPtSnm+mUUC4KdEWXQIavzKnueJMQ67Oa MlvM3alF4RJuB4fgYAtq7Ko+vm5SAM5M4+6SvDjBMTmdm/N/7y27uIQhX9gRsklRJ4DA4 X-Received: by 2002:a5d:6991:0:b0:320:976:f940 with SMTP id g17-20020a5d6991000000b003200976f940mr3665981wru.13.1696477356160; Wed, 04 Oct 2023 20:42:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHCI4zHIPwYLi9l+0QDcbzylXUhu64LG4WWlqXfS6EU7OnZ8TVAokrqG2PfE5iktRV0ChxjvQ== X-Received: by 2002:a5d:6991:0:b0:320:976:f940 with SMTP id g17-20020a5d6991000000b003200976f940mr3665970wru.13.1696477355843; Wed, 04 Oct 2023 20:42:35 -0700 (PDT) Date: Wed, 4 Oct 2023 23:42:32 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL v2 03/53] hw/virtio: Propagate page_mask to vhost_vdpa_section_end() Message-ID: <8b1a8884c6aacd9a35863d18a757be17ec7b1369.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477468211100001 From: Philippe Mathieu-Daud=C3=A9 Propagate TARGET_PAGE_MASK (see the previous commit for rationale). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20230710094931.84402-3-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/vhost-vdpa.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 118c588205..3ab0dc0b5b 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -31,11 +31,12 @@ * Return one past the end of the end of section. Be careful with uint64_t * conversions! */ -static Int128 vhost_vdpa_section_end(const MemoryRegionSection *section) +static Int128 vhost_vdpa_section_end(const MemoryRegionSection *section, + int page_mask) { Int128 llend =3D int128_make64(section->offset_within_address_space); llend =3D int128_add(llend, section->size); - llend =3D int128_and(llend, int128_exts64(TARGET_PAGE_MASK)); + llend =3D int128_and(llend, int128_exts64(page_mask)); =20 return llend; } @@ -69,7 +70,7 @@ static bool vhost_vdpa_listener_skipped_section(MemoryReg= ionSection *section, */ =20 if (!memory_region_is_iommu(section->mr)) { - llend =3D vhost_vdpa_section_end(section); + llend =3D vhost_vdpa_section_end(section, page_mask); if (int128_gt(llend, int128_make64(iova_max))) { error_report("RAM section out of device range (max=3D0x%" PRIx= 64 ", end addr=3D0x%" PRIx64 ")", @@ -331,7 +332,7 @@ static void vhost_vdpa_listener_region_add(MemoryListen= er *listener, } =20 iova =3D TARGET_PAGE_ALIGN(section->offset_within_address_space); - llend =3D vhost_vdpa_section_end(section); + llend =3D vhost_vdpa_section_end(section, TARGET_PAGE_MASK); if (int128_ge(int128_make64(iova), llend)) { return; } @@ -415,7 +416,7 @@ static void vhost_vdpa_listener_region_del(MemoryListen= er *listener, } =20 iova =3D TARGET_PAGE_ALIGN(section->offset_within_address_space); - llend =3D vhost_vdpa_section_end(section); + llend =3D vhost_vdpa_section_end(section, TARGET_PAGE_MASK); =20 trace_vhost_vdpa_listener_region_del(v, iova, int128_get64(int128_sub(llend, int128_one()))); --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477424; cv=none; d=zohomail.com; s=zohoarc; b=fyEWfDCztFOczGC5JPBCR2u8Dd0zqLtslkRencqtkZJltECzzm4hdPHy7izmJu+PQr4GLAd/U5481eaphFKUFtrrpzFgerOdRDSbnJ30NB2jmEYWa3PZPamKrjeH/MNouMgqSlC0U8EfW+bLzA6L1nmYLLXTiByID5eED/aF6PQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477424; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=g3XainUJVMKa+Hs4fQFDx+vYokCoMuU5n+RMYZYnWdU=; b=OmElkAZ3L/Ml6eliKPh+YNFNDxEzjxbTiJHsfBxiQnIOtw405Ll3Fj7ErJVEykfPclKd+bYsTS4jWaKWoxsZ9t2F4vBVJSIyZJty5k9xxL0dx7snFfWZ8YN1P0nssnpWndjbQwxDqdoaaJS2HhZXANEx0hRJ68yhB88gMsOZBMU= 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 1696477424763182.34401918961987; Wed, 4 Oct 2023 20:43:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGF-0001D8-8p; Wed, 04 Oct 2023 23:42:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGE-0001Ch-2f for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:50 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGC-0007yd-MJ for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:49 -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_256_GCM_SHA384) id us-mta-18-fnbvjn0bNjCYSit5ZEMirg-1; Wed, 04 Oct 2023 23:42:41 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-30e4943ca7fso462436f8f.3 for ; Wed, 04 Oct 2023 20:42:41 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id v2-20020a5d4b02000000b00326028b4dd5sm621110wrq.113.2023.10.04.20.42.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:42:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477367; 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=g3XainUJVMKa+Hs4fQFDx+vYokCoMuU5n+RMYZYnWdU=; b=CnO5siIQZFD+l3pBY2kYJBrw5BLyKycwGg8iqsuUSClU0/Dy06FWIPxfunb6NS6Ry/FTWY Q4qNBWePpHoNoewKUOio84F/dsWOfTaCzz98YKaiWm/oGZD7dOuXl2Z3+p2o4d7f+6jmXU +axfYsiUG/V683RXYubxCrWLenhAGdc= X-MC-Unique: fnbvjn0bNjCYSit5ZEMirg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477359; x=1697082159; 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=g3XainUJVMKa+Hs4fQFDx+vYokCoMuU5n+RMYZYnWdU=; b=cQr1rDJbS2idipLLdBLxlEDMOVycleCiN85IrcQJxIsV1ZNtlBtUtlA+PfMmeKIFvg 9+g+WVWVY/CCFWxDtN1dwJ9zRZyXvcNoiQ4MBI31/mzlMpdXvMqWd0BFGV55J4kScSg7 40/obFxetS1B3CmNceBeDCTrWQocq2XF9B5+ce4zv45/aXAbROnqqn/AyeInwR7YJNiG rgLuj21ZpjgMmCf25yrQ4qo6eGbgmZGsZpqRCYzKXoMQk5I61dzwA16W9W8rvEVVkTzj eYz40/xkAhIaLlY7Bv4TBE8j1cxo9AyW+G/URdzHk4S2WQ5sdxnXoK6v5Mq/nv3cHS+o 5TWw== X-Gm-Message-State: AOJu0YxvBLVoTU/T219lZ1bSd6e39b/bkJ76T8a2Ym9dm1O1EPrahLp6 QzYLGJ01D0eN7/5GEwUedrECxe1w2GBSq9tX7B2O1SvkJOpiYA0ZJS6IOmMhCzEvA5rJ8feXQq8 UVithWhfooJOqXenM5hNrYRgE2MpM1sSUf5JPaAlct57Z9tE+Xh1ynIKjSYnd+v6S/B3h X-Received: by 2002:a5d:46cf:0:b0:31f:8e7c:6ebe with SMTP id g15-20020a5d46cf000000b0031f8e7c6ebemr3975115wrs.5.1696477359748; Wed, 04 Oct 2023 20:42:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE1KErItLpYI5ZGQJyQjJN7K6UQDBrD8SO6xnsj4FRVoDXkVEp4TU1JdldPrTmelJ1JszRtaQ== X-Received: by 2002:a5d:46cf:0:b0:31f:8e7c:6ebe with SMTP id g15-20020a5d46cf000000b0031f8e7c6ebemr3975103wrs.5.1696477359540; Wed, 04 Oct 2023 20:42:39 -0700 (PDT) Date: Wed, 4 Oct 2023 23:42:35 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL v2 04/53] hw/virtio/vhost-vdpa: Inline TARGET_PAGE_ALIGN() macro Message-ID: <1dca36fb3d4f07354c9f6bc38b6e5c72fe1e9855.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477425590100003 From: Philippe Mathieu-Daud=C3=A9 Use TARGET_PAGE_SIZE to calculate TARGET_PAGE_ALIGN (see the rationale in previous commits). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20230710094931.84402-4-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/vhost-vdpa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 3ab0dc0b5b..0e0ed6d7ac 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -331,7 +331,7 @@ static void vhost_vdpa_listener_region_add(MemoryListen= er *listener, return; } =20 - iova =3D TARGET_PAGE_ALIGN(section->offset_within_address_space); + iova =3D ROUND_UP(section->offset_within_address_space, TARGET_PAGE_SI= ZE); llend =3D vhost_vdpa_section_end(section, TARGET_PAGE_MASK); if (int128_ge(int128_make64(iova), llend)) { return; @@ -415,7 +415,7 @@ static void vhost_vdpa_listener_region_del(MemoryListen= er *listener, return; } =20 - iova =3D TARGET_PAGE_ALIGN(section->offset_within_address_space); + iova =3D ROUND_UP(section->offset_within_address_space, TARGET_PAGE_SI= ZE); llend =3D vhost_vdpa_section_end(section, TARGET_PAGE_MASK); =20 trace_vhost_vdpa_listener_region_del(v, iova, --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477390; cv=none; d=zohomail.com; s=zohoarc; b=D3IZ+Xz9Tm5qVU5itrbvEOcL7yyHqIEy7lPYtVbD41NI6vVRU7mfH+HD7eVBr2KKk0nbE3aED5JT2tQ/WdD20lWSgQJzdnFXfGXh1/BRWkOhqRwpJSDTuBJgMCye5v0U3yrpARe98aj3sK/aVg3DBbkmWoLBqRWUUvKjRbLsSCw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477390; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Qziaif5jFzedGkKOEqZ/+iEupJFwfjmUm3vm30zmedI=; b=JqD+J4VHcQ93W4l9Cc/K3hlM89I12Nsm1fQ12nJ1iiPs1vReyajqGmJHbHATxPfayGOySL9X1pH32KeHMkgpeuHM8cu4vz5mD0Thm7HGYf0Jz99O5trmDQMFicvgv+xMerH8PnVeprtY1GYOzrDz04WH6VnjNf0aH0qZcCYstvk= 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 169647739057148.59853509709774; Wed, 4 Oct 2023 20:43:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGE-0001D4-NE; Wed, 04 Oct 2023 23:42:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGC-0001CT-KN for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGB-0007yD-3d for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:48 -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_256_GCM_SHA384) id us-mta-53-n8qsFWEzN1C_a9F48hl8ug-1; Wed, 04 Oct 2023 23:42:44 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-325a78c806eso400746f8f.1 for ; Wed, 04 Oct 2023 20:42:44 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id u17-20020a5d6ad1000000b003247f732c11sm624573wrw.76.2023.10.04.20.42.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:42:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477366; 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=Qziaif5jFzedGkKOEqZ/+iEupJFwfjmUm3vm30zmedI=; b=KnkOBc4U3/hVlFMwgGA6t+qBSyXlDjLFMXQtyK6TpcJhdlnnoCjyisPDQkgEj+sKz+BQvi Zu7Lj1i4ullyO1PvcWh63n/El0M1BN1Adhm6ej9Vw55VP2lI3N39f0UdE5oDrCVVusWYE4 /+zpnKagDP4kLZzwCZlKj07YzcIQ75k= X-MC-Unique: n8qsFWEzN1C_a9F48hl8ug-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477363; x=1697082163; 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=Qziaif5jFzedGkKOEqZ/+iEupJFwfjmUm3vm30zmedI=; b=aJpBc3XoemFDmwd9lF6EvEGuDFTDTJwirFl+YpOCV/uM2wp838o+Y5D/o6oAvm7WeY jIUKB84NUYsm7BGH3SqxUpjNBtCa6Y0s4zc8GmsFW1kowWBmB7/ueEjIA7pVhsRNjC7c tThKh/4gcfg+IkVdSzRYYNf3e+4h+wg9BPUkhwRMUa+/senpFnplbpEEfmXTmOaaTXVb o1thnNP+er1A8nYLT4YSG2tAfwXpx6DkvWNK6bIQQFfqVjxwgbQYDd14x8h/Wj7w/sef Gz/GUbgmQgjXyZvXWJcpFvO3RGs5k86Scy2p7H+Y5PZ5IwiCCo3zTHPIyjoyT8ySpqUj fZOA== X-Gm-Message-State: AOJu0YwW6dT+CTSeCzfY11faMW+jD4sSxdJlsgP3cVHBagZNyqwsEqgJ zS1CX3MN4+MI5Kn0u+QkVyGNFd4ecyRL/wTC1P+dvEQ1d2qZdhc8olRSJp4yrrhLQmYjH16ZLfU XajZA6yL5pj27FR43YOiLKHaKUJ+wDghAJ7fvDluOIMFTr0sFbNgnm/RSaq5KDGzlon5U X-Received: by 2002:a5d:4247:0:b0:31f:fa66:5852 with SMTP id s7-20020a5d4247000000b0031ffa665852mr3825758wrr.21.1696477362885; Wed, 04 Oct 2023 20:42:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFggBgr4928W+Me55dUB7eSrR0avfRvudmnPAcEEkbpQtB7+VZ6my3Oxwu1whaN9w004W3CLA== X-Received: by 2002:a5d:4247:0:b0:31f:fa66:5852 with SMTP id s7-20020a5d4247000000b0031ffa665852mr3825749wrr.21.1696477362608; Wed, 04 Oct 2023 20:42:42 -0700 (PDT) Date: Wed, 4 Oct 2023 23:42:39 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: [PULL v2 05/53] hw/virtio/vhost-vdpa: Use target-agnostic qemu_target_page_mask() Message-ID: <33f21860b766701f92c01094dcfc5390974d4020.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477391034100001 From: Philippe Mathieu-Daud=C3=A9 Similarly to commit e414ed2c47 ("virtio-iommu: Use target-agnostic qemu_target_page_mask"), Replace the target-specific TARGET_PAGE_SIZE and TARGET_PAGE_MASK definitions by a call to the runtime qemu_target_page_size() helper which is target agnostic. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230710094931.84402-5-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/vhost-vdpa.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 0e0ed6d7ac..50b932a930 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -14,6 +14,7 @@ #include #include #include +#include "exec/target_page.h" #include "hw/virtio/vhost.h" #include "hw/virtio/vhost-backend.h" #include "hw/virtio/virtio-net.h" @@ -23,7 +24,6 @@ #include "migration/blocker.h" #include "qemu/cutils.h" #include "qemu/main-loop.h" -#include "cpu.h" #include "trace.h" #include "qapi/error.h" =20 @@ -313,9 +313,11 @@ static void vhost_vdpa_listener_region_add(MemoryListe= ner *listener, Int128 llend, llsize; void *vaddr; int ret; + int page_size =3D qemu_target_page_size(); + int page_mask =3D -page_size; =20 if (vhost_vdpa_listener_skipped_section(section, v->iova_range.first, - v->iova_range.last, TARGET_PAG= E_MASK)) { + v->iova_range.last, page_mask)= ) { return; } if (memory_region_is_iommu(section->mr)) { @@ -323,16 +325,16 @@ static void vhost_vdpa_listener_region_add(MemoryList= ener *listener, return; } =20 - if (unlikely((section->offset_within_address_space & ~TARGET_PAGE_MASK= ) !=3D - (section->offset_within_region & ~TARGET_PAGE_MASK))) { + if (unlikely((section->offset_within_address_space & ~page_mask) !=3D + (section->offset_within_region & ~page_mask))) { trace_vhost_vdpa_listener_region_add_unaligned(v, section->mr->nam= e, - section->offset_within_address_space & ~TARGET_PAGE= _MASK, - section->offset_within_region & ~TARGET_PAGE_MASK); + section->offset_within_address_space & ~page_mask, + section->offset_within_region & ~page_mask); return; } =20 - iova =3D ROUND_UP(section->offset_within_address_space, TARGET_PAGE_SI= ZE); - llend =3D vhost_vdpa_section_end(section, TARGET_PAGE_MASK); + iova =3D ROUND_UP(section->offset_within_address_space, page_size); + llend =3D vhost_vdpa_section_end(section, page_mask); if (int128_ge(int128_make64(iova), llend)) { return; } @@ -398,25 +400,27 @@ static void vhost_vdpa_listener_region_del(MemoryList= ener *listener, hwaddr iova; Int128 llend, llsize; int ret; + int page_size =3D qemu_target_page_size(); + int page_mask =3D -page_size; =20 if (vhost_vdpa_listener_skipped_section(section, v->iova_range.first, - v->iova_range.last, TARGET_PAG= E_MASK)) { + v->iova_range.last, page_mask)= ) { return; } if (memory_region_is_iommu(section->mr)) { vhost_vdpa_iommu_region_del(listener, section); } =20 - if (unlikely((section->offset_within_address_space & ~TARGET_PAGE_MASK= ) !=3D - (section->offset_within_region & ~TARGET_PAGE_MASK))) { + if (unlikely((section->offset_within_address_space & ~page_mask) !=3D + (section->offset_within_region & ~page_mask))) { trace_vhost_vdpa_listener_region_del_unaligned(v, section->mr->nam= e, - section->offset_within_address_space & ~TARGET_PAGE= _MASK, - section->offset_within_region & ~TARGET_PAGE_MASK); + section->offset_within_address_space & ~page_mask, + section->offset_within_region & ~page_mask); return; } =20 - iova =3D ROUND_UP(section->offset_within_address_space, TARGET_PAGE_SI= ZE); - llend =3D vhost_vdpa_section_end(section, TARGET_PAGE_MASK); + iova =3D ROUND_UP(section->offset_within_address_space, page_size); + llend =3D vhost_vdpa_section_end(section, page_mask); =20 trace_vhost_vdpa_listener_region_del(v, iova, int128_get64(int128_sub(llend, int128_one()))); --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477471; cv=none; d=zohomail.com; s=zohoarc; b=ceZ5+EXGU/SKkcjTaTjEhbjnJ7aqHv4/WEDDvb9nV9ASUkt1kdABhsrCD9HU2NfUph+bu7rMRBvb2eG53TRMRQqG/YxwKDNVrAefpsWjNYmoXR/Ipwf/zAP+FgaFNuO/hFcLflT6/2OE0tS3FoTs8WUDIEqixYtrm4q+po+TUCQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477471; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NW2NOMzgBdCNK5ZXMj4UrgviAiZWrBVJEYGFoltgO4I=; b=jVPLPF34Ig4NqGW7SlKOG5Rj2FN8z6iAM7h7Jrmz9a8SX/a63WK3hRhqk9/gOf0wcXTJA9EhyC9A6HKefr8nWGsvxv5MMgZtB8NILkixMoXoUHrEDMUI/DvZcFxuLdAwObPrcuWigOgyLtvF8EvA9dQtNFP+eM8EmlLF90NcyyM= 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 1696477471433694.231227037434; Wed, 4 Oct 2023 20:44:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGP-0001IY-27; Wed, 04 Oct 2023 23:43:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGM-0001H4-9A for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:58 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGK-0007zN-Pz for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:57 -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_256_GCM_SHA384) id us-mta-49-lj1SKyVfPGK5XO4RmZ1HbA-1; Wed, 04 Oct 2023 23:42:49 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-3f42bcef2acso3144215e9.2 for ; Wed, 04 Oct 2023 20:42:49 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id x2-20020a1c7c02000000b003fe23b10fdfsm2760216wmc.36.2023.10.04.20.42.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:42:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477376; 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=NW2NOMzgBdCNK5ZXMj4UrgviAiZWrBVJEYGFoltgO4I=; b=gkj6KACqsmoUoFIcy4NfKY/yMeZeEz8yRNp27KYx6o/+VIssSEK9WKOuBy6ps+YCaHNAis iJ9ABkaoWfqark4SoiJ+fnd/AebpQQEMH1wBxEt2XePlpF0xJTPMDkTaiLPEBv6sHXMEjE 6s6I1HxiHqLRWm9uxWkMK9UIYQ0Xmcs= X-MC-Unique: lj1SKyVfPGK5XO4RmZ1HbA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477367; x=1697082167; 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=NW2NOMzgBdCNK5ZXMj4UrgviAiZWrBVJEYGFoltgO4I=; b=gLtUzq/WWzGlo6KKEOc/Md+WyMgxMSqLBR64CH3KETf9XfEnZ9NdSQLMPdDkvwpWbw JxeQVw2TplJ80nHnK2gDkQwKfFVFE03um7cBFjvGgNRA9Z0i5H2K1/edcD7+QosCd1En kqKbs16OPXxgdVYaNxPRuNmKHev8XoGNB/ZEXwTGmkFMxkvmPA8mC8DnMRynnSdti0yW 9DA7hTEsPMwXolVq1QCxWLiflB/y5BaeX/liFuS0SCK6NQITh9N1Dnla17QwLY6DYglQ 8KA/Y6S+AcO/baAHNHOmWKQciZwljQylrv+Fs2y7OyGd1jepo/3uaFUo4gNTspuQuMUD bnog== X-Gm-Message-State: AOJu0Yxg1doQBP6QkaJT9htM3G3lnOFLmW58xPjg4N1Ry/wMYEIo46F5 gMTOWUzo3WnRQ5I588stESyLDuLBQaJDjJ+ipoc07KzqeOQEj5msXGkQ6tiMJDZhwHqnXtWE29S rmsFul3OZkHAUB3qSXHW6QcpX3zStEp2BSto7ev+RwxxxJ5p6c6w6SMfR5ox1dvxhQ+KA X-Received: by 2002:a7b:c851:0:b0:406:5301:4320 with SMTP id c17-20020a7bc851000000b0040653014320mr3855862wml.16.1696477367089; Wed, 04 Oct 2023 20:42:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGvVfT5Ph3zky850qCUlsOmGrymPhsw/odVy9qMIpBfh8LB/8KbM6XZ7J3X4vTjLW8BKazvJQ== X-Received: by 2002:a7b:c851:0:b0:406:5301:4320 with SMTP id c17-20020a7bc851000000b0040653014320mr3855850wml.16.1696477366867; Wed, 04 Oct 2023 20:42:46 -0700 (PDT) Date: Wed, 4 Oct 2023 23:42:42 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson , Alex =?utf-8?Q?Benn=C3=A9e?= , Stefano Garzarella Subject: [PULL v2 06/53] hw/virtio: Build vhost-vdpa.o once Message-ID: <05632635f84311f241ad4dbffdb591f97339a5dc.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477472315100011 From: Philippe Mathieu-Daud=C3=A9 The previous commit removed the dependencies on the target-specific TARGET_PAGE_FOO macros. We can now move vhost-vdpa.c to the 'softmmu_virtio_ss' source set to build it once for all our targets. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20230710100432.84819-1-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build index 13e7c6c272..9737450afd 100644 --- a/hw/virtio/meson.build +++ b/hw/virtio/meson.build @@ -18,7 +18,8 @@ if have_vhost specific_virtio_ss.add(files('vhost-user.c')) endif if have_vhost_vdpa - specific_virtio_ss.add(files('vhost-vdpa.c', 'vhost-shadow-virtqueue.c= ')) + softmmu_virtio_ss.add(files('vhost-vdpa.c')) + specific_virtio_ss.add(files('vhost-shadow-virtqueue.c')) endif else softmmu_virtio_ss.add(files('vhost-stub.c')) --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477490; cv=none; d=zohomail.com; s=zohoarc; b=IvVYhJWcxE02+Yv8KUlRlVFf5h9be7N+6Qm5HPNZM8sWHidiq5LDEuwXlkqbeoQnxOtNiZI8Ry3aSOzpugwH9I1zIfJW6pw3ztxUk88GjuLrKnFuaDJRdCZ1bsm4vMWXf7yhLil57kK+ONAyFYVmwi/fYE43c6uR7U/CRngHqVA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477490; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3t8WNSkxqBpAo+9P1uf7C/JabXh9XbItEnrkHWLRDt4=; b=MtLdswTfufdy+vV4Lh7F1+AzWZMPomd4uFNoTGOhqGWQTUIAbsxnSSk/NXC9xUYeWhUiQmcMTZ4cmGBd/tPWkXv5nIUdWXtnjhlSd4wQ1bh0CLCe+5i6zYlaaZT/rHLcMOhvf+MbQFQButaCqDcSTHMWU6EbcfWXaOb5WThURhU= 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 169647749063429.954584726133135; Wed, 4 Oct 2023 20:44:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGL-0001GO-Pm; Wed, 04 Oct 2023 23:42:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGK-0001E1-3d for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:56 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGI-0007zC-Fw for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:42:55 -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_256_GCM_SHA384) id us-mta-630-frtlXVBzOq2KzkqcusBzlQ-1; Wed, 04 Oct 2023 23:42:52 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-4065d52a83aso4021055e9.1 for ; Wed, 04 Oct 2023 20:42:52 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id 10-20020a05600c228a00b004065d72ab19sm2831323wmf.0.2023.10.04.20.42.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:42:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477374; 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=3t8WNSkxqBpAo+9P1uf7C/JabXh9XbItEnrkHWLRDt4=; b=aCtCcmVbPHygB1qNdAsPR/sRPwzb5JqWacz+2aOTpj9tYWGlJcf6rp0kWSPMvJMgjkanMA nOWGraDRt01lKgmLX/UcXPxQYZ2d26gxAGB43j+k7HHybS/w+3Geuwt7BlpaP2jsf52i0+ PB43l43WjTBSZRIi0XoY/uSK8281vKM= X-MC-Unique: frtlXVBzOq2KzkqcusBzlQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477371; x=1697082171; 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=3t8WNSkxqBpAo+9P1uf7C/JabXh9XbItEnrkHWLRDt4=; b=bEPvgI5sffLdErIB8e+0P60xOzSKuu8YtDpW0omhihNQ3z/n92sHj8JPRM4mes2VWj qGGIjHVOrzpB26qP9xzaF0xGryTEpoEzXDE4V4YCskzpNGZJ7eXFnEcssLCj0Adg+UuG P7pI+qDEZN1KtvtJvRTLxBszvmuTefd+SST5vEAsNIk+c+BTmdH3o2ziHEfFf1hb4Koi zPoA77yti/XLfyk8wKFrKWjxkiONuspCT1tzGj9MwoNojZkpEgGkZoiWSjVx687cQym3 H/BDBdCDKhbjwLM90sxE4m58FlrzbT1Gc1tlALLrWrQnauoLtLIeQNrn5mtodCq9dE4Z C3Gg== X-Gm-Message-State: AOJu0YwwCYdhhm1tcuCMgO4GjXHOg1YocF8jPSOOeLplOKSTHlQ/Qmqz vCVfDfJreHyzQ3b6YxzIWQJ6C2gbmV9nPf1uNoOwGSb24+Z/2lR0awI/kXiJOzSpCoeLeEJqNwx SLg+xZRMBEoAKl/zcBpk7kJ1UvAxO5Hf0r7JGCOqLqNZmJmEEr2bC8sq6XiVkpdIi+Tkt X-Received: by 2002:a7b:cb8b:0:b0:3fb:e189:3532 with SMTP id m11-20020a7bcb8b000000b003fbe1893532mr3965523wmi.20.1696477371024; Wed, 04 Oct 2023 20:42:51 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHhptBq09U6H74taCgkBZ3196h/1OywTKVg9WXSOuBaM6jhGzaGk+ZpLZbSZZ8kEzLXs2/M7A== X-Received: by 2002:a7b:cb8b:0:b0:3fb:e189:3532 with SMTP id m11-20020a7bcb8b000000b003fbe1893532mr3965513wmi.20.1696477370734; Wed, 04 Oct 2023 20:42:50 -0700 (PDT) Date: Wed, 4 Oct 2023 23:42:47 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson , Alex =?utf-8?Q?Benn=C3=A9e?= , Stefano Garzarella Subject: [PULL v2 07/53] hw/virtio/meson: Rename softmmu_virtio_ss[] -> system_virtio_ss[] Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477492813100003 From: Philippe Mathieu-Daud=C3=A9 Similarly to commit de6cd7599b ("meson: Replace softmmu_ss -> system_ss"), rename the virtio source set common to all system emulation as 'system_virtio_ss[]'. This is clearer because softmmu can be used for user emulation. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20230710100510.84862-1-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/meson.build | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build index 9737450afd..4e81d10834 100644 --- a/hw/virtio/meson.build +++ b/hw/virtio/meson.build @@ -1,28 +1,28 @@ -softmmu_virtio_ss =3D ss.source_set() -softmmu_virtio_ss.add(files('virtio-bus.c')) -softmmu_virtio_ss.add(when: 'CONFIG_VIRTIO_PCI', if_true: files('virtio-pc= i.c')) -softmmu_virtio_ss.add(when: 'CONFIG_VIRTIO_MMIO', if_true: files('virtio-m= mio.c')) -softmmu_virtio_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('virtio= -crypto.c')) -softmmu_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK_COMMON', if_true: files('v= host-vsock-common.c')) -softmmu_virtio_ss.add(when: 'CONFIG_VIRTIO_IOMMU', if_true: files('virtio-= iommu.c')) -softmmu_virtio_ss.add(when: 'CONFIG_VHOST_VDPA_DEV', if_true: files('vdpa-= dev.c')) +system_virtio_ss =3D ss.source_set() +system_virtio_ss.add(files('virtio-bus.c')) +system_virtio_ss.add(when: 'CONFIG_VIRTIO_PCI', if_true: files('virtio-pci= .c')) +system_virtio_ss.add(when: 'CONFIG_VIRTIO_MMIO', if_true: files('virtio-mm= io.c')) +system_virtio_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('virtio-= crypto.c')) +system_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK_COMMON', if_true: files('vh= ost-vsock-common.c')) +system_virtio_ss.add(when: 'CONFIG_VIRTIO_IOMMU', if_true: files('virtio-i= ommu.c')) +system_virtio_ss.add(when: 'CONFIG_VHOST_VDPA_DEV', if_true: files('vdpa-d= ev.c')) =20 specific_virtio_ss =3D ss.source_set() specific_virtio_ss.add(files('virtio.c')) specific_virtio_ss.add(files('virtio-config-io.c', 'virtio-qmp.c')) =20 if have_vhost - softmmu_virtio_ss.add(files('vhost.c')) + system_virtio_ss.add(files('vhost.c')) specific_virtio_ss.add(files('vhost-backend.c', 'vhost-iova-tree.c')) if have_vhost_user specific_virtio_ss.add(files('vhost-user.c')) endif if have_vhost_vdpa - softmmu_virtio_ss.add(files('vhost-vdpa.c')) + system_virtio_ss.add(files('vhost-vdpa.c')) specific_virtio_ss.add(files('vhost-shadow-virtqueue.c')) endif else - softmmu_virtio_ss.add(files('vhost-stub.c')) + system_virtio_ss.add(files('vhost-stub.c')) endif =20 specific_virtio_ss.add(when: 'CONFIG_VIRTIO_BALLOON', if_true: files('virt= io-balloon.c')) @@ -68,7 +68,7 @@ virtio_pci_ss.add(when: 'CONFIG_VIRTIO_MD', if_true: file= s('virtio-md-pci.c')) =20 specific_virtio_ss.add_all(when: 'CONFIG_VIRTIO_PCI', if_true: virtio_pci_= ss) =20 -system_ss.add_all(when: 'CONFIG_VIRTIO', if_true: softmmu_virtio_ss) +system_ss.add_all(when: 'CONFIG_VIRTIO', if_true: system_virtio_ss) system_ss.add(when: 'CONFIG_VIRTIO', if_false: files('vhost-stub.c')) system_ss.add(when: 'CONFIG_VIRTIO', if_false: files('virtio-stub.c')) system_ss.add(when: 'CONFIG_ALL', if_true: files('vhost-stub.c')) --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477469; cv=none; d=zohomail.com; s=zohoarc; b=eDHVXafNSAS9TFCAzDU4yKEIUs91lqBV2iSuAwZABCN9wX6tLlJiiudWHeip7O8Cc6t4rW6cBrFlt7q37UwAjanD/pyCgVpwYWlMzt6tqO6HzMpmwOerMPgowgHLAFmIWx+2Mus02XAb4coORQyq5A6uK4AzrkTMyMS+h5TBLgM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477469; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kYVXronMIRD9/a7cn4RGqS0rmhPV3UYDjMlYv2wpbt4=; b=MqOtwTdzGVruRc1hXCS6rFoxxdR23zzyaBET9wjHxENUedR/hxRd3hMCGo8MREXIa6o+P2QTHuAi6+pk+ieh50r9tGTAeWW3pMpyjgTh1ztDMtF8Y4oTIzxVF7MoXPq0BaNFFfq0cCFiSiHhDVamMIRG4utKL9fID5lkzVR1xco= 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 1696477469321786.6882775223319; Wed, 4 Oct 2023 20:44:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGg-0001Y4-F4; Wed, 04 Oct 2023 23:43:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGf-0001XM-9q for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGc-0008Ax-N1 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:16 -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_256_GCM_SHA384) id us-mta-693-7P1AUHSxMF-Cn01-WjUlkw-1; Wed, 04 Oct 2023 23:42:57 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-3fef5403093so2504855e9.0 for ; Wed, 04 Oct 2023 20:42:57 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id c5-20020a05600c0ac500b0040586360a36sm2765572wmr.17.2023.10.04.20.42.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:42:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477393; 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=kYVXronMIRD9/a7cn4RGqS0rmhPV3UYDjMlYv2wpbt4=; b=DH5tGlpbxN2d57f00VDtsGElO8Y+g86SGhYv2feO6CDisNo+oA/fwOSUmQmJUGYwZcIwD+ 4VDru4OcKgqcJcdeZocsjYJvtjZeR1WrbUqoeFsPF9US3JqKbR7P2J0PfQHfctFe3yiTEm z859WxGv/7BU6Vw8ZwFn2OGnf8E21Dc= X-MC-Unique: 7P1AUHSxMF-Cn01-WjUlkw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477376; x=1697082176; 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=kYVXronMIRD9/a7cn4RGqS0rmhPV3UYDjMlYv2wpbt4=; b=Lu8sGleylx3omV+uOu+31S68rLEDV+/F7Xagb1YJ2nMVPB7sVb53zaOmDSFbMwBLr+ B9DgyluED7iz0zSSb3aCpuM6V8OnAW773A3yERPtyiRz5JTPrY6p2nnEcLdmYlDsqAJa H3+82c8xrvpgcvhUKL5I30hCtD/pDYjZ5d99nUUR/8Kb3crY0X4BYVIBrtitwGsZSASy 34tzvKKbP9C5WSMhkP0nUDbYmCm9wzBlXh1CZQ1JCnhfFNmNOwM9ErdF4NGu8Y9fLhyq GiHMJH6J+Q1bcHDQjg3Eg3ZApV0eAF3LHx/dwwrznkfHFM2KkgZXla7FGdDvWdKoU1rO l8YA== X-Gm-Message-State: AOJu0Yytp+zelNNxBsIRio75NhD65944RYFTvgp7cX1ePC2W19h2Set8 rkKYHEPFOX86SAJ0jnGf37yz72b0ftVzQUhg3qsT5Cdji0bXcTkAgbp+84xYx3i9KqKRVcc1J+j kAEAx7Nk3emA9rhpocyMH3SSaf7pMmPxJOpyDpEqA6F3OCVdzZ0IxhIe4dWyyEnbO98In X-Received: by 2002:a05:600c:21ca:b0:405:3924:3cad with SMTP id x10-20020a05600c21ca00b0040539243cadmr1021083wmj.15.1696477375982; Wed, 04 Oct 2023 20:42:55 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEo10IP0g038utqIjZGsIpT+Wrf5jr0kAXKzGAc31W/FSg7Zqd/qybzyxIrUYHDKrZvBKbn1g== X-Received: by 2002:a05:600c:21ca:b0:405:3924:3cad with SMTP id x10-20020a05600c21ca00b0040539243cadmr1021069wmj.15.1696477375474; Wed, 04 Oct 2023 20:42:55 -0700 (PDT) Date: Wed, 4 Oct 2023 23:42:51 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= Subject: [PULL v2 08/53] virtio: add vhost-user-base and a generic vhost-user-device Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477470269100005 From: Alex Benn=C3=A9e In theory we shouldn't need to repeat so much boilerplate to support vhost-user backends. This provides a generic vhost-user-base QOM object and a derived vhost-user-device for which the user needs to provide the few bits of information that aren't currently provided by the vhost-user protocol. This should provide a baseline implementation from which the other vhost-user stub can specialise. Signed-off-by: Alex Benn=C3=A9e Message-Id: <20230710153522.3469097-8-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/vhost-user-device.h | 45 ++++ hw/virtio/vhost-user-device-pci.c | 71 ++++++ hw/virtio/vhost-user-device.c | 324 ++++++++++++++++++++++++++ hw/virtio/meson.build | 3 + 4 files changed, 443 insertions(+) create mode 100644 include/hw/virtio/vhost-user-device.h create mode 100644 hw/virtio/vhost-user-device-pci.c create mode 100644 hw/virtio/vhost-user-device.c diff --git a/include/hw/virtio/vhost-user-device.h b/include/hw/virtio/vhos= t-user-device.h new file mode 100644 index 0000000000..9105011e25 --- /dev/null +++ b/include/hw/virtio/vhost-user-device.h @@ -0,0 +1,45 @@ +/* + * Vhost-user generic virtio device + * + * Copyright (c) 2023 Linaro Ltd + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef QEMU_VHOST_USER_DEVICE_H +#define QEMU_VHOST_USER_DEVICE_H + +#include "hw/virtio/vhost.h" +#include "hw/virtio/vhost-user.h" + +#define TYPE_VHOST_USER_BASE "vhost-user-base" + +OBJECT_DECLARE_TYPE(VHostUserBase, VHostUserBaseClass, VHOST_USER_BASE) + +struct VHostUserBase { + VirtIODevice parent; + /* Properties */ + CharBackend chardev; + uint16_t virtio_id; + uint32_t num_vqs; + /* State tracking */ + VhostUserState vhost_user; + struct vhost_virtqueue *vhost_vq; + struct vhost_dev vhost_dev; + GPtrArray *vqs; + bool connected; +}; + + /* needed so we can use the base realize after specialisation + tweaks */ +struct VHostUserBaseClass { + /*< private >*/ + VirtioDeviceClass parent_class; + /*< public >*/ + DeviceRealize parent_realize; +}; + +/* shared for the benefit of the derived pci class */ +#define TYPE_VHOST_USER_DEVICE "vhost-user-device" + +#endif /* QEMU_VHOST_USER_DEVICE_H */ diff --git a/hw/virtio/vhost-user-device-pci.c b/hw/virtio/vhost-user-devic= e-pci.c new file mode 100644 index 0000000000..41f9b7905b --- /dev/null +++ b/hw/virtio/vhost-user-device-pci.c @@ -0,0 +1,71 @@ +/* + * Vhost-user generic virtio device PCI glue + * + * Copyright (c) 2023 Linaro Ltd + * Author: Alex Benn=C3=A9e + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "hw/qdev-properties.h" +#include "hw/virtio/vhost-user-device.h" +#include "hw/virtio/virtio-pci.h" + +struct VHostUserDevicePCI { + VirtIOPCIProxy parent_obj; + VHostUserBase vub; +}; + +typedef struct VHostUserDevicePCI VHostUserDevicePCI; + +#define TYPE_VHOST_USER_DEVICE_PCI "vhost-user-device-pci-base" + +DECLARE_INSTANCE_CHECKER(VHostUserDevicePCI, + VHOST_USER_DEVICE_PCI, + TYPE_VHOST_USER_DEVICE_PCI) + +static void vhost_user_device_pci_realize(VirtIOPCIProxy *vpci_dev, Error = **errp) +{ + VHostUserDevicePCI *dev =3D VHOST_USER_DEVICE_PCI(vpci_dev); + DeviceState *vdev =3D DEVICE(&dev->vub); + + vpci_dev->nvectors =3D 1; + qdev_realize(vdev, BUS(&vpci_dev->bus), errp); +} + +static void vhost_user_device_pci_class_init(ObjectClass *klass, void *dat= a) +{ + 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_device_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_device_pci_instance_init(Object *obj) +{ + VHostUserDevicePCI *dev =3D VHOST_USER_DEVICE_PCI(obj); + + virtio_instance_init_common(obj, &dev->vub, sizeof(dev->vub), + TYPE_VHOST_USER_DEVICE); +} + +static const VirtioPCIDeviceTypeInfo vhost_user_device_pci_info =3D { + .base_name =3D TYPE_VHOST_USER_DEVICE_PCI, + .non_transitional_name =3D "vhost-user-device-pci", + .instance_size =3D sizeof(VHostUserDevicePCI), + .instance_init =3D vhost_user_device_pci_instance_init, + .class_init =3D vhost_user_device_pci_class_init, +}; + +static void vhost_user_device_pci_register(void) +{ + virtio_pci_types_register(&vhost_user_device_pci_info); +} + +type_init(vhost_user_device_pci_register); diff --git a/hw/virtio/vhost-user-device.c b/hw/virtio/vhost-user-device.c new file mode 100644 index 0000000000..b0239fa033 --- /dev/null +++ b/hw/virtio/vhost-user-device.c @@ -0,0 +1,324 @@ +/* + * Generic vhost-user stub. This can be used to connect to any + * vhost-user backend. All configuration details must be handled by + * the vhost-user daemon itself + * + * Copyright (c) 2023 Linaro Ltd + * Author: Alex Benn=C3=A9e + * + * 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-device.h" +#include "qemu/error-report.h" + +static void vub_start(VirtIODevice *vdev) +{ + BusState *qbus =3D BUS(qdev_get_parent_bus(DEVICE(vdev))); + VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); + VHostUserBase *vub =3D VHOST_USER_BASE(vdev); + int ret, i; + + if (!k->set_guest_notifiers) { + error_report("binding does not support guest notifiers"); + return; + } + + ret =3D vhost_dev_enable_notifiers(&vub->vhost_dev, vdev); + if (ret < 0) { + error_report("Error enabling host notifiers: %d", -ret); + return; + } + + ret =3D k->set_guest_notifiers(qbus->parent, vub->vhost_dev.nvqs, true= ); + if (ret < 0) { + error_report("Error binding guest notifier: %d", -ret); + goto err_host_notifiers; + } + + vub->vhost_dev.acked_features =3D vdev->guest_features; + + ret =3D vhost_dev_start(&vub->vhost_dev, vdev, true); + if (ret < 0) { + error_report("Error starting vhost-user-device: %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 < vub->vhost_dev.nvqs; i++) { + vhost_virtqueue_mask(&vub->vhost_dev, vdev, i, false); + } + + return; + +err_guest_notifiers: + k->set_guest_notifiers(qbus->parent, vub->vhost_dev.nvqs, false); +err_host_notifiers: + vhost_dev_disable_notifiers(&vub->vhost_dev, vdev); +} + +static void vub_stop(VirtIODevice *vdev) +{ + VHostUserBase *vub =3D VHOST_USER_BASE(vdev); + BusState *qbus =3D BUS(qdev_get_parent_bus(DEVICE(vdev))); + VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); + int ret; + + if (!k->set_guest_notifiers) { + return; + } + + vhost_dev_stop(&vub->vhost_dev, vdev, true); + + ret =3D k->set_guest_notifiers(qbus->parent, vub->vhost_dev.nvqs, fals= e); + if (ret < 0) { + error_report("vhost guest notifier cleanup failed: %d", ret); + return; + } + + vhost_dev_disable_notifiers(&vub->vhost_dev, vdev); +} + +static void vub_set_status(VirtIODevice *vdev, uint8_t status) +{ + VHostUserBase *vub =3D VHOST_USER_BASE(vdev); + bool should_start =3D virtio_device_should_start(vdev, status); + + if (vhost_dev_is_started(&vub->vhost_dev) =3D=3D should_start) { + return; + } + + if (should_start) { + vub_start(vdev); + } else { + vub_stop(vdev); + } +} + +/* + * For an implementation where everything is delegated to the backend + * we don't do anything other than return the full feature set offered + * by the daemon (module the reserved feature bit). + */ +static uint64_t vub_get_features(VirtIODevice *vdev, + uint64_t requested_features, Error **errp) +{ + VHostUserBase *vub =3D VHOST_USER_BASE(vdev); + /* This should be set when the vhost connection initialises */ + g_assert(vub->vhost_dev.features); + return vub->vhost_dev.features & ~(1ULL << VHOST_USER_F_PROTOCOL_FEATU= RES); +} + +static void vub_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 do_vhost_user_cleanup(VirtIODevice *vdev, VHostUserBase *vub) +{ + vhost_user_cleanup(&vub->vhost_user); + + for (int i =3D 0; i < vub->num_vqs; i++) { + VirtQueue *vq =3D g_ptr_array_index(vub->vqs, i); + virtio_delete_queue(vq); + } + + virtio_cleanup(vdev); +} + +static int vub_connect(DeviceState *dev) +{ + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VHostUserBase *vub =3D VHOST_USER_BASE(vdev); + + if (vub->connected) { + return 0; + } + vub->connected =3D true; + + /* restore vhost state */ + if (virtio_device_started(vdev, vdev->status)) { + vub_start(vdev); + } + + return 0; +} + +static void vub_disconnect(DeviceState *dev) +{ + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VHostUserBase *vub =3D VHOST_USER_BASE(vdev); + + if (!vub->connected) { + return; + } + vub->connected =3D false; + + if (vhost_dev_is_started(&vub->vhost_dev)) { + vub_stop(vdev); + } +} + +static void vub_event(void *opaque, QEMUChrEvent event) +{ + DeviceState *dev =3D opaque; + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VHostUserBase *vub =3D VHOST_USER_BASE(vdev); + + switch (event) { + case CHR_EVENT_OPENED: + if (vub_connect(dev) < 0) { + qemu_chr_fe_disconnect(&vub->chardev); + return; + } + break; + case CHR_EVENT_CLOSED: + vub_disconnect(dev); + break; + case CHR_EVENT_BREAK: + case CHR_EVENT_MUX_IN: + case CHR_EVENT_MUX_OUT: + /* Ignore */ + break; + } +} + +static void vub_device_realize(DeviceState *dev, Error **errp) +{ + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VHostUserBase *vub =3D VHOST_USER_BASE(dev); + int ret; + + if (!vub->chardev.chr) { + error_setg(errp, "vhost-user-device: missing chardev"); + return; + } + + if (!vub->virtio_id) { + error_setg(errp, "vhost-user-device: need to define device id"); + return; + } + + if (!vub->num_vqs) { + vub->num_vqs =3D 1; /* reasonable default? */ + } + + if (!vhost_user_init(&vub->vhost_user, &vub->chardev, errp)) { + return; + } + + virtio_init(vdev, vub->virtio_id, 0); + + /* + * Disable guest notifiers, by default all notifications will be via t= he + * asynchronous vhost-user socket. + */ + vdev->use_guest_notifier_mask =3D false; + + /* Allocate queues */ + vub->vqs =3D g_ptr_array_sized_new(vub->num_vqs); + for (int i =3D 0; i < vub->num_vqs; i++) { + g_ptr_array_add(vub->vqs, + virtio_add_queue(vdev, 4, vub_handle_output)); + } + + vub->vhost_dev.nvqs =3D vub->num_vqs; + vub->vhost_dev.vqs =3D g_new0(struct vhost_virtqueue, vub->vhost_dev.n= vqs); + + /* connect to backend */ + ret =3D vhost_dev_init(&vub->vhost_dev, &vub->vhost_user, + VHOST_BACKEND_TYPE_USER, 0, errp); + + if (ret < 0) { + do_vhost_user_cleanup(vdev, vub); + } + + qemu_chr_fe_set_handlers(&vub->chardev, NULL, NULL, vub_event, NULL, + dev, NULL, true); +} + +static void vub_device_unrealize(DeviceState *dev) +{ + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VHostUserBase *vub =3D VHOST_USER_BASE(dev); + struct vhost_virtqueue *vhost_vqs =3D vub->vhost_dev.vqs; + + /* This will stop vhost backend if appropriate. */ + vub_set_status(vdev, 0); + vhost_dev_cleanup(&vub->vhost_dev); + g_free(vhost_vqs); + do_vhost_user_cleanup(vdev, vub); +} + +static void vub_class_init(ObjectClass *klass, void *data) +{ + VirtioDeviceClass *vdc =3D VIRTIO_DEVICE_CLASS(klass); + + vdc->realize =3D vub_device_realize; + vdc->unrealize =3D vub_device_unrealize; + vdc->get_features =3D vub_get_features; + vdc->set_status =3D vub_set_status; +} + +static const TypeInfo vub_info =3D { + .name =3D TYPE_VHOST_USER_BASE, + .parent =3D TYPE_VIRTIO_DEVICE, + .instance_size =3D sizeof(VHostUserBase), + .class_init =3D vub_class_init, + .class_size =3D sizeof(VHostUserBaseClass), + .abstract =3D true +}; + + +/* + * The following is a concrete implementation of the base class which + * allows the user to define the key parameters via the command line. + */ + +static const VMStateDescription vud_vmstate =3D { + .name =3D "vhost-user-device", + .unmigratable =3D 1, +}; + +static Property vud_properties[] =3D { + DEFINE_PROP_CHR("chardev", VHostUserBase, chardev), + DEFINE_PROP_UINT16("virtio-id", VHostUserBase, virtio_id, 0), + DEFINE_PROP_UINT32("num_vqs", VHostUserBase, num_vqs, 1), + DEFINE_PROP_END_OF_LIST(), +}; + +static void vud_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + + device_class_set_props(dc, vud_properties); + dc->vmsd =3D &vud_vmstate; + set_bit(DEVICE_CATEGORY_INPUT, dc->categories); +} + +static const TypeInfo vud_info =3D { + .name =3D TYPE_VHOST_USER_DEVICE, + .parent =3D TYPE_VHOST_USER_BASE, + .instance_size =3D sizeof(VHostUserBase), + .class_init =3D vud_class_init, + .class_size =3D sizeof(VHostUserBaseClass), +}; + +static void vu_register_types(void) +{ + type_register_static(&vub_info); + type_register_static(&vud_info); +} + +type_init(vu_register_types) diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build index 4e81d10834..c0055a7832 100644 --- a/hw/virtio/meson.build +++ b/hw/virtio/meson.build @@ -15,7 +15,10 @@ if have_vhost system_virtio_ss.add(files('vhost.c')) specific_virtio_ss.add(files('vhost-backend.c', 'vhost-iova-tree.c')) if have_vhost_user + # fixme - this really should be generic specific_virtio_ss.add(files('vhost-user.c')) + system_virtio_ss.add(files('vhost-user-device.c')) + system_virtio_ss.add(when: 'CONFIG_VIRTIO_PCI', if_true: files('vhost-= user-device-pci.c')) endif if have_vhost_vdpa system_virtio_ss.add(files('vhost-vdpa.c')) --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477609; cv=none; d=zohomail.com; s=zohoarc; b=BCbuXos2s7BIqAlXFn0o1uk4lTRi7Z9iMYsTg336nznz7QAr4tXhOmRxNH8dqpgNGeccSwvg8VkdN8GMD4KHhYJAT6ZdA30Sx0UNmYtOButHdfRDH3vazcIuGd9ugNOH2cQm7SnMP7nKGDt0/+LAD0377ymKU+J1L6CxSPzW2OM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477609; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VdkDMoSG0ALTkXUGlr32gq6+4cpswzQxj8odNE61Qs8=; b=mZUfRZG5hmjjQXxswRxvmKc7LoZtTLuhcCS6ukz91YPBY4XgT6t4LFS9tjORpCc7UkSjofN+kJgTd1tQg9ZfXxWvqR5lj3YiOjdmZSEYL3AokPyvPL1oT8ptEyZHFfM1ykJsNk3SPj3tAeK2cb60OFCD7Qw4omUDkfCFBkFUl4g= 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 1696477609371859.1945772096242; Wed, 4 Oct 2023 20:46:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGt-0001kX-Dp; Wed, 04 Oct 2023 23:43:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGr-0001hW-I3 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:29 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGp-00008q-OY for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:29 -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_256_GCM_SHA384) id us-mta-328-bMnsi3nAPLGi0j89S_jJQw-1; Wed, 04 Oct 2023 23:43:01 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-32588c87716so430646f8f.1 for ; Wed, 04 Oct 2023 20:43:01 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id p14-20020a056000018e00b0031984b370f2sm632633wrx.47.2023.10.04.20.42.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:42:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477404; 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=VdkDMoSG0ALTkXUGlr32gq6+4cpswzQxj8odNE61Qs8=; b=b+ENg8Gkeez0uM84C0e3SqesSOQtIjAlzSUxIiMBrT/DBmNOU1U/aovh/NgL6OyduNiMzt cAelQO+PQOP66QB5ogR+7eJ5X/Mf1ROTJqcYOdKmTAyNWATCfwC3ojc9HZ1qVxHSy4TwkH wIsC/34xut5r00V2zn5NEctjmEs8/n8= X-MC-Unique: bMnsi3nAPLGi0j89S_jJQw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477380; x=1697082180; 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=VdkDMoSG0ALTkXUGlr32gq6+4cpswzQxj8odNE61Qs8=; b=qv/0rbFysPr0b7ZkkPW2lk3HqHnZuJjnYUjYK0BB0CMaMFkcTV3Gkn/ltWJo/QeLeS ybfYmFFVt13vCdZZhHKBj0+P3TzB53jW+gncvi+hEe8GqHt1EiS3M3V3SDIBYuoow8yi 7dGkSKtzKV2wbJ7Qd2tDFSmYdKdShq6RYM4sgW6SX1LeON08Wp1Hd3Juh3+ldg2mlui5 A2ATtdLGUa6pkVuBkaklPVDITVkHDOJg9ZGw07/jHEOAvMhGzN/3vstJQcL9AV8cMLY/ 33aeQhyww1gMDOVdswj8ml7oUEOJeQaF4krLAI7zSln5ahKOHRpHJKA1VJWeLanryJiq DgZA== X-Gm-Message-State: AOJu0YzB2vZ9AwGwx3jaUbPnuu5YLGpRYJHYYcWLRQU/VuXxFpKrvrlj vtVWykLKa5JsuQw8+1XTaYpuVCEB/0g3OFFaIWLc5Drc7/8KQSqf+e/925GUVEkvIc6lDdxpOfJ 7XOyOzt3r0rDI/i0FA8eWLhNpMcn/+kW9oqBjo1PlLegAoNwrUUQiQ7DohKOKljwbau55 X-Received: by 2002:adf:f286:0:b0:31f:db1b:7296 with SMTP id k6-20020adff286000000b0031fdb1b7296mr3834108wro.21.1696477379834; Wed, 04 Oct 2023 20:42:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHkONeCN8cY9mi+KGPe1bRx5/TiXl93iR27le+VC1JDIIRm2q2VxHA230oRi+aILvdPcthHxA== X-Received: by 2002:adf:f286:0:b0:31f:db1b:7296 with SMTP id k6-20020adff286000000b0031fdb1b7296mr3834100wro.21.1696477379520; Wed, 04 Oct 2023 20:42:59 -0700 (PDT) Date: Wed, 4 Oct 2023 23:42:56 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Alex =?utf-8?Q?Benn=C3=A9e?= Subject: [PULL v2 09/53] hw/virtio: add config support to vhost-user-device Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477610706100008 From: Alex Benn=C3=A9e To use the generic device the user will need to provide the config region size via the command line. We also add a notifier so the guest can be pinged if the remote daemon updates the config. With these changes: -device vhost-user-device-pci,virtio-id=3D41,num_vqs=3D2,config_size=3D8 is equivalent to: -device vhost-user-gpio-pci Signed-off-by: Alex Benn=C3=A9e Message-Id: <20230710153522.3469097-11-alex.bennee@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/vhost-user-device.h | 1 + hw/virtio/vhost-user-device.c | 58 ++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/include/hw/virtio/vhost-user-device.h b/include/hw/virtio/vhos= t-user-device.h index 9105011e25..3ddf88a146 100644 --- a/include/hw/virtio/vhost-user-device.h +++ b/include/hw/virtio/vhost-user-device.h @@ -22,6 +22,7 @@ struct VHostUserBase { CharBackend chardev; uint16_t virtio_id; uint32_t num_vqs; + uint32_t config_size; /* State tracking */ VhostUserState vhost_user; struct vhost_virtqueue *vhost_vq; diff --git a/hw/virtio/vhost-user-device.c b/hw/virtio/vhost-user-device.c index b0239fa033..2b028cae08 100644 --- a/hw/virtio/vhost-user-device.c +++ b/hw/virtio/vhost-user-device.c @@ -117,6 +117,42 @@ static uint64_t vub_get_features(VirtIODevice *vdev, return vub->vhost_dev.features & ~(1ULL << VHOST_USER_F_PROTOCOL_FEATU= RES); } =20 +/* + * To handle VirtIO config we need to know the size of the config + * space. We don't cache the config but re-fetch it from the guest + * every time in case something has changed. + */ +static void vub_get_config(VirtIODevice *vdev, uint8_t *config) +{ + VHostUserBase *vub =3D VHOST_USER_BASE(vdev); + Error *local_err =3D NULL; + + /* + * There will have been a warning during vhost_dev_init, but lets + * assert here as nothing will go right now. + */ + g_assert(vub->config_size && vub->vhost_user.supports_config =3D=3D tr= ue); + + if (vhost_dev_get_config(&vub->vhost_dev, config, + vub->config_size, &local_err)) { + error_report_err(local_err); + } +} + +/* + * When the daemon signals an update to the config we just need to + * signal the guest as we re-read the config on demand above. + */ +static int vub_config_notifier(struct vhost_dev *dev) +{ + virtio_notify_config(dev->vdev); + return 0; +} + +const VhostDevConfigOps vub_config_ops =3D { + .vhost_dev_config_notifier =3D vub_config_notifier, +}; + static void vub_handle_output(VirtIODevice *vdev, VirtQueue *vq) { /* @@ -141,12 +177,21 @@ static int vub_connect(DeviceState *dev) { VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); VHostUserBase *vub =3D VHOST_USER_BASE(vdev); + struct vhost_dev *vhost_dev =3D &vub->vhost_dev; =20 if (vub->connected) { return 0; } vub->connected =3D true; =20 + /* + * If we support VHOST_USER_GET_CONFIG we must enable the notifier + * so we can ping the guest when it updates. + */ + if (vub->vhost_user.supports_config) { + vhost_dev_set_config_notifier(vhost_dev, &vub_config_ops); + } + /* restore vhost state */ if (virtio_device_started(vdev, vdev->status)) { vub_start(vdev); @@ -214,11 +259,20 @@ static void vub_device_realize(DeviceState *dev, Erro= r **errp) vub->num_vqs =3D 1; /* reasonable default? */ } =20 + /* + * We can't handle config requests unless we know the size of the + * config region, specialisations of the vhost-user-device will be + * able to set this. + */ + if (vub->config_size) { + vub->vhost_user.supports_config =3D true; + } + if (!vhost_user_init(&vub->vhost_user, &vub->chardev, errp)) { return; } =20 - virtio_init(vdev, vub->virtio_id, 0); + virtio_init(vdev, vub->virtio_id, vub->config_size); =20 /* * Disable guest notifiers, by default all notifications will be via t= he @@ -268,6 +322,7 @@ static void vub_class_init(ObjectClass *klass, void *da= ta) vdc->realize =3D vub_device_realize; vdc->unrealize =3D vub_device_unrealize; vdc->get_features =3D vub_get_features; + vdc->get_config =3D vub_get_config; vdc->set_status =3D vub_set_status; } =20 @@ -295,6 +350,7 @@ static Property vud_properties[] =3D { DEFINE_PROP_CHR("chardev", VHostUserBase, chardev), DEFINE_PROP_UINT16("virtio-id", VHostUserBase, virtio_id, 0), DEFINE_PROP_UINT32("num_vqs", VHostUserBase, num_vqs, 1), + DEFINE_PROP_UINT32("config_size", VHostUserBase, config_size, 0), DEFINE_PROP_END_OF_LIST(), }; =20 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477718; cv=none; d=zohomail.com; s=zohoarc; b=e1UZlYAMNwPbxSMDWsFGtuNnwCYj7Mx23HPopj14CxRUE/QT+bkYYsDGSIoxV9Pk6Ojm0esyIuaUhheX4BH1i/xLF/ccYckMZI90elGSh3c2CChrNS7ShVCHbFEdU7mqNZucC1z18y8wWQ39H8nBjt+Soeyvv9RrTb0lgxTYGu4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477718; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=xmwyCqt8icMRW9/CJm9tRrO8FYpjZBridEVVOxYrjKY=; b=W6hHoSXIcmJFRSYgGrttRCy78CpCRej2/+PeJaQYfw1ukpTyg2DewQQ3ZrvnkGgy8PeT2P9UEACYRTdAxL/iCm9v0TDZej6wBnHJfZoKFwXrRjeIx9QtwcYhsY0EKY1EfNPGo0rdhrd8rMAgchyd+D32iR6o4gGn/bMnxr+85ZI= 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 1696477718579555.2368493717929; Wed, 4 Oct 2023 20:48:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGr-0001gk-1u; Wed, 04 Oct 2023 23:43:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGp-0001fg-7K for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:27 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGf-0008DV-JK for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:26 -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_256_GCM_SHA384) id us-mta-8-l-A_UL7gNHavtFSqa2CFpg-1; Wed, 04 Oct 2023 23:43:05 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-3231f43fc5eso384951f8f.2 for ; Wed, 04 Oct 2023 20:43:05 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id p1-20020adfce01000000b003258934a4bfsm630832wrn.36.2023.10.04.20.43.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477397; 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=xmwyCqt8icMRW9/CJm9tRrO8FYpjZBridEVVOxYrjKY=; b=LkX/X7wMOHi3RpdOyFh2B7mG88C/XEszfQXLXXBU0/zGVJU773dLxkqHFePf/0KG4YAzqB 6aIJAzllXLco/cbSFVuHkJaPv2h6V1DMI0WJptWWHCAcuKcpcemlQr/7g6pLKSbmczDTAG GlFvpQ1Rp47hXxekpXfsj2sJaFnyF7U= X-MC-Unique: l-A_UL7gNHavtFSqa2CFpg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477384; x=1697082184; 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=xmwyCqt8icMRW9/CJm9tRrO8FYpjZBridEVVOxYrjKY=; b=PaXysRosxt7V+vdFgVI1vneyWkHruvWw7QWjJnNp/yIEz+ftdgTUJoM0tCKHBOpKCO bH8xQbH6zhf45NTnSOkSX/FPZvVSV4bC4Emn6b3utnPOILwZ3PoSrPCcQc+k2QZQAaNF 4kUcIqtwf33pDYzYH+YtH4xNIBs1SALHK1Rv1oVCABWE0mZC7TzBHgZ6MVy550+Z3U2b r2zGHjREkdF3JUeOQWuVXyPW9OaU8z5Dz9nOLX9hDYLj/46p801hHN7zKGKqJAay3gS6 IgnrxgsE+9IC921jE7+22PLWQXyPDcWCPzpIYkMTvKhxCCnpCxvFMW5xFEBQAuKoI/z1 6HQA== X-Gm-Message-State: AOJu0Yzm3YyTMhQqCelot/RRKG4MV0yo8ZDevPL9ub04p48a7CFA80o9 0Fnnny1z0IRTzH+k6vEIHIbiGRKK7al1wnDAUvCV0w4e5sMFsgmiVWMVvmfrSmd1EEOlE2M+VlY 49Oe5DpKCYAHOa6UrgPC9r4ODXd7cKZ7FypXkOEWXaRG6wOzWWGGK1l7zImmgfx0cww/0 X-Received: by 2002:adf:f443:0:b0:316:f3cf:6f12 with SMTP id f3-20020adff443000000b00316f3cf6f12mr3496083wrp.48.1696477383993; Wed, 04 Oct 2023 20:43:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFUObUMAMCbZZg7meidTWmHDU/fJMJCzpcUOQFzKRfc2BTFTEZPbRqe/IqReL0kExaeL8VPsQ== X-Received: by 2002:adf:f443:0:b0:316:f3cf:6f12 with SMTP id f3-20020adff443000000b00316f3cf6f12mr3496071wrp.48.1696477383705; Wed, 04 Oct 2023 20:43:03 -0700 (PDT) Date: Wed, 4 Oct 2023 23:42:59 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Hawkins Jiawei , Eugenio =?utf-8?B?UMOpcmV6?= , Lei Yang , Jason Wang Subject: [PULL v2 10/53] virtio-net: do not reset vlan filtering at set_features Message-ID: <06b636a1e2ad12ab130edcbb0ccf995118440706.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477720403100019 From: Hawkins Jiawei This function is called after virtio_load, so all vlan configuration is lost in migration case. Just allow all the vlan-tagged packets if vlan is not configured, and trust device reset to clear all filtered vlans. Fixes: 0b1eaa8803 ("virtio-net: Do not filter VLANs without F_CTRL_VLAN") Signed-off-by: Eugenio P=C3=A9rez Reviewed-by: Hawkins Jiawei Signed-off-by: Hawkins Jiawei Message-Id: <95af0d013281282f48ad3f47f6ad1ac4ca9e52eb.1690106284.git.yin311= 49@gmail.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/net/virtio-net.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 5a0201c423..1c31374334 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -1029,9 +1029,7 @@ static void virtio_net_set_features(VirtIODevice *vde= v, uint64_t features) vhost_net_save_acked_features(nc->peer); } =20 - if (virtio_has_feature(features, VIRTIO_NET_F_CTRL_VLAN)) { - memset(n->vlans, 0, MAX_VLAN >> 3); - } else { + if (!virtio_has_feature(features, VIRTIO_NET_F_CTRL_VLAN)) { memset(n->vlans, 0xff, MAX_VLAN >> 3); } =20 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477404; cv=none; d=zohomail.com; s=zohoarc; b=JxAtbUknPDS5F8L0POzk2UNiw0lvbmAchimlM+cD6EGW68M8nXrv1lbzJ0NLGrdSpsRTWECMLCzzGhuzzlyhFD4zSzOpgbwUXsCeCf5Zl92vg269y2dird7Vc5ggs/6/MgVT0rk6uGiZ6TDgvQ5m1dNQw0pV2d339OurP/11bbQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477404; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Lc/nKWVTsa5uQri9/4hS3uQQgaFw+KjqHoK0q8BNN2c=; b=LMJ9gMbbwcPcBBsZsGUZYGkl70CVeAoZSdQHNepd9WBqx0iqYEqShVb4KfXpvhjGZHBsl2zw2SZguzOIDddebwsUqnUZUUSbLXoiE+BrGSTs/g88w03FaLfs5zggZN4Hcux4ANaW4zDwhiIPJNfcF46/f3MCg8JKpoW9JbV9CMU= 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 1696477404021708.3114966361798; Wed, 4 Oct 2023 20:43:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGb-0001Vy-Td; Wed, 04 Oct 2023 23:43:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGb-0001Va-8Z for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGZ-0008AX-Kr for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:13 -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_256_GCM_SHA384) id us-mta-388-RGtS5GBHPRe7MiLcJgOMpA-1; Wed, 04 Oct 2023 23:43:09 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-40554735995so3752295e9.1 for ; Wed, 04 Oct 2023 20:43:09 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id y4-20020adff144000000b0032769103ae9sm622606wro.69.2023.10.04.20.43.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477391; 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=Lc/nKWVTsa5uQri9/4hS3uQQgaFw+KjqHoK0q8BNN2c=; b=aHlD1I12R6sP91Zb5O9bFQ5pDGxT4SBTq3KGi/xBRm0Scif+o5+LdzmYIb+ThGxbzBG/nn EdcNt933LIzfnhhUs7eX0eIkEd1mEnd7KmPDzs06y5HN/2erFiW81NgPYQDAqvBKnd3GO5 +LXsWl8GHB/ndzLSVZvr2NKuDDwRJsI= X-MC-Unique: RGtS5GBHPRe7MiLcJgOMpA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477388; x=1697082188; 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=Lc/nKWVTsa5uQri9/4hS3uQQgaFw+KjqHoK0q8BNN2c=; b=KZcBk4za82RJAfcmEJ91H0UupOhZG9a9q7nCJF9CJQlF+GNHEj4o0hKA3EXFppXlLu MZbBWTd3ktl58dS0E9VhD3Q+2uuIhyLNSGDfW+jIWAu99pabs5NO96qNAY+ci2TkodMS udOfNQdHtj4wD8P737ge9TKmav8nvPx61Zz3QJrWoorBG6Zct2PH+3+XO8KLzb0k6UWw 2HmKYCz3NR4IGIQ5rqVXMaHT6Af4Ajxpob/C2DYI1Do6Pk0de/tZMh41hAqHicwBia0V 9vehUzKX5mPGDE619870FnaHLg67mKzVnNebTJ7SapYssMFWuj8tC+DcY5GUcev6CCwI qmcg== X-Gm-Message-State: AOJu0YwK96t7mqaK55Nkh8MhlwqtUBQpAREmUwt3KwK/0ZMdq5lz0ISk uHDbs2tEgO5bjRpVPHow9L02qxpYli1b4SzxfYRx6VYbR0gpK/FdPybw6jpnaoNiS1qDuO6ZAtC Mo0SQG8k6a3ECSk9SpuAbJNtUySw729aj1daTTPM5jEAq0b/GS4l70lydQiYsnYaoWyPO X-Received: by 2002:a05:600c:2116:b0:405:4743:de12 with SMTP id u22-20020a05600c211600b004054743de12mr3770332wml.21.1696477387791; Wed, 04 Oct 2023 20:43:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF0bdZRJGUwQjd879tDSCorUVGoJj6NbB+CMWtUFXxYXZgT/mQu8lVQAbMF6C/Embl3xCtLtw== X-Received: by 2002:a05:600c:2116:b0:405:4743:de12 with SMTP id u22-20020a05600c211600b004054743de12mr3770314wml.21.1696477387484; Wed, 04 Oct 2023 20:43:07 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:04 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Hawkins Jiawei , Eugenio =?utf-8?B?UMOpcmV6?= , Lei Yang , Jason Wang Subject: [PULL v2 11/53] virtio-net: Expose MAX_VLAN Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477405337100003 From: Hawkins Jiawei vhost-vdpa shadowed CVQ needs to know the maximum number of vlans supported by the virtio-net device, so QEMU can restore the VLAN state in a migration. Co-developed-by: Eugenio P=C3=A9rez Signed-off-by: Eugenio P=C3=A9rez Signed-off-by: Hawkins Jiawei Message-Id: Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/virtio-net.h | 6 ++++++ hw/net/virtio-net.c | 2 -- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/hw/virtio/virtio-net.h b/include/hw/virtio/virtio-net.h index e07a723027..55977f01f0 100644 --- a/include/hw/virtio/virtio-net.h +++ b/include/hw/virtio/virtio-net.h @@ -38,6 +38,12 @@ OBJECT_DECLARE_SIMPLE_TYPE(VirtIONet, VIRTIO_NET) /* Maximum VIRTIO_NET_CTRL_MAC_TABLE_SET unicast + multicast entries. */ #define MAC_TABLE_ENTRIES 64 =20 +/* + * The maximum number of VLANs in the VLAN filter table + * added by VIRTIO_NET_CTRL_VLAN_ADD + */ +#define MAX_VLAN (1 << 12) /* Per 802.1Q definition */ + typedef struct virtio_net_conf { uint32_t txtimer; diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 1c31374334..29e33ea5ed 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -49,8 +49,6 @@ =20 #define VIRTIO_NET_VM_VERSION 11 =20 -#define MAX_VLAN (1 << 12) /* Per 802.1Q definition */ - /* previously fixed value */ #define VIRTIO_NET_RX_QUEUE_DEFAULT_SIZE 256 #define VIRTIO_NET_TX_QUEUE_DEFAULT_SIZE 256 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477706; cv=none; d=zohomail.com; s=zohoarc; b=CY3FsxSEprqU4tk/+CCAlA/jgwM+zJq250snrQZVStvm1n1N21pvALiL2BscImVQUEXSV9tRYW7ATORACMCJbjYRR++sVhiWgeI12CcCuJriA3Jkyts40Au1FAbYONRlW5Ixcw4UOVi8HxeJxwq421pCqIJ4Ic+vgTpZMyV3tqA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477706; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0n/b+8AZz3jcidGbH0sE58APwKjUxPw2/iP69uivWYc=; b=lcjiSjekEfHbagDkGdIIEHBIH6u3TkyR/aQlRqa1ogLcHYbVSYBnOPBYlhqiQxlkMpN7V3SAbNlOMJstbalGMp7xSr6/M+lRSomo0UTvdK6Hb12Zkms2D4JadxcTrj56rCPi6F8DeZDOSRYoT1TEw/WlbOsieFqJbOULIRIGOrM= 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 1696477705955351.8781135523992; Wed, 4 Oct 2023 20:48:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGh-0001YB-FO; Wed, 04 Oct 2023 23:43:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGf-0001Xd-Pj for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGe-0008DE-8d for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:17 -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_256_GCM_SHA384) id us-mta-403-YRGGT-QVNA2hgygPHSXQxw-1; Wed, 04 Oct 2023 23:43:14 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-4063dd6729bso3749165e9.2 for ; Wed, 04 Oct 2023 20:43:13 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id m16-20020a7bca50000000b004064ac107cfsm534428wml.39.2023.10.04.20.43.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477395; 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=0n/b+8AZz3jcidGbH0sE58APwKjUxPw2/iP69uivWYc=; b=Dqa9pNlFdkPNeEInU93smJTRhsOhXqMnNGDREyZp8RLRQbbIjGmd+dP4xXLkIEweJaSzJM yqOtpHDwmrD3pn96pqyAwaAUP4M1/7FPUnGUifDYMN2rTD6fR4X0rlVEEz/DSOb6JLVa+9 2Ti8luE4nY7rOQ9mC/cqPuJ3sdXSXcY= X-MC-Unique: YRGGT-QVNA2hgygPHSXQxw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477392; x=1697082192; 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=0n/b+8AZz3jcidGbH0sE58APwKjUxPw2/iP69uivWYc=; b=Ztw9/PWOuPsxHcHkCJru3tN+AHnImgHSg0SkgULbly5c6o4VAnOLw3VdjJsb4D8yfD rLYs7Hfe8gkZUkbB7AiewxIm+Bm/QK5kMqx8qJQgx1JFETq8Hi2zpi7KzjPO7TqDH7CM nXjCcPO2x2CcfTei1gC+RAwDVSnOdeAlf9u/YXcFpEVpODxA4EoDj6Ny4Q0jOlwmSDym XThe2cDFiTPNGHsRAumgITFhDyYZOYqm4OxcqyneG72xyZk3L0wkeG4ORjQ45VZJ1AEE m7Mz9zdZJHXa1/1EW7ykkJjPCF1/YX6riZo3vBKoR3yjv4M0sX2TYGNilhQyrnQrkAJP XLAQ== X-Gm-Message-State: AOJu0YypcXPWVQfj+Sb3dwOnKXt1I6XqLPIHmVGYJI6RKnvJx0Spdctw BxxXRvKBjdmOUbj311ElDJg7rfJzw5uaWsNFzB1ai7vt8A5DvEpTWGDlBrHgjiS9DO9UAS7QmRA fLkFSpu/UWYq4KNdX+tZzKHEST4DfPlWpb8Cg666pDAjQ9rZ3uWk2beq/3dj8RyLfqbxm X-Received: by 2002:a7b:c4d6:0:b0:406:7074:301d with SMTP id g22-20020a7bc4d6000000b004067074301dmr4355673wmk.11.1696477392309; Wed, 04 Oct 2023 20:43:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHZbbiZVasm5u+nRwSGWUSOBs1MqAkRTUXiR5ZC8osGGLVOTlMc3sixhg7jWTr75KlfP9GRaw== X-Received: by 2002:a7b:c4d6:0:b0:406:7074:301d with SMTP id g22-20020a7bc4d6000000b004067074301dmr4355656wmk.11.1696477391939; Wed, 04 Oct 2023 20:43:11 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:07 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Hawkins Jiawei , Eugenio =?utf-8?B?UMOpcmV6?= , Lei Yang , Jason Wang Subject: [PULL v2 12/53] vdpa: Restore vlan filtering state Message-ID: <8f7e9967484dec2a727c24a509962ca3a4f5dad4.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477708158100009 From: Hawkins Jiawei This patch introduces vhost_vdpa_net_load_single_vlan() and vhost_vdpa_net_load_vlan() to restore the vlan filtering state at device's startup. Co-developed-by: Eugenio P=C3=A9rez Signed-off-by: Eugenio P=C3=A9rez Signed-off-by: Hawkins Jiawei Message-Id: Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 4e94c50bc7..8648d86f64 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -968,6 +968,50 @@ static int vhost_vdpa_net_load_rx(VhostVDPAState *s, return 0; } =20 +static int vhost_vdpa_net_load_single_vlan(VhostVDPAState *s, + const VirtIONet *n, + uint16_t vid) +{ + const struct iovec data =3D { + .iov_base =3D &vid, + .iov_len =3D sizeof(vid), + }; + ssize_t dev_written =3D vhost_vdpa_net_load_cmd(s, VIRTIO_NET_CTRL_VLA= N, + VIRTIO_NET_CTRL_VLAN_ADD, + &data, 1); + if (unlikely(dev_written < 0)) { + return dev_written; + } + if (unlikely(*s->status !=3D VIRTIO_NET_OK)) { + return -EIO; + } + + return 0; +} + +static int vhost_vdpa_net_load_vlan(VhostVDPAState *s, + const VirtIONet *n) +{ + int r; + + if (!virtio_vdev_has_feature(&n->parent_obj, VIRTIO_NET_F_CTRL_VLAN)) { + return 0; + } + + for (int i =3D 0; i < MAX_VLAN >> 5; i++) { + for (int j =3D 0; n->vlans[i] && j <=3D 0x1f; j++) { + if (n->vlans[i] & (1U << j)) { + r =3D vhost_vdpa_net_load_single_vlan(s, n, (i << 5) + j); + if (unlikely(r !=3D 0)) { + return r; + } + } + } + } + + return 0; +} + static int vhost_vdpa_net_load(NetClientState *nc) { VhostVDPAState *s =3D DO_UPCAST(VhostVDPAState, nc, nc); @@ -998,6 +1042,10 @@ static int vhost_vdpa_net_load(NetClientState *nc) if (unlikely(r)) { return r; } + r =3D vhost_vdpa_net_load_vlan(s, n); + if (unlikely(r)) { + return r; + } =20 return 0; } --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477442; cv=none; d=zohomail.com; s=zohoarc; b=Thnxr5JeZWRg5wRuCtWqMpP0kn239jBB+Tz5YxFfhH5YEqVulwbDdDw8vzm1yHCPERYZ/KiIh9FGoinicNs4bp+gy9Ojhch2QY2yhlLAbPvyHF+8UDwcOW5q/vZnOUasRR1xLOZGpkr7NrCYfZ6JCZHX/jgIYfEkjCPlllkW4V0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477442; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BZAf5QAqncqN0Tj7r6/rT3sDH9P2a7sWx1zkWFPC9Wo=; b=ggU9qCo7VP3v+OEngBB8gU9r1cXNUd+3L9nyiOvamM543l5btOc5GXMm6wgcCQJzAVhoofGy9fDKzOo/ZODwC1Aaz76NE3vPKL3syk+Qdprk27Zy6T/aBP7+hicoXeo8ZOg9sDOhpOb7AkHCSCTKlRTP9Qj+M/CU+2sV5+ICoUI= 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 1696477442441514.8415362349369; Wed, 4 Oct 2023 20:44:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGm-0001cs-ST; Wed, 04 Oct 2023 23:43:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGl-0001Zw-Ba for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGi-0008LC-IN for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:23 -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_256_GCM_SHA384) id us-mta-661-2RavlWNWN7CYzSmkyIu8ww-1; Wed, 04 Oct 2023 23:43:18 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-32320b9d671so461431f8f.3 for ; Wed, 04 Oct 2023 20:43:17 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id w17-20020a5d4b51000000b0031ad5fb5a0fsm634513wrs.58.2023.10.04.20.43.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477399; 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=BZAf5QAqncqN0Tj7r6/rT3sDH9P2a7sWx1zkWFPC9Wo=; b=NoiMXXNnaMWknakIXNCuFPpJcWZLAu8cahLJHSXmyxgn3SYiUtgrDDd3hstPzoxR6fAkXR 5OxDpn/2Zxw9WkOewW6DyRfCr/73RBNVyfip+a89c2kSeHYoxW3msiIhv5JurUOJynY6hH bDcyiTBo8f8+DoLVHCCqUOjq01rD0ag= X-MC-Unique: 2RavlWNWN7CYzSmkyIu8ww-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477396; x=1697082196; 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=BZAf5QAqncqN0Tj7r6/rT3sDH9P2a7sWx1zkWFPC9Wo=; b=bKPlrJmqTn93i9oXAbwiahlhq9ePnO+HMXsWfMcHxvapFq+dYec9hl1TA0KNvDQNR0 yPIGGVsJI678DymvgtLtuC1Yz1QhXyfGu86IIjLoQZksMf3GD/pGzFL3oKBL3Gr4Dob7 9Pfl2/axeJH8VcDiU0EgCtj9Ta3ageumD7SyVokFMpWQOJOhDvBGiWXoYZ/8sIJAYcFu kH8MggCCoJlSDAFS++5lbMUJrsWk/sU62fyGO+Rs+79VxLxS1Hil0Cy0pZ4FMtYIffNR ZGS4u6xb144OHSvY8xnP6FVk3PyEWqPlpwysIwWewDpRgE9MOU79HgaDd6lmmeQtm5Ya et5Q== X-Gm-Message-State: AOJu0YzIOo4d2511PnzMVLFdSEJOUO/NKJy9+PHmOKMNdEtlHpPZRKxN b9jSrLicUkKtbIrMYa1HP/haBDucix7+XxIgBJliRtbKsyT5XYZ4Z/M0rMK74M+PQThivuCS7Xu TlqFaGIuXRSPLaOqY39LtPmv1niC90LEEzeti9IinWLHyJQpZ1gbED90NB4Xrvfb5myc7 X-Received: by 2002:adf:cd0a:0:b0:320:5f:c249 with SMTP id w10-20020adfcd0a000000b00320005fc249mr3352603wrm.30.1696477396706; Wed, 04 Oct 2023 20:43:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG+6Zdn1rEzcALBiUoYxqQlQ//1von9taefyJcXUz2Y1kp57RTpXyRPeWNfvtr9UsDgtd6kUg== X-Received: by 2002:adf:cd0a:0:b0:320:5f:c249 with SMTP id w10-20020adfcd0a000000b00320005fc249mr3352593wrm.30.1696477396451; Wed, 04 Oct 2023 20:43:16 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:12 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Hawkins Jiawei , Eugenio =?utf-8?B?UMOpcmV6?= , Lei Yang , Jason Wang Subject: [PULL v2 13/53] vdpa: Allow VIRTIO_NET_F_CTRL_VLAN in SVQ Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477443806100003 From: Hawkins Jiawei Enable SVQ with VIRTIO_NET_F_CTRL_VLAN feature. Co-developed-by: Eugenio P=C3=A9rez Signed-off-by: Eugenio P=C3=A9rez Signed-off-by: Hawkins Jiawei Message-Id: <38dc63102a42c31c72fd293d0e6e2828fd54c86e.1690106284.git.yin311= 49@gmail.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 8648d86f64..144b33f997 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -114,6 +114,7 @@ static const uint64_t vdpa_svq_device_features =3D BIT_ULL(VIRTIO_NET_F_STATUS) | BIT_ULL(VIRTIO_NET_F_CTRL_VQ) | BIT_ULL(VIRTIO_NET_F_CTRL_RX) | + BIT_ULL(VIRTIO_NET_F_CTRL_VLAN) | BIT_ULL(VIRTIO_NET_F_CTRL_RX_EXTRA) | BIT_ULL(VIRTIO_NET_F_MQ) | BIT_ULL(VIRTIO_F_ANY_LAYOUT) | --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477684; cv=none; d=zohomail.com; s=zohoarc; b=Sf0xz0zstGxsuErbEPpVVvWeXP2BnPtOBuFwOIff3OyFjzAKQynb8fmibHOZmHG3chxh0oFZhkm4Nt7sycthSQtdJhC8xkQhxxR3s85D3pi4W55E3FbYt0OZve0D5xM4Lv0sV28B1GlkXAQMqbteBqRP5JnBXI3HRX7hn3KpoYg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477684; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XPImF4K2pL45lQ4EfG0s+CTn23uOSVuTqBqWIA624PQ=; b=aXumWLTTGfGQxsHGN5//VQ14BfuE7bM1UEheYWZcr0Uvj7UGgB9MF5DnEF3fDHJeTHSX+D8C5z3R+VlLDGQoGVBBR6DxFp0n5hpQCmtPtKmVfKJ+mrKRxs7KOy2oF3DuQAIc90uB3bMt/AGf4cHfbFmMTtQrXPODSQai0QL9kSs= 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 1696477684440697.9119946523319; Wed, 4 Oct 2023 20:48:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFH2-0002LC-He; Wed, 04 Oct 2023 23:43:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFH0-000274-O7 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:38 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGn-00008v-NF for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:38 -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_256_GCM_SHA384) id us-mta-640-vRhkTT9kPAyvCEft79vmEQ-1; Wed, 04 Oct 2023 23:43:24 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-32661ca30d9so401361f8f.0 for ; Wed, 04 Oct 2023 20:43:23 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id f13-20020a5d4dcd000000b003197b85bad2sm624746wru.79.2023.10.04.20.43.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477405; 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=XPImF4K2pL45lQ4EfG0s+CTn23uOSVuTqBqWIA624PQ=; b=GSTkNiaCAOeynl6hX5jHLYLG7YpfTr7ySRumCf3kCe8PJQR9QxgcVHIpphQeJfDr+eZ3hq RTT/y/T3xTwuGzwGMeyK9SX66NGk/IJHmde2ZHNQgbCHyYDew7Rp/ko2fNi/TKu/ZDOtLh 6KgCLQFlopmpaAyVx2b6w5LpqP9AAVc= X-MC-Unique: vRhkTT9kPAyvCEft79vmEQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477402; x=1697082202; 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=XPImF4K2pL45lQ4EfG0s+CTn23uOSVuTqBqWIA624PQ=; b=FZx7fESJhJaj+T1oWEPXsxIAKqLTVGWrf3NfV0jAr6J0rdXwOiTUOhJFERTjMwseIj XmdUQQXRmS6axaNkkp+LxlYY0ASZta5gAqrAnN8HNYwN45xkbudC6HxpASolz6iAZejl 3KABTaF6CPTRJ9I/eVMT5vv02hwjU8xAffGtlkEjVWjI0p1lQh/N1rICMuJWFwNNCFtp z/SMPvR3kjDiD0vcgEuC3miiZp5MMzCxlvf124jgz8qJoR/kbymXn5WjMUWkwqWNL7bK te7GRvVE1kI387Crs4E2bHUf1PpPzRF6rHul1TYbeE/XLZBvJkhsyqSKhV0JL8/SbVEz MWbQ== X-Gm-Message-State: AOJu0YxHO5QaJZMZlhAaEUkUZgVwPFNB8aC+NR7G819+R11g/pdalxYR uSP5UwKr5K1sgHn3tDKNCK25wo1krivOPa7ItrfRYMZ7n1GYrljlH6Tkx2Gro2UMGveEu99MD0z vprmPSKY31gy/IqOY31vRHSxd+pguY0sRTccmXLjXcP5HWm9jJ/NJ5PQYbo2svntD7X5z X-Received: by 2002:a5d:4802:0:b0:324:7a6b:d4fe with SMTP id l2-20020a5d4802000000b003247a6bd4femr3886664wrq.9.1696477402309; Wed, 04 Oct 2023 20:43:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF/M8pjku5UL5tgkBxhR0FSvUnXfAK55fCckq9sEcn0aoqAnffuaOnDHImFj5Dq0Aei0+fgfA== X-Received: by 2002:a5d:4802:0:b0:324:7a6b:d4fe with SMTP id l2-20020a5d4802000000b003247a6bd4femr3886641wrq.9.1696477401991; Wed, 04 Oct 2023 20:43:21 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:16 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ilya Maximets , Stefan Hajnoczi , Jason Wang , Paolo Bonzini , Peter Xu , David Hildenbrand , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: [PULL v2 14/53] virtio: don't zero out memory region cache for indirect descriptors Message-ID: <43d6376980d5567f2a6d00cfb30d10c0961671e6.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477685838100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ilya Maximets Lots of virtio functions that are on a hot path in data transmission are initializing indirect descriptor cache at the point of stack allocation. It's a 112 byte structure that is getting zeroed out on each call adding unnecessary overhead. It's going to be correctly initialized later via special init function. The only reason to actually initialize right away is the ability to safely destruct it. Replacing a designated initializer with a function to only initialize what is necessary. Removal of the unnecessary stack initializations improves throughput of virtio-net devices in terms of 64B packets per second by 6-14 % depending on the case. Tested with a proposed af-xdp network backend and a dpdk testpmd application in the guest, but should be beneficial for other virtio devices as well. Signed-off-by: Ilya Maximets Message-Id: <20230811143423.3258788-1-i.maximets@ovn.org> Reviewed-by: Stefan Hajnoczi Acked-by: Jason Wang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/exec/memory.h | 16 +++++++++++++--- hw/virtio/virtio.c | 20 +++++++++++++++----- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/include/exec/memory.h b/include/exec/memory.h index ef23d65afc..c99842d2fc 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -2671,9 +2671,6 @@ struct MemoryRegionCache { bool is_write; }; =20 -#define MEMORY_REGION_CACHE_INVALID ((MemoryRegionCache) { .mrs.mr =3D NUL= L }) - - /* address_space_ld*_cached: load from a cached #MemoryRegion * address_space_st*_cached: store into a cached #MemoryRegion * @@ -2762,6 +2759,19 @@ int64_t address_space_cache_init(MemoryRegionCache *= cache, hwaddr len, bool is_write); =20 +/** + * address_space_cache_init_empty: Initialize empty #MemoryRegionCache + * + * @cache: The #MemoryRegionCache to operate on. + * + * Initializes #MemoryRegionCache structure without memory region attached. + * Cache initialized this way can only be safely destroyed, but not used. + */ +static inline void address_space_cache_init_empty(MemoryRegionCache *cache) +{ + cache->mrs.mr =3D NULL; +} + /** * address_space_cache_invalidate: complete a write to a #MemoryRegionCache * diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 4577f3f5b3..d3a22e3d36 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1071,10 +1071,12 @@ static void virtqueue_split_get_avail_bytes(VirtQue= ue *vq, VirtIODevice *vdev =3D vq->vdev; unsigned int idx; unsigned int total_bufs, in_total, out_total; - MemoryRegionCache indirect_desc_cache =3D MEMORY_REGION_CACHE_INVALID; + MemoryRegionCache indirect_desc_cache; int64_t len =3D 0; int rc; =20 + address_space_cache_init_empty(&indirect_desc_cache); + idx =3D vq->last_avail_idx; total_bufs =3D in_total =3D out_total =3D 0; =20 @@ -1207,12 +1209,14 @@ static void virtqueue_packed_get_avail_bytes(VirtQu= eue *vq, VirtIODevice *vdev =3D vq->vdev; unsigned int idx; unsigned int total_bufs, in_total, out_total; + MemoryRegionCache indirect_desc_cache; MemoryRegionCache *desc_cache; - MemoryRegionCache indirect_desc_cache =3D MEMORY_REGION_CACHE_INVALID; int64_t len =3D 0; VRingPackedDesc desc; bool wrap_counter; =20 + address_space_cache_init_empty(&indirect_desc_cache); + idx =3D vq->last_avail_idx; wrap_counter =3D vq->last_avail_wrap_counter; total_bufs =3D in_total =3D out_total =3D 0; @@ -1487,7 +1491,7 @@ static void *virtqueue_split_pop(VirtQueue *vq, size_= t sz) { unsigned int i, head, max; VRingMemoryRegionCaches *caches; - MemoryRegionCache indirect_desc_cache =3D MEMORY_REGION_CACHE_INVALID; + MemoryRegionCache indirect_desc_cache; MemoryRegionCache *desc_cache; int64_t len; VirtIODevice *vdev =3D vq->vdev; @@ -1498,6 +1502,8 @@ static void *virtqueue_split_pop(VirtQueue *vq, size_= t sz) VRingDesc desc; int rc; =20 + address_space_cache_init_empty(&indirect_desc_cache); + RCU_READ_LOCK_GUARD(); if (virtio_queue_empty_rcu(vq)) { goto done; @@ -1624,7 +1630,7 @@ static void *virtqueue_packed_pop(VirtQueue *vq, size= _t sz) { unsigned int i, max; VRingMemoryRegionCaches *caches; - MemoryRegionCache indirect_desc_cache =3D MEMORY_REGION_CACHE_INVALID; + MemoryRegionCache indirect_desc_cache; MemoryRegionCache *desc_cache; int64_t len; VirtIODevice *vdev =3D vq->vdev; @@ -1636,6 +1642,8 @@ static void *virtqueue_packed_pop(VirtQueue *vq, size= _t sz) uint16_t id; int rc; =20 + address_space_cache_init_empty(&indirect_desc_cache); + RCU_READ_LOCK_GUARD(); if (virtio_queue_packed_empty_rcu(vq)) { goto done; @@ -3970,13 +3978,15 @@ VirtioQueueElement *qmp_x_query_virtio_queue_elemen= t(const char *path, } else { unsigned int head, i, max; VRingMemoryRegionCaches *caches; - MemoryRegionCache indirect_desc_cache =3D MEMORY_REGION_CACHE_INVA= LID; + MemoryRegionCache indirect_desc_cache; MemoryRegionCache *desc_cache; VRingDesc desc; VirtioRingDescList *list =3D NULL; VirtioRingDescList *node; int rc; int ndescs; =20 + address_space_cache_init_empty(&indirect_desc_cache); + RCU_READ_LOCK_GUARD(); =20 max =3D vq->vring.num; --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477612; cv=none; d=zohomail.com; s=zohoarc; b=bj1Gq1fA0HveBHkv8NmuzN7KBBEcyKWchjx6xIliuO/fx0FatsHlLkYVPfEW3E5A3UESFmKVg2pBaNIrlE7yrIcRaH+iN8tUheSBXatAQTU2nCqV8MPjv41J1gSzPmV4icQBiapCQgWUADA1W3kSZ2RJr+jWWF6XXMns4kVuDbI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477612; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CIDUejF6EpBPfsNHFdD2Xl6gePUB6dtvvan4JQ2+wgc=; b=QRvcLVh3rmMN/xvPap1jC3+iF5E6L4xjelh17tMM9H4e/QxHbMg1NDB+YOclBeEk7VPQF4QLLqhi3RV616NYcxopzAJGHXbuPxbhjLBi+a8HfMk9LTdxuzCMCfUWa7vXtC0BrzcH/WVzZZHCTiWEGICmnGA1o6mO6Inz0jzLfAk= 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 1696477612009129.23279250851124; Wed, 4 Oct 2023 20:46:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFH5-0002kP-7i; Wed, 04 Oct 2023 23:43:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFH2-0002LF-Hc for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:40 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGx-00009f-So for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:40 -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_256_GCM_SHA384) id us-mta-191-THLbryMZPn2VnOHIuZaUfw-1; Wed, 04 Oct 2023 23:43:27 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-405535740d2so3366285e9.3 for ; Wed, 04 Oct 2023 20:43:27 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id n22-20020a7bcbd6000000b004060f0a0fdbsm2776908wmi.41.2023.10.04.20.43.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477414; 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=CIDUejF6EpBPfsNHFdD2Xl6gePUB6dtvvan4JQ2+wgc=; b=XZIncMUDOVM7KB2FElL5QpxsGM5CCV6wWk8UZnuiBdIfXDnD1dIFoX8fYJcfAgCmVxqWVS yRrZBEYu6rts99vt9cvME/jdA5Wt7xXWip2lu5WJDwv6kvA6GX0/jj87kkywsvUgJUtjzd PdTuyHVnGKQ8mXJ6LSHByLEeaHmn5g4= X-MC-Unique: THLbryMZPn2VnOHIuZaUfw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477406; x=1697082206; 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=CIDUejF6EpBPfsNHFdD2Xl6gePUB6dtvvan4JQ2+wgc=; b=vv8IPnVGFwGolXCVtGgaj7d3XjZdA8AFSNHT+rEsHV7FFHn+b94Zhk0CkpHizQlW1C sgYrEytdos/z85COcxuDBQKYLldXbgceRMvgCURxso3NFpjqAy/YjykYaLOxmJKLIuSC my1Q/Tik37+FIH279Bm29f+DQ8cEHnyL7w+iKQx3B2yG6ZQ2CNxWiCMu7la0ziC3Bk78 b+9uTrBKjihoDF+HNEwMWYzoUnnakgbDou+Hnz5xQNlUMEdcUXEaBAsWDEfJ/CyKyXYx DyZp542l2mAmSEkzVwuit4SFGsJ7uIogNelFm7wICGxyfTTgBdfe+YDI+83PqhoKbvH8 Y4Yg== X-Gm-Message-State: AOJu0YxNgUjUxuwLykOitIXMoWY/1Fhp33mdlT0t68MsGxRbo2Ey3PG4 dwcIRlAcH6bUSHETSTSkRE1MZ6ga1ijXbeYyNKX9CmU0lh4VyL7tTsFalzHDQQ6sN1b1ZhbpcjL K/7Xr5r227tJHYytBs1WbHOgUrUPZYh8bpxa3+vmR8Xk94/Q/His9YyV+xJGVaz33IfSP X-Received: by 2002:a1c:7c17:0:b0:401:2ee0:7558 with SMTP id x23-20020a1c7c17000000b004012ee07558mr3772808wmc.32.1696477406058; Wed, 04 Oct 2023 20:43:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGV9EwjQZYCykbg2aSF0AuXvuBMLKz+++Kh8lXesMkgVPGZkSgriFJZ6Btp9C0F7m+HbybAPQ== X-Received: by 2002:a1c:7c17:0:b0:401:2ee0:7558 with SMTP id x23-20020a1c7c17000000b004012ee07558mr3772799wmc.32.1696477405818; Wed, 04 Oct 2023 20:43:25 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:22 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang , Lei Yang Subject: [PULL v2 15/53] vdpa: use first queue SVQ state for CVQ default Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477612748100017 From: Eugenio P=C3=A9rez Previous to this patch the only way CVQ would be shadowed is if it does support to isolate CVQ group or if all vqs were shadowed from the beginning. The second condition was checked at the beginning, and no more configuration was done. After this series we need to check if data queues are shadowed because they are in the middle of the migration. As checking if they are shadowed already covers the previous case, let's just mimic it. Signed-off-by: Eugenio P=C3=A9rez Acked-by: Jason Wang Message-Id: <20230822085330.3978829-2-eperezma@redhat.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 144b33f997..30dc7e77c9 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -509,7 +509,7 @@ static int vhost_vdpa_net_cvq_start(NetClientState *nc) =20 s0 =3D vhost_vdpa_net_first_nc_vdpa(s); v->shadow_data =3D s0->vhost_vdpa.shadow_vqs_enabled; - v->shadow_vqs_enabled =3D s->always_svq; + v->shadow_vqs_enabled =3D s0->vhost_vdpa.shadow_vqs_enabled; s->vhost_vdpa.address_space_id =3D VHOST_VDPA_GUEST_PA_ASID; =20 if (s->vhost_vdpa.shadow_data) { --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477451; cv=none; d=zohomail.com; s=zohoarc; b=g8fPRwhoR2NEE2yMHHOliiRnB9ztgNAatsNreFsmOD3lvZmzt8qsIhzPNn+bLEolpw7d6if3g41/01mkVH26mGw0Jzgsgi4wrtNp9U03DTh0iSScxTdjA1uai7vHqIm59x6IX05RR29afk89j4jHDmIpSPWwR6MZ7iwcadrorrc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477451; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=r7t3RY6KSMAZbgOmvy8F0sqwvYbqLUNza9YburPW3qA=; b=BXxKjpXvwx9deuHJp4raNN+l3sCTMlCtFWSbrZ7LRAmBgRw5VwL21ZHMQM9c2gTestaNkKSnyWHAx3ezcWVbOAzJAs6iOeQoVHuaK/qfJZu1jRPjENNI+DZ3iDDzFEv/JSSN9htppLV3Zf0qB7bt3Jl3wp+Yf3RFJsAIoiZOK14= 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 1696477451195686.1446501936279; Wed, 4 Oct 2023 20:44:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFGz-00022y-OW; Wed, 04 Oct 2023 23:43:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGy-0001vx-0d for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:36 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFGw-00009b-Cy for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:35 -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_256_GCM_SHA384) id us-mta-54-f45VDuDePoiGWt4eW9b4ug-1; Wed, 04 Oct 2023 23:43:32 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-324810f3bfcso691245f8f.1 for ; Wed, 04 Oct 2023 20:43:32 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id t9-20020a5d4609000000b0031f8a59dbeasm630611wrq.62.2023.10.04.20.43.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477413; 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=r7t3RY6KSMAZbgOmvy8F0sqwvYbqLUNza9YburPW3qA=; b=f2R7/NlvMbLWA3f3X13fvZMX0A0rd1ChRDy4KXsh2n5hYokAdSF1gj9FopI+CXQtjU0PGI 6gpqcwrKsvrs0NXbuv28pK+McginGhwsJ2hO7Po43d8KF+zHhEfOajiHu7Q3k6B+l9Bwie 1YkKGKTmoA0YOYUVHj1T4NlNkA5VkWA= X-MC-Unique: f45VDuDePoiGWt4eW9b4ug-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477411; x=1697082211; 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=r7t3RY6KSMAZbgOmvy8F0sqwvYbqLUNza9YburPW3qA=; b=szJOAKKR5xohweiCLDXu1buxgGBuxqv9mDccgAueUFd52/vc5Qm/XLtwEi1SioCImp 9fOZ+MVDFut49Cer9sbUCEaMFfvGC+pZtt7+dcdFClBusK5ruBWoNX5y+hcnESHIEwBY Zc88TrwmAkri321ttVI3vtF5amD7FW399Ku0QxN/qZfTkicgp4ij/kt9xpe6TH9S1Zv4 Ibefu4hK89YoC6jEgw431aNMhGqiWyMTLSY79Iq5IBytC50XbgZYzFCYYDyoW0s1s/XM zYanyrSKC5URRIUgQO7eSLXX14iiNqehBR1ZF3f3f5HrscDqKpx++YmHvHyRb3j+nB4z oM2w== X-Gm-Message-State: AOJu0YwbCCjcvrHRkONwhtIEkzzStG5tgWtDSpZzZiqhwXAkqF8QxLbx Z+tcZNuxW+xj6MXBWRmL5pGoyqHvd1FTdym6AitMQTO8oCe9zlr6asQBk6laz4uY22t0tF+/2ft EtViPap/NgDggu3LlY4G6kbm5O59eMi2r2jLhXP8o+CpG4FCZbOokeS7lwR1jv1tIL7gP X-Received: by 2002:a5d:6183:0:b0:321:8181:6012 with SMTP id j3-20020a5d6183000000b0032181816012mr975096wru.21.1696477410884; Wed, 04 Oct 2023 20:43:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHICwbtFymhrHOakrES23G1oUw/xQr+e5x+AWwI8hBZlJvH/mw/e3rR0GXFy0sWQkTegNNYcw== X-Received: by 2002:a5d:6183:0:b0:321:8181:6012 with SMTP id j3-20020a5d6183000000b0032181816012mr975086wru.21.1696477410615; Wed, 04 Oct 2023 20:43:30 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:26 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang , Lei Yang Subject: [PULL v2 16/53] vdpa: export vhost_vdpa_set_vring_ready Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477451909100001 From: Eugenio P=C3=A9rez The vhost-vdpa net backend needs to enable vrings in a different order than default, so export it. No functional change intended except for tracing, that now includes the (virtio) index being enabled and the return value of the ioctl. Still ignoring return value of this function if called from vhost_vdpa_dev_start, as reorganize calling code around it is out of the scope of this series. Signed-off-by: Eugenio P=C3=A9rez Acked-by: Jason Wang Message-Id: <20230822085330.3978829-3-eperezma@redhat.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/vhost-vdpa.h | 1 + hw/virtio/vhost-vdpa.c | 25 +++++++++++++------------ hw/virtio/trace-events | 2 +- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h index e64bfc7f98..5407d54fd7 100644 --- a/include/hw/virtio/vhost-vdpa.h +++ b/include/hw/virtio/vhost-vdpa.h @@ -57,6 +57,7 @@ typedef struct vhost_vdpa { } VhostVDPA; =20 int vhost_vdpa_get_iova_range(int fd, struct vhost_vdpa_iova_range *iova_r= ange); +int vhost_vdpa_set_vring_ready(struct vhost_vdpa *v, unsigned idx); =20 int vhost_vdpa_dma_map(struct vhost_vdpa *v, uint32_t asid, hwaddr iova, hwaddr size, void *vaddr, bool readonly); diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 50b932a930..e7de880d51 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -882,18 +882,17 @@ static int vhost_vdpa_get_vq_index(struct vhost_dev *= dev, int idx) return idx; } =20 -static int vhost_vdpa_set_vring_ready(struct vhost_dev *dev) +int vhost_vdpa_set_vring_ready(struct vhost_vdpa *v, unsigned idx) { - int i; - trace_vhost_vdpa_set_vring_ready(dev); - for (i =3D 0; i < dev->nvqs; ++i) { - struct vhost_vring_state state =3D { - .index =3D dev->vq_index + i, - .num =3D 1, - }; - vhost_vdpa_call(dev, VHOST_VDPA_SET_VRING_ENABLE, &state); - } - return 0; + struct vhost_dev *dev =3D v->dev; + struct vhost_vring_state state =3D { + .index =3D idx, + .num =3D 1, + }; + int r =3D vhost_vdpa_call(dev, VHOST_VDPA_SET_VRING_ENABLE, &state); + + trace_vhost_vdpa_set_vring_ready(dev, idx, r); + return r; } =20 static int vhost_vdpa_set_config_call(struct vhost_dev *dev, @@ -1304,7 +1303,9 @@ static int vhost_vdpa_dev_start(struct vhost_dev *dev= , bool started) if (unlikely(!ok)) { return -1; } - vhost_vdpa_set_vring_ready(dev); + for (int i =3D 0; i < dev->nvqs; ++i) { + vhost_vdpa_set_vring_ready(v, dev->vq_index + i); + } } else { vhost_vdpa_suspend(dev); vhost_vdpa_svqs_stop(dev); diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events index 7109cf1a3b..1cb9027d1e 100644 --- a/hw/virtio/trace-events +++ b/hw/virtio/trace-events @@ -48,7 +48,7 @@ vhost_vdpa_set_features(void *dev, uint64_t features) "de= v: %p features: 0x%"PRI vhost_vdpa_get_device_id(void *dev, uint32_t device_id) "dev: %p device_id= %"PRIu32 vhost_vdpa_reset_device(void *dev) "dev: %p" vhost_vdpa_get_vq_index(void *dev, int idx, int vq_idx) "dev: %p idx: %d v= q idx: %d" -vhost_vdpa_set_vring_ready(void *dev) "dev: %p" +vhost_vdpa_set_vring_ready(void *dev, unsigned i, int r) "dev: %p, idx: %u= , r: %d" vhost_vdpa_dump_config(void *dev, const char *line) "dev: %p %s" vhost_vdpa_set_config(void *dev, uint32_t offset, uint32_t size, uint32_t = flags) "dev: %p offset: %"PRIu32" size: %"PRIu32" flags: 0x%"PRIx32 vhost_vdpa_get_config(void *dev, void *config, uint32_t config_len) "dev: = %p config: %p config_len: %"PRIu32 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477743; cv=none; d=zohomail.com; s=zohoarc; b=DqLJ5W3COJJbPsN2LpBfPU4m/G0UdYZzfAWg9A9gSlpO/Rx+G2NfjT9u4OWKOS9cIAYUfF28QPKm6m9TdVkZW5wDuoYJmJ/XPLAQXmA2awsbaeVcD197TI63rM/ithQwcBvTutipss+XgTHam/cnJHD+EZG6Ac3b1xplBV5lYkM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477743; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=D9qcIDsSMMkJCqsoeBuaE/sgIJa1XEttY+aCH5LMOdA=; b=C9GR9j9TE+o7JGYx+BDAt41m4zC2B04/nVJ51sCDp7xsCKmG8254/9eBe3ZdoZqPmfahwwNK3zj/jS8FCgurkESoLxKI7FZ1RfM0h6uDjVY6/3tyN3FAHYdnlN5653nmJ0DPBszzJS9ZxZtEjf1m15qp2Zl9SCruoswWZa2NPKk= 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 1696477743583921.2440261220119; Wed, 4 Oct 2023 20:49:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFH4-0002ag-De; Wed, 04 Oct 2023 23:43:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFH2-0002LH-HQ for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:40 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFH0-00009x-TO for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:40 -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_256_GCM_SHA384) id us-mta-395-o3ZQzx7qP1mCP4LrQ5K28Q-1; Wed, 04 Oct 2023 23:43:37 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-323334992fbso471609f8f.1 for ; Wed, 04 Oct 2023 20:43:36 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id h16-20020a056000001000b003217c096c1esm628111wrx.73.2023.10.04.20.43.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477418; 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=D9qcIDsSMMkJCqsoeBuaE/sgIJa1XEttY+aCH5LMOdA=; b=SucnFecEbGXF4dmpBcwc5zerwVAWQmJ+Hh+LE0oiXYTg7PCNY21Bp+24M0OZL/Fb73+bbB wAX98z47WLb6V0YPxaBPk0dlTv5bGKtETVqhENDd10Z8xLK9HobN2NgsPx9vo17LboVlA1 HmRYRG9K+tURBoc+nqs2gr4MRif0N+Y= X-MC-Unique: o3ZQzx7qP1mCP4LrQ5K28Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477415; x=1697082215; 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=D9qcIDsSMMkJCqsoeBuaE/sgIJa1XEttY+aCH5LMOdA=; b=gPeviioT1jGAJxGTdyqe0PGs/6GJw8YOV7Rd7T1bU6sCMCPjiiUiDGS+bEwT+sCGIk Y1vMGaXlyE7cZYkRb6ru8Zfsc94yFY7RNpWXPIk1eJAzz5G3CySt/unuPac9EiFHTcAq NIEptzMlvp7ybsoLApZ97DiNwdlS2UhGGFDYCusm537ZVzVNkq0IxLdw+YOOU+3pHavK l7NjbNNQAxP7cM0sSMJq6ZSdkO/pKYwwMcConU0fSt5rNTjzTepmZZdOQBm+WG/t8hxL 0cvoLrKXT4I4JI2xioKX5BW27EQATgek/n3COx8K6xiJ30GoR49EkvbGElEe5gJ46/yA VGZg== X-Gm-Message-State: AOJu0Yw5m9gBv4aFdWWVkGYoWR1fiHwKplSVZu5HV5sESIxGg42T5A4H AhPPVcC4tOyPVQtfsWsAKwvKPFiX6uhVTvBs9UicHk01OTYx/evsy7kKKgPX3zmU+Aq2roJLYHR Fbx7ezE9/MWTn5SJLMcldRUmcwhvYdK6nM1JBEJxW2xrPqy61dbKUszmp4p97qp13T5mW X-Received: by 2002:a05:6000:100e:b0:320:485:7010 with SMTP id a14-20020a056000100e00b0032004857010mr3884417wrx.67.1696477415388; Wed, 04 Oct 2023 20:43:35 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHDlGSMp5uxDZte1h0BJWBWLazTNKlDBJ/AKVFPzrJVKoAWnpCpqtJqcepf9QQ91VWxiRKoDw== X-Received: by 2002:a05:6000:100e:b0:320:485:7010 with SMTP id a14-20020a056000100e00b0032004857010mr3884405wrx.67.1696477415107; Wed, 04 Oct 2023 20:43:35 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:31 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang , Lei Yang Subject: [PULL v2 17/53] vdpa: rename vhost_vdpa_net_load to vhost_vdpa_net_cvq_load Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477744779100005 From: Eugenio P=C3=A9rez Next patches will add the corresponding data load. Signed-off-by: Eugenio P=C3=A9rez Acked-by: Jason Wang Message-Id: <20230822085330.3978829-4-eperezma@redhat.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 30dc7e77c9..008c0cf8b3 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -1013,7 +1013,7 @@ static int vhost_vdpa_net_load_vlan(VhostVDPAState *s, return 0; } =20 -static int vhost_vdpa_net_load(NetClientState *nc) +static int vhost_vdpa_net_cvq_load(NetClientState *nc) { VhostVDPAState *s =3D DO_UPCAST(VhostVDPAState, nc, nc); struct vhost_vdpa *v =3D &s->vhost_vdpa; @@ -1056,7 +1056,7 @@ static NetClientInfo net_vhost_vdpa_cvq_info =3D { .size =3D sizeof(VhostVDPAState), .receive =3D vhost_vdpa_receive, .start =3D vhost_vdpa_net_cvq_start, - .load =3D vhost_vdpa_net_load, + .load =3D vhost_vdpa_net_cvq_load, .stop =3D vhost_vdpa_net_cvq_stop, .cleanup =3D vhost_vdpa_cleanup, .has_vnet_hdr =3D vhost_vdpa_has_vnet_hdr, --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477781; cv=none; d=zohomail.com; s=zohoarc; b=iQ8+WaV6TTJa02gpZPPAQX2BfoJ2FL1y1OgJFprmkzOBpRxifuaqcAC06kWhFr10+Q+/xzQTYAvaIpQQzYOd5gXd8A/eMgR+JawdYbEU2Nx2JQAJOd40tVu/klEuvNvwVuYCF+/gMqdnSKw9NHRJPGnm2m3Wv6VNPXfAFC1jrFo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477781; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=t5XOx5uSgyVSXpoNfTcwoFWgq5vZoBZe4Va9ktCDvYA=; b=O5MpH0U0nxY/SP59PNH49UBRH73q6CGK8XKv8JZyYuGK6OMgXnOOhDivEdcMHDa63ETZ8zdxLtE5Xn1ElOsz7WrGY2UaB0QuMoD+PRINTW/FIphFU7Bv92JwBHqUmNr0gmQF4LNyZUVBoVUl7rGDLIEa+eRhstZL/CEJlO58eoM= 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 169647778173629.517296002763487; Wed, 4 Oct 2023 20:49:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFHK-00044k-8g; Wed, 04 Oct 2023 23:43:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHI-00042P-NL for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:56 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHH-0000BQ-3I for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:56 -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_256_GCM_SHA384) id us-mta-391-ycKuftdFO9C6pTih846qXQ-1; Wed, 04 Oct 2023 23:43:42 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-314256aedcbso478085f8f.0 for ; Wed, 04 Oct 2023 20:43:41 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id d7-20020adfe887000000b00326dd5486dcsm625795wrm.107.2023.10.04.20.43.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477433; 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=t5XOx5uSgyVSXpoNfTcwoFWgq5vZoBZe4Va9ktCDvYA=; b=IeU5SlleRBMhYTiY6QelAU+ZQAFcVWBERWK8k9Sq9cX34NRcD/P9ZGP/tuIGERxH8jn2xU 5yx4ytCSTtpww+raX3YkNhyE4Z4zNhn+iZNQeW/+3tpmJ0a99SBC7CiouFwZ7mU86QPrjp c8vpoRNFn8b1PeV5Z4kwu+kiRghHaoE= X-MC-Unique: ycKuftdFO9C6pTih846qXQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477419; x=1697082219; 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=t5XOx5uSgyVSXpoNfTcwoFWgq5vZoBZe4Va9ktCDvYA=; b=RFY2bZ0FTCySLDWREGCGy0BoMLGJdHETsd45sIp0J7rqd6KA4Lgo9spKzfoNODvyKq TcvXIcjbkbfU60FsG7EjCQeHziFIpy14zcB89SgyJxN5v3gGcfhZOx5+U0AE46qxXJI4 RczW2ITNOcDVJa/RpE7x9CutJH6R9eZ42fq3OooJ0gM+WIZH8QmcRTZIQVDuIp+m+GIJ zVzz0+ASXaJyvdCeQJa/2HXYyuzTAGmCpGa/Ep2LOIqjoU5p0oIR7RO2fDU/0sHwgUeO remrfKqd3MdQBA9VzK3XzGSAyTN/SlzfnD2l2E6JpMw9fRAKJzTw558stOqTk8psLffc uS9w== X-Gm-Message-State: AOJu0YySoEyR0+rZH/LiKfD73HCnBPq47S0F1qcVlr4ig9JYQzY+CEmb 3kGljtRZ5UFUSo0HpnbaHKJt+Ywed4iheZGH4MvA38ym4Czuns06Jz1gSRXYacmdf0/AsKq+b5p oHHUb4GnagH1kuluJrRBnsttRAqejC1ZKs8iCbY9pazcyiBH9wCGPHOTDyakYFtapPitV X-Received: by 2002:adf:f801:0:b0:323:2c3b:4307 with SMTP id s1-20020adff801000000b003232c3b4307mr3634390wrp.0.1696477419609; Wed, 04 Oct 2023 20:43:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEZG4F3th8V3N2cde6JF7i2LkQKDIWlPRTVE8t3uYhTYCncWzU6sEFGpKRoG1rv8SByo3BvDA== X-Received: by 2002:adf:f801:0:b0:323:2c3b:4307 with SMTP id s1-20020adff801000000b003232c3b4307mr3634378wrp.0.1696477419220; Wed, 04 Oct 2023 20:43:39 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:35 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang , Lei Yang Subject: [PULL v2 18/53] vdpa: move vhost_vdpa_set_vring_ready to the caller Message-ID: <6c4825476a4351530bcac17abab72295b75ffe98.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477783295100001 From: Eugenio P=C3=A9rez Doing that way allows CVQ to be enabled before the dataplane vqs, restoring the state as MQ or MAC addresses properly in the case of a migration. The patch does it by defining a ->load NetClientInfo callback also for dataplane. Ideally, this should be done by an independent patch, but the function is already static so it would only add an empty vhost_vdpa_net_data_load stub. Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230822085330.3978829-5-eperezma@redhat.com> Acked-by: Jason Wang Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/vdpa-dev.c | 3 ++ hw/virtio/vhost-vdpa.c | 3 -- net/vhost-vdpa.c | 65 ++++++++++++++++++++++++++++-------------- 3 files changed, 46 insertions(+), 25 deletions(-) diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c index 363b625243..f22d5d5bc0 100644 --- a/hw/virtio/vdpa-dev.c +++ b/hw/virtio/vdpa-dev.c @@ -255,6 +255,9 @@ static int vhost_vdpa_device_start(VirtIODevice *vdev, = Error **errp) error_setg_errno(errp, -ret, "Error starting vhost"); goto err_guest_notifiers; } + for (i =3D 0; i < s->dev.nvqs; ++i) { + vhost_vdpa_set_vring_ready(&s->vdpa, i); + } s->started =3D true; =20 /* diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index e7de880d51..89ff02a999 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -1303,9 +1303,6 @@ static int vhost_vdpa_dev_start(struct vhost_dev *dev= , bool started) if (unlikely(!ok)) { return -1; } - for (int i =3D 0; i < dev->nvqs; ++i) { - vhost_vdpa_set_vring_ready(v, dev->vq_index + i); - } } else { vhost_vdpa_suspend(dev); vhost_vdpa_svqs_stop(dev); diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 008c0cf8b3..0715bed8e6 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -375,6 +375,22 @@ static int vhost_vdpa_net_data_start(NetClientState *n= c) return 0; } =20 +static int vhost_vdpa_net_data_load(NetClientState *nc) +{ + VhostVDPAState *s =3D DO_UPCAST(VhostVDPAState, nc, nc); + struct vhost_vdpa *v =3D &s->vhost_vdpa; + bool has_cvq =3D v->dev->vq_index_end % 2; + + if (has_cvq) { + return 0; + } + + for (int i =3D 0; i < v->dev->nvqs; ++i) { + vhost_vdpa_set_vring_ready(v, i + v->dev->vq_index); + } + return 0; +} + static void vhost_vdpa_net_client_stop(NetClientState *nc) { VhostVDPAState *s =3D DO_UPCAST(VhostVDPAState, nc, nc); @@ -397,6 +413,7 @@ static NetClientInfo net_vhost_vdpa_info =3D { .size =3D sizeof(VhostVDPAState), .receive =3D vhost_vdpa_receive, .start =3D vhost_vdpa_net_data_start, + .load =3D vhost_vdpa_net_data_load, .stop =3D vhost_vdpa_net_client_stop, .cleanup =3D vhost_vdpa_cleanup, .has_vnet_hdr =3D vhost_vdpa_has_vnet_hdr, @@ -1022,30 +1039,34 @@ static int vhost_vdpa_net_cvq_load(NetClientState *= nc) =20 assert(nc->info->type =3D=3D NET_CLIENT_DRIVER_VHOST_VDPA); =20 - if (!v->shadow_vqs_enabled) { - return 0; + vhost_vdpa_set_vring_ready(v, v->dev->vq_index); + + if (v->shadow_vqs_enabled) { + n =3D VIRTIO_NET(v->dev->vdev); + r =3D vhost_vdpa_net_load_mac(s, n); + if (unlikely(r < 0)) { + return r; + } + r =3D vhost_vdpa_net_load_mq(s, n); + if (unlikely(r)) { + return r; + } + r =3D vhost_vdpa_net_load_offloads(s, n); + if (unlikely(r)) { + return r; + } + r =3D vhost_vdpa_net_load_rx(s, n); + if (unlikely(r)) { + return r; + } + r =3D vhost_vdpa_net_load_vlan(s, n); + if (unlikely(r)) { + return r; + } } =20 - n =3D VIRTIO_NET(v->dev->vdev); - r =3D vhost_vdpa_net_load_mac(s, n); - if (unlikely(r < 0)) { - return r; - } - r =3D vhost_vdpa_net_load_mq(s, n); - if (unlikely(r)) { - return r; - } - r =3D vhost_vdpa_net_load_offloads(s, n); - if (unlikely(r)) { - return r; - } - r =3D vhost_vdpa_net_load_rx(s, n); - if (unlikely(r)) { - return r; - } - r =3D vhost_vdpa_net_load_vlan(s, n); - if (unlikely(r)) { - return r; + for (int i =3D 0; i < v->dev->vq_index; ++i) { + vhost_vdpa_set_vring_ready(v, i); } =20 return 0; --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477608; cv=none; d=zohomail.com; s=zohoarc; b=QgO6pyRqmknfljK0ltWRpmmeot+1yTtCT6Xz0cAYnk4bDoNN+VMXWr5Qk29CBS1B1fSjXKx6OLMf508eb+9LkXP0svUreHmEcP5erv7/V15RmbncjOGeoiX288KfVurtiCYryyWJUvQI6JzBGsqH8wqcwMQD9D//b81MqqDljKA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477608; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wAoyD8naooe+1owbsXcnZ1RIo6I7CUVOQ7MqfozanzM=; b=NQot5tWd+Ib+hNteDw3RpZQohXnobupIqwbI9HFRg9I6kd2N1EdwHcSNmoQ7UALLsySIlgPU7BzUk7ETmcCaWBtjzFvAZ+IPoqE/s2qhXgfrRtd0ZCatHAalZn6aJU2B88ezA1d4mFEj2prVxYjIfO4XAf4X5QhliHf2udzH72g= 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 1696477608823426.9517319417357; Wed, 4 Oct 2023 20:46:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFHF-0003rf-5P; Wed, 04 Oct 2023 23:43:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHD-0003cf-4C for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHB-0000B2-Om for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:50 -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_256_GCM_SHA384) id us-mta-1-cJk0YpCzPm-hyxumX4VwPg-1; Wed, 04 Oct 2023 23:43:45 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-30932d15a30so384659f8f.1 for ; Wed, 04 Oct 2023 20:43:45 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id q13-20020adffecd000000b003176aa612b1sm632618wrs.38.2023.10.04.20.43.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477429; 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=wAoyD8naooe+1owbsXcnZ1RIo6I7CUVOQ7MqfozanzM=; b=bXK64DYztbBQE5l2xIEF5RnRYvk4rm/NyIJTlaTgibWLf+uWZO5smcUlY23K76MNqnngGn aMQiPY7DZG7u1RJ6wO9HSC/tckRH5BDimjQdwAFK2AKrcKvyxjQu68czimLnsnkgndX5U1 YMnckmnVyF8CqICtiLrIMI0Tq3NnqU8= X-MC-Unique: cJk0YpCzPm-hyxumX4VwPg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477423; x=1697082223; 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=wAoyD8naooe+1owbsXcnZ1RIo6I7CUVOQ7MqfozanzM=; b=eYFGGC8lBZvvG75pLJUTPAAjcELKcQzMCYX99NoZikXGmQHVw+0D3f0nOaETB67gW0 heKF8uA/v9zR+f/uAZXFq/mcJe/Rm9vFASR7e8+CcNCY2xzuQY67ibodl1JJ4xB5itUn HY/iuZRA0W8qll1ZwZ0NSWZPpKVMgLJB7RtHBpWl9yI+gtq3u2/ykr9kBmPIYui7lPTz BwSTt/YI3ujMftckAwzAUhm/gVI1nkz8b2orvT1v/j72+RfxV8ZnA3fgMf+Gs+EUJjXn +0toBPQjeSyG4f8i5NzqJxuex2yzsKvObyVl2lqmAXKwL/8Qbl4iWSEFh9HIXumJmfKB IDDg== X-Gm-Message-State: AOJu0YxkTcmPRqHN8FwwhY5wp6IINPeyMbpNkMOmxTz7MkAtVKsmvlKv NbmWmO/UBdcu3Ph6XVS0FYqM81X0kvCxt3Z5ORLhDeEYbE3LoKWw4XOOP/EADuJrEreXgKll8/0 8DuOUyXYYOc90Ik6JX3ehwBJ/vdXsq88UVl8Rhgy+T++1q3+5O7sths/tpSxRcblSk/vm X-Received: by 2002:a5d:4f8a:0:b0:31f:84a3:d188 with SMTP id d10-20020a5d4f8a000000b0031f84a3d188mr3460430wru.22.1696477423768; Wed, 04 Oct 2023 20:43:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFe+zKbYMQCRSDnlAREDlwnArxQTyu3GCbcxN+JpaJb5CuB+r0K3ujicmcz56cj/r3MRDRQQA== X-Received: by 2002:a5d:4f8a:0:b0:31f:84a3:d188 with SMTP id d10-20020a5d4f8a000000b0031f84a3d188mr3460420wru.22.1696477423461; Wed, 04 Oct 2023 20:43:43 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:39 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang , Lei Yang Subject: [PULL v2 19/53] vdpa: remove net cvq migration blocker Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477610673100005 From: Eugenio P=C3=A9rez Now that we have add migration blockers if the device does not support all the needed features, remove the general blocker applied to all net devices with CVQ. Signed-off-by: Eugenio P=C3=A9rez Acked-by: Jason Wang Message-Id: <20230822085330.3978829-6-eperezma@redhat.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 0715bed8e6..90beda42e0 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -1465,18 +1465,6 @@ static NetClientState *net_vhost_vdpa_init(NetClient= State *peer, s->vhost_vdpa.shadow_vq_ops =3D &vhost_vdpa_net_svq_ops; s->vhost_vdpa.shadow_vq_ops_opaque =3D s; s->cvq_isolated =3D cvq_isolated; - - /* - * TODO: We cannot migrate devices with CVQ and no x-svq enabled as - * there is no way to set the device state (MAC, MQ, etc) before - * starting the datapath. - * - * Migration blocker ownership now belongs to s->vhost_vdpa. - */ - if (!svq) { - error_setg(&s->vhost_vdpa.migration_blocker, - "net vdpa cannot migrate with CVQ feature"); - } } ret =3D vhost_vdpa_add(nc, (void *)&s->vhost_vdpa, queue_pair_index, n= vqs); if (ret) { --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477716; cv=none; d=zohomail.com; s=zohoarc; b=I2cU4pow0HWv5R7hsh5zq6fqsMrmmq2iCT86cy+tru7PNwqSqiX0Rd2JS/lHcArRYaBzSsMXbz6HhfUvVkOKTnQVL0QwKuCbgJt+dLV0IU3Yc4VevflcKZpZrSHYDk+iGcmjI0/UvjgiKE3MG/T+g/I6YXIf5mzU5dp643Jacqs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477716; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=px/NIHIU5yx2rY5OSFOtW4f6DdL5xcRfB3kvq/fso7Y=; b=EXkeXohF4i7D4L9XdCC1AnBUik9dFqxMZRx+FJNZc1nCbH8ZNVr77SgLcu0h/+U/Y89+YPBUJTEcbSuv5q+wxx8rHga9fnCjNky490e2BntRCuZ7eC7cDJMtTTOLdbxtzsZ4QfngB369d/SMuBq6aB4R8DIVYVnWayX/HicmZDc= 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 1696477716369324.65317204662074; Wed, 4 Oct 2023 20:48:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFHO-0004U7-JX; Wed, 04 Oct 2023 23:44:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHL-00048x-IU for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:59 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHI-0000Bs-RG for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:59 -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_256_GCM_SHA384) id us-mta-312-rYDFiNFPP9Ok6_019dE7PA-1; Wed, 04 Oct 2023 23:43:49 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-40652e8cb57so3848105e9.0 for ; Wed, 04 Oct 2023 20:43:49 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id fl16-20020a05600c0b9000b00406847c988asm2727261wmb.12.2023.10.04.20.43.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477436; 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=px/NIHIU5yx2rY5OSFOtW4f6DdL5xcRfB3kvq/fso7Y=; b=MCQ5Yiz/IokpphMy67codvWZbSwYlFhp7RMQOdjGKn1myE3l+pIg67IjIM8BHFEost5U4g DAk/mfC78PGAUQwSI0TAf/vNdog/f7F7CmklCpnG+zXbzpG7phQ4O/Nzu5Gr6xtZDmKQxR LEXIzrbaIViuO6BBXbGa92sdNSFGqFo= X-MC-Unique: rYDFiNFPP9Ok6_019dE7PA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477428; x=1697082228; 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=px/NIHIU5yx2rY5OSFOtW4f6DdL5xcRfB3kvq/fso7Y=; b=eD2UkUWHqvKV2H3qtoPk5nVUeESurlGOr8az54nyqMv0NJgwiQbUUFpRUV0+T0ADSR 85NdgFSVQYHFNdhgeZIC/hQ/pPJ36qYsPvBcsGapdctECdDX5ExpEaEVehuFiRkBA3M9 kkomwl3TzJRv4dsGf98lDtaiER9nS38Sh9ZdnFYf5Ui+H0jaUNCqTCYFyGuq21kWoHjI Go3QXcB1sxSLfQX6LfJkc757g5bqw+3JV4ym+evMm06R6Yll1Up27OibbmPdalaSh/B0 9wP4jQxL8EXKHVIp/tbie8i5AVqqd3rrGV788rxkkNZ0xkR4K0KSQmlqt4iI7aYT5dkO /O4g== X-Gm-Message-State: AOJu0YwsJIRUqMd3eZnbSi8Z73Kzve4xz5UkVtgZdK3AA7ghsxdcyorv 954gxuDLvX5vNi7rJTf5H0lKS9dfl62nmeGJ0JSTTBX+aZmxc1ybuM2wd5xYitjlJZ5CRxjZdmK 2yCLwH9HyQNqLGPRuW3hiKidsJMHYMehrwZ8l/1o9KNNKoldqAL2Da20/RvLVL/DVgjNa X-Received: by 2002:a05:600c:ad6:b0:3fc:7eb:1119 with SMTP id c22-20020a05600c0ad600b003fc07eb1119mr3740490wmr.15.1696477428067; Wed, 04 Oct 2023 20:43:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IERUUrgccmSFpvnvagau9oaRIGrdt7ehuc984oR4/yUgbtQkdbbku+CDbdi31GWPM5vKvbl5g== X-Received: by 2002:a05:600c:ad6:b0:3fc:7eb:1119 with SMTP id c22-20020a05600c0ad600b003fc07eb1119mr3740474wmr.15.1696477427683; Wed, 04 Oct 2023 20:43:47 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:43 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Hawkins Jiawei , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang Subject: [PULL v2 20/53] vhost: Add count argument to vhost_svq_poll() Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477718397100012 From: Hawkins Jiawei Next patches in this series will no longer perform an immediate poll and check of the device's used buffers for each CVQ state load command. Instead, they will send CVQ state load commands in parallel by polling multiple pending buffers at once. To achieve this, this patch refactoring vhost_svq_poll() to accept a new argument `num`, which allows vhost_svq_poll() to wait for the device to use multiple elements, rather than polling for a single element. Signed-off-by: Hawkins Jiawei Acked-by: Eugenio P=C3=A9rez Message-Id: <950b3bfcfc5d446168b9d6a249d554a013a691d4.1693287885.git.yin311= 49@gmail.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/vhost-shadow-virtqueue.h | 2 +- hw/virtio/vhost-shadow-virtqueue.c | 36 ++++++++++++++++++------------ net/vhost-vdpa.c | 2 +- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/hw/virtio/vhost-shadow-virtqueue.h b/hw/virtio/vhost-shadow-vi= rtqueue.h index 6efe051a70..5bce67837b 100644 --- a/hw/virtio/vhost-shadow-virtqueue.h +++ b/hw/virtio/vhost-shadow-virtqueue.h @@ -119,7 +119,7 @@ void vhost_svq_push_elem(VhostShadowVirtqueue *svq, int vhost_svq_add(VhostShadowVirtqueue *svq, const struct iovec *out_sg, size_t out_num, const struct iovec *in_sg, size_t in_num, VirtQueueElement *elem); -size_t vhost_svq_poll(VhostShadowVirtqueue *svq); +size_t vhost_svq_poll(VhostShadowVirtqueue *svq, size_t num); =20 void vhost_svq_set_svq_kick_fd(VhostShadowVirtqueue *svq, int svq_kick_fd); void vhost_svq_set_svq_call_fd(VhostShadowVirtqueue *svq, int call_fd); diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-vi= rtqueue.c index 49e5aed931..e731b1d2ea 100644 --- a/hw/virtio/vhost-shadow-virtqueue.c +++ b/hw/virtio/vhost-shadow-virtqueue.c @@ -514,29 +514,37 @@ static void vhost_svq_flush(VhostShadowVirtqueue *svq, } =20 /** - * Poll the SVQ for one device used buffer. + * Poll the SVQ to wait for the device to use the specified number + * of elements and return the total length written by the device. * * This function race with main event loop SVQ polling, so extra * synchronization is needed. * - * Return the length written by the device. + * @svq: The svq + * @num: The number of elements that need to be used */ -size_t vhost_svq_poll(VhostShadowVirtqueue *svq) +size_t vhost_svq_poll(VhostShadowVirtqueue *svq, size_t num) { - int64_t start_us =3D g_get_monotonic_time(); - uint32_t len =3D 0; + size_t len =3D 0; + uint32_t r; =20 - do { - if (vhost_svq_more_used(svq)) { - break; - } + while (num--) { + int64_t start_us =3D g_get_monotonic_time(); =20 - if (unlikely(g_get_monotonic_time() - start_us > 10e6)) { - return 0; - } - } while (true); + do { + if (vhost_svq_more_used(svq)) { + break; + } + + if (unlikely(g_get_monotonic_time() - start_us > 10e6)) { + return len; + } + } while (true); + + vhost_svq_get_buf(svq, &r); + len +=3D r; + } =20 - vhost_svq_get_buf(svq, &len); return len; } =20 diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 90beda42e0..5808d1b60c 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -645,7 +645,7 @@ static ssize_t vhost_vdpa_net_cvq_add(VhostVDPAState *s= , size_t out_len, * descriptor. Also, we need to take the answer before SVQ pulls by it= self, * when BQL is released */ - return vhost_svq_poll(svq); + return vhost_svq_poll(svq, 1); } =20 static ssize_t vhost_vdpa_net_load_cmd(VhostVDPAState *s, uint8_t class, --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477498; cv=none; d=zohomail.com; s=zohoarc; b=jlRqN2Tedp2B/T639FguOHCkDqDRzQ5ZqFniAuC6mta2KL9J+YXLBGibLCUUkSDlWwik7N4KsIjr65OMejjVi02syKweVsPp1aZtoTkRgWaKSe9atKDIPVfYm3RmX5czAeKFuKgQGVDedfclFRgh2KS6IZVGRVDDeZzMGE8lf7E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477498; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=6Ins0qLJ2S+b0ktKmityoiu5P8h7JluJ1ZGdKo7qxL0=; b=ej0l1q+rVXqbew7nzoxK2cX9eNdT3b2LavABVbyN/MFK4BtM+RKPe3MxNsb/wYDY4NzQXVbFq13NX3GH9yBscpSmbos/j3YilVdgTL1b10Z7kADzA9+0ZMEaG9L+wQzYkF7hLfwCVQZt6ShEru30d5pkNCFGEbzMIYe7Ku297QA= 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 1696477498550327.54140947503186; Wed, 4 Oct 2023 20:44:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFHL-00049s-Tx; Wed, 04 Oct 2023 23:43:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHK-00044l-8S for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:58 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHH-0000Bd-MH for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:43:57 -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_256_GCM_SHA384) id us-mta-22-4FaYlJXyODqqsVniC2zUEA-1; Wed, 04 Oct 2023 23:43:53 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-324810f3bfcso691311f8f.1 for ; Wed, 04 Oct 2023 20:43:53 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id p15-20020a7bcc8f000000b003fee6e170f9sm527151wma.45.2023.10.04.20.43.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477435; 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=6Ins0qLJ2S+b0ktKmityoiu5P8h7JluJ1ZGdKo7qxL0=; b=J5kwtJPoa8pOWfVBG2arbXMUdmzaq8dK4+IB2R/5FInzJfLj8dYSTIdrV7h/1W4coT17Ll oei2+vB3RmR2Qxh6krtmVF8QEC2m8MQTs0orDlzdrHKRQRT/3G2zn4mCKoIbsG/NkMFuHi JaomRFt6bgdB5IjxicgUdkeJDdDQmZY= X-MC-Unique: 4FaYlJXyODqqsVniC2zUEA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477431; x=1697082231; 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=6Ins0qLJ2S+b0ktKmityoiu5P8h7JluJ1ZGdKo7qxL0=; b=ujfSsuQSTXx7M6F+7yoWB2BQy2Kbj57mX0ITFbeKt4HzLcVwOLjUfKp1xv741vtd+O v+CoOiDcZVt+qfHX+bgUxmLS49uUfa4h6sfLjCt68wYGTX4R0pWPiBb0yJNRUWEeKXt4 AptVB38aFRjS9q26AuLcwGFVuljzvLkjehZDmG7V5vWRq13ZRmLh+eGkesxub8f/+oKG SwvZ+3je56JAICzggMsxULih2J1kAZDUkKoNMCSr7OYxJJXnVR2FJ8xjW8wZsHQgfRaU MI6YkK5N1Im4pjnbkQZ0RF9eatky/5zEzIhZoACjV8+JLvaLpeQPJJwwvxnaDknym6RJ JwWg== X-Gm-Message-State: AOJu0YxWr0YLQQRDJ4rgwt9Yk1EaR+9kxh7D9R2ffO483mQ6kwmH/zbM e1xrUCrIXjIvAsElUFWS1levuJ8fPtuQI6XUFHanfUGipaSMFuoCmZ6ou3Nl6z0Ft6qC94WPlHT JieSO5YyXxT7xf1st+EZZwzuLXhy7mFLMbAKmpnlEmfccQUjAnShOBJHe7VlJNPDihC+G X-Received: by 2002:a05:600c:2986:b0:406:4e2e:b185 with SMTP id r6-20020a05600c298600b004064e2eb185mr1047009wmd.1.1696477431604; Wed, 04 Oct 2023 20:43:51 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGkdfSBstqYZ69fu16hmCZgfFCgDi6JUmrK3zECFaR9HbvYbDVouyTw+1q8KKc3fwo/dhWFlQ== X-Received: by 2002:a05:600c:2986:b0:406:4e2e:b185 with SMTP id r6-20020a05600c298600b004064e2eb185mr1047000wmd.1.1696477431249; Wed, 04 Oct 2023 20:43:51 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:47 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonah Palmer , Daniel P =?utf-8?B?LiBCZXJyYW5nw6k=?= Subject: [PULL v2 21/53] qmp: remove virtio_list, search QOM tree instead Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477499058100001 From: Jonah Palmer The virtio_list duplicates information about virtio devices that already exist in the QOM composition tree. Instead of creating this list of realized virtio devices, search the QOM composition tree instead. This patch modifies the QMP command qmp_x_query_virtio to instead recursively search the QOM composition tree for devices of type 'TYPE_VIRTIO_DEVICE'. The device is also checked to ensure it's realized. Signed-off-by: Jonah Palmer Reviewed-by: Daniel P. Berrang=C3=A9 Message-Id: <20230926224107.2951144-2-jonah.palmer@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/virtio-qmp.h | 7 ---- hw/virtio/virtio-qmp.c | 85 ++++++++++++++---------------------------- hw/virtio/virtio.c | 6 --- 3 files changed, 29 insertions(+), 69 deletions(-) diff --git a/hw/virtio/virtio-qmp.h b/hw/virtio/virtio-qmp.h index 8af5f5e65a..245a446a56 100644 --- a/hw/virtio/virtio-qmp.h +++ b/hw/virtio/virtio-qmp.h @@ -15,13 +15,6 @@ #include "hw/virtio/virtio.h" #include "hw/virtio/vhost.h" =20 -#include "qemu/queue.h" - -typedef QTAILQ_HEAD(QmpVirtIODeviceList, VirtIODevice) QmpVirtIODeviceList; - -/* QAPI list of realized VirtIODevices */ -extern QmpVirtIODeviceList virtio_list; - VirtIODevice *qmp_find_virtio_device(const char *path); VirtioDeviceStatus *qmp_decode_status(uint8_t bitmap); VhostDeviceProtocols *qmp_decode_protocols(uint64_t bitmap); diff --git a/hw/virtio/virtio-qmp.c b/hw/virtio/virtio-qmp.c index 7515b0947b..adebf87e9b 100644 --- a/hw/virtio/virtio-qmp.c +++ b/hw/virtio/virtio-qmp.c @@ -667,70 +667,43 @@ VirtioDeviceFeatures *qmp_decode_features(uint16_t de= vice_id, uint64_t bitmap) return features; } =20 +static int query_dev_child(Object *child, void *opaque) +{ + VirtioInfoList **vdevs =3D opaque; + Object *dev =3D object_dynamic_cast(child, TYPE_VIRTIO_DEVICE); + if (dev !=3D NULL && DEVICE(dev)->realized) { + VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); + VirtioInfo *info =3D g_new(VirtioInfo, 1); + + /* Get canonical path & name of device */ + info->path =3D object_get_canonical_path(dev); + info->name =3D g_strdup(vdev->name); + QAPI_LIST_PREPEND(*vdevs, info); + } + return 0; +} + VirtioInfoList *qmp_x_query_virtio(Error **errp) { - VirtioInfoList *list =3D NULL; - VirtioInfo *node; - VirtIODevice *vdev; + VirtioInfoList *vdevs =3D NULL; =20 - 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_new(VirtioInfo, 1); - node->path =3D g_strdup(dev->canonical_path); - node->name =3D g_strdup(vdev->name); - QAPI_LIST_PREPEND(list, node); - } - g_string_free(is_realized, true); - } - qobject_unref(obj); + /* Query the QOM composition tree recursively for virtio devices */ + object_child_foreach_recursive(object_get_root(), query_dev_child, &vd= evs); + if (vdevs =3D=3D NULL) { + error_setg(errp, "No virtio devices found"); } - - return list; + return vdevs; } =20 VirtIODevice *qmp_find_virtio_device(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; + /* Verify the canonical path is a realized virtio device */ + Object *dev =3D object_dynamic_cast(object_resolve_path(path, NULL), + TYPE_VIRTIO_DEVICE); + if (!dev || !DEVICE(dev)->realized) { + return NULL; } - return NULL; + return VIRTIO_DEVICE(dev); } =20 VirtioStatus *qmp_x_query_virtio_status(const char *path, Error **errp) @@ -740,7 +713,7 @@ VirtioStatus *qmp_x_query_virtio_status(const char *pat= h, Error **errp) =20 vdev =3D qmp_find_virtio_device(path); if (vdev =3D=3D NULL) { - error_setg(errp, "Path %s is not a VirtIODevice", path); + error_setg(errp, "Path %s is not a realized VirtIODevice", path); return NULL; } =20 diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index d3a22e3d36..c727e9201b 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -45,8 +45,6 @@ #include "standard-headers/linux/virtio_mem.h" #include "standard-headers/linux/virtio_vsock.h" =20 -QmpVirtIODeviceList virtio_list; - /* * Maximum size of virtio device config space */ @@ -3659,7 +3657,6 @@ 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) @@ -3674,7 +3671,6 @@ 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; } @@ -3848,8 +3844,6 @@ 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) --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477471; cv=none; d=zohomail.com; s=zohoarc; b=IRrVeEjbDY82AaBCGtUUZezXrcq1NTjYPCibI2/M52ueGkMDj8Z3kQUMAs14tPPBFIb9/SkYRWLZwd9zfqLNDbVdavgjK5QXQusrF1LwWJ4ruCS+wTvTTEtKT0tLnwCOetNddLJhLkaOC8OGePd8gboIS23yEQvOgn2tUtjaCn0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477471; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2mf4R/8YkSOY8vs2JqIsx1upo9A7AZa1KZ2BBSwBvoc=; b=YX2L9yH/WYvn89IHnFBPuznKxMs7vF3WgHHOaytTnJVpHgib7mb4Jg7NEu/BnvAk5LQDoydqIqll4/cUJOCQlHoY50/qPNeyikCJAJWjIFvxCu/B0w4HhWmM5aMLSJ+4YODSjW3bVE/BlqW81gxdtYFxvHqlRW6suvND9OSvwGo= 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 1696477471066916.4596149927609; Wed, 4 Oct 2023 20:44:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFHl-00053q-T0; Wed, 04 Oct 2023 23:44:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHc-0004uB-3q for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHa-0000Ek-41 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:15 -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_256_GCM_SHA384) id us-mta-326-ou0pF3U2NQqXz1KD0ShIDQ-1; Wed, 04 Oct 2023 23:43:59 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-3fe182913c5so3635035e9.0 for ; Wed, 04 Oct 2023 20:43:58 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id y4-20020a05600c364400b0040472ad9a3dsm542343wmq.14.2023.10.04.20.43.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477453; 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=2mf4R/8YkSOY8vs2JqIsx1upo9A7AZa1KZ2BBSwBvoc=; b=gAZKyux2Q+yHKZJ0IHvjAYLIrMqkrsTSCEb33D9KrLGaw8CX+ZWibkbJEJ+PwxHFabIn3E 5NB+imBmC8WpNGI5N6eptcrTZNjSQAdJR4YpPQ1l53hZaq+xM7UXujU3slyL9Im6+Zkczu 9NcPOwPAUUWqEhq9P6lHJwC7KX4RQek= X-MC-Unique: ou0pF3U2NQqXz1KD0ShIDQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477436; x=1697082236; 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=2mf4R/8YkSOY8vs2JqIsx1upo9A7AZa1KZ2BBSwBvoc=; b=J2A3N+cHuDyShgQD9cXramyjdUudN3CJKFTIAkMHzj0+ahGfbkDth3ETbo09imrAT3 +jljeUye+WE5+gm5Ns6t9NImiui0ip4AqBHxmBOjz4+aV5XmUjkH45xn1l5vJWvS1Qb7 FNnI0XZ0UQPBEFSfXKWjxlmFDaqPhUDqK3fhti5vTirIpYdrgUZx2STn4c19YPzmhwaL Y4hQ93vAbQ6gkmTHi4azaLd5nSdRdj+UAAg2adeOB/I7R53Zl66xpVje4x+U9ZNZNevQ iY2t0QKN9jIstiNzKjyLoCAmJO8528ICnZdjudgAv6yGIc8hysnNPF4kadRe+MFfpISg OnzQ== X-Gm-Message-State: AOJu0YzmoSjgM/QgxsNw2+FgSOWUX0a345UMe5POeXc8hNgvU2PBg4Zl FvzDAYa0qNaZJ0Wb7gV6Xyl45OP/ac3JofU+vH1c4dzUzxPXgGzDXDXtm0xI6aBYG06o4m0fQCJ fYPN/L+45d+JPJ5WFymHbO3uVl5ZCkHO888czm897vi8/xad098zfH6IyS2miIanQKjFA X-Received: by 2002:a7b:c387:0:b0:3f9:b430:199b with SMTP id s7-20020a7bc387000000b003f9b430199bmr3760519wmj.15.1696477436409; Wed, 04 Oct 2023 20:43:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEUxqd66prXhoqYp03s7lJ7vSHMl9o1eKTysJqRKVdOaJspPWM3mG5rdsjFq5gYzAcjVT3aGA== X-Received: by 2002:a7b:c387:0:b0:3f9:b430:199b with SMTP id s7-20020a7bc387000000b003f9b430199bmr3760505wmj.15.1696477436137; Wed, 04 Oct 2023 20:43:56 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:51 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonah Palmer , Emmanouil Pitsidianakis , Viresh Kumar , Alex =?utf-8?Q?Benn=C3=A9e?= Subject: [PULL v2 22/53] qmp: update virtio feature maps, vhost-user-gpio introspection Message-ID: <58f81689789f63853d7585c5168f687f1633893a.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477472364100013 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonah Palmer Add new vhost-user protocol feature to vhost-user protocol feature map and enumeration: - VHOST_USER_PROTOCOL_F_STATUS Add new virtio device features for several virtio devices to their respective feature mappings: virtio-blk: - VIRTIO_BLK_F_SECURE_ERASE virtio-net: - VIRTIO_NET_F_NOTF_COAL - VIRTIO_NET_F_GUEST_USO4 - VIRTIO_NET_F_GUEST_USO6 - VIRTIO_NET_F_HOST_USO virtio/vhost-user-gpio: - VIRTIO_GPIO_F_IRQ - VHOST_USER_F_PROTOCOL_FEATURES Add support for introspection on vhost-user-gpio devices. Signed-off-by: Jonah Palmer Reviewed-by: Emmanouil Pitsidianakis Message-Id: <20230926224107.2951144-3-jonah.palmer@oracle.com> Acked-by: Viresh Kumar Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/vhost-user-gpio.c | 7 +++++++ hw/virtio/virtio-qmp.c | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/hw/virtio/vhost-user-gpio.c b/hw/virtio/vhost-user-gpio.c index 3b013f2d0f..3d7fae3984 100644 --- a/hw/virtio/vhost-user-gpio.c +++ b/hw/virtio/vhost-user-gpio.c @@ -205,6 +205,12 @@ static void vu_gpio_guest_notifier_mask(VirtIODevice *= vdev, int idx, bool mask) vhost_virtqueue_mask(&gpio->vhost_dev, vdev, idx, mask); } =20 +static struct vhost_dev *vu_gpio_get_vhost(VirtIODevice *vdev) +{ + VHostUserGPIO *gpio =3D VHOST_USER_GPIO(vdev); + return &gpio->vhost_dev; +} + static void do_vhost_user_cleanup(VirtIODevice *vdev, VHostUserGPIO *gpio) { virtio_delete_queue(gpio->command_vq); @@ -413,6 +419,7 @@ static void vu_gpio_class_init(ObjectClass *klass, void= *data) 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; + vdc->get_vhost =3D vu_gpio_get_vhost; } =20 static const TypeInfo vu_gpio_info =3D { diff --git a/hw/virtio/virtio-qmp.c b/hw/virtio/virtio-qmp.c index adebf87e9b..3431711db5 100644 --- a/hw/virtio/virtio-qmp.c +++ b/hw/virtio/virtio-qmp.c @@ -30,6 +30,7 @@ #include "standard-headers/linux/virtio_iommu.h" #include "standard-headers/linux/virtio_mem.h" #include "standard-headers/linux/virtio_vsock.h" +#include "standard-headers/linux/virtio_gpio.h" =20 #include CONFIG_DEVICES =20 @@ -53,6 +54,7 @@ enum VhostUserProtocolFeature { 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_STATUS =3D 16, VHOST_USER_PROTOCOL_F_MAX }; =20 @@ -136,6 +138,9 @@ static const qmp_virtio_feature_map_t vhost_user_protoc= ol_map[] =3D { FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, \ "VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS: Configuration for " "memory slots supported"), + FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_STATUS, \ + "VHOST_USER_PROTOCOL_F_STATUS: Querying and notifying back-end= " + "device status supported"), { -1, "" } }; =20 @@ -178,6 +183,8 @@ static const qmp_virtio_feature_map_t virtio_blk_featur= e_map[] =3D { "VIRTIO_BLK_F_DISCARD: Discard command supported"), FEATURE_ENTRY(VIRTIO_BLK_F_WRITE_ZEROES, \ "VIRTIO_BLK_F_WRITE_ZEROES: Write zeroes command supported"), + FEATURE_ENTRY(VIRTIO_BLK_F_SECURE_ERASE, \ + "VIRTIO_BLK_F_SECURE_ERASE: Secure erase supported"), FEATURE_ENTRY(VIRTIO_BLK_F_ZONED, \ "VIRTIO_BLK_F_ZONED: Zoned block devices"), #ifndef VIRTIO_BLK_NO_LEGACY @@ -301,6 +308,14 @@ static const qmp_virtio_feature_map_t virtio_net_featu= re_map[] =3D { 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_NOTF_COAL, \ + "VIRTIO_NET_F_NOTF_COAL: Device supports coalescing notificati= ons"), + FEATURE_ENTRY(VIRTIO_NET_F_GUEST_USO4, \ + "VIRTIO_NET_F_GUEST_USO4: Driver can receive USOv4"), + FEATURE_ENTRY(VIRTIO_NET_F_GUEST_USO6, \ + "VIRTIO_NET_F_GUEST_USO4: Driver can receive USOv6"), + FEATURE_ENTRY(VIRTIO_NET_F_HOST_USO, \ + "VIRTIO_NET_F_HOST_USO: Device can receive USO"), FEATURE_ENTRY(VIRTIO_NET_F_HASH_REPORT, \ "VIRTIO_NET_F_HASH_REPORT: Hash reporting supported"), FEATURE_ENTRY(VIRTIO_NET_F_RSS, \ @@ -471,6 +486,18 @@ static const qmp_virtio_feature_map_t virtio_rng_featu= re_map[] =3D { }; #endif =20 +/* virtio/vhost-gpio features mapping */ +#ifdef CONFIG_VHOST_USER_GPIO +static const qmp_virtio_feature_map_t virtio_gpio_feature_map[] =3D { + FEATURE_ENTRY(VIRTIO_GPIO_F_IRQ, \ + "VIRTIO_GPIO_F_IRQ: Device supports interrupts on GPIO lines"), + FEATURE_ENTRY(VHOST_USER_F_PROTOCOL_FEATURES, \ + "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features " + "negotiation supported"), + { -1, "" } +}; +#endif + #define CONVERT_FEATURES(type, map, is_status, bitmap) \ ({ \ type *list =3D NULL; \ @@ -627,6 +654,12 @@ VirtioDeviceFeatures *qmp_decode_features(uint16_t dev= ice_id, uint64_t bitmap) features->dev_features =3D CONVERT_FEATURES(strList, virtio_rng_feature_map, 0, bitmap); break; +#endif +#ifdef CONFIG_VHOST_USER_GPIO + case VIRTIO_ID_GPIO: + features->dev_features =3D + CONVERT_FEATURES(strList, virtio_gpio_feature_map, 0, bitmap); + break; #endif /* No features */ case VIRTIO_ID_9P: @@ -653,7 +686,6 @@ VirtioDeviceFeatures *qmp_decode_features(uint16_t devi= ce_id, uint64_t bitmap) case VIRTIO_ID_DMABUF: case VIRTIO_ID_PARAM_SERV: case VIRTIO_ID_AUDIO_POLICY: - case VIRTIO_ID_GPIO: break; default: g_assert_not_reached(); --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477759; cv=none; d=zohomail.com; s=zohoarc; b=BQfAv1bIANpys7XDZJsfu0D20GqjqF30Dk2QwrzvocGwnw7P2NWmfSfa6cop5AwShJbQdF72jx4ThfMBoguH0KFSHWKnwfn+p2CfM3p+jo55FByLeKAp7yYQd7OSc6kwMIX94FYj5sflQoEAbtB4glpE9Qke69aiWwKrYN0WuA4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477759; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=e6RIGJDZm9vqgaVvilT/iqK5gBS9e4D2YBhuylyTSNo=; b=R0Au+9v4nCagHZZo501Q1ZIJEH2zIk0Ov9HB4E3zjDVOGT0XDZhm/oJaXr31e6rfRbLGWYxNNJlFebsN471rYGH2PqS6+AswZhyNptCzEDFA3a6N+SzSV9JuHwN+A72FQw692OgyJN9BS7vBA4006tR1ZmnmnHBIU4jJkOcBDlI= 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 1696477759108983.9820287922055; Wed, 4 Oct 2023 20:49:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFHp-0005M0-Ad; Wed, 04 Oct 2023 23:44:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHa-0004rG-Iv for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:18 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHV-0000DS-Nb for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:14 -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_256_GCM_SHA384) id us-mta-484-szO76y9fNDmL3hUDaV4Srw-1; Wed, 04 Oct 2023 23:44:01 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4059475c174so4085665e9.0 for ; Wed, 04 Oct 2023 20:44:01 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id hn8-20020a05600ca38800b00405959bbf4fsm543902wmb.19.2023.10.04.20.43.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:43:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477443; 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=e6RIGJDZm9vqgaVvilT/iqK5gBS9e4D2YBhuylyTSNo=; b=Is+EOulXnMOyqRInXR8eUsgGABFfVf0+C19UFidgDXyyeeK5N6s6iiTLWjXibSfjNd2PY1 IVZuB9G6SGl3iqV1B1xdaLGYvA3YryzHhSSeoM9sTx8l44BcnjqXbEJO+EL36ZYyvyvzdm QldsD5oFiW9gmg3lVXpsBJ/eGFdji1Y= X-MC-Unique: szO76y9fNDmL3hUDaV4Srw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477440; x=1697082240; 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=e6RIGJDZm9vqgaVvilT/iqK5gBS9e4D2YBhuylyTSNo=; b=LBN81VN6CDJheGwM/3tk+UOfGzu7Z/cY8eHQrmNyU/yoehVO0W6IcOK8gQ34fRh0eK TLDSOI+zMGmPbF7BdMmYUJD+T2jwXIueTehLqNUUB7DekWbfZy3cbL6F9cpIw3WEVh9W 2YP4fWASelGS+UJdkdyzAwbpfp4hK7m27sSS1HCRtSN+Rma5SpqAq7iDi93z3Pl5Q3h9 lmu/oMoKWCnh6dqxZpqZwFYBS/V5yW3ifW3GI32ATKC/z9wR33Eymv7SGRG8pasNspSa rH84Hjg3dCKEq2R+tDu4sx+zRegU/he/OZpA4+saQm2+bNZxDnrFeFYCBSd6mSSVIS8j Eigw== X-Gm-Message-State: AOJu0YwlzOkvKAFmCUR9D1R+jBihkc70hGfVvB23MccA2QO9aXqPwxtt pc15ZeclVql91Ej/AhabH5tDDdDRhZuSxYmZeUwmM2fAypIjkWnq5Rn8rNIHMDkz459ORETWOXw SX/iTGYxQNRNlZZquFjldMUKtJ1XRMPA1qKUq4lPf9COgeCQUOUmpZFELZbikRe4Io6/R X-Received: by 2002:a7b:c5ca:0:b0:406:7021:7d8 with SMTP id n10-20020a7bc5ca000000b00406702107d8mr4205032wmk.20.1696477439938; Wed, 04 Oct 2023 20:43:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFCOynrgc4dy2uJwSL4wI6VNAK3YfoQwE5LhjNL631Fjn8W0Qa7LXZCxqY0a32xxIyk4Zqqqw== X-Received: by 2002:a7b:c5ca:0:b0:406:7021:7d8 with SMTP id n10-20020a7bc5ca000000b00406702107d8mr4205017wmk.20.1696477439657; Wed, 04 Oct 2023 20:43:59 -0700 (PDT) Date: Wed, 4 Oct 2023 23:43:56 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonah Palmer , Emmanouil Pitsidianakis , Raphael Norwitz , Paolo Bonzini , Fam Zheng Subject: [PULL v2 23/53] vhost-user: move VhostUserProtocolFeature definition to header file Message-ID: <3d123a8b411706423581db7d26a7bbe548360751.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477761102100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonah Palmer Move the definition of VhostUserProtocolFeature to include/hw/virtio/vhost-user.h. Remove previous definitions in hw/scsi/vhost-user-scsi.c, hw/virtio/vhost-user.c, and hw/virtio/virtio-qmp.c. Previously there were 3 separate definitions of this over 3 different files. Now only 1 definition of this will be present for these 3 files. Signed-off-by: Jonah Palmer Reviewed-by: Emmanouil Pitsidianakis Message-Id: <20230926224107.2951144-4-jonah.palmer@oracle.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/vhost-user.h | 21 +++++++++++++++++++++ hw/scsi/vhost-user-scsi.c | 4 ---- hw/virtio/vhost-user.c | 21 --------------------- hw/virtio/virtio-qmp.c | 22 +--------------------- 4 files changed, 22 insertions(+), 46 deletions(-) diff --git a/include/hw/virtio/vhost-user.h b/include/hw/virtio/vhost-user.h index 191216a74f..80e2b4a463 100644 --- a/include/hw/virtio/vhost-user.h +++ b/include/hw/virtio/vhost-user.h @@ -11,6 +11,27 @@ #include "chardev/char-fe.h" #include "hw/virtio/virtio.h" =20 +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_BACKEND_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_BACKEND_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_STATUS =3D 16, + VHOST_USER_PROTOCOL_F_MAX +}; + /** * VhostUserHostNotifier - notifier information for one queue * @rcu: rcu_head for cleanup diff --git a/hw/scsi/vhost-user-scsi.c b/hw/scsi/vhost-user-scsi.c index ee99b19e7a..df6b66cc1a 100644 --- a/hw/scsi/vhost-user-scsi.c +++ b/hw/scsi/vhost-user-scsi.c @@ -39,10 +39,6 @@ static const int user_feature_bits[] =3D { VHOST_INVALID_FEATURE_BIT }; =20 -enum VhostUserProtocolFeature { - VHOST_USER_PROTOCOL_F_RESET_DEVICE =3D 13, -}; - static void vhost_user_scsi_set_status(VirtIODevice *vdev, uint8_t status) { VHostUserSCSI *s =3D (VHostUserSCSI *)vdev; diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index 8dcf049d42..a096335921 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -56,27 +56,6 @@ */ #define VHOST_USER_MAX_CONFIG_SIZE 256 =20 -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_BACKEND_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_BACKEND_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, - /* Feature 14 reserved for VHOST_USER_PROTOCOL_F_INBAND_NOTIFICATIONS.= */ - VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS =3D 15, - VHOST_USER_PROTOCOL_F_STATUS =3D 16, - VHOST_USER_PROTOCOL_F_MAX -}; - #define VHOST_USER_PROTOCOL_FEATURE_MASK ((1 << VHOST_USER_PROTOCOL_F_MAX)= - 1) =20 typedef enum VhostUserRequest { diff --git a/hw/virtio/virtio-qmp.c b/hw/virtio/virtio-qmp.c index 3431711db5..1dd96ed20f 100644 --- a/hw/virtio/virtio-qmp.c +++ b/hw/virtio/virtio-qmp.c @@ -17,6 +17,7 @@ #include "qapi/qapi-commands-qom.h" #include "qapi/qmp/qobject.h" #include "qapi/qmp/qjson.h" +#include "hw/virtio/vhost-user.h" =20 #include "standard-headers/linux/virtio_ids.h" #include "standard-headers/linux/vhost_types.h" @@ -37,27 +38,6 @@ #define FEATURE_ENTRY(name, desc) (qmp_virtio_feature_map_t) \ { .virtio_bit =3D name, .feature_desc =3D desc } =20 -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_BACKEND_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_BACKEND_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_STATUS =3D 16, - VHOST_USER_PROTOCOL_F_MAX -}; - /* Virtio transport features mapping */ static const qmp_virtio_feature_map_t virtio_transport_map[] =3D { /* Virtio device transport features */ --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477746; cv=none; d=zohomail.com; s=zohoarc; b=IP3xMAmFFdGvKhAztgq7QpCqy7rseoUmqxpAq5QOFICwN5k4B6ci6YHlVMsZK2s4W0CO48KakRhZbuVXiorWtmlcBFvPql4dwsyC7/yoIYQKStI4Ttz4Bo59IF6LCtwq8J8iUeKFLQNZ20IRozLOcd09yVjLST8odSnl1EZKeGc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477746; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=i08g2Y3CGAaSjKQp/C/ixb+I7WFjEj9qgGznvzU8bM4=; b=jyZ3MEUBxGMqxXhWPRnPly2pBeRXNTrnxWFNwK1hJi5pjOxtxTFWh3oL13M8XR5Vsgtz9kNsYIcjaas3+a6HLryow0u4aTyHSQVYhY5rDpDP/G8l1Dint9HDJ7Ww3UW4P9qnHQjXYHvWNe90n/2f7PpDjZrNh3hYjIQi3XAuZXE= 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 1696477746130571.228894323974; Wed, 4 Oct 2023 20:49:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFHu-0005tB-49; Wed, 04 Oct 2023 23:44:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHa-0004rF-Gs for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:18 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHZ-0000E2-46 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:14 -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_256_GCM_SHA384) id us-mta-70-GRg5-Z0hP1-CtB6q-3qDqg-1; Wed, 04 Oct 2023 23:44:05 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-3fe1521678fso3817195e9.1 for ; Wed, 04 Oct 2023 20:44:05 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id 1-20020a05600c230100b0040644e699a0sm2775561wmo.45.2023.10.04.20.44.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477452; 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=i08g2Y3CGAaSjKQp/C/ixb+I7WFjEj9qgGznvzU8bM4=; b=hAMaGO8YpLHm3Aya20474NcXr1fbBzTU/vekHcItsEcbIfkbp64luUOmJDISrqYgQjDQgs AwIbt9CMgDxL0z0LC9Ims4++r+uprxGTu5b9VuXdTvZUXqU9qP3mpyG4mzsHPkl5rYKF04 aor+lSM2mr/M5XjfOUnXxAQfs6bscNY= X-MC-Unique: GRg5-Z0hP1-CtB6q-3qDqg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477444; x=1697082244; 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=i08g2Y3CGAaSjKQp/C/ixb+I7WFjEj9qgGznvzU8bM4=; b=IRtxqzZ8A21WTXi2RCesvcvXSdvdBt/ipLGT2jBkbFkX1o3tuBglBwFvEpZt25z5hK bE5i15cgLjKjrgKDa9hODNo61ULmgBmZoRIctbzyp+QWyuG5N5uxjU+7faVg5JA/Q7aW 5UAofj62tsQ6kqDnjeMHZnptJ0QTAmp2A4AT0sMgGdEN+uBCX/D6ungagXRTh2BFadvA E1n9+VLPn2vbYH5OlmnG5pWjNKnYdtcA5Hb8k+Nw0ct0VXKwAQXYBd3XtT2X0VXHLDcs /77lutlnXDnWiL8+ULwTyG/IPbw/JsFohfJe5rnW0iu5jpi6qI6BjSo9xgC461EA2H3E m3sQ== X-Gm-Message-State: AOJu0YwWmHUGRDaDsWsQ4UzvCemmSloUr+aT7v1/f/H65DSslUi1zzoh gCBBcVrhpRH/41HHYSIGAAc1atTpnwsqFRisutyOlvO5zVeGiKEkFgaAmctwpaY0kdWGfJSygvI t9J6XhJlVfLk4wwNWmqlwnP+zxGCHCL9TLG4+g9GsnXJT1lWvVIkDKxz6RAwTN0uzVh08 X-Received: by 2002:a05:600c:21d5:b0:3fe:5501:d284 with SMTP id x21-20020a05600c21d500b003fe5501d284mr4164791wmj.11.1696477443865; Wed, 04 Oct 2023 20:44:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHsKpVIVnrxh6H+LdzE/Zqc7KSYb/JdrXTo/GHIVFmHqMpL1lknkU4tTHiW4hWoQ2yrf2tYBA== X-Received: by 2002:a05:600c:21d5:b0:3fe:5501:d284 with SMTP id x21-20020a05600c21d500b003fe5501d284mr4164781wmj.11.1696477443554; Wed, 04 Oct 2023 20:44:03 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:00 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , David Woodhouse , Marcel Apfelbaum Subject: [PULL v2 24/53] hw/isa/ich9: Add comment on imperfect emulation of PIC vs. I/O APIC routing Message-ID: <886e0a5f31bf3d40dd8d9199674a4bad64942fde.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477746762100009 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Woodhouse As noted in the comment, the PCI INTx lines are supposed to be routed to *both* the PIC and the I/O APIC. It's just that we don't cope with the concept of an IRQ being asserted to two *different* pins on the two irqchips. So we have this hack of routing to I/O APIC only if the PIRQ routing to the PIC is disabled. Which seems to work well enough, even when I try hard to break it with kexec. But should be explicitly documented and understood. Signed-off-by: David Woodhouse Message-Id: <112a09643b8191c4eae7d92fa247a861ab90a9ee.camel@infradead.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/isa/lpc_ich9.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 9c47a2f6c7..bce487ac4e 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -304,6 +304,21 @@ static PCIINTxRoute ich9_route_intx_pin_to_irq(void *o= paque, int pirq_pin) route.irq =3D -1; } } else { + /* + * Strictly speaking, this is wrong. The PIRQ should be routed + * to *both* the I/O APIC and the PIC, on different pins. The + * I/O APIC has a fixed mapping to IRQ16-23, while the PIC is + * routed according to the PIRQx_ROUT configuration. But QEMU + * doesn't (yet) cope with the concept of pin numbers differing + * between PIC and I/O APIC, and neither does the in-kernel KVM + * irqchip support. So we route to the I/O APIC *only* if the + * routing to the PIC is disabled in the PIRQx_ROUT settings. + * + * This seems to work even if we boot a Linux guest with 'noapic' + * to make it use the legacy PIC, and then kexec directly into a + * new kernel which uses the I/O APIC. The new kernel explicitly + * disables the PIRQ routing even though it doesn't need to care. + */ route.irq =3D ich9_pirq_to_gsi(pirq_pin); } =20 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477638; cv=none; d=zohomail.com; s=zohoarc; b=FuxnRfj+rCM+3ZC91iP7H5oHkxii5c0Xi5L8yD1bJM6e6v4m6MX/oY9IvbR6HIqB4Ew57tIri13D2THvBzWROCRf42oP3lKX+dY9JgihN7cKARiKsfs3h6lkLfT+FimbtTYKm8EJ2HeodCEe2xKkiPO6SXLhco7nnROu3TRJVLI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477638; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Lsmr9uE1xRXPM9KOL778YFqc28uXJQm8cgVPqwE4uHY=; b=ZK9dLXqfEpv/WDplvBpAzursWX6WUobkYvRRPhpVx/djoAMwo5gtQum6QCZoPddYwVK9NmX95Yu2WkLFSkDABY1ofMHbV27PDuXmzS/vNtMsJzB7cH1gIi7mohHlolmfun7y2nmDa6jvdSGZ/dd622oYVxB06YOMbd84Mt0UY+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 1696477638859595.467546587528; Wed, 4 Oct 2023 20:47:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFHw-0006Bg-7F; Wed, 04 Oct 2023 23:44:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHk-0004yz-KK for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHi-0000G1-R2 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:24 -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_256_GCM_SHA384) id us-mta-530-7Zx1uVLPMTiESzDfs_wphA-1; Wed, 04 Oct 2023 23:44:10 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-3217fdf913dso406704f8f.3 for ; Wed, 04 Oct 2023 20:44:10 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id e13-20020a5d500d000000b003259b068ba6sm636913wrt.7.2023.10.04.20.44.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477462; 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=Lsmr9uE1xRXPM9KOL778YFqc28uXJQm8cgVPqwE4uHY=; b=gzPVl9QGpVKQY3PSCV65lXvV1i/+rI8es0W5DME4zfu8ZL8Ywf1Qo+4fvwkW8FGTqm/+bn Ue+9bHY8pRdREkuuImfBYFpOLHLZ5yZXjOe1ForIr1X6nqxTEajBgf+ZFGCK4k7SGsVeof MyW+maZar3eKBDHc97V7h91AZLWQDC0= X-MC-Unique: 7Zx1uVLPMTiESzDfs_wphA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477449; x=1697082249; 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=Lsmr9uE1xRXPM9KOL778YFqc28uXJQm8cgVPqwE4uHY=; b=kjU/SR0JMtxJqEw9r4Q5AcT7jBOdFOaewX+yrqVaEb9b0ZkIlE/Bc+jlKdPRJRpg/V 7HUR0wsezMoz2zuFsqLgq1XyRvAAsWOUyOPEXldnlpD35EkaAUVg+S2hJKm/ZNLz46WS QW/NpNePplS9A2NNMmk7H+Wkx6zoq6KS5wW3OIT6NVxEuP2U+5ao+z/CDlKD8IFRnYxN a3D73sMDIPmE9ZdPBj8dmKyqRdefVyHKbx/Ow5Ai5DLlj1PJaYu2egIfWwO+Bk9qd2Ng BrayPHB4CBza9WpUEFFRHTuYbh94R8rViCdEaWwcM329PniGjYiQN4cp3JTEpH46KBER 5cqQ== X-Gm-Message-State: AOJu0YwPSuIeEkFslHkA/F1POZLSKYv7N+7QdJt1G7ffxRSqMAs0vgA3 ms/R3a3uTGfXCf8xxjCjTo8G10mQZeGYyr9jRrZQv58fGlGVkBiNe4v3aBoZH0VnA9zGwb4pW0G Ljw2YUn6EJI78zwxeSzOKuuPYOwuV4pvIBv9d3VbumtHJrxVpeq/1XtUoOtlHV4MLyNJY X-Received: by 2002:adf:ee04:0:b0:31f:fcee:afcf with SMTP id y4-20020adfee04000000b0031ffceeafcfmr3454394wrn.71.1696477448946; Wed, 04 Oct 2023 20:44:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG7/fBRSZMnex7Pf6Vt0/iplQJ7CJmVP/B9A0RX1f7nitJpOoMdCZxH0jhFFpTt8l8RKnY3fw== X-Received: by 2002:adf:ee04:0:b0:31f:fcee:afcf with SMTP id y4-20020adfee04000000b0031ffceeafcfmr3454379wrn.71.1696477448701; Wed, 04 Oct 2023 20:44:08 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:03 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Bernhard Beschow , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Igor Mammedov , Ani Sinha , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL v2 25/53] hw/i386/acpi-build: Use pc_madt_cpu_entry() directly Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477639101100006 From: Bernhard Beschow This is x86-specific code, so there is no advantage in using pc_madt_cpu_entry() behind an architecture-agnostic interface. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230908084234.17642-2-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-common.h | 3 +-- hw/i386/acpi-build.c | 3 +-- hw/i386/acpi-common.c | 5 ++--- hw/i386/acpi-microvm.c | 3 +-- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/hw/i386/acpi-common.h b/hw/i386/acpi-common.h index a68825acf5..b3c56ee014 100644 --- a/hw/i386/acpi-common.h +++ b/hw/i386/acpi-common.h @@ -1,7 +1,6 @@ #ifndef HW_I386_ACPI_COMMON_H #define HW_I386_ACPI_COMMON_H =20 -#include "hw/acpi/acpi_dev_interface.h" #include "hw/acpi/bios-linker-loader.h" #include "hw/i386/x86.h" =20 @@ -9,7 +8,7 @@ #define ACPI_BUILD_IOAPIC_ID 0x0 =20 void acpi_build_madt(GArray *table_data, BIOSLinker *linker, - X86MachineState *x86ms, AcpiDeviceIf *adev, + X86MachineState *x86ms, const char *oem_id, const char *oem_table_id); =20 #endif diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 4d2d40bab5..2879e0d555 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2547,8 +2547,7 @@ void acpi_build(AcpiBuildTables *tables, MachineState= *machine) =20 acpi_add_table(table_offsets, tables_blob); acpi_build_madt(tables_blob, tables->linker, x86ms, - ACPI_DEVICE_IF(x86ms->acpi_dev), x86ms->oem_id, - x86ms->oem_table_id); + x86ms->oem_id, x86ms->oem_table_id); =20 #ifdef CONFIG_ACPI_ERST { diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c index 8a0932fe84..43dc23f7e0 100644 --- a/hw/i386/acpi-common.c +++ b/hw/i386/acpi-common.c @@ -94,14 +94,13 @@ build_xrupt_override(GArray *entry, uint8_t src, uint32= _t gsi, uint16_t flags) * 5.2.8 Multiple APIC Description Table */ void acpi_build_madt(GArray *table_data, BIOSLinker *linker, - X86MachineState *x86ms, AcpiDeviceIf *adev, + X86MachineState *x86ms, const char *oem_id, const char *oem_table_id) { int i; bool x2apic_mode =3D false; MachineClass *mc =3D MACHINE_GET_CLASS(x86ms); const CPUArchIdList *apic_ids =3D mc->possible_cpu_arch_ids(MACHINE(x8= 6ms)); - AcpiDeviceIfClass *adevc =3D ACPI_DEVICE_IF_GET_CLASS(adev); AcpiTable table =3D { .sig =3D "APIC", .rev =3D 3, .oem_id =3D oem_id, .oem_table_id =3D oem_table_id }; =20 @@ -111,7 +110,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *li= nker, build_append_int_noprefix(table_data, 1 /* PCAT_COMPAT */, 4); /* Flag= s */ =20 for (i =3D 0; i < apic_ids->len; i++) { - adevc->madt_cpu(i, apic_ids, table_data, false); + pc_madt_cpu_entry(i, apic_ids, table_data, false); if (apic_ids->cpus[i].arch_id > 254) { x2apic_mode =3D true; } diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c index a075360d85..fec22d85c1 100644 --- a/hw/i386/acpi-microvm.c +++ b/hw/i386/acpi-microvm.c @@ -214,8 +214,7 @@ static void acpi_build_microvm(AcpiBuildTables *tables, =20 acpi_add_table(table_offsets, tables_blob); acpi_build_madt(tables_blob, tables->linker, X86_MACHINE(machine), - ACPI_DEVICE_IF(x86ms->acpi_dev), x86ms->oem_id, - x86ms->oem_table_id); + x86ms->oem_id, x86ms->oem_table_id); =20 #ifdef CONFIG_ACPI_ERST { --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477499; cv=none; d=zohomail.com; s=zohoarc; b=lBjULV8U+uwocNLZa+wh7QYFxiSiMcD9yBgnXJK5IbH5jr5yjUV+t/35e4EE6ZAgeB/yqiDIqqtveXGMbnWFvuLzqdV7mSxuV9HLdtC44IlOt6lfu6eEe01zEojTfd35pjFpowgj3pKXHiNzjFPu0ildhIQhUDMLN7AXE0kz+V0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477499; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=h5eWtGUZ1Sz0a7PtH5EXwS3f64jDeuvdbuje94iZaYI=; b=AhOOyDneog5YviAtwu6WeQjIfBJMiYfvgVdz1s1t2LebWZJDQzkKow3mIS4ijYT2zOQhtK87h8M1IOEIWEb9aVnzsdUmyE9mi/Imo0ZYjiJJdjkHFka1iES65EovNIjISWSFJMUoCPAKTMx6dJpF4yjRpYS33S6RnGluy+CSo60= 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 1696477499590901.6286191166961; Wed, 4 Oct 2023 20:44:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFHo-0005Gm-Q1; Wed, 04 Oct 2023 23:44:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHf-0004v6-FD for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:22 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHd-0000Fg-Tj for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:19 -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_256_GCM_SHA384) id us-mta-518-Tj4R8C7lPJSBW0h33FUlDw-1; Wed, 04 Oct 2023 23:44:16 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-4065d52a83aso4026805e9.1 for ; Wed, 04 Oct 2023 20:44:15 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id c5-20020a05600c0ac500b0040586360a36sm2766997wmr.17.2023.10.04.20.44.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477457; 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=h5eWtGUZ1Sz0a7PtH5EXwS3f64jDeuvdbuje94iZaYI=; b=ePRtqr4cpgWF7TnaahTHdBUgT0WdU4zrBFrj11uK75aPQ93XHF5ykTLYEaba+MDE08dQ99 H4oSG3mu2ym3Vc1IoMDxFcKuCaCbwn/+P9x67FuPJxRghdcE2uIP92okOQILOK85aWk/s/ 3uCMpKEW2c0sfi9LeMnVlWNs6pdE8iU= X-MC-Unique: Tj4R8C7lPJSBW0h33FUlDw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477454; x=1697082254; 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=h5eWtGUZ1Sz0a7PtH5EXwS3f64jDeuvdbuje94iZaYI=; b=ETA1sjQ7Y7mHSsSOu434vagE2IcCAUr8MaHB3tzY68y84FiaclbAESg+YLPijJGbXi xgV7Rmd4Gek58nWZHZrkfwaDq5DplYgPfOv8GnWMNsMGgdkNw9cWJoMlVrPpZ84nkaWC IEuxdkRDM+lV+KLB6wO7BloahPIi7BJo4JBi85k9YIAD4FzGSTrFokWZ20c96+WjMkW3 TzFPkfctcAAVpc2zYaash6FlL7WuuwtEwJpJtj1bjVjLNGFJirE/PMEV7CL+j/zFEgAT FdEnhTyqC18jqYlQ+loGJ0dTLf6QFH96DrL8m5bR6TVVmmnI0FA1BvHv8lvWP3+rgZp2 1bMw== X-Gm-Message-State: AOJu0YxJKv8TV/qyFCkN7dIAyYbgPfHpDhyYrQ3vYOv3n31C+WOkEqPx VFlL+Fzq7YFyS4UdYNiJoJTrpoosOwrKVV9PqthEsSbKFDMtpfT+kaYLQH21SyQmYWKNmzjOqoF cZ2hedid+ijnnhFXl2FmDFwc6pvdu5o6fL7/JP1IqDSDb7V0CGN51dyC6P+J5+0ldNdSH X-Received: by 2002:a05:600c:2219:b0:405:1c19:b747 with SMTP id z25-20020a05600c221900b004051c19b747mr3650759wml.15.1696477454370; Wed, 04 Oct 2023 20:44:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHg6cErA8fFS56a0+kNkfyzZ9RFgwqK96cUyhGJcJmspkwR+nEtTMVRXxa4IEj9HrusZo89BA== X-Received: by 2002:a05:600c:2219:b0:405:1c19:b747 with SMTP id z25-20020a05600c221900b004051c19b747mr3650742wml.15.1696477453931; Wed, 04 Oct 2023 20:44:13 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:09 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Bernhard Beschow , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Igor Mammedov , Ani Sinha , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL v2 26/53] hw/acpi/cpu: Have build_cpus_aml() take a build_madt_cpu_fn callback Message-ID: <9a4fedcf12ae388722fa5430df92d0f41e3ba9be.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477501125100005 From: Bernhard Beschow build_cpus_aml() is architecture independent but needs to create architectu= re- specific CPU AML. So far this was achieved by using a virtual method from TYPE_ACPI_DEVICE_IF. However, build_cpus_aml() would resolve this interface= from global (!) state. This makes it quite incomprehensible where this interface comes from (TYPE_PIIX4_PM?, TYPE_ICH9_LPC_DEVICE?, TYPE_ACPI_GED_X86?) an c= an lead to crashes when the generic code is ported to new architectures. So far, build_cpus_aml() is only called in architecture-specific code -- and only in x86. We can therefore simply pass pc_madt_cpu_entry() as callback to build_cpus_aml(). This is the same callback that would be used through TYPE_ACPI_DEVICE_IF. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230908084234.17642-3-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/acpi/cpu.h | 6 +++++- hw/acpi/cpu.c | 8 ++------ hw/i386/acpi-build.c | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/hw/acpi/cpu.h b/include/hw/acpi/cpu.h index 999caaf510..bc901660fb 100644 --- a/include/hw/acpi/cpu.h +++ b/include/hw/acpi/cpu.h @@ -15,6 +15,7 @@ #include "hw/qdev-core.h" #include "hw/acpi/acpi.h" #include "hw/acpi/aml-build.h" +#include "hw/boards.h" #include "hw/hotplug.h" =20 typedef struct AcpiCpuStatus { @@ -55,8 +56,11 @@ typedef struct CPUHotplugFeatures { const char *smi_path; } CPUHotplugFeatures; =20 +typedef void (*build_madt_cpu_fn)(int uid, const CPUArchIdList *apic_ids, + GArray *entry, bool force_enabled); + void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures = opts, - hwaddr io_base, + build_madt_cpu_fn build_madt_cpu, hwaddr io_base, const char *res_root, const char *event_handler_method); =20 diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c index 19c154d78f..65a3202d3f 100644 --- a/hw/acpi/cpu.c +++ b/hw/acpi/cpu.c @@ -338,7 +338,7 @@ const VMStateDescription vmstate_cpu_hotplug =3D { #define CPU_FW_EJECT_EVENT "CEJF" =20 void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures = opts, - hwaddr io_base, + build_madt_cpu_fn build_madt_cpu, hwaddr io_base, const char *res_root, const char *event_handler_method) { @@ -353,8 +353,6 @@ void build_cpus_aml(Aml *table, MachineState *machine, = CPUHotplugFeatures opts, MachineClass *mc =3D MACHINE_GET_CLASS(machine); const CPUArchIdList *arch_ids =3D mc->possible_cpu_arch_ids(machine); char *cphp_res_path =3D g_strdup_printf("%s." CPUHP_RES_DEVICE, res_ro= ot); - Object *obj =3D object_resolve_path_type("", TYPE_ACPI_DEVICE_IF, NULL= ); - AcpiDeviceIfClass *adevc =3D ACPI_DEVICE_IF_GET_CLASS(obj); =20 cpu_ctrl_dev =3D aml_device("%s", cphp_res_path); { @@ -664,9 +662,7 @@ void build_cpus_aml(Aml *table, MachineState *machine, = CPUHotplugFeatures opts, aml_append(dev, method); =20 /* build _MAT object */ - assert(adevc && adevc->madt_cpu); - adevc->madt_cpu(i, arch_ids, madt_buf, - true); /* set enabled flag */ + build_madt_cpu(i, arch_ids, madt_buf, true); /* set enabled fl= ag */ aml_append(dev, aml_name_decl("_MAT", aml_buffer(madt_buf->len, (uint8_t *)madt_buf->data))); g_array_free(madt_buf, true); diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 2879e0d555..76581d51aa 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1549,8 +1549,8 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, .smi_path =3D pm->smi_on_cpuhp ? "\\_SB.PCI0.SMI0.SMIC" : NULL, .fw_unplugs_cpu =3D pm->smi_on_cpu_unplug, }; - build_cpus_aml(dsdt, machine, opts, pm->cpu_hp_io_base, - "\\_SB.PCI0", "\\_GPE._E02"); + build_cpus_aml(dsdt, machine, opts, pc_madt_cpu_entry, + pm->cpu_hp_io_base, "\\_SB.PCI0", "\\_GPE._E02"); } =20 if (pcms->memhp_io_base && nr_mem) { --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477675; cv=none; d=zohomail.com; s=zohoarc; b=mD7QcHcE1Gtaq+vibVfCiyjWXhk2a4P88B/wnRDaBuAOdeVyuF2rzo3zMWIN1jA8tVyOQQI3KEA7ngt8WcRfXOlzK7LTbBsHh+iS97Q+1qTzkahL5W54BWYaj787wcE9mBxUJcqBLmwP++Lzi3sMRKQokHoo/Ff4F+FmxphebgU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477675; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=twDnxCIZ4gi16W+P0IcrGb7JEdH581l09+veM2VEhWI=; b=i6haYxrKkw1OD9ZrYvOquCaRdfyvYLrsqBvpt4ETYi6uYUSolvoecbB09QJhmn1JyzBVQ/qf5PGt7dNwX5Vl1+9OPCLghPH3Bhgif5jZmjieoqqx6pAdmGFe8rgNxUKy+9BOgdgxvIkmyAZsIk9tbzfMU+YmcX/hyZO2uEC1M50= 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 1696477675856830.1881500812653; Wed, 4 Oct 2023 20:47:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFHw-0006CT-Co; Wed, 04 Oct 2023 23:44:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHu-00063V-Rg for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:34 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHt-0000Im-07 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:34 -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_256_GCM_SHA384) id us-mta-596-GIh3zxCbMo69qXWQeTB-kg-1; Wed, 04 Oct 2023 23:44:20 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-30e3ee8a42eso410420f8f.1 for ; Wed, 04 Oct 2023 20:44:20 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id k12-20020a5d628c000000b003233a31a467sm635337wru.34.2023.10.04.20.44.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477472; 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=twDnxCIZ4gi16W+P0IcrGb7JEdH581l09+veM2VEhWI=; b=gnPGvwXB3ury0H95Cb2WWNBaORF3bX944sIHiutJ3xbL58eRQlY1CfMnSAskauoAYQtUaW +uWb7VbBBERyQcM0NFiDe5QeV93ButZ8LYKFC/IpHShyn2IilWTyeXYxIazd4A+EM1SpMj PffNnzkSBgxATbnyalAwIhldNiJqFQo= X-MC-Unique: GIh3zxCbMo69qXWQeTB-kg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477459; x=1697082259; 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=twDnxCIZ4gi16W+P0IcrGb7JEdH581l09+veM2VEhWI=; b=pghG4s1/LAZ54p4mjOxQ/MHkXrPzXAabKyuXn+E+Zo9TXSLtBksW1+VKSGCiz75KS6 q0Qz9HMk7v/I7H4/REM0Lz6kw9sfs54IwNrUrtsXBrarqW9GoyPbtmnwYco/02Hz7ycx dPeObsbJLZut3K0UnWltCf5c3B98pz2G+0KNrCTznDaGA19c8zGqyMnClQ5LUpKmXdnG ae985J7AB7Zu2uisjZO74hWkIaR8yBGk6glaPu2kl83qnZThLmcqSgpgxmnIbjPVmz0U lxdvF8d8Hv2V7ET5Hrov0/4Xv96zpIUeGTLAeIYR+QgYZYTwmcdBtyignflCzD5HNMFD M7WA== X-Gm-Message-State: AOJu0Yy0QGt4o7C50WdRlh8cd9qAtUer3ZCW3/UBgUWL3IEKAT48UNZ3 KV7U0S2wf4D3yvJ1mqs7S96rLli7RkezlSPK8oV/l1uPN2nLLImjhiuudEOmXyPY4BBFSYLal+M 6Up6h3YjPdX+xpmd1nBFaQxs8+oGQ0yWk4jZ8L1NQWozIkb8R35GsESx3O1GqIWOBAVaQ X-Received: by 2002:a5d:4b11:0:b0:31f:ecb2:1bed with SMTP id v17-20020a5d4b11000000b0031fecb21bedmr3921944wrq.15.1696477459201; Wed, 04 Oct 2023 20:44:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHc/rkCUq2U7Xy2UyZcVw/gmmHEZpa+WgG4TKbw8mrmyM5l/vDeMi5GqrjL4XWm6WwrAI8YvQ== X-Received: by 2002:a5d:4b11:0:b0:31f:ecb2:1bed with SMTP id v17-20020a5d4b11000000b0031fecb21bedmr3921927wrq.15.1696477458857; Wed, 04 Oct 2023 20:44:18 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:14 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Bernhard Beschow , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Igor Mammedov , Ani Sinha , Aurelien Jarno , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL v2 27/53] hw/acpi/acpi_dev_interface: Remove now unused madt_cpu virtual method Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477677945100003 From: Bernhard Beschow This virtual method was always set to the x86-specific pc_madt_cpu_entry(), even in piix4 which is also used in MIPS. The previous changes use pc_madt_cpu_entry() otherwise, so madt_cpu can be dropped. Since pc_madt_cpu_entry() is now only used in x86-specific code, the stub in hw/acpi/acpi-x86-stub can be removed as well. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230908084234.17642-4-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/acpi/acpi_dev_interface.h | 2 -- hw/acpi/acpi-x86-stub.c | 6 ------ hw/acpi/piix4.c | 2 -- hw/i386/generic_event_device_x86.c | 9 --------- hw/isa/lpc_ich9.c | 1 - 5 files changed, 20 deletions(-) diff --git a/include/hw/acpi/acpi_dev_interface.h b/include/hw/acpi/acpi_de= v_interface.h index a1648220ff..ca92928124 100644 --- a/include/hw/acpi/acpi_dev_interface.h +++ b/include/hw/acpi/acpi_dev_interface.h @@ -52,7 +52,5 @@ struct AcpiDeviceIfClass { /* */ void (*ospm_status)(AcpiDeviceIf *adev, ACPIOSTInfoList ***list); void (*send_event)(AcpiDeviceIf *adev, AcpiEventStatusBits ev); - void (*madt_cpu)(int uid, const CPUArchIdList *apic_ids, GArray *entry, - bool force_enabled); }; #endif diff --git a/hw/acpi/acpi-x86-stub.c b/hw/acpi/acpi-x86-stub.c index d0d399d26b..9662a594ad 100644 --- a/hw/acpi/acpi-x86-stub.c +++ b/hw/acpi/acpi-x86-stub.c @@ -1,12 +1,6 @@ #include "qemu/osdep.h" -#include "hw/i386/pc.h" #include "hw/i386/acpi-build.h" =20 -void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids, - GArray *entry, bool force_enabled) -{ -} - Object *acpi_get_i386_pci_host(void) { return NULL; diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c index 63d2113b86..a7892c444c 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -20,7 +20,6 @@ */ =20 #include "qemu/osdep.h" -#include "hw/i386/pc.h" #include "hw/irq.h" #include "hw/isa/apm.h" #include "hw/i2c/pm_smbus.h" @@ -654,7 +653,6 @@ static void piix4_pm_class_init(ObjectClass *klass, voi= d *data) hc->is_hotpluggable_bus =3D piix4_is_hotpluggable_bus; adevc->ospm_status =3D piix4_ospm_status; adevc->send_event =3D piix4_send_gpe; - adevc->madt_cpu =3D pc_madt_cpu_entry; } =20 static const TypeInfo piix4_pm_info =3D { diff --git a/hw/i386/generic_event_device_x86.c b/hw/i386/generic_event_dev= ice_x86.c index e26fb02a2e..8fc233e1f1 100644 --- a/hw/i386/generic_event_device_x86.c +++ b/hw/i386/generic_event_device_x86.c @@ -8,19 +8,10 @@ =20 #include "qemu/osdep.h" #include "hw/acpi/generic_event_device.h" -#include "hw/i386/pc.h" - -static void acpi_ged_x86_class_init(ObjectClass *class, void *data) -{ - AcpiDeviceIfClass *adevc =3D ACPI_DEVICE_IF_CLASS(class); - - adevc->madt_cpu =3D pc_madt_cpu_entry; -} =20 static const TypeInfo acpi_ged_x86_info =3D { .name =3D TYPE_ACPI_GED_X86, .parent =3D TYPE_ACPI_GED, - .class_init =3D acpi_ged_x86_class_init, .interfaces =3D (InterfaceInfo[]) { { TYPE_HOTPLUG_HANDLER }, { TYPE_ACPI_DEVICE_IF }, diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index bce487ac4e..3f59980aa0 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -891,7 +891,6 @@ static void ich9_lpc_class_init(ObjectClass *klass, voi= d *data) hc->is_hotpluggable_bus =3D ich9_pm_is_hotpluggable_bus; adevc->ospm_status =3D ich9_pm_ospm_status; adevc->send_event =3D ich9_send_gpe; - adevc->madt_cpu =3D pc_madt_cpu_entry; amldevc->build_dev_aml =3D build_ich9_isa_aml; } =20 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477737; cv=none; d=zohomail.com; s=zohoarc; b=mh0X7GuvwWq5Wy4NNOq+pSH0AKkCDf0SHHK3jYR9iW7fDIxc07gefM8xX4lXkj+fQWXUAUXcyYqnEL2OSyzWKG24KRWrIuZQnc+5uj5M5XDQnMlgT2AB0K8Jp+F9TCwreKGoDO7k5byFvxmSG5uqRffHIiBhSsyhjqgCJS8sR8w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477737; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=mKGCCnmqWzFiFS2Xm/PXYhwhVbskQX1u9fUtGauWkBQ=; b=FvJL1C/VWrkoKVjQeTxOyh0aa0Aniv+pRecUVmJaPlt6eILKXdK9NtJH66W4t7Kj7+Xh31XPLsCquqO4lAM0NrZ0RMEjhSwZTl5RVYfsxzoBiKA3HrVr73dyZRJQS/K1nABwplM1z9cGzYm6KoBWeUXrH+CIkjX1ygYbtw8kdeY= 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 1696477737070988.9420189256913; Wed, 4 Oct 2023 20:48:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFI0-0006Ol-IC; Wed, 04 Oct 2023 23:44:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHt-0005uZ-Tl for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:34 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHm-0000IB-TR for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:33 -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_256_GCM_SHA384) id us-mta-594-_-_zCnPlPVGwB0xhVKd-Vw-1; Wed, 04 Oct 2023 23:44:25 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-32320b3ee93so382916f8f.3 for ; Wed, 04 Oct 2023 20:44:24 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id t18-20020a5d49d2000000b0031c6581d55esm625752wrs.91.2023.10.04.20.44.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477466; 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=mKGCCnmqWzFiFS2Xm/PXYhwhVbskQX1u9fUtGauWkBQ=; b=cGLcEYGQ4hP0e2X9OvL8SN2XK8S1cbzi5SYnelsYgpSEWsoP0a1qh63KHlDwoOBnivuloK dMoqU/VUNysjox9KwwuglqghmCbTfFaCo2EHd4eGBIKVW3tABH3d28idknXJt2BimVWl4v dEdku2qt0PYHOVevpDu1oyKdGxgkyFQ= X-MC-Unique: _-_zCnPlPVGwB0xhVKd-Vw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477463; x=1697082263; 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=mKGCCnmqWzFiFS2Xm/PXYhwhVbskQX1u9fUtGauWkBQ=; b=a5gSYxGH5bJYl4hKfQF0aphoYj49fvvUJ/tOc2LtZmCFFyjRybUEzowulgxheQRkFW /HeWFsWXORBVHlzX1jlN2es/FrhivQm2jbliqkUjSoZxKeYMkkMGlYit11T2Tq3t9Gwm J/MdqA1hyWwWS+vZJwNrtdkJK5dv3RqGnabaa5NYMxSCREW8p91SprPiDPZx9ELk3WPI A6BjdOC6TGcD8pHD2w3+FNnj7hsc/a6lWtfZ920E4vMlq6k672HCdu3JC4kdRqnQ8By2 BHCLISQUg2dj6bdjvM/G68po4Ag4VLdTnU1WQDEa919YjvAzqWk84ctz8nsskbmiifNm R3KA== X-Gm-Message-State: AOJu0YygR/tA/9cXl5xAPkbsIZQ8Na2kCTMDKV4Ynv6NBBQDQ8QF5QSG XIEWRulTE5ucUqTqWX+Ho1FUlKIcy89FZ27bM3E0W0e4mVL5cpmHLkarNCYmWllsSZbWIBWxKvd GAmgMH5rTWYrlnyEnyaZv3U1mTtBnD3K4TfnDVcQ4aRfMMyx/x53jshK+hln3bb7D5EAD X-Received: by 2002:adf:f641:0:b0:31f:b6ea:af48 with SMTP id x1-20020adff641000000b0031fb6eaaf48mr3590154wrp.49.1696477463327; Wed, 04 Oct 2023 20:44:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEKYr5po5Vza7CChdNadPIMbbNtsC017NjGGu+zLxjYUrgLdvGtmujx+eA11bkdshonTucn2w== X-Received: by 2002:adf:f641:0:b0:31f:b6ea:af48 with SMTP id x1-20020adff641000000b0031fb6eaaf48mr3590141wrp.49.1696477463053; Wed, 04 Oct 2023 20:44:23 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:19 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Bernhard Beschow , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Igor Mammedov , Ani Sinha Subject: [PULL v2 28/53] hw/acpi/acpi_dev_interface: Remove now unused #include "hw/boards.h" Message-ID: <4f70dd5f6366ac04b0f67d026ee2e17eb35daa45.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477738639100007 From: Bernhard Beschow The "hw/boards.h" is unused since the previous commit. Since its removal requires include fixes in various unrelated files to keep the code compilin= g it has been split in a dedicated commit. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230908084234.17642-5-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/acpi/hmat.h | 3 ++- include/hw/acpi/acpi_dev_interface.h | 1 - hw/acpi/cpu.c | 1 + hw/acpi/hmat.c | 1 + hw/acpi/memory_hotplug.c | 1 + 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/hw/acpi/hmat.h b/hw/acpi/hmat.h index b57f0e7e80..fd989cb661 100644 --- a/hw/acpi/hmat.h +++ b/hw/acpi/hmat.h @@ -27,7 +27,8 @@ #ifndef HMAT_H #define HMAT_H =20 -#include "hw/acpi/aml-build.h" +#include "hw/acpi/bios-linker-loader.h" +#include "sysemu/numa.h" =20 /* * ACPI 6.3: 5.2.27.3 Memory Proximity Domain Attributes Structure, diff --git a/include/hw/acpi/acpi_dev_interface.h b/include/hw/acpi/acpi_de= v_interface.h index ca92928124..68d9d15f50 100644 --- a/include/hw/acpi/acpi_dev_interface.h +++ b/include/hw/acpi/acpi_dev_interface.h @@ -3,7 +3,6 @@ =20 #include "qapi/qapi-types-acpi.h" #include "qom/object.h" -#include "hw/boards.h" #include "hw/qdev-core.h" =20 /* These values are part of guest ABI, and can not be changed */ diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c index 65a3202d3f..011d2c6c2d 100644 --- a/hw/acpi/cpu.c +++ b/hw/acpi/cpu.c @@ -1,6 +1,7 @@ #include "qemu/osdep.h" #include "migration/vmstate.h" #include "hw/acpi/cpu.h" +#include "hw/core/cpu.h" #include "qapi/error.h" #include "qapi/qapi-events-acpi.h" #include "trace.h" diff --git a/hw/acpi/hmat.c b/hw/acpi/hmat.c index 2d5e199ba9..3042d223c8 100644 --- a/hw/acpi/hmat.c +++ b/hw/acpi/hmat.c @@ -27,6 +27,7 @@ #include "qemu/osdep.h" #include "qemu/units.h" #include "sysemu/numa.h" +#include "hw/acpi/aml-build.h" #include "hw/acpi/hmat.h" =20 /* diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c index d926f4f77d..0b883df813 100644 --- a/hw/acpi/memory_hotplug.c +++ b/hw/acpi/memory_hotplug.c @@ -1,6 +1,7 @@ #include "qemu/osdep.h" #include "hw/acpi/memory_hotplug.h" #include "hw/mem/pc-dimm.h" +#include "hw/boards.h" #include "hw/qdev-core.h" #include "migration/vmstate.h" #include "trace.h" --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477493; cv=none; d=zohomail.com; s=zohoarc; b=GGCQb99Hk99Ujj6AlsyraB2v+Cbh4qk9rbzHFmvsXvMpGE37z4ZA08tvdx5D16U8wbRdX2KnONyPOIHI8lYF1yZkwjVaT8+FdlD67/3z02s6/6cAdDnGVafcatCXuN7UYiwzgeZhJB1TCQY9WtS+zxBP5k7FSzefgfIr3TbPjE0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477493; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ox4XVp7cPjoZ2q7tSEzM/GAHifS80JBi3Z8qpCVmbvw=; b=gEc2UihHSSCfI0RXpS0uHlEVN+UDUJbRW/47OoLsBQoQ/Koj8ZBQkcH0hmf8zAxd37oFjrsBjBymASsnk/DkyPRrQTgjWKVhFc1QfyPKSXyGyaMGC2kp5Tk4H5E6QCW0UvzMbB4VNLE8sbo6Ue+h4Ma2oNOt4XQwPZES6/aX6/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 1696477493308204.96830871489635; Wed, 4 Oct 2023 20:44:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFI3-0006dm-Tl; Wed, 04 Oct 2023 23:44:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHy-0006JN-KU for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:38 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFHw-0000JI-Rm for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:38 -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_256_GCM_SHA384) id us-mta-695-xmp8NbszMEuudVRW3Ah7Jg-1; Wed, 04 Oct 2023 23:44:29 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-40570ccc497so3911265e9.3 for ; Wed, 04 Oct 2023 20:44:29 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id e17-20020a05600c219100b0040646a708dasm546662wme.15.2023.10.04.20.44.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477476; 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=Ox4XVp7cPjoZ2q7tSEzM/GAHifS80JBi3Z8qpCVmbvw=; b=JXl2cTCFWtzySfug4FXCCxV4q7jsucPDl1XsN2xnyX1556lrr7YGahIZAkr/8kJlDHUcy/ b3zi1zrM1sTJyw0i7N2ymiJJgYMuI77ovfe4VToKl04eTT6NQXwkZdfk5KXXli8ZUCm4W0 l85dS3BmGVgwYKtGAa2M0PTHIZa2Ftc= X-MC-Unique: xmp8NbszMEuudVRW3Ah7Jg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477468; x=1697082268; 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=Ox4XVp7cPjoZ2q7tSEzM/GAHifS80JBi3Z8qpCVmbvw=; b=ID0dUk/c49+UrFS9ORKXLzD8PJ7j8vyxEb1V6Tx6mrqsp3AhrT//MBNcckb+HRowyv k7eGORY8VXW1wREfh3kHDcRoTnuLikCKmE5laHs0XcDAA0zbnFdt6SIPDT8uosrvZtHK E57PbQaVjthWH6yN+f2RBM5iNqhdc3cGJLx5ogEhNMXwIfzylHZcCHptD/EQNRobRMh7 5YNGKsD8S4j0AmsAQk/Bt7Fu0ep/qdU686Hyz56jKIiAhtHB3KKBYL+uM/iHfufQHlX3 RDLJBDINeV/GQyYGPtiqf64Q/zisC6LyaFzzOUzEtyyw8A2CnJwOUDyPrmpwMYRfUuHR x5FA== X-Gm-Message-State: AOJu0YwCd80+TCHU9ytMAQ7dIi7g5uYNyFTvAvqziiSdXgXhX/ZAPQr3 FRu0gICNmDV9NQry6uaNJtiCbX5h+WNmVZzK8uzQ4Hzp0HVQzkO2TJTDrebxhL1A0REWaqBzFCQ l0UYoxlQtv5BtXyzAuicarX668ZrzU42T0vYq713xvF2PZPYbPnxxNlqfMyPAiGDz2HBy X-Received: by 2002:a05:600c:cc:b0:405:3955:5872 with SMTP id u12-20020a05600c00cc00b0040539555872mr3913228wmm.18.1696477468165; Wed, 04 Oct 2023 20:44:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG33QvSzF3H4j/hKKvUSfmQm2+lQat9w6diZA6xnmdTTE/fBx6q7JffGedkfkooT4oDjHG0ag== X-Received: by 2002:a05:600c:cc:b0:405:3955:5872 with SMTP id u12-20020a05600c00cc00b0040539555872mr3913211wmm.18.1696477467889; Wed, 04 Oct 2023 20:44:27 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:23 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Bernhard Beschow , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Sergio Lopez , Igor Mammedov , Ani Sinha Subject: [PULL v2 29/53] hw/i386: Remove now redundant TYPE_ACPI_GED_X86 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477494908100001 From: Bernhard Beschow Now that TYPE_ACPI_GED_X86 doesn't assign AcpiDeviceIfClass::madt_cpu any m= ore it is the same as TYPE_ACPI_GED. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230908084234.17642-6-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/acpi/generic_event_device.h | 2 -- hw/i386/generic_event_device_x86.c | 27 -------------------------- hw/i386/microvm.c | 2 +- hw/i386/meson.build | 1 - 4 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 hw/i386/generic_event_device_x86.c diff --git a/include/hw/acpi/generic_event_device.h b/include/hw/acpi/gener= ic_event_device.h index d831bbd889..ba84ce0214 100644 --- a/include/hw/acpi/generic_event_device.h +++ b/include/hw/acpi/generic_event_device.h @@ -69,8 +69,6 @@ #define TYPE_ACPI_GED "acpi-ged" OBJECT_DECLARE_SIMPLE_TYPE(AcpiGedState, ACPI_GED) =20 -#define TYPE_ACPI_GED_X86 "acpi-ged-x86" - #define ACPI_GED_EVT_SEL_OFFSET 0x0 #define ACPI_GED_EVT_SEL_LEN 0x4 =20 diff --git a/hw/i386/generic_event_device_x86.c b/hw/i386/generic_event_dev= ice_x86.c deleted file mode 100644 index 8fc233e1f1..0000000000 --- a/hw/i386/generic_event_device_x86.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * x86 variant of the generic event device for hw reduced acpi - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2 or later, as published by the Free Software Foundation. - */ - -#include "qemu/osdep.h" -#include "hw/acpi/generic_event_device.h" - -static const TypeInfo acpi_ged_x86_info =3D { - .name =3D TYPE_ACPI_GED_X86, - .parent =3D TYPE_ACPI_GED, - .interfaces =3D (InterfaceInfo[]) { - { TYPE_HOTPLUG_HANDLER }, - { TYPE_ACPI_DEVICE_IF }, - { } - } -}; - -static void acpi_ged_x86_register_types(void) -{ - type_register_static(&acpi_ged_x86_info); -} - -type_init(acpi_ged_x86_register_types) diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 8deeb62774..b9c93039e2 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -204,7 +204,7 @@ static void microvm_devices_init(MicrovmMachineState *m= ms) =20 /* Optional and legacy devices */ if (x86_machine_is_acpi_enabled(x86ms)) { - DeviceState *dev =3D qdev_new(TYPE_ACPI_GED_X86); + DeviceState *dev =3D qdev_new(TYPE_ACPI_GED); qdev_prop_set_uint32(dev, "ged-event", ACPI_GED_PWR_DOWN_EVT); sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, GED_MMIO_BASE); /* sysbus_mmio_map(SYS_BUS_DEVICE(dev), 1, GED_MMIO_BASE_MEMHP); */ diff --git a/hw/i386/meson.build b/hw/i386/meson.build index cfdbfdcbcb..ff879069c9 100644 --- a/hw/i386/meson.build +++ b/hw/i386/meson.build @@ -20,7 +20,6 @@ i386_ss.add(when: 'CONFIG_SGX', if_true: files('sgx-epc.c= ','sgx.c'), if_false: files('sgx-stub.c')) =20 i386_ss.add(when: 'CONFIG_ACPI', if_true: files('acpi-common.c')) -i386_ss.add(when: 'CONFIG_ACPI_HW_REDUCED', if_true: files('generic_event_= device_x86.c')) i386_ss.add(when: 'CONFIG_PC', if_true: files( 'pc.c', 'pc_sysfw.c', --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477599; cv=none; d=zohomail.com; s=zohoarc; b=UiP9X14JmWB2lItLzlSK/M3graMC4IQeFRs/nFnfTiQexx+aXQTWVe3Sbm6lKEOQTbDJ1fYHSJ8+eFa36XbaCVjFchDpZW3za3hZC5KIyDNCsgl6Z6cD6+YMyjxD3jiBEX54S4dyWPS3mzVUDVLFEdZo7dSW3Rdej5PpvnzJz6s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477599; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SD/pP7NiyThvBXd+OfzcmY5b45I6wA7NnZdpFrf/vjg=; b=RApmd4blhGUDruNWkAOc3jiONf13nMz9hrRDcfoUXdbGHJKGjQTfLTpGCCN9FxZVghve9V06++0LKqYb+4kZHjrsrgbXotLCTGuViI5mah4sAmrIEZYJDHdVOMtPlkIGnnkZZGOl3FIB2LFh1Vqo7f+/o455in8tpA88eMX9qbo= 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 1696477599516701.6745031182716; Wed, 4 Oct 2023 20:46:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFIB-0007CH-U0; Wed, 04 Oct 2023 23:44:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFI8-0006sf-7L for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFI6-0000Kh-LZ for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:47 -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_256_GCM_SHA384) id us-mta-654-hpzSny24MHSLgj612s5KBQ-1; Wed, 04 Oct 2023 23:44:34 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-3fe182913c5so3636645e9.0 for ; Wed, 04 Oct 2023 20:44:34 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id k22-20020a7bc416000000b00404719b05b5sm537774wmi.27.2023.10.04.20.44.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477486; 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=SD/pP7NiyThvBXd+OfzcmY5b45I6wA7NnZdpFrf/vjg=; b=isam87ojbgXI1iwQi8t9dAeWvlnROK7VGvZ1yCbFOgdi0Cg5wAAJ/p539aganxSC+f1TlF UmiszRBFbbeNDvm54cCvT4WulYvkEkTR6CJmz0pR7ijEeFs9HjjQO54qqiOwB/DMF9m1U6 CUXYqUQcqovVkEbxTWi98Bwfp/K21Xo= X-MC-Unique: hpzSny24MHSLgj612s5KBQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477472; x=1697082272; 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=SD/pP7NiyThvBXd+OfzcmY5b45I6wA7NnZdpFrf/vjg=; b=FGdrXi1NHDV7mudPEhgLHuDlKo0cFGfYh6DUXg/Rou1n4zb6B77gye+oOaBa142GBe bzgrLXt9kxuGhLsnvLk/97B5a0BUn0ezwAsdWHNR5voRNcrFZUXCE/mtbMll1IwrqZwk yIs71iD/BasceOy1Wh6+L7XEr/b5CGnGahXT1RXgfq9ymUOsj9DwzamJACj8c23a2mhZ SOVHghngsAKtRwOtfLMoxd3ytWi/9dvlwRF0LLtz1CvAHTDr4aNNVWrMJSubFaVCqjzq TwCqBr2Ghjqg10lkBaMPG3HsIGRqBC2AMtTFgSIcyT2AOEqu30rKIb0ydTCRl0aVIGxa KD3w== X-Gm-Message-State: AOJu0YxdG86UgWPs0DM+QKOEDip2oAuGOp2N1q7Ko9cH+hkR8mvLFeZl UeipSNNhQ3UZIViO2+QLRdpfsovtNKAAANNOnxT6U8fXiOS63y7uWn+1ZbyNLwVJQKZaAiHFqMT DCNLv2Z5202MfIJa+K37QojQmrh3qEO0Ez8QpOoOxXVWxcmX5gz8jiYIjcCM9GRXtYTB1 X-Received: by 2002:a7b:cd98:0:b0:405:1ba2:4fcb with SMTP id y24-20020a7bcd98000000b004051ba24fcbmr3934735wmj.16.1696477472809; Wed, 04 Oct 2023 20:44:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEoOsNYc3LEDhHsuD0fIMd/D5T6mh6IenAhcuvT2559mWYWrtyyD1+MRJxaNZWUs6Z7mJoUFA== X-Received: by 2002:a7b:cd98:0:b0:405:1ba2:4fcb with SMTP id y24-20020a7bcd98000000b004051ba24fcbmr3934717wmj.16.1696477472388; Wed, 04 Oct 2023 20:44:32 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:28 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Bernhard Beschow , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Igor Mammedov , Ani Sinha , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL v2 30/53] hw/i386/acpi-build: Determine SMI command port just once Message-ID: <5cdb639d25f9951a90b6b7ba31d376d8ab132a61.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477600474100003 From: Bernhard Beschow The SMI command port is currently hardcoded by means of the ACPI_PORT_SMI_C= MD macro. This hardcoding is Intel specific and doesn't match VIA, for example. There is already the AcpiFadtData::smi_cmd attribute which is used when bui= lding the FADT. Let's also use it when building the DSDT which confines SMI comma= nd port determination to just one place. This allows it to become a property l= ater, thus resolving the Intel assumption. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230908084234.17642-7-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-build.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 76581d51aa..863a939210 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1495,14 +1495,14 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, aml_append(crs, aml_io( AML_DECODE16, - ACPI_PORT_SMI_CMD, - ACPI_PORT_SMI_CMD, + pm->fadt.smi_cmd, + pm->fadt.smi_cmd, 1, 2) ); aml_append(dev, aml_name_decl("_CRS", crs)); aml_append(dev, aml_operation_region("SMIR", AML_SYSTEM_IO, - aml_int(ACPI_PORT_SMI_CMD), 2)); + aml_int(pm->fadt.smi_cmd), 2)); field =3D aml_field("SMIR", AML_BYTE_ACC, AML_NOLOCK, AML_WRITE_AS_ZEROS); aml_append(field, aml_named_field("SMIC", 8)); --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477703; cv=none; d=zohomail.com; s=zohoarc; b=eE9ZHxVDose232Oo2Q7cDzuZ1Ar+elzonpMb6K16rYR/prp7SSWKqwASf7TMNxKBWoK0zZsvwbNfrd4ypFwEhJ0Hz+yX6uPxu3O4iTXYRPxUHlMYFCbf4T847un9ErG2ijDCZC57GMZgaURbny2blTizviNkYtBTgJyKZlCc1gQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477703; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uTXr5CWcV3lblSQfJBOfseEIqv48hvGb7/OS7uALRI4=; b=KvyrCVSwblulX0mXRLCNdgzzH5SniyGrvQM46CneccIO46vk8E2hUCs7rn1HKjWPS8foGaBrNHU1g+7boZFW2JuKotvmMk3q7uxg3IM3VXEf9BLd3qvaKO77drwW6P3LcDHx6PonV/c72tBZHz72Unoc49TUkCsFDS0rgR8DppU= 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 1696477703732671.8663609523486; Wed, 4 Oct 2023 20:48:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFI7-0006le-AG; Wed, 04 Oct 2023 23:44:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFI3-0006eT-S0 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:44 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFI1-0000K7-S9 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:43 -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_256_GCM_SHA384) id us-mta-622-X7izp8rpMkm1-fbhkNbX7A-1; Wed, 04 Oct 2023 23:44:39 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-326f05ed8f9so479281f8f.0 for ; Wed, 04 Oct 2023 20:44:39 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id d16-20020adff850000000b003232d122dbfsm623692wrq.66.2023.10.04.20.44.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477480; 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=uTXr5CWcV3lblSQfJBOfseEIqv48hvGb7/OS7uALRI4=; b=OlkITIfyS+CEnqRRFoMdjfyITy49lPy0NcCJKEiq2048bM5/qSoxF9RifmLPYnIEYpgSEJ KOAs5GO5s4PE9VEU3KgmgumMqv6nzX4yEwM6oFaQr4dKutJ4vAIKB20E6u5PP2zLCsGGye k0VngGfoRE+8E2yenuJ0d+jg64WNfvo= X-MC-Unique: X7izp8rpMkm1-fbhkNbX7A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477477; x=1697082277; 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=uTXr5CWcV3lblSQfJBOfseEIqv48hvGb7/OS7uALRI4=; b=pBQj9yA1zviLkrsMO8ESum+vT6Isgb60FaXbvGrV4NGV+z62fX6grhw5RJgT/l5ang 5GafBdlIRkG3BE0qkBz6TOrVLt4JmpvvFQ8GehnROVxPSKpSXwtCwtcWhSAgFbFhjXwA OgZ/FAaPDW3vVdwr+L0HNDbCg14yJ0YiujE+PGrvMqtqCGJKzC/oAyTbbPVcCrPsgtrv f+mIImbgxdoRsLBKrWXphgLsWJKk6K+zP416Q2rQcrVkTC2GdGiDWHnn3oV8FJGaav80 z+WiQSXycAhMg4jmLqUILJqhCqg9r7hLioaaY/RY9DxOLhWfBHCs97rs/eHSBNw0YTsb mjTA== X-Gm-Message-State: AOJu0YxC1AdpBHcvAcWjk7metrrxk0CmyjOtei3tggObDjwqgQaeWdhp 40rY1X1HRBdJUZqICXHtG0OHJvjhcrj1KXfWYkcqgywxlYI2S3KHAxPqECAUCM982TXPfSGdqLH TcaIAJTOwIIArr0tC5pRqRRouhZL7fT/R4G/+8Io1mEeh9Pke/WiujdjsQ6CUT1A0oS5C X-Received: by 2002:a5d:4d12:0:b0:31f:f9a9:a742 with SMTP id z18-20020a5d4d12000000b0031ff9a9a742mr3434182wrt.23.1696477477578; Wed, 04 Oct 2023 20:44:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFGL/DUi9P0Ul0u3NI297Pg52hs9zlcH9/y827Lrrr+o5Sp2AnrnzubcwVbWR5li2904L+Mww== X-Received: by 2002:a5d:4d12:0:b0:31f:f9a9:a742 with SMTP id z18-20020a5d4d12000000b0031ff9a9a742mr3434170wrt.23.1696477477301; Wed, 04 Oct 2023 20:44:37 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:32 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Bernhard Beschow , Igor Mammedov , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Ani Sinha , Marcel Apfelbaum , Aurelien Jarno Subject: [PULL v2 31/53] hw/acpi: Trace GPE access in all device models, not just PIIX4 Message-ID: <7f558ea58bb60257b111abac0424dc601ff54875.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477704115100001 From: Bernhard Beschow Signed-off-by: Bernhard Beschow Reviewed-by: Igor Mammedov Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230908084234.17642-8-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/acpi/core.c | 5 +++++ hw/acpi/piix4.c | 3 --- hw/acpi/trace-events | 8 ++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/hw/acpi/core.c b/hw/acpi/core.c index 00b1e79a30..c561845a4a 100644 --- a/hw/acpi/core.c +++ b/hw/acpi/core.c @@ -32,6 +32,7 @@ #include "qemu/module.h" #include "qemu/option.h" #include "sysemu/runstate.h" +#include "trace.h" =20 struct acpi_table_header { uint16_t _length; /* our length, not actual part of the hdr */ @@ -686,6 +687,8 @@ void acpi_gpe_ioport_writeb(ACPIREGS *ar, uint32_t addr= , uint32_t val) { uint8_t *cur; =20 + trace_acpi_gpe_ioport_writeb(addr, val); + cur =3D acpi_gpe_ioport_get_ptr(ar, addr); if (addr < ar->gpe.len / 2) { /* GPE_STS */ @@ -709,6 +712,8 @@ uint32_t acpi_gpe_ioport_readb(ACPIREGS *ar, uint32_t a= ddr) val =3D *cur; } =20 + trace_acpi_gpe_ioport_readb(addr, val); + return val; } =20 diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c index a7892c444c..dd523d2e4c 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -42,7 +42,6 @@ #include "hw/acpi/acpi_dev_interface.h" #include "migration/vmstate.h" #include "hw/core/cpu.h" -#include "trace.h" #include "qom/object.h" =20 #define GPE_BASE 0xafe0 @@ -517,7 +516,6 @@ static uint64_t gpe_readb(void *opaque, hwaddr addr, un= signed width) PIIX4PMState *s =3D opaque; uint32_t val =3D acpi_gpe_ioport_readb(&s->ar, addr); =20 - trace_piix4_gpe_readb(addr, width, val); return val; } =20 @@ -526,7 +524,6 @@ static void gpe_writeb(void *opaque, hwaddr addr, uint6= 4_t val, { PIIX4PMState *s =3D opaque; =20 - trace_piix4_gpe_writeb(addr, width, val); acpi_gpe_ioport_writeb(&s->ar, addr, val); acpi_update_sci(&s->ar, s->irq); } diff --git a/hw/acpi/trace-events b/hw/acpi/trace-events index 78e0a8670e..159937ddb9 100644 --- a/hw/acpi/trace-events +++ b/hw/acpi/trace-events @@ -17,6 +17,10 @@ mhp_acpi_clear_remove_evt(uint32_t slot) "slot[0x%"PRIx3= 2"] clear remove event" mhp_acpi_pc_dimm_deleted(uint32_t slot) "slot[0x%"PRIx32"] pc-dimm deleted" mhp_acpi_pc_dimm_delete_failed(uint32_t slot) "slot[0x%"PRIx32"] pc-dimm d= elete failed" =20 +# core.c +acpi_gpe_ioport_readb(uint32_t addr, uint8_t val) "addr: 0x%" PRIx32 " =3D= =3D> 0x%" PRIx8 +acpi_gpe_ioport_writeb(uint32_t addr, uint8_t val) "addr: 0x%" PRIx32 " <= =3D=3D 0x%" PRIx8 + # cpu.c cpuhp_acpi_invalid_idx_selected(uint32_t idx) "0x%"PRIx32 cpuhp_acpi_read_flags(uint32_t idx, uint8_t flags) "idx[0x%"PRIx32"] flags= : 0x%"PRIx8 @@ -48,10 +52,6 @@ acpi_pci_sel_read(uint32_t val) "%" PRIu32 acpi_pci_ej_write(uint64_t addr, uint64_t data) "0x%" PRIx64 " <=3D=3D %" = PRIu64 acpi_pci_sel_write(uint64_t addr, uint64_t data) "0x%" PRIx64 " <=3D=3D %"= PRIu64 =20 -# piix4.c -piix4_gpe_readb(uint64_t addr, unsigned width, uint64_t val) "addr: 0x%" P= RIx64 " width: %d =3D=3D> 0x%" PRIx64 -piix4_gpe_writeb(uint64_t addr, unsigned width, uint64_t val) "addr: 0x%" = PRIx64 " width: %d <=3D=3D 0x%" PRIx64 - # tco.c tco_timer_reload(int ticks, int msec) "ticks=3D%d (%d ms)" tco_timer_expired(int timeouts_no, bool strap, bool no_reboot) "timeouts_n= o=3D%d no_reboot=3D%d/%d" --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477717; cv=none; d=zohomail.com; s=zohoarc; b=b3moFePmOnmfjmuvyiOADtLofLwcmSGyM3pJ1nsm7QsnbbRfNz8p0qosWiNyvV2ktyy4wth/8Vx/n3fIYw5kNcoWCoI9itDKDfn89gX3bBHrJ0yw8F207IMDHZBef/QRTqqLdEGdkezPhKPDkUeTX8JgGAbGbc0mcCMZeuPm4lM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477717; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=AyBHZxgcznnd088YayNhukDWH1TlGZpm/MILwePdz9Q=; b=L5DIWfLisxDS4fu7tJRAx7ywTUE2me8z9TV5iXq9wTmL+ZVGlHkioLNB746mAwIKIfGmj7EJImJOaIBrhfssSHkUU+pnt3yJyPccduR+f9QGdZJRBOeCr0AYh4DG39WOO+u4jPAdp7fp8xZRpBN56XYew4a3LXIvPUyuAiKh2MQ= 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 1696477717339371.5320146574445; Wed, 4 Oct 2023 20:48:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFIK-0007ij-E6; Wed, 04 Oct 2023 23:45:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFI8-0006rX-0q for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFI5-0000KO-Di for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:47 -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_256_GCM_SHA384) id us-mta-447-wCIeIze7NtSMLaKUAcPJNg-1; Wed, 04 Oct 2023 23:44:43 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-4066e59840eso3190075e9.1 for ; Wed, 04 Oct 2023 20:44:43 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id fl16-20020a05600c0b9000b00406847c988asm2728260wmb.12.2023.10.04.20.44.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477484; 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=AyBHZxgcznnd088YayNhukDWH1TlGZpm/MILwePdz9Q=; b=XDBJptQv9ixbgk81925gVyiR1vy0mPcolGmJV2i4J7IKyLi9eChMpNs3KPmACvxwEiyzNb eFxo6xpxsuPjlndKvnygffa6skzQWh/9vQltRIMDuBaX1VbqRawEt5LUA1LEgbzfhWPih/ stszs4xTO2eL22BoK/d9tWeDiySx5Hw= X-MC-Unique: wCIeIze7NtSMLaKUAcPJNg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477482; x=1697082282; 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=AyBHZxgcznnd088YayNhukDWH1TlGZpm/MILwePdz9Q=; b=SAZA3sITHGbVsmnB74+/Quhi89H7xf2Eto6cSQp6Hh89jBQTH1pRDQSl9bKzzNtBGt pUR7xj9FeMQM1eW0dgSc5po8/EJ61Bnw8RmMCY8qaxcdy2LBFqjBKMby1pXdz6HHLdOg SHFZTJN8sVj2VY4VPRDmc2Bn8K4Ja31X8g1KYiS+41dlBoMzXHZFmksF3shmzDROVk+u ngAsWlQ6J/nkM2Xe7OQasTcwlxK8Y004AhmHeZGE+JvYxFI1vcgskAuhVjxnx/G2WoBd dwiG0W+M3aURedfUkLANs1Cs9/a1+LOAmStfWImMORGf4DHI7ksuZ2VKUdGc022G5LcX WEvg== X-Gm-Message-State: AOJu0Yzw0jqc+YTAGVWXw+2+iKdRnY3Z8HbB5mSW9KvshwyJ62uDTqNf uX39Wd3NAHkbgb6p6+8kE5ndHwqoPynXsolH3Waaw5oln4S0vmLIEs8t9VcBaYZvNDmJaf5jA/t Jb+5QUPaBuMCUKmudGpEMZ/umgfSPjkEIKjQlsNp6Dt+wwrTvkPuxldPK9lYVBWlF8y07 X-Received: by 2002:a05:600c:11cd:b0:406:5397:315d with SMTP id b13-20020a05600c11cd00b004065397315dmr3903612wmi.1.1696477481948; Wed, 04 Oct 2023 20:44:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEomrvf3Tq4lDy4lEdgVlAM7rzqoX49r4zIs92kXJ7ywTPE3MeKsjXJQhrVe4usmsxia6V4mA== X-Received: by 2002:a05:600c:11cd:b0:406:5397:315d with SMTP id b13-20020a05600c11cd00b004065397315dmr3903599wmi.1.1696477481576; Wed, 04 Oct 2023 20:44:41 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:37 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Bernhard Beschow , Igor Mammedov , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Ani Sinha Subject: [PULL v2 32/53] hw/acpi/core: Trace enable and status registers of GPE separately Message-ID: <40a6b8935d5862840c602f977564d2ebbea60ed6.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477718365100010 From: Bernhard Beschow The bit positions of both registers are related. Tracing the registers independently results in the same offsets across these registers which eases debugging. Signed-off-by: Bernhard Beschow Acked-by: Igor Mammedov Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230908084234.17642-9-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/acpi/core.c | 10 +++++++--- hw/acpi/trace-events | 6 ++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/hw/acpi/core.c b/hw/acpi/core.c index c561845a4a..ec5e127d17 100644 --- a/hw/acpi/core.c +++ b/hw/acpi/core.c @@ -687,13 +687,13 @@ void acpi_gpe_ioport_writeb(ACPIREGS *ar, uint32_t ad= dr, uint32_t val) { uint8_t *cur; =20 - trace_acpi_gpe_ioport_writeb(addr, val); - cur =3D acpi_gpe_ioport_get_ptr(ar, addr); if (addr < ar->gpe.len / 2) { + trace_acpi_gpe_sts_ioport_writeb(addr, val); /* GPE_STS */ *cur =3D (*cur) & ~val; } else if (addr < ar->gpe.len) { + trace_acpi_gpe_en_ioport_writeb(addr - (ar->gpe.len / 2), val); /* GPE_EN */ *cur =3D val; } else { @@ -712,7 +712,11 @@ uint32_t acpi_gpe_ioport_readb(ACPIREGS *ar, uint32_t = addr) val =3D *cur; } =20 - trace_acpi_gpe_ioport_readb(addr, val); + if (addr < ar->gpe.len / 2) { + trace_acpi_gpe_sts_ioport_readb(addr, val); + } else { + trace_acpi_gpe_en_ioport_readb(addr - (ar->gpe.len / 2), val); + } =20 return val; } diff --git a/hw/acpi/trace-events b/hw/acpi/trace-events index 159937ddb9..edc93e703c 100644 --- a/hw/acpi/trace-events +++ b/hw/acpi/trace-events @@ -18,8 +18,10 @@ mhp_acpi_pc_dimm_deleted(uint32_t slot) "slot[0x%"PRIx32= "] pc-dimm deleted" mhp_acpi_pc_dimm_delete_failed(uint32_t slot) "slot[0x%"PRIx32"] pc-dimm d= elete failed" =20 # core.c -acpi_gpe_ioport_readb(uint32_t addr, uint8_t val) "addr: 0x%" PRIx32 " =3D= =3D> 0x%" PRIx8 -acpi_gpe_ioport_writeb(uint32_t addr, uint8_t val) "addr: 0x%" PRIx32 " <= =3D=3D 0x%" PRIx8 +acpi_gpe_en_ioport_readb(uint32_t addr, uint8_t val) "addr: 0x%" PRIx32 " = =3D=3D> 0x%02" PRIx8 +acpi_gpe_en_ioport_writeb(uint32_t addr, uint8_t val) "addr: 0x%" PRIx32 "= <=3D=3D 0x%02" PRIx8 +acpi_gpe_sts_ioport_readb(uint32_t addr, uint8_t val) "addr: 0x%" PRIx32 "= =3D=3D> 0x%02" PRIx8 +acpi_gpe_sts_ioport_writeb(uint32_t addr, uint8_t val) "addr: 0x%" PRIx32 = " <=3D=3D 0x%02" PRIx8 =20 # cpu.c cpuhp_acpi_invalid_idx_selected(uint32_t idx) "0x%"PRIx32 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477611; cv=none; d=zohomail.com; s=zohoarc; b=hTC2+tEgNogBj9RZUfvb3eUmqXmXl8hutR6i8yNZSxEB8Kjna7IHR2b6CMaW57JeOb4PXMF3dy0Rct07rpvc2NIdnIXf2WCrUIUFleAxAfdAD2iWmXfyGtUT8TxoEQeKESyzjsaldhUy5whIQQnncUQeh0+ASJJtB7C/zY3FErY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477611; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NSDvCARja0+YrHJdMmbqGg3nJ8ng+OFiaj4ATw5ERL4=; b=f+n0bSwh/kZKxgJt8VibchW9CqpSbcj5lIrYN0mknLt8NNZv7qsB2HEoPFz/qt7MuDsgKNSy6aGKNSWYf/LD7/1YJZzc88nu5KIfuyzVLgwTJDPLjJyb9tdRhoG6VTvngs51kZ7Yb+vMwpHd6WeaE6yw3L7rtr/zrDmNcEfJ8TI= 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 1696477611449612.3320270550014; Wed, 4 Oct 2023 20:46:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJ3-0008HD-DX; Wed, 04 Oct 2023 23:45:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIF-0007TF-8E for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFID-0000Lu-Nl for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44: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_256_GCM_SHA384) id us-mta-694-boHijuZhOnKSov9w2Lp3GQ-1; Wed, 04 Oct 2023 23:44:46 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-30e3ee8a42eso410584f8f.1 for ; Wed, 04 Oct 2023 20:44:46 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id p1-20020adfce01000000b003258934a4bfsm633570wrn.36.2023.10.04.20.44.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477493; 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=NSDvCARja0+YrHJdMmbqGg3nJ8ng+OFiaj4ATw5ERL4=; b=BQjenSilsMXUmBb2ikT/kOPiiCRBqqhaQSLjf3qD+7tY/DrD6KjbA9ywG8F1jmn+I2WaUJ a0SM/sU4PEK5kPQHDgDzXap4x4L5OlAaj1cm/8t0pXMD3vrINK8nJWAwvSIHRrtkUaC7Z2 Sg/wb78SrxbLUFaH+9jbGv0pSSJ+dG4= X-MC-Unique: boHijuZhOnKSov9w2Lp3GQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477485; x=1697082285; 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=NSDvCARja0+YrHJdMmbqGg3nJ8ng+OFiaj4ATw5ERL4=; b=qbqeMCj7vnSFQHq1dIUwWMisu+MuWoQMWZ2tYzBmET0Q5+2J3wflMKjhGTc3riKvPQ O3vgybRV6txinSXNMeoU1CZsJBOQT8kggdm3TCTRqPu2VMFeEUXFECMJIYv2e/8R/cRz VF3SbgC7X/bsFlW7vcmGKCbTPfPixc69k8remc3IYrRUElI3mfYLHyOzlo6iy0b7LfVC l7CIlzt5XPuydkOUuzw9JsdkITDTUZvTXtz3CfnDLPu/klMmgak+PdrX8zfIhrZ8T25m KJLbLsoSlmdnI9lobCLuWAHrVAbWr2xOx5FgbeLdrAFCgT1BFnHHRtlZKgFvfoGS3Och qb6A== X-Gm-Message-State: AOJu0Yy21DGMwhSmRAXjEd3/OhAwdv0zFrr3JKNfnmWQM6DDkxsmbbL2 FrhK9b4U7eFE+E1gFhDWb5KUCUI2hjb2f0fAT2WR4+KhkNBKn5iI0M/27jBuXjuH0iggkezx5HG 4LRKlU0EeYgAvxnuaR7+NYLvx9Ikw4n8uKcJcH9t4Kv3zhrNEnu3uo8mE9fZYlMVeFBVz X-Received: by 2002:a5d:5103:0:b0:319:79bb:980c with SMTP id s3-20020a5d5103000000b0031979bb980cmr3762599wrt.64.1696477485325; Wed, 04 Oct 2023 20:44:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGJvz9NZgPoBUDExz/n5jSNKdag2U1gidPBS3CWH3J8gM4OU8SPwNczc9PYwzlnG0FnXPQbKw== X-Received: by 2002:a5d:5103:0:b0:319:79bb:980c with SMTP id s3-20020a5d5103000000b0031979bb980cmr3762585wrt.64.1696477485064; Wed, 04 Oct 2023 20:44:45 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:41 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Stefan Hajnoczi , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: [PULL v2 33/53] vdpa: fix gcc cvq_isolated uninitialized variable warning Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477612753100018 From: Stefan Hajnoczi gcc 13.2.1 emits the following warning: net/vhost-vdpa.c: In function =E2=80=98net_vhost_vdpa_init.constprop=E2= =80=99: net/vhost-vdpa.c:1394:25: error: =E2=80=98cvq_isolated=E2=80=99 may be us= ed uninitialized [-Werror=3Dmaybe-uninitialized] 1394 | s->cvq_isolated =3D cvq_isolated; | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ net/vhost-vdpa.c:1355:9: note: =E2=80=98cvq_isolated=E2=80=99 was declare= d here 1355 | int cvq_isolated; | ^~~~~~~~~~~~ cc1: all warnings being treated as errors Cc: Eugenio P=C3=A9rez Cc: Michael S. Tsirkin Cc: Jason Wang Signed-off-by: Stefan Hajnoczi Message-Id: <20230911215435.4156314-1-stefanha@redhat.com> Acked-by: Eugenio P=C3=A9rez Acked-by: Jason Wang Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 5808d1b60c..94635fcbee 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -1425,7 +1425,7 @@ static NetClientState *net_vhost_vdpa_init(NetClientS= tate *peer, VhostVDPAState *s; int ret =3D 0; assert(name); - int cvq_isolated; + int cvq_isolated =3D 0; =20 if (is_datapath) { nc =3D qemu_new_net_client(&net_vhost_vdpa_info, peer, device, --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477687; cv=none; d=zohomail.com; s=zohoarc; b=U8AsIHCM1opKycBAElPOu6UKQinK3cIJPMAF+AjXCzlyOZNdCDcQHdobyV6lBL+Y81kbmrgH1/8FafB+PJC7kGzGIovt6eZ+CFD6dAXomcABLSu7SnOoIKCa57d9uu5iW55G3jU37VDDpKbu52XIc3102oZeLeB+PjYd4+F0wFY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477687; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vDsZnUicENX14uBrPv90iIre5SOYaN6w5F3yw6zce+M=; b=jQ5KzIOjsQP7TtSVLPHd1bpyP36DM/s4z0//ULO4nf+oiIYQnrCqPYnZT0slGZ9xiOYoA9WQ5TDCWEhFgcwFlXfNxzNutAbMf6aGeRzE5GngcollpN7g+eOZQpmAOdlTAKi1SzJIpPlIJUbszp2WelAujZ/JJXHqD5Ws9HC0W4I= 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 1696477687847263.611764006612; Wed, 4 Oct 2023 20:48:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJC-000052-K8; Wed, 04 Oct 2023 23:45:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIF-0007Sy-6d for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFID-0000Lt-MR for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:44:54 -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_256_GCM_SHA384) id us-mta-86-fzDSKiUNNkCHoHvYA0H0XA-1; Wed, 04 Oct 2023 23:44:51 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4065ca278b3so3144285e9.3 for ; Wed, 04 Oct 2023 20:44:51 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id p15-20020a7bcc8f000000b003fee6e170f9sm528184wma.45.2023.10.04.20.44.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477493; 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=vDsZnUicENX14uBrPv90iIre5SOYaN6w5F3yw6zce+M=; b=Hi7uxFL3C3xxb5AN4ScA/rgAZwzWhGjEv9734bSV0MAc67zcFGHL9kr5eKR5Y4WsEzgm1s ZXZ1q8HcvuS3Bct/gQc5GAYey1JhFyC4PHSAxJdjk4FuEU3ACORKGApw4X2GoiX78zRv6X 5qyEWKq/mpw+DG2sgDQyhGyCLJdomqk= X-MC-Unique: fzDSKiUNNkCHoHvYA0H0XA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477490; x=1697082290; 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=vDsZnUicENX14uBrPv90iIre5SOYaN6w5F3yw6zce+M=; b=IkKcYSJw4I1LF1vq8BrRAKjBr4duJNG6WA99K0GALzxFlFOMi/9yti2V6xLn74es2d WLKN9iVOKlW6dcgoeu/Yep1EUblLHPXD5jPYiQ7R8L9VzHlOsMo0vaMk3CvrPD8E062R nZVEaKwAZP4cTdUuB4LA3LWBv0LX9XV/SbfxXrJLmfqcZQBKHWBOUfjLhNFskmbz1GXD XLIpGhGY64VMN1QY795n8+nsCT8GDP6KgQunA76/sfN2hTV/9AuG4iTbdO0beC24JTo2 erL+MCoSFxQdTiZ4Zq6bZBm/DoiRuJ4b8Kv9GqGA5RvxsmtPxmL7trn7qRoXQXi15ZCn mG/w== X-Gm-Message-State: AOJu0Yy2Zl0RGeGnOWQxHmP+ci6zcFqcBHDYEXLq70u54yyMoxTHLYfW Ns7PfJ7BfZLViThHqV7tnwP+Tw4QVkMWVfTtFwsXlslzDDiIOcB36QLJOu1Bqftu8gyV77o1BLf sgswUky92yFSryrMW6xwY9C7YnX7aDX3sefuhdGGoowfxvZ4eQpponqFHL9ubSb3x4boy X-Received: by 2002:a05:600c:2116:b0:406:53c0:3c71 with SMTP id u22-20020a05600c211600b0040653c03c71mr3692985wml.37.1696477489934; Wed, 04 Oct 2023 20:44:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGfAqKThazVyTEs53Y0AjEpnc4R4ROrkHQNPEjszCYklFUZw4Pup+O6ze2sLsgpn4M9j/UtsQ== X-Received: by 2002:a05:600c:2116:b0:406:53c0:3c71 with SMTP id u22-20020a05600c211600b0040653c03c71mr3692972wml.37.1696477489609; Wed, 04 Oct 2023 20:44:49 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:45 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Yanhui Ma , Jason Wang , Lei Yang , Si-Wei Liu Subject: [PULL v2 34/53] vdpa net: zero vhost_vdpa iova_tree pointer at cleanup Message-ID: <0a7a164bc37b4ecbf74466e1e5243d72a768ad06.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477689903100007 From: Eugenio P=C3=A9rez Not zeroing it causes a SIGSEGV if the live migration is cancelled, at net device restart. This is caused because CVQ tries to reuse the iova_tree that is present in the first vhost_vdpa device at the end of vhost_vdpa_net_cvq_start. As a consequence, it tries to access an iova_tree that has been already free. Fixes: 00ef422e9fbf ("vdpa net: move iova tree creation from init to start") Reported-by: Yanhui Ma Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230913123408.2819185-1-eperezma@redhat.com> Acked-by: Jason Wang Tested-by: Lei Yang Reviewed-by: Si-Wei Liu Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 94635fcbee..fe519d908d 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -405,6 +405,8 @@ static void vhost_vdpa_net_client_stop(NetClientState *= nc) dev =3D s->vhost_vdpa.dev; if (dev->vq_index + dev->nvqs =3D=3D dev->vq_index_end) { g_clear_pointer(&s->vhost_vdpa.iova_tree, vhost_iova_tree_delete); + } else { + s->vhost_vdpa.iova_tree =3D NULL; } } =20 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477608; cv=none; d=zohomail.com; s=zohoarc; b=H9QfxPnAlfo5FhkWgPSBv/RZI7Zc/i+0TwpgEtrCrJsqIzRIcvmuizlDoBoEVGtKdHP/zcPc2wSrxj3WIvxIC9k+RrtX7FzZGFqsfGSySBiZDErbo0sxe9ueC+ahFtjjSU0QKpWQkGxfZgeFGsKtsLwa79lLmmXKhV0jP1B3Aac= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477608; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lIgJ5oPfxO9wyqqBUeBUKavXa8KETRJWhHSgRUqGuy8=; b=Z/060I58t9OSFNBX0tHH4BnNhjSkZxWzAgeITuAshFAJ81ZK7BQbqVU7jLmT2C2n03NsvrFyw7eCcWRHCbXcz6oXDl9cD6pmCVgRtQ0TFYbriHqmQYLuBVCdOHqtb6SDNmrwDGpeVnzSxNi86a72nfnrK19/04VinuLPP/HTV7A= 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 1696477608643579.3476407380906; Wed, 4 Oct 2023 20:46:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJD-00009T-SI; Wed, 04 Oct 2023 23:45:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIb-00089t-L7 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:25 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIX-0000Zl-KO for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:16 -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_256_GCM_SHA384) id us-mta-186-ZQL_T-rxPp-LqlgPDHXl9A-1; Wed, 04 Oct 2023 23:44:55 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-314256aedcbso478568f8f.0 for ; Wed, 04 Oct 2023 20:44:55 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id t18-20020a5d49d2000000b0031c6581d55esm626527wrs.91.2023.10.04.20.44.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477507; 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=lIgJ5oPfxO9wyqqBUeBUKavXa8KETRJWhHSgRUqGuy8=; b=dNWYTLQgP4jwkbH8F69hiqL4cYOzf+sxzdvaf+Z+CNS+EkMaz/NIeN+UjRRtFvT2+NvOl7 0poXTbEibzcw7dRr5T8ud5WiycwCDiAChWyVo+J97b5bZHzQgLDabrwH9wvwyBh0BMQBwu 8ykSOh5kUAo04d2AxuRwAQFa60O+Jgw= X-MC-Unique: ZQL_T-rxPp-LqlgPDHXl9A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477494; x=1697082294; 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=lIgJ5oPfxO9wyqqBUeBUKavXa8KETRJWhHSgRUqGuy8=; b=vhRxjqB5NsQ4NHHUgOyyKBnUJ68iy5x5zYzutASaTc5E7aO3RJvGk+gBZrPElxMNkW MlyUjTB+C4v1z1I2+bqIR75Pz5kJrTeZJrhFyoUuxS/K0YUDtbZEJDiBphQwc5hoYTam 1gc6o85ohD8b4/FpI7e76e+GW0dz5gJD9tbSHTi68MK+Od1ZU1KH+nI9LZ6IrHaRX+fY hoMEAOTFzCkTArbY72n+3vvA1G3Sy4A5ZguZKP3CKFwtkGbmvZkw236S0kIsOpsK89Ux Jmk7AZ5Eer1/cbzafowciCznn8FcHFEeT4tdDLmtVA7QpgIoQyEHYjl8FiYahaU8q02R Oqrg== X-Gm-Message-State: AOJu0YwQvrKX8Jq01ShB1HocEiBx4Tbqcayfkt5diY/15sRZidUASWoA HxGxtnD/C2sUwNeJkP9hZSHtWCk2mabX0amDaBZocrL/LBnqwyxqey43VH/Wqn11XxwBpqYOSKI PmiP5q6cDD1bxidDNBTnaPfqz4pVxeNCavYZfYms7h5Q2FvoEGMh43XfdlPSYS/fz9G9h X-Received: by 2002:adf:f48c:0:b0:317:e025:5a5c with SMTP id l12-20020adff48c000000b00317e0255a5cmr3783251wro.48.1696477493998; Wed, 04 Oct 2023 20:44:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHPn9+2aBUMkDRoU24rvmhwRS4RciPAN8/vylwumUj2KGfQ1hAxVTMRVtu5sFtQ5rVI0igyWw== X-Received: by 2002:adf:f48c:0:b0:317:e025:5a5c with SMTP id l12-20020adff48c000000b00317e0255a5cmr3783239wro.48.1696477493677; Wed, 04 Oct 2023 20:44:53 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:50 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Fan Ni Subject: [PULL v2 35/53] hw/cxl: Push cxl_decoder_count_enc() and cxl_decode_ig() into .c Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477610678100006 From: Jonathan Cameron There is no strong justification for keeping these in the header so push them down into the associated cxl-component-utils.c file. Suggested-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Fan Ni Signed-off-by: Jonathan Cameron Message-Id: <20230913132523.29780-2-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/cxl/cxl_component.h | 18 ++---------------- hw/cxl/cxl-component-utils.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/include/hw/cxl/cxl_component.h b/include/hw/cxl/cxl_component.h index 42c7e581a7..bdb3881a6b 100644 --- a/include/hw/cxl/cxl_component.h +++ b/include/hw/cxl/cxl_component.h @@ -225,26 +225,12 @@ void cxl_component_create_dvsec(CXLComponentState *cx= l_cstate, enum reg_type cxl_dev_type, uint16_t lengt= h, uint16_t type, uint8_t rev, uint8_t *body); =20 -static inline int cxl_decoder_count_enc(int count) -{ - switch (count) { - case 1: return 0; - case 2: return 1; - case 4: return 2; - case 6: return 3; - case 8: return 4; - case 10: return 5; - } - return 0; -} +int cxl_decoder_count_enc(int count); =20 uint8_t cxl_interleave_ways_enc(int iw, Error **errp); uint8_t cxl_interleave_granularity_enc(uint64_t gran, Error **errp); =20 -static inline hwaddr cxl_decode_ig(int ig) -{ - return 1ULL << (ig + 8); -} +hwaddr cxl_decode_ig(int ig); =20 CXLComponentState *cxl_get_hb_cstate(PCIHostState *hb); bool cxl_get_hb_passthrough(PCIHostState *hb); diff --git a/hw/cxl/cxl-component-utils.c b/hw/cxl/cxl-component-utils.c index 378f1082ce..ea2d4770ec 100644 --- a/hw/cxl/cxl-component-utils.c +++ b/hw/cxl/cxl-component-utils.c @@ -13,6 +13,24 @@ #include "hw/pci/pci.h" #include "hw/cxl/cxl.h" =20 +int cxl_decoder_count_enc(int count) +{ + switch (count) { + case 1: return 0; + case 2: return 1; + case 4: return 2; + case 6: return 3; + case 8: return 4; + case 10: return 5; + } + return 0; +} + +hwaddr cxl_decode_ig(int ig) +{ + return 1ULL << (ig + 8); +} + static uint64_t cxl_cache_mem_read_reg(void *opaque, hwaddr offset, unsigned size) { --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477730; cv=none; d=zohomail.com; s=zohoarc; b=M0FwDori/SgD7d9IoyrGVf/UwGmLE9xOl/hgXG/UPHjwqG1OOVO0GsawmXC5ZTywU0xWIP9N/z+lhw7QuZGkp2gSZADDJUKZCDdZth3zaefXH4wykva/hwSu7ezp+rZvakVGnc76JyW3h9xsnkWqnxZfVaHNITAx+g7YpQiTrDg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477730; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iIows2pa7XiHA3IFb00/fM9UuGPbHhq3xJctrR09FOQ=; b=VpMrzg/2AgCvEcY8GK0kaU8HVABreWFb5Uj1uP9QZGtkGzfNXSKiUOWXtFlfNXIxfcsfY6ZSSCdIafp4aEZhXksxgW9Jc2+Vb3VLEQBbV2905BgoATT/9vWJ208rJrWYvf3C8Cl9IqvYeAjzmY/1doFuT5hnLotODpq/KSRHwdg= 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 1696477730647795.3661075721917; Wed, 4 Oct 2023 20:48:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJ5-0008J8-GI; Wed, 04 Oct 2023 23:45:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIX-00088G-Qw for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:21 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIM-0000NF-C7 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:03 -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_256_GCM_SHA384) id us-mta-507-ifZqWjjzPS-OQoWkFrQ3yw-1; Wed, 04 Oct 2023 23:45:00 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-40524bc3c5cso3346965e9.0 for ; Wed, 04 Oct 2023 20:44:59 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id f19-20020a7bc8d3000000b00405959469afsm549223wml.3.2023.10.04.20.44.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:44:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477501; 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=iIows2pa7XiHA3IFb00/fM9UuGPbHhq3xJctrR09FOQ=; b=IrhYMfQJd23g03Vsjdax56pax/vLvD9uu5xidWiJacc0RJOBx2MSJ8K4T+QqvcRLZm0332 UAtcTbkrEtbRqUnPWtFD3jukrLLamaBJhvmTVGdjC2evg9vshxz0SRd5DBMUeJnhfXmzSj ARV0UsRTleVIS76YJbbOldbsB84HKI4= X-MC-Unique: ifZqWjjzPS-OQoWkFrQ3yw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477498; x=1697082298; 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=iIows2pa7XiHA3IFb00/fM9UuGPbHhq3xJctrR09FOQ=; b=p1rC4DFWGB8KZ6vbuE972f8zjTU5LOiPV4kmZUoL8kjzJdD6tDIY+bsEb4fBa9xE03 Sele/MUEX3v7iWvT9tUWLJWnZ7R5m+nkKyRlOmT0wwCNnP7PFWpB3GSGW7CWHEWc0qUE TmwKn0zkSyTeq1vuw4XQkeAWByhoiM6hQF24o7Kn4gM+pyFmWNMzSFqAnCLULSoYGUIE ZG1lpJzvsf8AYh1Jp8lY3TqXDZy/IMdHnAlqeJ8P4tNJsLQnXrpSpBNfuwV3JDL7r2ly xsfFDDJRdSK4wqrAXJyC9uLXjng9c2w5CxVWEOF46bY+1n+veOaVd7+/1R4QgYbw6OGN VC2w== X-Gm-Message-State: AOJu0Yx7/GjympUbcxIrhR30BKN3sSF1eW3ztUOJXdfq84XnsxsneWr/ 6S3+ESVrJfdTbBteeDx1rDvLukLX9MvGNJqYt9qncuqX+9e4gdFblkKMDIH6LFXPLvYJt3x2xV2 c/zYDxwrwg6+WBrlIewXzXW8yDjlOr6FJTCUAnD3iVeBAoFfSBdNy/lS6ZThiXGi+yyEk X-Received: by 2002:a05:600c:2242:b0:401:2fab:43e8 with SMTP id a2-20020a05600c224200b004012fab43e8mr3698522wmm.15.1696477498216; Wed, 04 Oct 2023 20:44:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHzFDofEJajpUvKeQrmXUxWBQ+Ofz78k7OpptlOvImgD+vnvzq+AZQ1IBgFcFy9R74jv1BLJg== X-Received: by 2002:a05:600c:2242:b0:401:2fab:43e8 with SMTP id a2-20020a05600c224200b004012fab43e8mr3698510wmm.15.1696477497874; Wed, 04 Oct 2023 20:44:57 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:54 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Fan Ni Subject: [PULL v2 36/53] hw/cxl: Add utility functions decoder interleave ways and target count. Message-ID: <87de174ac49acaa37264e38129596c9819e4a2c5.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477732783100003 From: Jonathan Cameron As an encoded version of these key configuration parameters is available in a register, provide functions to extract it again so as to avoid the need for duplicating the storage. Whilst here update the _enc() function to include additional values as defined in the CXL 3.0 specification. Whilst they are not currently used in the emulation, they may be in future and it is easier to compare with the specification if all values are covered. Add a spec reference for cxl_interleave_ways_enc() for consistency with the target count equivalent (and because it's nice to know where the magic numbers come from). Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Fan Ni Signed-off-by: Jonathan Cameron Message-Id: <20230913132523.29780-3-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/cxl/cxl_component.h | 2 ++ hw/cxl/cxl-component-utils.c | 60 ++++++++++++++++++++++++++++++---- 2 files changed, 56 insertions(+), 6 deletions(-) diff --git a/include/hw/cxl/cxl_component.h b/include/hw/cxl/cxl_component.h index bdb3881a6b..ef9e033919 100644 --- a/include/hw/cxl/cxl_component.h +++ b/include/hw/cxl/cxl_component.h @@ -226,8 +226,10 @@ void cxl_component_create_dvsec(CXLComponentState *cxl= _cstate, uint16_t type, uint8_t rev, uint8_t *body); =20 int cxl_decoder_count_enc(int count); +int cxl_decoder_count_dec(int enc_cnt); =20 uint8_t cxl_interleave_ways_enc(int iw, Error **errp); +int cxl_interleave_ways_dec(uint8_t iw_enc, Error **errp); uint8_t cxl_interleave_granularity_enc(uint64_t gran, Error **errp); =20 hwaddr cxl_decode_ig(int ig); diff --git a/hw/cxl/cxl-component-utils.c b/hw/cxl/cxl-component-utils.c index ea2d4770ec..5f38f2016f 100644 --- a/hw/cxl/cxl-component-utils.c +++ b/hw/cxl/cxl-component-utils.c @@ -13,15 +13,45 @@ #include "hw/pci/pci.h" #include "hw/cxl/cxl.h" =20 +/* CXL r3.0 Section 8.2.4.19.1 CXL HDM Decoder Capability Register */ int cxl_decoder_count_enc(int count) { switch (count) { - case 1: return 0; - case 2: return 1; - case 4: return 2; - case 6: return 3; - case 8: return 4; - case 10: return 5; + case 1: return 0x0; + case 2: return 0x1; + case 4: return 0x2; + case 6: return 0x3; + case 8: return 0x4; + case 10: return 0x5; + /* Switches and Host Bridges may have more than 10 decoders */ + case 12: return 0x6; + case 14: return 0x7; + case 16: return 0x8; + case 20: return 0x9; + case 24: return 0xa; + case 28: return 0xb; + case 32: return 0xc; + } + return 0; +} + +int cxl_decoder_count_dec(int enc_cnt) +{ + switch (enc_cnt) { + case 0x0: return 1; + case 0x1: return 2; + case 0x2: return 4; + case 0x3: return 6; + case 0x4: return 8; + case 0x5: return 10; + /* Switches and Host Bridges may have more than 10 decoders */ + case 0x6: return 12; + case 0x7: return 14; + case 0x8: return 16; + case 0x9: return 20; + case 0xa: return 24; + case 0xb: return 28; + case 0xc: return 32; } return 0; } @@ -393,6 +423,7 @@ void cxl_component_create_dvsec(CXLComponentState *cxl, cxl->dvsec_offset +=3D length; } =20 +/* CXL r3.0 Section 8.2.4.19.7 CXL HDM Decoder n Control Register */ uint8_t cxl_interleave_ways_enc(int iw, Error **errp) { switch (iw) { @@ -410,6 +441,23 @@ uint8_t cxl_interleave_ways_enc(int iw, Error **errp) } } =20 +int cxl_interleave_ways_dec(uint8_t iw_enc, Error **errp) +{ + switch (iw_enc) { + case 0x0: return 1; + case 0x1: return 2; + case 0x2: return 4; + case 0x3: return 8; + case 0x4: return 16; + case 0x8: return 3; + case 0x9: return 6; + case 0xa: return 12; + default: + error_setg(errp, "Encoded interleave ways: %d not supported", iw_e= nc); + return 0; + } +} + uint8_t cxl_interleave_granularity_enc(uint64_t gran, Error **errp) { switch (gran) { --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477706; cv=none; d=zohomail.com; s=zohoarc; b=L5UdJkSvZ0tJJY9mhfpuKrqmfHcVrALm8I26thbSTZfTatVUuqRkNcVtYeb88riKdX0HQgVPJLRFoNiZ7xfpk2+md0+6MXJu9UVZsplAPCMYbbmiY7JufIqcaPy9xDoO3dFkOn0ecuemos+7aeWxaHG16z9wuQr87uSTTJlYkQ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477706; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0W6Fdc0oix3rjcRdzJQ1BiHNbQ66pyOxf8XxOBiZdcE=; b=ksMx1GNM2ElYkxIWtFGjTl8cbmsoWJuZpeUPbJga9xnrNgKZf9JLQFIxSi9nwumn9E2nhL7wYu/e/lttIaAztrRaLHdqHTRmQVC/6dLxoc2Sapy+jG5Mlevh6YMG0cR8GOGApq350GCJIMrUuGBWpr/FVam8j40x0wpvAL+aC1k= 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 1696477705793405.63319339729867; Wed, 4 Oct 2023 20:48:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJL-0000WR-Gs; Wed, 04 Oct 2023 23:46:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIb-00089x-Ld for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:25 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIT-0000ZM-PM for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:15 -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_256_GCM_SHA384) id us-mta-496-xt5o0OC_P_qyrtP_pZMAqw-1; Wed, 04 Oct 2023 23:45:03 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-3232c3df248so394597f8f.3 for ; Wed, 04 Oct 2023 20:45:03 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id k8-20020a5d5188000000b003197869bcd7sm635012wrv.13.2023.10.04.20.44.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477504; 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=0W6Fdc0oix3rjcRdzJQ1BiHNbQ66pyOxf8XxOBiZdcE=; b=LiYbrt9LKAcYm2YYa6PQoth1trX0JL4V1OvzJix9HYuNvAIBQUdD75oCRb5gb2HyUCAORc pm0RyV6/2CYo52qD5n38MTHddL/SrAtZVtAYAaoqX+S4hHoaLyFvc/TlbXISDpd3Ng46w3 PyIxaSTEnWsB8Jdr6MZRkrdux7AYY4c= X-MC-Unique: xt5o0OC_P_qyrtP_pZMAqw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477501; x=1697082301; 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=0W6Fdc0oix3rjcRdzJQ1BiHNbQ66pyOxf8XxOBiZdcE=; b=Bz3gYG25feQuWdGKgU2JhXsgd1Njt6loO4NduBojYGM8NTXTknvkbXu2NwL6yG5XGi F57cEd7tfqJ/Tp5txljW3PNLdgx5eaq8WeZx87RulyrETkB0wnbfq2Qh1Em3O8+lKmR4 jrywFwDFnkDoImv7dmSnrZ2WUmP6nfEunrV1Gra4jz2UF1u0fdw+IFn8g0aRWSHkN7j+ /tfR1AtRD/pIG6ao/3E7JoUO6GiCJFVJCDWKQVh7/KWUKZwnMk5YOn0Vty9JbtMTxdMK ZImQ2ukesEPIXc3rkMkKOdZHVC3KdwgJ1X5E1kPkqQe760VOPGtXXQLEJr51iK9kfyy3 kwJw== X-Gm-Message-State: AOJu0YxsUSYDSkW+kl4EaGQ/YKMu4LzMvSzJTrwoZHok8ArWM/7PPv9B PTcP2BXquDzfKZWOmym5lUAACiFkPH2jR6UfpP1kWkO7rfAdSYjIM5r3dEPKDUqWLSg0cO+tIXW Hp72rDwZypqI5AoCXS73GrKbOBVLflKCJmqiq3BJJDekeXfprfSiE8awrf5Uj1nExe8pW X-Received: by 2002:a5d:46c8:0:b0:323:117b:9780 with SMTP id g8-20020a5d46c8000000b00323117b9780mr3466328wrs.66.1696477501627; Wed, 04 Oct 2023 20:45:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHaO0vMjcYp8uojAdkFUe4RbHVjqtrZdzGqpAqQOoVoHhFhSSH2pwvJl+L8Iuxcth4Ma7LDHg== X-Received: by 2002:a5d:46c8:0:b0:323:117b:9780 with SMTP id g8-20020a5d46c8000000b00323117b9780mr3466316wrs.66.1696477501226; Wed, 04 Oct 2023 20:45:01 -0700 (PDT) Date: Wed, 4 Oct 2023 23:44:58 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Fan Ni , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: [PULL v2 37/53] hw/cxl: Fix and use same calculation for HDM decoder block size everywhere Message-ID: <61c44bcf510f4db51c28d0288e528cfdf0ebabc3.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477708186100010 From: Jonathan Cameron In order to avoid having the size of the per HDM decoder register block repeated in lots of places, create the register definitions for HDM decoder 1 and use the offset between the first registers in HDM decoder 0 a= nd HDM decoder 1 to establish the offset. Calculate in each function as this is more obvious and leads to shorter line lengths than a single #define which would need a long name to be specific enough. Note that the code currently only supports one decoder, so the bugs this fixes don't actually affect anything. Signed-off-by: Jonathan Cameron Reviewed-by: Fan Ni Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230913132523.29780-4-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/cxl/cxl_component.h | 2 ++ hw/cxl/cxl-component-utils.c | 19 +++++++++++-------- hw/cxl/cxl-host.c | 4 +++- hw/mem/cxl_type3.c | 24 +++++++++++++++--------- 4 files changed, 31 insertions(+), 18 deletions(-) diff --git a/include/hw/cxl/cxl_component.h b/include/hw/cxl/cxl_component.h index ef9e033919..7c864d2044 100644 --- a/include/hw/cxl/cxl_component.h +++ b/include/hw/cxl/cxl_component.h @@ -148,6 +148,8 @@ REG32(CXL_HDM_DECODER_GLOBAL_CONTROL, CXL_HDM_REGISTERS= _OFFSET + 4) FIELD(CXL_HDM_DECODER_GLOBAL_CONTROL, HDM_DECODER_ENABLE, 1, 1) =20 HDM_DECODER_INIT(0); +/* Only used for HDM decoder registers block address increment */ +HDM_DECODER_INIT(1); =20 /* 8.2.5.13 - CXL Extended Security Capability Structure (Root complex onl= y) */ #define EXTSEC_ENTRY_MAX 256 diff --git a/hw/cxl/cxl-component-utils.c b/hw/cxl/cxl-component-utils.c index 5f38f2016f..c0630ba5c1 100644 --- a/hw/cxl/cxl-component-utils.c +++ b/hw/cxl/cxl-component-utils.c @@ -210,6 +210,7 @@ static void hdm_init_common(uint32_t *reg_state, uint32= _t *write_msk, enum reg_type type) { int decoder_count =3D 1; + int hdm_inc =3D R_CXL_HDM_DECODER1_BASE_LO - R_CXL_HDM_DECODER0_BASE_L= O; int i; =20 ARRAY_FIELD_DP32(reg_state, CXL_HDM_DECODER_CAPABILITY, DECODER_COUNT, @@ -222,19 +223,21 @@ static void hdm_init_common(uint32_t *reg_state, uint= 32_t *write_msk, HDM_DECODER_ENABLE, 0); write_msk[R_CXL_HDM_DECODER_GLOBAL_CONTROL] =3D 0x3; for (i =3D 0; i < decoder_count; i++) { - write_msk[R_CXL_HDM_DECODER0_BASE_LO + i * 0x20] =3D 0xf0000000; - write_msk[R_CXL_HDM_DECODER0_BASE_HI + i * 0x20] =3D 0xffffffff; - write_msk[R_CXL_HDM_DECODER0_SIZE_LO + i * 0x20] =3D 0xf0000000; - write_msk[R_CXL_HDM_DECODER0_SIZE_HI + i * 0x20] =3D 0xffffffff; - write_msk[R_CXL_HDM_DECODER0_CTRL + i * 0x20] =3D 0x13ff; + write_msk[R_CXL_HDM_DECODER0_BASE_LO + i * hdm_inc] =3D 0xf0000000; + write_msk[R_CXL_HDM_DECODER0_BASE_HI + i * hdm_inc] =3D 0xffffffff; + write_msk[R_CXL_HDM_DECODER0_SIZE_LO + i * hdm_inc] =3D 0xf0000000; + write_msk[R_CXL_HDM_DECODER0_SIZE_HI + i * hdm_inc] =3D 0xffffffff; + write_msk[R_CXL_HDM_DECODER0_CTRL + i * hdm_inc] =3D 0x13ff; if (type =3D=3D CXL2_DEVICE || type =3D=3D CXL2_TYPE3_DEVICE || type =3D=3D CXL2_LOGICAL_DEVICE) { - write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_LO + i * 0x20] =3D 0x= f0000000; + write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_LO + i * hdm_inc] =3D + 0xf0000000; } else { - write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_LO + i * 0x20] =3D 0x= ffffffff; + write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_LO + i * hdm_inc] =3D + 0xffffffff; } - write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_HI + i * 0x20] =3D 0xffff= ffff; + write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_HI + i * hdm_inc] =3D 0xf= fffffff; } } =20 diff --git a/hw/cxl/cxl-host.c b/hw/cxl/cxl-host.c index f0920da956..73c5426476 100644 --- a/hw/cxl/cxl-host.c +++ b/hw/cxl/cxl-host.c @@ -101,12 +101,14 @@ void cxl_fmws_link_targets(CXLState *cxl_state, Error= **errp) static bool cxl_hdm_find_target(uint32_t *cache_mem, hwaddr addr, uint8_t *target) { + int hdm_inc =3D R_CXL_HDM_DECODER1_BASE_LO - R_CXL_HDM_DECODER0_BASE_L= O; uint32_t ctrl; uint32_t ig_enc; uint32_t iw_enc; uint32_t target_idx; + int i =3D 0; =20 - ctrl =3D cache_mem[R_CXL_HDM_DECODER0_CTRL]; + ctrl =3D cache_mem[R_CXL_HDM_DECODER0_CTRL + i * hdm_inc]; if (!FIELD_EX32(ctrl, CXL_HDM_DECODER0_CTRL, COMMITTED)) { return false; } diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index 4cdcb3f7e7..9f3022189b 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -388,34 +388,36 @@ static void build_dvsecs(CXLType3Dev *ct3d) =20 static void hdm_decoder_commit(CXLType3Dev *ct3d, int which) { + int hdm_inc =3D R_CXL_HDM_DECODER1_BASE_LO - R_CXL_HDM_DECODER0_BASE_L= O; ComponentRegisters *cregs =3D &ct3d->cxl_cstate.crb; uint32_t *cache_mem =3D cregs->cache_mem_registers; uint32_t ctrl; =20 assert(which =3D=3D 0); =20 - ctrl =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL); + ctrl =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL + which * hdm_in= c); /* TODO: Sanity checks that the decoder is possible */ ctrl =3D FIELD_DP32(ctrl, CXL_HDM_DECODER0_CTRL, ERR, 0); ctrl =3D FIELD_DP32(ctrl, CXL_HDM_DECODER0_CTRL, COMMITTED, 1); =20 - stl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL, ctrl); + stl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL + which * hdm_inc, ctrl); } =20 static void hdm_decoder_uncommit(CXLType3Dev *ct3d, int which) { + int hdm_inc =3D R_CXL_HDM_DECODER1_BASE_LO - R_CXL_HDM_DECODER0_BASE_L= O; ComponentRegisters *cregs =3D &ct3d->cxl_cstate.crb; uint32_t *cache_mem =3D cregs->cache_mem_registers; uint32_t ctrl; =20 assert(which =3D=3D 0); =20 - ctrl =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL); + ctrl =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL + which * hdm_in= c); =20 ctrl =3D FIELD_DP32(ctrl, CXL_HDM_DECODER0_CTRL, ERR, 0); ctrl =3D FIELD_DP32(ctrl, CXL_HDM_DECODER0_CTRL, COMMITTED, 0); =20 - stl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL, ctrl); + stl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL + which * hdm_inc, ctrl); } =20 static int ct3d_qmp_uncor_err_to_cxl(CxlUncorErrorType qmp_err) @@ -772,26 +774,30 @@ static void ct3_exit(PCIDevice *pci_dev) /* TODO: Support multiple HDM decoders and DPA skip */ static bool cxl_type3_dpa(CXLType3Dev *ct3d, hwaddr host_addr, uint64_t *d= pa) { + int hdm_inc =3D R_CXL_HDM_DECODER1_BASE_LO - R_CXL_HDM_DECODER0_BASE_L= O; uint32_t *cache_mem =3D ct3d->cxl_cstate.crb.cache_mem_registers; uint64_t decoder_base, decoder_size, hpa_offset; uint32_t hdm0_ctrl; int ig, iw; + int i =3D 0; =20 - decoder_base =3D (((uint64_t)cache_mem[R_CXL_HDM_DECODER0_BASE_HI] << = 32) | - cache_mem[R_CXL_HDM_DECODER0_BASE_LO]); + decoder_base =3D + (((uint64_t)cache_mem[R_CXL_HDM_DECODER0_BASE_HI + i * hdm_inc] <<= 32) | + cache_mem[R_CXL_HDM_DECODER0_BASE_LO + i * hdm_inc]); if ((uint64_t)host_addr < decoder_base) { return false; } =20 hpa_offset =3D (uint64_t)host_addr - decoder_base; =20 - decoder_size =3D ((uint64_t)cache_mem[R_CXL_HDM_DECODER0_SIZE_HI] << 3= 2) | - cache_mem[R_CXL_HDM_DECODER0_SIZE_LO]; + decoder_size =3D + ((uint64_t)cache_mem[R_CXL_HDM_DECODER0_SIZE_HI + i * hdm_inc] << = 32) | + cache_mem[R_CXL_HDM_DECODER0_SIZE_LO + i * hdm_inc]; if (hpa_offset >=3D decoder_size) { return false; } =20 - hdm0_ctrl =3D cache_mem[R_CXL_HDM_DECODER0_CTRL]; + hdm0_ctrl =3D cache_mem[R_CXL_HDM_DECODER0_CTRL + i * hdm_inc]; iw =3D FIELD_EX32(hdm0_ctrl, CXL_HDM_DECODER0_CTRL, IW); ig =3D FIELD_EX32(hdm0_ctrl, CXL_HDM_DECODER0_CTRL, IG); =20 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477679; cv=none; d=zohomail.com; s=zohoarc; b=k+WxvnKTMxnIxWm5v/gAtOO+Hbz04DtDTu/jpP9wQMZh1P0s8iDnQ0WqPXlL0mM7PpB+cRTwg6x81YEqEOo5djUM16U6hz7oiX1I1ISH9E837D/t5aJpPu2Xeq/j4HaZMOeG7RvVNeGqU38qheHcIw6uNiAtgmTTXffc+SwAC30= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477679; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+N+lNMpkEjKdJBqhd8tq0zRr/7ZhtN44x4UhMyv0UqU=; b=CbdVqLhMEWw8upPwRWPIe6Pyu0vzxAlJ0idEcrr380yt+ZRzrlLNQoh9YxuJVbPlioGxI4BbToSL2VOo0FkMHVmslXgoM7GQeATF3g9kEy3fNVfaawb5T9w/dR6ng5tTwGBaZ+L8BA+P0IJKk4S/Zr7Sm8CM6IoBgQOrRZ5q3Ic= 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 1696477679063841.2588576471863; Wed, 4 Oct 2023 20:47:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJF-0000Co-8u; Wed, 04 Oct 2023 23:45:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFId-0008CO-Mt for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:28 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIZ-0000Zt-8s for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:19 -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_256_GCM_SHA384) id us-mta-486-qDqTynlhMuqKIg0xdABTCw-1; Wed, 04 Oct 2023 23:45:06 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-31fd48da316so398378f8f.3 for ; Wed, 04 Oct 2023 20:45:06 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id w11-20020a5d680b000000b0031c6e1ea4c7sm622928wru.90.2023.10.04.20.45.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477508; 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=+N+lNMpkEjKdJBqhd8tq0zRr/7ZhtN44x4UhMyv0UqU=; b=RpSvaogAt+NSKHX1GQVPtlbPtfE43HlY0TDGtMtloSkiapp/0BZhBpFA1THve+mSWevhpw dRX+bpKT+a4mq1+l5gfRqAfkwiauUZ476Qe96gOSHrxMkxu31CJnhpkpyHWIYjhMmlt7YL RMX4I+yPYDDr4RncD94M9VEdMQDiWxc= X-MC-Unique: qDqTynlhMuqKIg0xdABTCw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477505; x=1697082305; 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=+N+lNMpkEjKdJBqhd8tq0zRr/7ZhtN44x4UhMyv0UqU=; b=NDoKVGmW3l38NgsNQr19agoHnL0BIHcLpTLtUO88Skk2DA20ye/lGmzvUbNPWGcIMs 27XsjAGfBE3HBC+aF5PMjzmHTQG6Mj2tnatvRMehFlty0Am1xyjT9fiCRSYu08jB64Ty 6qbaICa2O4xIOBppkwJRR/LMc0OyHcMDFrg9r4OeuxVNQfoH/0YzedM11ffX0V2eNn08 Lnf/hjN6O3yg5JM/1YHT7Qbsu9XxKfA3tUxWGEaLX0q2+4PQGGOnDIlze7uqglXyjTHB HE4w6sXi+zPk5cobKzWmxDTcX63Qa6SKLlJLmLkD+m65CnPl9Dc0CDh8DimebQCQIxfv 263A== X-Gm-Message-State: AOJu0YwmvbZkO/J5Yk6kF/2o7rcBVp2H1oc52lx633w1jfeY41T7m984 3Xypcq2qr1NsnhVHz+TTNkMWiBqfTnfoDAcLF5zZ1mtohnAacG3fRStlhReY8BP7hLt5kxGQTlM qGFs8KK6v4oDTYf1friVLQq+Dmcgx2cpoNjsQzJWEOltpddskD08utHQKUKsdkO4Ti2Go X-Received: by 2002:adf:e892:0:b0:31f:f72c:dfa3 with SMTP id d18-20020adfe892000000b0031ff72cdfa3mr4094501wrm.68.1696477505054; Wed, 04 Oct 2023 20:45:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGdXZU+P3HsBPLdbKwt2L6dOiWbhRD3164R0c/vwVYY+IhB5u6/V7KKuZAXFL1ZLp53DF4wUA== X-Received: by 2002:adf:e892:0:b0:31f:f72c:dfa3 with SMTP id d18-20020adfe892000000b0031ff72cdfa3mr4094490wrm.68.1696477504764; Wed, 04 Oct 2023 20:45:04 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:01 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Fan Ni Subject: [PULL v2 38/53] hw/cxl: Support 4 HDM decoders at all levels of topology Message-ID: References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477679734100005 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron Support these decoders in CXL host bridges (pxb-cxl), CXL Switch USP and CXL Type 3 end points. Signed-off-by: Jonathan Cameron Message-Id: <20230913132523.29780-5-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/cxl/cxl_component.h | 10 +++- hw/cxl/cxl-component-utils.c | 7 ++- hw/cxl/cxl-host.c | 67 +++++++++++++++-------- hw/mem/cxl_type3.c | 98 +++++++++++++++++++++++----------- 4 files changed, 125 insertions(+), 57 deletions(-) diff --git a/include/hw/cxl/cxl_component.h b/include/hw/cxl/cxl_component.h index 7c864d2044..3c795a6278 100644 --- a/include/hw/cxl/cxl_component.h +++ b/include/hw/cxl/cxl_component.h @@ -135,6 +135,10 @@ REG32(CXL_RAS_ERR_HEADER0, CXL_RAS_REGISTERS_OFFSET + = 0x18) REG32(CXL_HDM_DECODER##n##_TARGET_LIST_LO, = \ CXL_HDM_REGISTERS_OFFSET + (0x20 * n) + 0x24) = \ REG32(CXL_HDM_DECODER##n##_TARGET_LIST_HI, = \ + CXL_HDM_REGISTERS_OFFSET + (0x20 * n) + 0x28) = \ + REG32(CXL_HDM_DECODER##n##_DPA_SKIP_LO, = \ + CXL_HDM_REGISTERS_OFFSET + (0x20 * n) + 0x24) = \ + REG32(CXL_HDM_DECODER##n##_DPA_SKIP_HI, = \ CXL_HDM_REGISTERS_OFFSET + (0x20 * n) + 0x28) =20 REG32(CXL_HDM_DECODER_CAPABILITY, CXL_HDM_REGISTERS_OFFSET) @@ -147,9 +151,13 @@ REG32(CXL_HDM_DECODER_GLOBAL_CONTROL, CXL_HDM_REGISTER= S_OFFSET + 4) FIELD(CXL_HDM_DECODER_GLOBAL_CONTROL, POISON_ON_ERR_EN, 0, 1) FIELD(CXL_HDM_DECODER_GLOBAL_CONTROL, HDM_DECODER_ENABLE, 1, 1) =20 +/* Support 4 decoders at all levels of topology */ +#define CXL_HDM_DECODER_COUNT 4 + HDM_DECODER_INIT(0); -/* Only used for HDM decoder registers block address increment */ HDM_DECODER_INIT(1); +HDM_DECODER_INIT(2); +HDM_DECODER_INIT(3); =20 /* 8.2.5.13 - CXL Extended Security Capability Structure (Root complex onl= y) */ #define EXTSEC_ENTRY_MAX 256 diff --git a/hw/cxl/cxl-component-utils.c b/hw/cxl/cxl-component-utils.c index c0630ba5c1..f3bbf0fd13 100644 --- a/hw/cxl/cxl-component-utils.c +++ b/hw/cxl/cxl-component-utils.c @@ -90,6 +90,9 @@ static void dumb_hdm_handler(CXLComponentState *cxl_cstat= e, hwaddr offset, =20 switch (offset) { case A_CXL_HDM_DECODER0_CTRL: + case A_CXL_HDM_DECODER1_CTRL: + case A_CXL_HDM_DECODER2_CTRL: + case A_CXL_HDM_DECODER3_CTRL: should_commit =3D FIELD_EX32(value, CXL_HDM_DECODER0_CTRL, COMMIT); should_uncommit =3D !should_commit; break; @@ -129,7 +132,7 @@ static void cxl_cache_mem_write_reg(void *opaque, hwadd= r offset, uint64_t value, } =20 if (offset >=3D A_CXL_HDM_DECODER_CAPABILITY && - offset <=3D A_CXL_HDM_DECODER0_TARGET_LIST_HI) { + offset <=3D A_CXL_HDM_DECODER3_TARGET_LIST_HI) { dumb_hdm_handler(cxl_cstate, offset, value); } else { cregs->cache_mem_registers[offset / sizeof(*cregs->cache_mem_regis= ters)] =3D value; @@ -209,7 +212,7 @@ static void ras_init_common(uint32_t *reg_state, uint32= _t *write_msk) static void hdm_init_common(uint32_t *reg_state, uint32_t *write_msk, enum reg_type type) { - int decoder_count =3D 1; + int decoder_count =3D CXL_HDM_DECODER_COUNT; int hdm_inc =3D R_CXL_HDM_DECODER1_BASE_LO - R_CXL_HDM_DECODER0_BASE_L= O; int i; =20 diff --git a/hw/cxl/cxl-host.c b/hw/cxl/cxl-host.c index 73c5426476..2aa776c79c 100644 --- a/hw/cxl/cxl-host.c +++ b/hw/cxl/cxl-host.c @@ -97,35 +97,58 @@ void cxl_fmws_link_targets(CXLState *cxl_state, Error *= *errp) } } =20 -/* TODO: support, multiple hdm decoders */ static bool cxl_hdm_find_target(uint32_t *cache_mem, hwaddr addr, uint8_t *target) { int hdm_inc =3D R_CXL_HDM_DECODER1_BASE_LO - R_CXL_HDM_DECODER0_BASE_L= O; - uint32_t ctrl; - uint32_t ig_enc; - uint32_t iw_enc; - uint32_t target_idx; - int i =3D 0; + unsigned int hdm_count; + bool found =3D false; + int i; + uint32_t cap; =20 - ctrl =3D cache_mem[R_CXL_HDM_DECODER0_CTRL + i * hdm_inc]; - if (!FIELD_EX32(ctrl, CXL_HDM_DECODER0_CTRL, COMMITTED)) { - return false; + cap =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER_CAPABILITY); + hdm_count =3D cxl_decoder_count_dec(FIELD_EX32(cap, + CXL_HDM_DECODER_CAPABILIT= Y, + DECODER_COUNT)); + for (i =3D 0; i < hdm_count; i++) { + uint32_t ctrl, ig_enc, iw_enc, target_idx; + uint32_t low, high; + uint64_t base, size; + + low =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_BASE_LO + i * hdm_= inc); + high =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_BASE_HI + i * hdm= _inc); + base =3D (low & 0xf0000000) | ((uint64_t)high << 32); + low =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_SIZE_LO + i * hdm_= inc); + high =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_SIZE_HI + i * hdm= _inc); + size =3D (low & 0xf0000000) | ((uint64_t)high << 32); + if (addr < base || addr >=3D base + size) { + continue; + } + + ctrl =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL + i * hdm_in= c); + if (!FIELD_EX32(ctrl, CXL_HDM_DECODER0_CTRL, COMMITTED)) { + return false; + } + found =3D true; + ig_enc =3D FIELD_EX32(ctrl, CXL_HDM_DECODER0_CTRL, IG); + iw_enc =3D FIELD_EX32(ctrl, CXL_HDM_DECODER0_CTRL, IW); + target_idx =3D (addr / cxl_decode_ig(ig_enc)) % (1 << iw_enc); + + if (target_idx < 4) { + uint32_t val =3D ldl_le_p(cache_mem + + R_CXL_HDM_DECODER0_TARGET_LIST_LO + + i * hdm_inc); + *target =3D extract32(val, target_idx * 8, 8); + } else { + uint32_t val =3D ldl_le_p(cache_mem + + R_CXL_HDM_DECODER0_TARGET_LIST_HI + + i * hdm_inc); + *target =3D extract32(val, (target_idx - 4) * 8, 8); + } + break; } =20 - ig_enc =3D FIELD_EX32(ctrl, CXL_HDM_DECODER0_CTRL, IG); - iw_enc =3D FIELD_EX32(ctrl, CXL_HDM_DECODER0_CTRL, IW); - target_idx =3D (addr / cxl_decode_ig(ig_enc)) % (1 << iw_enc); - - if (target_idx < 4) { - *target =3D extract32(cache_mem[R_CXL_HDM_DECODER0_TARGET_LIST_LO], - target_idx * 8, 8); - } else { - *target =3D extract32(cache_mem[R_CXL_HDM_DECODER0_TARGET_LIST_HI], - (target_idx - 4) * 8, 8); - } - - return true; + return found; } =20 static PCIDevice *cxl_cfmws_find_device(CXLFixedWindow *fw, hwaddr addr) diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index 9f3022189b..c02be4ce45 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -393,8 +393,6 @@ static void hdm_decoder_commit(CXLType3Dev *ct3d, int w= hich) uint32_t *cache_mem =3D cregs->cache_mem_registers; uint32_t ctrl; =20 - assert(which =3D=3D 0); - ctrl =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL + which * hdm_in= c); /* TODO: Sanity checks that the decoder is possible */ ctrl =3D FIELD_DP32(ctrl, CXL_HDM_DECODER0_CTRL, ERR, 0); @@ -410,8 +408,6 @@ static void hdm_decoder_uncommit(CXLType3Dev *ct3d, int= which) uint32_t *cache_mem =3D cregs->cache_mem_registers; uint32_t ctrl; =20 - assert(which =3D=3D 0); - ctrl =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL + which * hdm_in= c); =20 ctrl =3D FIELD_DP32(ctrl, CXL_HDM_DECODER0_CTRL, ERR, 0); @@ -500,6 +496,21 @@ static void ct3d_reg_write(void *opaque, hwaddr offset= , uint64_t value, should_uncommit =3D !should_commit; which_hdm =3D 0; break; + case A_CXL_HDM_DECODER1_CTRL: + should_commit =3D FIELD_EX32(value, CXL_HDM_DECODER0_CTRL, COMMIT); + should_uncommit =3D !should_commit; + which_hdm =3D 1; + break; + case A_CXL_HDM_DECODER2_CTRL: + should_commit =3D FIELD_EX32(value, CXL_HDM_DECODER0_CTRL, COMMIT); + should_uncommit =3D !should_commit; + which_hdm =3D 2; + break; + case A_CXL_HDM_DECODER3_CTRL: + should_commit =3D FIELD_EX32(value, CXL_HDM_DECODER0_CTRL, COMMIT); + should_uncommit =3D !should_commit; + which_hdm =3D 3; + break; case A_CXL_RAS_UNC_ERR_STATUS: { uint32_t capctrl =3D ldl_le_p(cache_mem + R_CXL_RAS_ERR_CAP_CTRL); @@ -771,40 +782,63 @@ static void ct3_exit(PCIDevice *pci_dev) } } =20 -/* TODO: Support multiple HDM decoders and DPA skip */ static bool cxl_type3_dpa(CXLType3Dev *ct3d, hwaddr host_addr, uint64_t *d= pa) { int hdm_inc =3D R_CXL_HDM_DECODER1_BASE_LO - R_CXL_HDM_DECODER0_BASE_L= O; uint32_t *cache_mem =3D ct3d->cxl_cstate.crb.cache_mem_registers; - uint64_t decoder_base, decoder_size, hpa_offset; - uint32_t hdm0_ctrl; - int ig, iw; - int i =3D 0; + unsigned int hdm_count; + uint32_t cap; + uint64_t dpa_base =3D 0; + int i; =20 - decoder_base =3D - (((uint64_t)cache_mem[R_CXL_HDM_DECODER0_BASE_HI + i * hdm_inc] <<= 32) | - cache_mem[R_CXL_HDM_DECODER0_BASE_LO + i * hdm_inc]); - if ((uint64_t)host_addr < decoder_base) { - return false; + cap =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER_CAPABILITY); + hdm_count =3D cxl_decoder_count_dec(FIELD_EX32(cap, + CXL_HDM_DECODER_CAPABILIT= Y, + DECODER_COUNT)); + + for (i =3D 0; i < hdm_count; i++) { + uint64_t decoder_base, decoder_size, hpa_offset, skip; + uint32_t hdm_ctrl, low, high; + int ig, iw; + + low =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_BASE_LO + i * hdm_= inc); + high =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_BASE_HI + i * hdm= _inc); + decoder_base =3D ((uint64_t)high << 32) | (low & 0xf0000000); + + low =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_SIZE_LO + i * hdm_= inc); + high =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_SIZE_HI + i * hdm= _inc); + decoder_size =3D ((uint64_t)high << 32) | (low & 0xf0000000); + + low =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_DPA_SKIP_LO + + i * hdm_inc); + high =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_DPA_SKIP_HI + + i * hdm_inc); + skip =3D ((uint64_t)high << 32) | (low & 0xf0000000); + dpa_base +=3D skip; + + hpa_offset =3D (uint64_t)host_addr - decoder_base; + + hdm_ctrl =3D ldl_le_p(cache_mem + R_CXL_HDM_DECODER0_CTRL + i * hd= m_inc); + iw =3D FIELD_EX32(hdm_ctrl, CXL_HDM_DECODER0_CTRL, IW); + ig =3D FIELD_EX32(hdm_ctrl, CXL_HDM_DECODER0_CTRL, IG); + if (!FIELD_EX32(hdm_ctrl, CXL_HDM_DECODER0_CTRL, COMMITTED)) { + return false; + } + if (((uint64_t)host_addr < decoder_base) || + (hpa_offset >=3D decoder_size)) { + dpa_base +=3D decoder_size / + cxl_interleave_ways_dec(iw, &error_fatal); + continue; + } + + *dpa =3D dpa_base + + ((MAKE_64BIT_MASK(0, 8 + ig) & hpa_offset) | + ((MAKE_64BIT_MASK(8 + ig + iw, 64 - 8 - ig - iw) & hpa_offset) + >> iw)); + + return true; } - - hpa_offset =3D (uint64_t)host_addr - decoder_base; - - decoder_size =3D - ((uint64_t)cache_mem[R_CXL_HDM_DECODER0_SIZE_HI + i * hdm_inc] << = 32) | - cache_mem[R_CXL_HDM_DECODER0_SIZE_LO + i * hdm_inc]; - if (hpa_offset >=3D decoder_size) { - return false; - } - - hdm0_ctrl =3D cache_mem[R_CXL_HDM_DECODER0_CTRL + i * hdm_inc]; - iw =3D FIELD_EX32(hdm0_ctrl, CXL_HDM_DECODER0_CTRL, IW); - ig =3D FIELD_EX32(hdm0_ctrl, CXL_HDM_DECODER0_CTRL, IG); - - *dpa =3D (MAKE_64BIT_MASK(0, 8 + ig) & hpa_offset) | - ((MAKE_64BIT_MASK(8 + ig + iw, 64 - 8 - ig - iw) & hpa_offset) >> = iw); - - return true; + return false; } =20 static int cxl_type3_hpa_to_as_and_dpa(CXLType3Dev *ct3d, --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477743; cv=none; d=zohomail.com; s=zohoarc; b=Ei8rEAP07vuucXR+tyL4JrOGwZtYsRzh60MJLARwQF5FClF95EqWKvsxxqlmcaVNrsj9KDBRf5aEWyf3yJoGkWZromP5TSYwQguwdB//EThC+Pqy1xpZMLsjzMydmGlm7wSn5eP8DXJUFTmxoSV0iqzvKsDmDb8ioDjDX4U5eOQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477743; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3U17/oa5P7mPsBmst5AlGCXHwzW+EDnuhpAyDnkjh7s=; b=m2uApcSHTfremkSbeTEtSOpP2GZp+n1hFKLdV98yhbkz+1ypA4IV4zSR8HVTihGSlQ8MRFd8cvsHdMFgPUGqWO2T91CqcHgzMWLiUqKQVvKjvyj2CKW1vpvlTjh317lxshp7INEWY9AGpJDXxR3dOkF6mrrIu7JQ2tHIVftJ2UU= 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 1696477743640983.9863656521911; Wed, 4 Oct 2023 20:49:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJI-0000OB-Hg; Wed, 04 Oct 2023 23:46:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIm-0008Cw-A5 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:32 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIi-0000bp-7U for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:27 -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_256_GCM_SHA384) id us-mta-517-G_KB-wgQPN2pqyQrsloEhw-1; Wed, 04 Oct 2023 23:45:10 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-32337a3929aso403651f8f.1 for ; Wed, 04 Oct 2023 20:45:10 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id p3-20020a5d4583000000b0032008f99216sm624915wrq.96.2023.10.04.20.45.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477521; 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=3U17/oa5P7mPsBmst5AlGCXHwzW+EDnuhpAyDnkjh7s=; b=PxS8s8OQM0RSyNsLpunKiiN6+p6ErXVi6aiCOY3NoQ5pOSDDKFGPQutwAbhzptJtQ8ltya 9w8InTkPY8DnIeQ0HhZvsDdC1+QytYGJU6yyarq1XvFG+l+tsDwDHP1Q2kAnY0tiBLJNZm z8UK9128fmkeTDoebprOEPSbll36eXs= X-MC-Unique: G_KB-wgQPN2pqyQrsloEhw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477508; x=1697082308; 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=3U17/oa5P7mPsBmst5AlGCXHwzW+EDnuhpAyDnkjh7s=; b=li2pEYK1rosNfBOA5yHW+xHbuXRHZSNk4w+pLU9FJh2n/Pik39oTJXVLkqgvYleCLS j3tfnFfdxNxjWtrOR4sAl3aZ7d4mhNEzicL6SVg9L+up8Ck+A/b528qpolHee3hekxtN 1ZdA3iPUQNuIR7gSUXOLA4nycILJebZmsiV4sWlJ6i985H4X1eLVxod9V/kSsdQs+lUO v2qufOuxmOnaQGKCfY/jAOmazY/udRHmmeAqyHNaX6V7V1r1DGX8jWatMnwllH4cB7o4 popJR4Ws2Gi87E7/58oF9Rb+bPwJ8dsfVzAzqF+iBYu32PmLT9M8UmZ/6Fuj6czIj3LP RKAA== X-Gm-Message-State: AOJu0Yz1lWr1U1nwsJosm6xmq7oc8+CfHoMJvZ2de6AKCBgPgKxvRmBu SNGlcJ2yvWO4oQtfFzTo76ONAvf1kuMLGLah1LlZtYGHTe6X8bs/Sm43UM69RrJmK4IihpKb9QV s2LVQNbOA2GqdJKjeUXRj2/jFkIOZEvUg5T+HKsOFlnlf/tMb2GeLFnKdlLH+Q2LVa25I X-Received: by 2002:adf:f20d:0:b0:31f:e2b9:de1f with SMTP id p13-20020adff20d000000b0031fe2b9de1fmr3779996wro.24.1696477508757; Wed, 04 Oct 2023 20:45:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE11gglLdUSjG6ufCbkM13wv2/9Psq/6J3Qc28v99/ercWCgOKVP1idItCtrYq6oMjmkBc7oA== X-Received: by 2002:adf:f20d:0:b0:31f:e2b9:de1f with SMTP id p13-20020adff20d000000b0031fe2b9de1fmr3779983wro.24.1696477508476; Wed, 04 Oct 2023 20:45:08 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:05 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Marcel Apfelbaum Subject: [PULL v2 39/53] hw/pci-bridge/cxl-upstream: Add serial number extended capability support Message-ID: <2c9ec2a827f5d36e9cf3c55d931cc0dca2f12092.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477744789100006 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron Will be needed so there is a defined serial number for information queries via the Switch CCI. Signed-off-by: Jonathan Cameron Message-Id: <20230913133615.29876-1-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/pci-bridge/cxl_upstream.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/hw/pci-bridge/cxl_upstream.c b/hw/pci-bridge/cxl_upstream.c index 2b9cf0cc97..a57806fb31 100644 --- a/hw/pci-bridge/cxl_upstream.c +++ b/hw/pci-bridge/cxl_upstream.c @@ -14,14 +14,21 @@ #include "hw/pci/msi.h" #include "hw/pci/pcie.h" #include "hw/pci/pcie_port.h" +/* + * Null value of all Fs suggested by IEEE RA guidelines for use of + * EU, OUI and CID + */ +#define UI64_NULL (~0ULL) =20 #define CXL_UPSTREAM_PORT_MSI_NR_VECTOR 2 =20 #define CXL_UPSTREAM_PORT_MSI_OFFSET 0x70 #define CXL_UPSTREAM_PORT_PCIE_CAP_OFFSET 0x90 #define CXL_UPSTREAM_PORT_AER_OFFSET 0x100 -#define CXL_UPSTREAM_PORT_DVSEC_OFFSET \ +#define CXL_UPSTREAM_PORT_SN_OFFSET \ (CXL_UPSTREAM_PORT_AER_OFFSET + PCI_ERR_SIZEOF) +#define CXL_UPSTREAM_PORT_DVSEC_OFFSET \ + (CXL_UPSTREAM_PORT_SN_OFFSET + PCI_EXT_CAP_DSN_SIZEOF) =20 typedef struct CXLUpstreamPort { /*< private >*/ @@ -30,6 +37,7 @@ typedef struct CXLUpstreamPort { /*< public >*/ CXLComponentState cxl_cstate; DOECap doe_cdat; + uint64_t sn; } CXLUpstreamPort; =20 CXLComponentState *cxl_usp_to_cstate(CXLUpstreamPort *usp) @@ -326,7 +334,9 @@ static void cxl_usp_realize(PCIDevice *d, Error **errp) if (rc) { goto err_cap; } - + if (usp->sn !=3D UI64_NULL) { + pcie_dev_ser_num_init(d, CXL_UPSTREAM_PORT_SN_OFFSET, usp->sn); + } cxl_cstate->dvsec_offset =3D CXL_UPSTREAM_PORT_DVSEC_OFFSET; cxl_cstate->pdev =3D d; build_dvsecs(cxl_cstate); @@ -366,6 +376,7 @@ static void cxl_usp_exitfn(PCIDevice *d) } =20 static Property cxl_upstream_props[] =3D { + DEFINE_PROP_UINT64("sn", CXLUpstreamPort, sn, UI64_NULL), DEFINE_PROP_STRING("cdat", CXLUpstreamPort, cxl_cstate.cdat.filename), DEFINE_PROP_END_OF_LIST() }; --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477717; cv=none; d=zohomail.com; s=zohoarc; b=O4rboMZlyAWyxIw7pu/mvYdq8j4JG0d+oqGYf5yt4qRuxSc9SyNr2E9NhA3Z11DsddZth+WGIxX6pQRIAJbCMXwk6eqA40UmZSpv/GBdwgZPrnihKCyLGOw7sJXcZ+e17l9TdDdSoZg3s0diue+vOpA97Sm3wDv3WnFkN6vT/d8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477717; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=fi0K9Am3IfJincw8VDTgn5xt0/GGjlt5fWIa13TNowA=; b=F/ht1wDF2o9RNdvVDqZ8pHC3hhCXvw7Lfd7KFIm/oyc0kJv4Cs2wmc94AiwzntKlWvdKxVhEEpLd20FYv3DfpyOPbxEEK3TUHEbaXuIKsz3ueVx4ESS75wmlya9+kic1DF6n1A9tHrmYdR5YnvN1m/7gN87QteYpkJfPK+foWN4= 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 1696477717243508.8615698672214; Wed, 4 Oct 2023 20:48:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJD-00006C-02; Wed, 04 Oct 2023 23:45:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIj-0008Cj-PE for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:29 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIh-0000bg-RQ for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:25 -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_256_GCM_SHA384) id us-mta-591-uPndyjheMfWVliu_GDzquQ-1; Wed, 04 Oct 2023 23:45:14 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-313c930ee0eso408187f8f.0 for ; Wed, 04 Oct 2023 20:45:13 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id v11-20020adfedcb000000b0031fd849e797sm621531wro.105.2023.10.04.20.45.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477520; 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=fi0K9Am3IfJincw8VDTgn5xt0/GGjlt5fWIa13TNowA=; b=afeIcArU9JS81kPTVRZjxfEJFhRUSOojmbCy72llYoIaUR7UerdoWEvgJt1MuiwKQfkdm3 BGqTVZjW6mdtx1qOxrKFu39G9NPm7kfKv/BGCRVmReG2HNOVsUqxsONhGe71kolWz7JqxH Ze3tWoTUkJXgnf+WdDQT37ldHxnCCl8= X-MC-Unique: uPndyjheMfWVliu_GDzquQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477512; x=1697082312; 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=fi0K9Am3IfJincw8VDTgn5xt0/GGjlt5fWIa13TNowA=; b=W2L4FLa1Iq6zYJmslIPp46BVB2pR8iHs6DGGzdZOJvvc4vlHy1sqxFZrL8pVweFe5b pFZHaX/gLOChcnghjka56u3KrCchz7/4jjGTfQyku5QwS+Dr5KmP0jVVRKFsSSo+zq6f ZFpkBiCmXPM4QUFjGaqQkONk1q2YWuK/IzjE4ztnfHCVgSufjSSBFKYIEDNgObZ/Q7Ab 4FrMqbpQCclaroZb2EBFHqmwD5ah0HFTz29cwwMVjMOE+dvOx218G+4dkkt9+bpfgn+m 4SM7yEl86/BKeumY/budMMOD8iElN57nW3YuZotCVnzi/+kACMRYIBRDlQe5j75eQaAQ ABgQ== X-Gm-Message-State: AOJu0YzYP6eQRuw4p2GshWu2GMADE4MqVNnv88AAqJtW25sZJySzuDCs J4XgSIUG9MZ/MBF9LI2OOX2qLyz3w0lCzfYXG5yYB4CYZo2Py4EygeX2hn8O3DdpeN5NP1EKzFO IPi5bHv1BAQ6bVRQaafrB5VJDk8OV/G7xXkgV6AIajrdK5O7jEYYHS9U5p2BdimhB8RRL X-Received: by 2002:a5d:56ca:0:b0:319:6e74:1637 with SMTP id m10-20020a5d56ca000000b003196e741637mr3461631wrw.27.1696477512490; Wed, 04 Oct 2023 20:45:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFHWk/Px8OO6gJkgolgaKQIrECYd33pSKdauB0QN0onKNFpHbeBdFpeW0VCHDt7rLL2r4b16w== X-Received: by 2002:a5d:56ca:0:b0:319:6e74:1637 with SMTP id m10-20020a5d56ca000000b003196e741637mr3461619wrw.27.1696477512285; Wed, 04 Oct 2023 20:45:12 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:08 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Lei Yang , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Jason Wang Subject: [PULL v2 40/53] vdpa net: fix error message setting virtio status Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477718359100009 From: Eugenio P=C3=A9rez It incorrectly prints "error setting features", probably because a copy paste miss. Fixes: 152128d646 ("vdpa: move CVQ isolation check to net_init_vhost_vdpa") Reported-by: Peter Maydell Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230915170836.3078172-2-eperezma@redhat.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- net/vhost-vdpa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index fe519d908d..650125bb0f 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -1368,7 +1368,7 @@ static int vhost_vdpa_probe_cvq_isolation(int device_= fd, uint64_t features, =20 r =3D ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); if (unlikely(r)) { - error_setg_errno(errp, -r, "Cannot set device features"); + error_setg_errno(errp, -r, "Cannot set status"); goto out; } =20 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477778; cv=none; d=zohomail.com; s=zohoarc; b=Qqq4DYNZO+KZIDJreUa6f6INmCFJc0zr65f6vYtN8fj/pIN9nMvzWqZT87EhKPy0bnRj2tFJ12mIEI3/9BLtJL6DIn0c/qfJypnixVjkbz0/CMbPHWGlkqNYIAwoagHfj7X1u4jEV8z/H828bNlq1yS4lHJwRCbSKiUQEzaX5Rg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477778; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Dc0LwezzCtuJZwfRfwd6fEilbxVEAWIE8I0MI4RifxI=; b=bfcJlWrCQHdZ5tfh4ykIV3AaXUUqKOY0WG2Aa3OD5e09+ByAN3EL1OUR8VJr/imCWtO+NPvzG87LQ1IEV+LSC5DmNDE28rhEJnQUafHwykjj4gUG+4z7HeRqS+pFS+Fs9B9zIegal16caodUNVEkafitxUnjerqwRWWPDBiVtWc= 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 1696477778143540.5792585136197; Wed, 4 Oct 2023 20:49:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJH-0000KP-Jg; Wed, 04 Oct 2023 23:45:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIj-0008Cg-LY for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:29 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIg-0000bS-6G for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:25 -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_256_GCM_SHA384) id us-mta-91-RQOZmJaAOJGUvvnltEFXJQ-1; Wed, 04 Oct 2023 23:45:17 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-327cd5c7406so388776f8f.3 for ; Wed, 04 Oct 2023 20:45:17 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id j14-20020a5d564e000000b0032320a9b010sm633779wrw.28.2023.10.04.20.45.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477519; 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=Dc0LwezzCtuJZwfRfwd6fEilbxVEAWIE8I0MI4RifxI=; b=RGRDH0/7NuMj3h2t7y/Fg1XeOfpwns4jHImmOyFihaEVrCg4FwBGp3s6mgqSg4vKRdFolg juXwc4gAf0sVMCz3TXAt0nWMKCAd0yN6F6j+Sg+a4/YWypM4uKltgSMMZEtwaZObJTW5d1 JtY5nNRQR04uhz9gkI5VKY4qeaZSq7A= X-MC-Unique: RQOZmJaAOJGUvvnltEFXJQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477516; x=1697082316; 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=Dc0LwezzCtuJZwfRfwd6fEilbxVEAWIE8I0MI4RifxI=; b=xAax/fmKW8JF+dO2eYBEOPiNHNXyeZUq3PNZrvg/W7DztkTOqKFQeb25+W+3+If2Na 9J3qIrRcgCjWDFEEL4xjzKw+3QCveKNCF0IDGHinVGq/qqvTIJaUR7pqQB73zpvU3wur IZzZ8VlfK41GmSyU3pX/dSU2Zut4KgG+3+JdzJKvcXItFpZDJMGn1AqBlcuAor8tsjmH yvh/VbrGY1fHWEsNnEO7WQ5sMMbr/XzJrqrD66RcVnWKgjRsq7jBmLz2BpCaAI5vVdv5 FDIylB2ApscmUSp0E5r6dNmbJXoDdfbPNTrHjmHGtDV+80ZjMVmL7IbRG8785Wz3+f+A F82A== X-Gm-Message-State: AOJu0YymQqmhylhwJAxqyXlvM3aKJe3HIHnOia8HTlnTGs1YepE3asMr azacu8hmlSfc84AjUCHaoSD5SXyvMp+VOn2hDqhBeUmcfdE5RjP7N803UUfjLaKeEDIfX7D89tZ xmWwEvSBb4tO293BGQkgkMTdrFcsDX2/duKgfGi1m13wuWocwdZT1RCL6/wq9+1Lggqmi X-Received: by 2002:adf:f452:0:b0:31f:fed4:d79d with SMTP id f18-20020adff452000000b0031ffed4d79dmr3761974wrp.30.1696477515935; Wed, 04 Oct 2023 20:45:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFFbb1tgLhrr+l0+JwNuyAcLbbQE7hIb0UvVNzSO6Ja3+Z9fYhYyF/B+QI2EfG0k5quwYtvmw== X-Received: by 2002:adf:f452:0:b0:31f:fed4:d79d with SMTP id f18-20020adff452000000b0031ffed4d79dmr3761960wrp.30.1696477515642; Wed, 04 Oct 2023 20:45:15 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:12 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Lei Yang , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Jason Wang Subject: [PULL v2 41/53] vdpa net: stop probing if cannot set features Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477779174100003 From: Eugenio P=C3=A9rez Otherwise it continues the CVQ isolation probing. Fixes: 152128d646 ("vdpa: move CVQ isolation check to net_init_vhost_vdpa") Reported-by: Peter Maydell Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230915170836.3078172-3-eperezma@redhat.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- net/vhost-vdpa.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 650125bb0f..b688877f90 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -1364,6 +1364,7 @@ static int vhost_vdpa_probe_cvq_isolation(int device_= fd, uint64_t features, r =3D ioctl(device_fd, VHOST_SET_FEATURES, &features); if (unlikely(r)) { error_setg_errno(errp, errno, "Cannot set features"); + goto out; } =20 r =3D ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477637; cv=none; d=zohomail.com; s=zohoarc; b=TkNSAYdPuBjggAI4R6UysQpXlr/y7HZ6peJGyVVrR4+q7wda/pSvFZNjCn3fy2ObGUWHfvkhmS2aNduiJdgcEraP+3uDBA+8dC0pe9TuDzTuN9ea9bEhKPwdTztIhUbrj5tFDm8KeiBpimK55i7/BdT7RnIcNdqtrYdMMsS2DcI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477637; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TiDNScbhBDu1OBLTc4HNPqS+XxNNdWzPEzlFooKGhj8=; b=X1oCYemcXMnDF33mF9LS2MSWE7ZPQ1LteWywklzvJvTOB7ZQV5Lnu7yCKFb8RpkkMlva1QLAOsznA+zSLROtKNKpS+vEBOIBB7tBJpI2nYJKdDmj0Nam9gj/ZS7wXWgpjjYhkXBMTuDFxDS/DzmC1cpYcvKBwnW/I4kESBj0NRU= 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 1696477637701310.94999787705854; Wed, 4 Oct 2023 20:47:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJB-0008Qj-BK; Wed, 04 Oct 2023 23:45:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIl-0008Ct-VL for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:30 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIi-0000dy-7r for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:27 -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_256_GCM_SHA384) id us-mta-492-0MKmYAl1OC6BvlbD7RULNA-1; Wed, 04 Oct 2023 23:45:21 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-323334992fbso472309f8f.1 for ; Wed, 04 Oct 2023 20:45:21 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id n7-20020a5d6b87000000b003232f167df5sm621445wrx.108.2023.10.04.20.45.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477522; 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=TiDNScbhBDu1OBLTc4HNPqS+XxNNdWzPEzlFooKGhj8=; b=Jqn14Zs4Z4mPdg3hMURARgkCIKgH2nOEdxEcwlksZkfuNEETyRAf3uC0T1R2UM2CW5/S6J B12QJyolbJBMsMiTYRtWf/iEh0zNd7kx/zcFFrWIvTh9f3YpqkH8wzHMvugO6MrSaIAdts qUGYNg3Jc+tgRDxdkroKKd9G+52K6cg= X-MC-Unique: 0MKmYAl1OC6BvlbD7RULNA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477519; x=1697082319; 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=TiDNScbhBDu1OBLTc4HNPqS+XxNNdWzPEzlFooKGhj8=; b=kUWxYF5waPDzbtkoQNrRuDGpZMS07zJ21fDR2bT351BbKWe3m85tZFxgt9RvDpLWEc 0oh0SYm8hhFffbJwVTthFsjHpQJl62iXA9tvEX/CL1pmHTZ0liiwLKV26wScVEVR24Th 2NlpxB26HGrVNtrJKF+lqqVPzUQVPcN8A+Vw/V5bQ257diUpmGp8LGZX9s3KE4I0qPJe GkLB0reJsvQxwF4nalczzH8ivi0gWUPUJu/1cb4+HgmAeqIvPt0BDukZqS/am/iP76/D 3xptvycsShPI2YB2oMsjjNFNYmFFkrxNYBMel6AEW/m93h7g9S7GKGyiRte3FvHdgiQn VEsg== X-Gm-Message-State: AOJu0YyFTMx7eXrxaHafrz56F+5R8Wn0zc1VupnnY5fkloAM7tWbYdKX hTBUbZxnkT1yUH9ztzV4Kk+83kHBncFKOEjA31dguubtOGc80xDvhDYEhKukt4TZTmhzhNl7ZRR +wB+fn36UcmRDO5cGBMJw4hGtYe7D6WAeR4h0ylToO+4XZa6kLWFBCijmuzKHPZ7d1AHk X-Received: by 2002:a5d:504e:0:b0:321:71ae:736c with SMTP id h14-20020a5d504e000000b0032171ae736cmr3817364wrt.7.1696477519589; Wed, 04 Oct 2023 20:45:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFBQXroXk4qv6caQeGRtcdtZDrmif4fjG9mLJKF0TrmfVg4x+8V5tLNekyglYmJomgdrOK4rg== X-Received: by 2002:a5d:504e:0:b0:321:71ae:736c with SMTP id h14-20020a5d504e000000b0032171ae736cmr3817352wrt.7.1696477519313; Wed, 04 Oct 2023 20:45:19 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:16 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Lei Yang , Jason Wang Subject: [PULL v2 42/53] vdpa net: follow VirtIO initialization properly at cvq isolation probing Message-ID: <845ec38ae1578dd2d42ff15c9979f1bf44b23418.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477639100100005 From: Eugenio P=C3=A9rez This patch solves a few issues. The most obvious is that the feature set was done previous to ACKNOWLEDGE | DRIVER status bit set. Current vdpa devices are permissive with this, but it is better to follow the standard. Fixes: 152128d646 ("vdpa: move CVQ isolation check to net_init_vhost_vdpa") Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230915170836.3078172-4-eperezma@redhat.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index b688877f90..939c984d5b 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -1345,8 +1345,7 @@ static int vhost_vdpa_probe_cvq_isolation(int device_= fd, uint64_t features, uint64_t backend_features; int64_t cvq_group; uint8_t status =3D VIRTIO_CONFIG_S_ACKNOWLEDGE | - VIRTIO_CONFIG_S_DRIVER | - VIRTIO_CONFIG_S_FEATURES_OK; + VIRTIO_CONFIG_S_DRIVER; int r; =20 ERRP_GUARD(); @@ -1361,15 +1360,22 @@ static int vhost_vdpa_probe_cvq_isolation(int devic= e_fd, uint64_t features, return 0; } =20 - r =3D ioctl(device_fd, VHOST_SET_FEATURES, &features); + r =3D ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); if (unlikely(r)) { - error_setg_errno(errp, errno, "Cannot set features"); + error_setg_errno(errp, -r, "Cannot set device status"); goto out; } =20 + r =3D ioctl(device_fd, VHOST_SET_FEATURES, &features); + if (unlikely(r)) { + error_setg_errno(errp, -r, "Cannot set features"); + goto out; + } + + status |=3D VIRTIO_CONFIG_S_FEATURES_OK; r =3D ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); if (unlikely(r)) { - error_setg_errno(errp, -r, "Cannot set status"); + error_setg_errno(errp, -r, "Cannot set device status"); goto out; } =20 --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477612; cv=none; d=zohomail.com; s=zohoarc; b=bhEjDyYBfTVcMFEgtxqRLRzofZN/CiU8v6IacvKpxu0UChf/76GqdG2AzzVBFxU2irZCH+X0WItW+G4qv6LacaI6RMgt/zYKueg7PrfVeHkGWCCwtupn4GvSj0kWnT9CDmKnh6Ndh6vo8P/XZui0Dt+IJp/wmPQ2FhSki3Wy9Is= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477612; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=paof42DUy5YVFM8ix/mc19HfT2JnvVvvPuSSyPQvY8Q=; b=niIf5YAyhPLgLjCGyLpVG5qqSUapvjqvE4A946kkZpwLHRtAIbfgo7ldyZ0gLFjHfYzyVQIILds+KrkFF5jXotZ4YhEQQlmFcWUexYkymRslrPYRkAdAGHdeteaUEyIVMZ7o8lzK1jfN00glrTkUmLR1mwwRyeYCkP7QuA5pR7s= 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 1696477612175465.9358828183166; Wed, 4 Oct 2023 20:46:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJG-0000Gj-CU; Wed, 04 Oct 2023 23:45:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJ1-0008J1-QJ for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:45 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIy-0000ln-H9 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45: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_256_GCM_SHA384) id us-mta-468-OR0j186FPay82CeENPNrEg-1; Wed, 04 Oct 2023 23:45:26 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4067f186094so3810695e9.1 for ; Wed, 04 Oct 2023 20:45:25 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id y8-20020a7bcd88000000b00406447b798bsm2792579wmj.37.2023.10.04.20.45.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477537; 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=paof42DUy5YVFM8ix/mc19HfT2JnvVvvPuSSyPQvY8Q=; b=WLTCoClZblIG6TXCdZ4d6/0KHjGws8b8bXlcLwRZGKcxuS39LRg+lQ2cLYC+orubCu3RTY iQwkBVj64YBL3CMqctsihKbi6l27ZpW5WR1x63aXHzKsWXt65l0Vg1wpOA1mkAoTm0Iia6 CfD5koqsxqZDL8LKmM9tdasHxUNJ8hU= X-MC-Unique: OR0j186FPay82CeENPNrEg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477524; x=1697082324; 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=paof42DUy5YVFM8ix/mc19HfT2JnvVvvPuSSyPQvY8Q=; b=deLqLx1+Ygvv1GFpc7YkWqd2+wefc88ONT1xMsmkG/IS7IMzKK74eqZN+JnarurdG+ Xm8X2yp9Xcwz2B9XeJ5RojizEg/80+lSZfggArKZAh0v0DOqOxByEWHaRAUpLJtfY9mI BxGOAwvM75MLj1qCruBmXCUKQauiyy+PvXT49UcGUsNseZTp7lSI1ps6n+gBaC74Lft7 V23NAl/NrbJuzJGdXks9f8DHn+TDjPWhw/6syTAY23FH7yJtk3LQBYvV9q3dh9qploPM hwR4RsdKBVA5UzVk3RLB1Xtj3ryEPwLTCkm4SYs38WYjK+xpLIoN4OfrngL3IgtiF2j3 91LQ== X-Gm-Message-State: AOJu0YwGRQJzNilm1//ePCc/482Cuwh8/a4g11LUPUWckYQwB8JU9i9M IiLjohCnQu74hCL2J/mSC5GA4bhkJqBjUWb+XhR7w54zuG3YDmJbgu/19ylIKCmOVJZdBR/EIpH 0dB9NmW0FHMIIr9XzhM/8DGLOVFFFQIkLrrJSDWyE4mYMWm7RBy0W0VT8KUBbbrapaK2v X-Received: by 2002:a05:600c:4e0f:b0:406:4a32:1919 with SMTP id b15-20020a05600c4e0f00b004064a321919mr4160940wmq.29.1696477524438; Wed, 04 Oct 2023 20:45:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFWhGPCXCv+krMryrFBWVmhqXJnlLkqxEsGGQCFWHw2E8MUnDRKLNLq/MFimdeHIuz7PVxxIw== X-Received: by 2002:a05:600c:4e0f:b0:406:4a32:1919 with SMTP id b15-20020a05600c4e0f00b004064a321919mr4160928wmq.29.1696477524219; Wed, 04 Oct 2023 20:45:24 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:19 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Akihiko Odaki , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL v2 43/53] amd_iommu: Fix APIC address check Message-ID: <0114c4513095598cdf1cd8d7dacdfff757628121.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477612769100019 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Akihiko Odaki An MSI from I/O APIC may not exactly equal to APIC_DEFAULT_ADDRESS. In fact, Windows 17763.3650 configures I/O APIC to set the dest_mode bit. Cover the range assigned to APIC. Fixes: 577c470f43 ("x86_iommu/amd: Prepare for interrupt remap support") Signed-off-by: Akihiko Odaki Message-Id: <20230921114612.40671-1-akihiko.odaki@daynix.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/amd_iommu.h | 2 -- hw/i386/amd_iommu.c | 9 ++------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/hw/i386/amd_iommu.h b/hw/i386/amd_iommu.h index 6da893ee57..c5065a3e27 100644 --- a/hw/i386/amd_iommu.h +++ b/hw/i386/amd_iommu.h @@ -210,8 +210,6 @@ #define AMDVI_INT_ADDR_FIRST 0xfee00000 #define AMDVI_INT_ADDR_LAST 0xfeefffff #define AMDVI_INT_ADDR_SIZE (AMDVI_INT_ADDR_LAST - AMDVI_INT_ADDR_FIRS= T + 1) -#define AMDVI_MSI_ADDR_HI_MASK (0xffffffff00000000ULL) -#define AMDVI_MSI_ADDR_LO_MASK (0x00000000ffffffffULL) =20 /* SB IOAPIC is always on this device in AMD systems */ #define AMDVI_IOAPIC_SB_DEVID PCI_BUILD_BDF(0, PCI_DEVFN(0x14, 0)) diff --git a/hw/i386/amd_iommu.c b/hw/i386/amd_iommu.c index c98a3c6e11..8d0f2f99dd 100644 --- a/hw/i386/amd_iommu.c +++ b/hw/i386/amd_iommu.c @@ -1246,13 +1246,8 @@ static int amdvi_int_remap_msi(AMDVIState *iommu, return -AMDVI_IR_ERR; } =20 - if (origin->address & AMDVI_MSI_ADDR_HI_MASK) { - trace_amdvi_err("MSI address high 32 bits non-zero when " - "Interrupt Remapping enabled."); - return -AMDVI_IR_ERR; - } - - if ((origin->address & AMDVI_MSI_ADDR_LO_MASK) !=3D APIC_DEFAULT_ADDRE= SS) { + if (origin->address < AMDVI_INT_ADDR_FIRST || + origin->address + sizeof(origin->data) > AMDVI_INT_ADDR_LAST + 1) { trace_amdvi_err("MSI is not from IOAPIC."); return -AMDVI_IR_ERR; } --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477792; cv=none; d=zohomail.com; s=zohoarc; b=k/qSbTKXiVIA5RWlLXfwQvNHOtCYDQS6Wr16YOTnHZq4NDMjb4qNiK8gGci9HZo91MfXETk3GBp9H+Q1b0DIAAH83+xcDTbSxd5xw1pvuXrh8IcE3XmjLZeixi40Sr7/exkCx2oOIaY/C+hwFwUxhtukkYKBUcMTtikecJaE8Bg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477792; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=K+ppmYi5eqIqGeWAxSO0NhMvP+pyAbMAK1TQA6ddhAE=; b=MOGdJZD+3jFx5Z5+6cGWtO4nzhhREjU+u54fseKglrwDWOLXxmmfWF0TVmOMXY79XRV5nB4gNTGiH1R9v061LwFcNfI3RmXjFymQpmCChuM5Ono69PwlW39hS1pRRl87VM2ywUuUzhORsYSCiq95lifnlvzP+IR82QkhfQhHBRQ= 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 1696477792168920.50491717112; Wed, 4 Oct 2023 20:49:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJK-0000U1-FZ; Wed, 04 Oct 2023 23:46:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJ3-0008Jw-SE for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:47 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJ1-0000mw-II for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:45 -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_256_GCM_SHA384) id us-mta-647-ZTkm4HWANma4VHG2ADJc_A-1; Wed, 04 Oct 2023 23:45:30 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-4053d832d51so4165895e9.0 for ; Wed, 04 Oct 2023 20:45:30 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id w21-20020a05600c015500b0040535648639sm534275wmm.36.2023.10.04.20.45.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477542; 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=K+ppmYi5eqIqGeWAxSO0NhMvP+pyAbMAK1TQA6ddhAE=; b=PNdSQVMKxGgoPhq7Ty5jKtYsLf45GJ6uewsxAw5cM2OJ7aAlPPzTl2L4XmvghKbWauFpSn gQRFj8Q1iOUpQjft+wvlf0wKFlI8Zv9D+AmjpdTPkZxC1mDEZkrKSRSv6hz1bPrpR3sd/7 NHEEVGTQYdlX4tPZwFmIN7EPb174qbk= X-MC-Unique: ZTkm4HWANma4VHG2ADJc_A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477529; x=1697082329; 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=K+ppmYi5eqIqGeWAxSO0NhMvP+pyAbMAK1TQA6ddhAE=; b=RGKUCPzlETsfMZ95phPnEXuO6N2SyldUw/EnIuMjN1y8sNQtCv2CxxB00FOB54FIpt gTOLA4YqVvae6YN7ZIftd0cmh2hPzWZ5i/f2GlLLwPQ5t9BRa2hG8KaaTN7dyoq4Ah7r tfjOyQDWaOBZ+AO8fEtHt5KaQRVsTmaf2FL4Zk/R1Iiic1qC4Ua6/rPLztfuat6izzvG K7Vh8g6G/7G78BjO9yXty3yuA7dCwIaVgQeDhME3G/LD2JoQPH0oz86+7phHfB7ihXkJ gsUN6lbG2dqDoT01Z81Ix0hhsVVKlJoalcVcA+MHSgF2Tkd0ck4MtW/cH/fMtOQsvPam Q/zg== X-Gm-Message-State: AOJu0YxrRgCXpUiMARbqqcU53QkBvANfb3xumDT53jIW55W8FR9mR5En aKk/fRtzfTx/EbKaQ1v3A/eUno43w+lJDIDHefzEEFGM011hqGj3rusEw121HcFc8APgeX/bvcF Y9a2g9xzql5FCu3UAQPWBzIWuDWYgzePmqUrqzycHgqTVD1zK7YuClRClu4rpXZPJiwbK X-Received: by 2002:a7b:c7d7:0:b0:404:72fe:ed5c with SMTP id z23-20020a7bc7d7000000b0040472feed5cmr3840976wmk.29.1696477528680; Wed, 04 Oct 2023 20:45:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IElsslY/ebLOdGFILVvdZmyO7Z178BurYpOLGUNHqKwROvaQ5kKpgS1hPeCTQJOwcpVHg9Nbw== X-Received: by 2002:a7b:c7d7:0:b0:404:72fe:ed5c with SMTP id z23-20020a7bc7d7000000b0040472feed5cmr3840955wmk.29.1696477528352; Wed, 04 Oct 2023 20:45:28 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:24 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ani Sinha , David Hildenbrand , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Igor Mammedov , Thomas Huth , Laurent Vivier Subject: [PULL v2 44/53] hw/i386/pc: improve physical address space bound check for 32-bit x86 systems Message-ID: References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477793410100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ani Sinha 32-bit x86 systems do not have a reserved memory for hole64. On those 32-bit systems without PSE36 or PAE CPU features, hotplugging memory devices are n= ot supported by QEMU as QEMU always places hotplugged memory above 4 GiB bound= ary which is beyond the physical address space of the processor. Linux guests a= lso does not support memory hotplug on those systems. Please see Linux kernel commit b59d02ed08690 ("mm/memory_hotplug: disable the functionality for 32b") for more details. Therefore, the maximum limit of the guest physical address in the absence of additional memory devices effectively coincides with the end of "above 4G memory space" region for 32-bit x86 without PAE/PSE36. When users configure additional memory devices, after properly accounting for the additional device memory region to find the maximum value of the guest physical address, the address will be outside the range of the processor's physical address space. This change adds improvements to take above into consideration. For example, previously this was allowed: $ ./qemu-system-x86_64 -cpu pentium -m size=3D10G With this change now it is no longer allowed: $ ./qemu-system-x86_64 -cpu pentium -m size=3D10G qemu-system-x86_64: Address space limit 0xffffffff < 0x2bfffffff phys-bits = too low (32) However, the following are allowed since on both cases physical address space of the processor is 36 bits: $ ./qemu-system-x86_64 -cpu pentium2 -m size=3D10G $ ./qemu-system-x86_64 -cpu pentium,pse36=3Don -m size=3D10G For 32-bit, without PAE/PSE36, hotplugging additional memory is no longer a= llowed. $ ./qemu-system-i386 -m size=3D1G,maxmem=3D3G,slots=3D2 qemu-system-i386: Address space limit 0xffffffff < 0x1ffffffff phys-bits to= o low (32) $ ./qemu-system-i386 -machine q35 -m size=3D1G,maxmem=3D3G,slots=3D2 qemu-system-i386: Address space limit 0xffffffff < 0x1ffffffff phys-bits to= o low (32) A new compatibility flag is introduced to make sure pc_max_used_gpa() keeps returning the old value for machines 8.1 and older. Therefore, the above is still allowed for older machine types in order to s= upport compatibility. Hence, the following still works: $ ./qemu-system-i386 -machine pc-i440fx-8.1 -m size=3D1G,maxmem=3D3G,slots= =3D2 $ ./qemu-system-i386 -machine pc-q35-8.1 -m size=3D1G,maxmem=3D3G,slots=3D2 Further, following is also allowed as with PSE36, the processor has 36-bit address space: $ ./qemu-system-i386 -cpu 486,pse36=3Don -m size=3D1G,maxmem=3D3G,slots=3D2 After calling CPUID with EAX=3D0x80000001, all AMD64 compliant processors have the longmode-capable-bit turned on in the extended feature flags (bit = 29) in EDX. The absence of CPUID longmode can be used to differentiate between 32-bit and 64-bit processors and is the recommended approach. QEMU takes th= is approach elsewhere (for example, please see x86_cpu_realizefn()), With this change, pc_max_used_gpa() also uses the same method to detect 32-bit processors. Unit tests are modified to not run 32-bit x86 tests that use memory hotplug. Suggested-by: David Hildenbrand Signed-off-by: Ani Sinha Reviewed-by: David Hildenbrand Message-Id: <20230922160413.165702-1-anisinha@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/i386/pc.h | 6 ++++++ hw/i386/pc.c | 32 +++++++++++++++++++++++++++++--- hw/i386/pc_piix.c | 4 ++++ hw/i386/pc_q35.c | 2 ++ tests/qtest/bios-tables-test.c | 26 ++++++++++++++++++-------- tests/qtest/numa-test.c | 7 ++++++- 6 files changed, 65 insertions(+), 12 deletions(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 0fabece236..bec38cb92c 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -129,6 +129,12 @@ struct PCMachineClass { =20 /* resizable acpi blob compat */ bool resizable_acpi_blob; + + /* + * whether the machine type implements broken 32-bit address space bou= nd + * check for memory. + */ + bool broken_32bit_mem_addr_check; }; =20 #define TYPE_PC_MACHINE "generic-pc-machine" diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 3db0743f31..a532d42cf4 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -907,13 +907,39 @@ static uint64_t pc_get_cxl_range_end(PCMachineState *= pcms) static hwaddr pc_max_used_gpa(PCMachineState *pcms, uint64_t pci_hole64_si= ze) { X86CPU *cpu =3D X86_CPU(first_cpu); + PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); + MachineState *ms =3D MACHINE(pcms); =20 - /* 32-bit systems don't have hole64 thus return max CPU address */ - if (cpu->phys_bits <=3D 32) { + if (cpu->env.features[FEAT_8000_0001_EDX] & CPUID_EXT2_LM) { + /* 64-bit systems */ + return pc_pci_hole64_start() + pci_hole64_size - 1; + } + + /* 32-bit systems */ + if (pcmc->broken_32bit_mem_addr_check) { + /* old value for compatibility reasons */ return ((hwaddr)1 << cpu->phys_bits) - 1; } =20 - return pc_pci_hole64_start() + pci_hole64_size - 1; + /* + * 32-bit systems don't have hole64 but they might have a region for + * memory devices. Even if additional hotplugged memory devices might + * not be usable by most guest OSes, we need to still consider them for + * calculating the highest possible GPA so that we can properly report + * if someone configures them on a CPU that cannot possibly address th= em. + */ + if (pcmc->has_reserved_memory && + (ms->ram_size < ms->maxram_size)) { + hwaddr devmem_start; + ram_addr_t devmem_size; + + pc_get_device_memory_range(pcms, &devmem_start, &devmem_size); + devmem_start +=3D devmem_size; + return devmem_start - 1; + } + + /* configuration without any memory hotplug */ + return pc_above_4g_end(pcms) - 1; } =20 /* diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 8321f36f97..71003759bb 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -517,9 +517,13 @@ DEFINE_I440FX_MACHINE(v8_2, "pc-i440fx-8.2", NULL, =20 static void pc_i440fx_8_1_machine_options(MachineClass *m) { + PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + pc_i440fx_8_2_machine_options(m); m->alias =3D NULL; m->is_default =3D false; + pcmc->broken_32bit_mem_addr_check =3D true; + compat_props_add(m->compat_props, hw_compat_8_1, hw_compat_8_1_len); compat_props_add(m->compat_props, pc_compat_8_1, pc_compat_8_1_len); } diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 2dd1158b70..a7386f2ca2 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -394,8 +394,10 @@ DEFINE_Q35_MACHINE(v8_2, "pc-q35-8.2", NULL, =20 static void pc_q35_8_1_machine_options(MachineClass *m) { + PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_q35_8_2_machine_options(m); m->alias =3D NULL; + pcmc->broken_32bit_mem_addr_check =3D true; compat_props_add(m->compat_props, hw_compat_8_1, hw_compat_8_1_len); compat_props_add(m->compat_props, pc_compat_8_1, pc_compat_8_1_len); } diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index d1b80149f2..f8e03dfd46 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -2080,7 +2080,6 @@ int main(int argc, char *argv[]) test_acpi_piix4_no_acpi_pci_hotplug); qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi); qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp); - qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp); qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numam= em); qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm); qtest_add_func("acpi/piix4/smm-compat", @@ -2088,9 +2087,15 @@ int main(int argc, char *argv[]) qtest_add_func("acpi/piix4/smm-compat-nosmm", test_acpi_piix4_tcg_smm_compat_nosmm); qtest_add_func("acpi/piix4/nohpet", test_acpi_piix4_tcg_nohpet= ); - qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_= pxm); - qtest_add_func("acpi/piix4/acpihmat", - test_acpi_piix4_tcg_acpi_hmat); + + /* i386 does not support memory hotplug */ + if (strcmp(arch, "i386")) { + qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_mem= hp); + qtest_add_func("acpi/piix4/dimmpxm", + test_acpi_piix4_tcg_dimm_pxm); + qtest_add_func("acpi/piix4/acpihmat", + test_acpi_piix4_tcg_acpi_hmat); + } #ifdef CONFIG_POSIX qtest_add_func("acpi/piix4/acpierst", test_acpi_piix4_acpi_ers= t); #endif @@ -2108,11 +2113,9 @@ int main(int argc, char *argv[]) test_acpi_q35_tcg_no_acpi_hotplug); qtest_add_func("acpi/q35/multif-bridge", test_acpi_q35_multif_bridge); - qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64); qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi); qtest_add_func("acpi/q35/smbus/ipmi", test_acpi_q35_tcg_smbus_= ipmi); qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp); - qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp); qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem); qtest_add_func("acpi/q35/nosmm", test_acpi_q35_tcg_nosmm); qtest_add_func("acpi/q35/smm-compat", @@ -2120,10 +2123,17 @@ int main(int argc, char *argv[]) qtest_add_func("acpi/q35/smm-compat-nosmm", test_acpi_q35_tcg_smm_compat_nosmm); qtest_add_func("acpi/q35/nohpet", test_acpi_q35_tcg_nohpet); - qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm); - qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hma= t); qtest_add_func("acpi/q35/acpihmat-noinitiator", test_acpi_q35_tcg_acpi_hmat_noinitiator); + + /* i386 does not support memory hotplug */ + if (strcmp(arch, "i386")) { + qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp); + qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_= pxm); + qtest_add_func("acpi/q35/acpihmat", + test_acpi_q35_tcg_acpi_hmat); + qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64= ); + } #ifdef CONFIG_POSIX qtest_add_func("acpi/q35/acpierst", test_acpi_q35_acpi_erst); #endif diff --git a/tests/qtest/numa-test.c b/tests/qtest/numa-test.c index c5eb13f349..4f4404a4b1 100644 --- a/tests/qtest/numa-test.c +++ b/tests/qtest/numa-test.c @@ -568,7 +568,7 @@ int main(int argc, char **argv) qtest_add_data_func("/numa/mon/cpus/partial", args, test_mon_partial); qtest_add_data_func("/numa/qmp/cpus/query-cpus", args, test_query_cpus= ); =20 - if (!strcmp(arch, "i386") || !strcmp(arch, "x86_64")) { + if (!strcmp(arch, "x86_64")) { qtest_add_data_func("/numa/pc/cpu/explicit", args, pc_numa_cpu); qtest_add_data_func("/numa/pc/dynamic/cpu", args, pc_dynamic_cpu_c= fg); qtest_add_data_func("/numa/pc/hmat/build", args, pc_hmat_build_cfg= ); @@ -576,6 +576,11 @@ int main(int argc, char **argv) qtest_add_data_func("/numa/pc/hmat/erange", args, pc_hmat_erange_c= fg); } =20 + if (!strcmp(arch, "i386")) { + qtest_add_data_func("/numa/pc/cpu/explicit", args, pc_numa_cpu); + qtest_add_data_func("/numa/pc/dynamic/cpu", args, pc_dynamic_cpu_c= fg); + } + if (!strcmp(arch, "ppc64")) { qtest_add_data_func("/numa/spapr/cpu/explicit", args, spapr_numa_c= pu); } --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477681; cv=none; d=zohomail.com; s=zohoarc; b=Tiotl9ieh64UUQECTwuJ+BQlJZEThKhPCZehOADKi1NFiQRQhBsbrXdQ8ae+cStgROBSgmExDqJWcBxH9Mf/D0V2DiLyGf3wlm+nCXZN3WgpWsJ1XY7A7EYcnkYowRU4wTDD7eGXlZEv7uxowaaaPErShqOyMo2vu0ZM6+4jJsI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477681; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dXZPD0CN1EMknhNwzhqLjrYqmgqO9D2C6C8XhFWkRR0=; b=kH6ZbxVD9Q8Jn3L2XqXsAHrAxpBLZ6ddpW2+Y+/eXW8ZaHgZ1B6yPdJfn/HsCDA0CgdLDC7MTgkfYjPqBL8yKoqIzAuno5557tcJeOFUw+zyYFRY938CyAPqIczi5ZAEpdYTHO5XUise7wNS+i3kcgBRbMu34Y31yuvHQSsUw/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 1696477681288140.05786145663092; Wed, 4 Oct 2023 20:48:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJH-0000Ls-T1; Wed, 04 Oct 2023 23:45:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJ1-0008J2-Q9 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:45 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIx-0000lv-Gu for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:41 -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_256_GCM_SHA384) id us-mta-121-9YkK6oGlPxKVGbhJN3ie5Q-1; Wed, 04 Oct 2023 23:45:36 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-32480c0ad52so418641f8f.0 for ; Wed, 04 Oct 2023 20:45:35 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id t11-20020a5d460b000000b003197c7d08ddsm629952wrq.71.2023.10.04.20.45.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477537; 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=dXZPD0CN1EMknhNwzhqLjrYqmgqO9D2C6C8XhFWkRR0=; b=PFN1pGeHE4CRp40JcS/TkVClkoZc3GTj3Ee1TYKaRRq6dV571Sg6mNCuHReolX+/sDr++g 9tgUy5WcUck2TydEDANmwEWQ5vp+7BWoEo132aO0ezg/h7kQiqy44e0ITsm4ZihhuJl/RJ imCKd96Pacvo/VLW5KEAYWIoaV78FCY= X-MC-Unique: 9YkK6oGlPxKVGbhJN3ie5Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477533; x=1697082333; 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=dXZPD0CN1EMknhNwzhqLjrYqmgqO9D2C6C8XhFWkRR0=; b=mVOCkJnWum7q37aoPZCYsHzoArIKnDy10+aPby+QfdJnRKUuWpONlnaYgPC4YhsRCl QzQ0x3hanBLi6TAL3kzlW23KK+S+Xl3OpEPpkBHiJh4Q3nr0lNoiddMYMQCgMHswM75F N0lqkddhvxjznJkXFdjuygEoLTAQBAAwbRUL3ActsjXYGlmq1fTQaceRY/zxi874CoqX WVdQl9io3+1D5Val6oJ6TETe8FYneNeuFhqPw3IqYdt8Y62PEEYXV5ysJRn+HdbdgISb ntHxWg4SM+UXLV+91rAtFYeY8zL+BbTesvvXA5RM5IkXXuGmGqfLe4W/trR/88dxM1Hj 4fqw== X-Gm-Message-State: AOJu0Yy6T2mX/itr21UW7SXv0TZh0qR6np4eQixNfJsawJ5hHVrukSj5 hY7SZxBK3oQ3OZhrwsamgQgblMiuwPE0g5X0KEvwkHiJ9OwRzoBR0r3CpzJCBp0Jq1yCgApX1W/ gWJJ61VVSYQGhVEgf3VZmQ71OoU4g4xnCmxuhgxG2Kk1NPPqrRLV3nrU/JFOJzlmpsXyC X-Received: by 2002:adf:f386:0:b0:324:84cf:11ab with SMTP id m6-20020adff386000000b0032484cf11abmr3502935wro.51.1696477533803; Wed, 04 Oct 2023 20:45:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGcRtaE8dgPU4SHorG/QmFYCvXLP6WAK1j/YdRcDT67L1V+PGHIfWN9G7e92MIPFemE0E2aJg== X-Received: by 2002:adf:f386:0:b0:324:84cf:11ab with SMTP id m6-20020adff386000000b0032484cf11abmr3502926wro.51.1696477533546; Wed, 04 Oct 2023 20:45:33 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:28 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Vladimir Sementsov-Ogievskiy , Marcel Apfelbaum Subject: [PULL v2 45/53] pcie_sriov: unregister_vfs(): fix error path Message-ID: References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477681713100009 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Vladimir Sementsov-Ogievskiy local_err must be NULL before calling object_property_set_bool(), so we must clear it on each iteration. Let's also use more convenient error_reportf_err(). Signed-off-by: Vladimir Sementsov-Ogievskiy Message-Id: <20230925194040.68592-8-vsementsov@yandex-team.ru> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/pci/pcie_sriov.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/hw/pci/pcie_sriov.c b/hw/pci/pcie_sriov.c index 76a3b6917e..5ef8950940 100644 --- a/hw/pci/pcie_sriov.c +++ b/hw/pci/pcie_sriov.c @@ -196,19 +196,16 @@ static void register_vfs(PCIDevice *dev) =20 static void unregister_vfs(PCIDevice *dev) { - Error *local_err =3D NULL; uint16_t num_vfs =3D dev->exp.sriov_pf.num_vfs; uint16_t i; =20 trace_sriov_unregister_vfs(dev->name, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), num_vfs); for (i =3D 0; i < num_vfs; i++) { + Error *err =3D NULL; PCIDevice *vf =3D dev->exp.sriov_pf.vf[i]; - object_property_set_bool(OBJECT(vf), "realized", false, &local_err= ); - if (local_err) { - fprintf(stderr, "Failed to unplug: %s\n", - error_get_pretty(local_err)); - error_free(local_err); + if (!object_property_set_bool(OBJECT(vf), "realized", false, &err)= ) { + error_reportf_err(err, "Failed to unplug: "); } object_unparent(OBJECT(vf)); object_unref(OBJECT(vf)); --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477750; cv=none; d=zohomail.com; s=zohoarc; b=gHsFjUCNUjU2gM7Skp4mI4UE1R3XxObVeZlmhCvG9wf96/nsYVsWIHIdlqqORJDO8mcFo4vFQzQ0v1ndIgI6bsmWaFbMVGAHJgyPoc9UJzAbzSbmUWxynGyyodQg+bmtmwTCn2HQXzHybPgDGJfHP6hiU0LfqmC8Zm+npJosP3E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477750; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7o6L3Hf/e9kUu5lCaCSDHMU6Bu6TjGI//1ytCFQ5e54=; b=PRodBs7KW8FydEvNN4fN9jESHgbm9auYxbK57gwqm0UCesnJdjCoyB7w8bnjmOCSddUPgJLJ0Ih0SVkZvRVCb6pDaoNWcR0O8Tk5uIpvzlDQT6YauyVW6bVTzqU1gt6jNnJ8gPbrROqOnGjPWpoLkgtnBBoUH/yVgJZ2B1vGN7I= 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 1696477750463713.6275847905121; Wed, 4 Oct 2023 20:49:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJE-0000Br-QU; Wed, 04 Oct 2023 23:45:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJ1-0008J3-RE for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:45 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFIz-0000mK-Eq for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:42 -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_256_GCM_SHA384) id us-mta-682-VKKnfuOuNlmMNKUtW3x3DA-1; Wed, 04 Oct 2023 23:45:38 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-3f42bcef2acso3152665e9.2 for ; Wed, 04 Oct 2023 20:45:38 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id u20-20020a05600c211400b0040642a1df1csm544327wml.25.2023.10.04.20.45.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477539; 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=7o6L3Hf/e9kUu5lCaCSDHMU6Bu6TjGI//1ytCFQ5e54=; b=hWd8bei/m2jspmUN/+9mA+6uIFZ9tk2MnMLNfNwosfDFfLQce4qcfbLnaIhddAZbB73bO3 5fPMD0uvXSyftB6AnKQQJa8zkh4U42lHGSDb6fTuc85Wi/2b9nH91p/nBRZLfHRmrttuv7 CG2xrdG/q8GOpDC8LuNbGrFLm1vziUw= X-MC-Unique: VKKnfuOuNlmMNKUtW3x3DA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477536; x=1697082336; 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=7o6L3Hf/e9kUu5lCaCSDHMU6Bu6TjGI//1ytCFQ5e54=; b=JtCuiPCoZhCvJUz6gvCZbEm3J5n+bnlg9BtjD/vgg2ktvcltZDI/yVmK71cdy6BM4G e/fRUeI73U6ArYeaPimMpWcPNLLEU0iE3/XMtfpjPb6jY/4Br+t4Nhcf8WNK6ammdbS3 G9cADxDg/DYdZFmu9bbr0mgc07t+GvExfR6nRfOxe6XelqE78VncnABki179BsRIc2Fg LtdVYQgWIexhjhc0/ek75T4yDIxH1SQPXQGnweVG1NUSwneYlTltE1xpEb5+wUC38jhY mKam3LlC6T2tWBBuBlfdtZfB7HlNAsaS7TQEm53//mtZFX4innq7gb43ujPU9MW8HBqV bynw== X-Gm-Message-State: AOJu0Yz98D8EvpPZCfYVPZLdPTPCFIWMm9C+sDqxrSIj1QeTkMx7llav sYHzCJ5/VcDrO6OwnzZAZZIaNkr21QHJqo5BmgluiCevpJ4wgP7Om7BYG5aaFvcQ91JQAdhBc+j dX0bqHzAu5qF9EbuEHqPuO0U7QmOSpAdL1BbtF3ciIsF3KUr/oVQURrO9IiIBy0FjIl8K X-Received: by 2002:a7b:cbd5:0:b0:3ff:ca80:eda3 with SMTP id n21-20020a7bcbd5000000b003ffca80eda3mr3737026wmi.10.1696477536707; Wed, 04 Oct 2023 20:45:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEvgbqf/fYxS5Omj4lAlvfJcsdeeSkzvFcE7h7wuZAvVmJBXO/78UVSy2lbKMWnF/H+IjoCvw== X-Received: by 2002:a7b:cbd5:0:b0:3ff:ca80:eda3 with SMTP id n21-20020a7bcbd5000000b003ffca80eda3mr3737015wmi.10.1696477536300; Wed, 04 Oct 2023 20:45:36 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:33 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Vladimir Sementsov-Ogievskiy Subject: [PULL v2 46/53] libvhost-user.c: add assertion to vu_message_read_default Message-ID: References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477750789100015 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Vladimir Sementsov-Ogievskiy Explain Coverity that we are not going to overflow vmsg->fds. Signed-off-by: Vladimir Sementsov-Ogievskiy Message-Id: <20230925194040.68592-5-vsementsov@yandex-team.ru> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- subprojects/libvhost-user/libvhost-user.c | 1 + 1 file changed, 1 insertion(+) diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvho= st-user/libvhost-user.c index 0469a50101..49b57c7ef4 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -322,6 +322,7 @@ vu_message_read_default(VuDev *dev, int conn_fd, VhostU= serMsg *vmsg) if (cmsg->cmsg_level =3D=3D SOL_SOCKET && cmsg->cmsg_type =3D=3D S= CM_RIGHTS) { fd_size =3D cmsg->cmsg_len - CMSG_LEN(0); vmsg->fd_num =3D fd_size / sizeof(int); + assert(fd_size < VHOST_MEMORY_BASELINE_NREGIONS); memcpy(vmsg->fds, CMSG_DATA(cmsg), fd_size); break; } --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477780; cv=none; d=zohomail.com; s=zohoarc; b=jXcEchp4KN4zn9AADhu6k+QL4sI813jtZvblGLmSNoKeKwCKYSMDnRJlE1oo1QcloQf7Y21sr1fdH4T9OMjJCBXjwiVDz1pex4CeNFfLvXsGX5oJhwm2Ty9NlHex9MANyhBs+kFujt6jdE0vj02Q/UATk5gyMQl+EZlGPphXDxA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477780; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4+2AkEDFAeUGwi9xAK78UKYezxVoHbtT5EOiRdYvUo8=; b=b/n1df/3GyBg+SLFVsKBtkKuTG/z5hxrPXLSxX+XCt+CWapl4rCYL5UcU4vNlVvYdjInq+IUlmeyXGFz1iIy52MCLfYDA3WKMBUI7fVLxTRNpaQElsp4JuHCbTv9yXt7CGieKfYnuiAdrB322MnRvELHu+us4HQrh8Z/SRUNHYo= 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 1696477780173667.0123113207384; Wed, 4 Oct 2023 20:49:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJK-0000Se-1k; Wed, 04 Oct 2023 23:46:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJ8-0008Tl-AA for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJ6-0000oM-OE for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:50 -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_256_GCM_SHA384) id us-mta-357-Gbxv-NMMNJWqBnjiUdOapQ-1; Wed, 04 Oct 2023 23:45:41 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-32172e3679bso464204f8f.2 for ; Wed, 04 Oct 2023 20:45:41 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id q8-20020a05600000c800b00324ae863ac1sm635727wrx.35.2023.10.04.20.45.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477548; 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=4+2AkEDFAeUGwi9xAK78UKYezxVoHbtT5EOiRdYvUo8=; b=XY0lpGaPkb2f39JLVQyl+6E14DWW707iNnHJCQ5GKoyykrylKSBQwxfjmjPTvvnVv3950u /CgkFmsBjl6vClk6MRoSIuncT8B/HmRCLKuRGc0YmjEMZc0Y8Q30t2mhNQqgw9Ij3uGvrv AV8pCFRF97UF/yrwchzRhwgH6SQbw1g= X-MC-Unique: Gbxv-NMMNJWqBnjiUdOapQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477540; x=1697082340; 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=4+2AkEDFAeUGwi9xAK78UKYezxVoHbtT5EOiRdYvUo8=; b=cXdGPHSUKZ3YBG+INWsoa/gEJy2/UBaTkhEcS5MCb4oJaWIUSQclZY1lT4sZenkhKx eXrbIrCEuo9vd8JdFB2pCGaCph6w5DLUibKyW8f6qgqxQeLexyERI0mhNKYy1SSX3vGB Gip5JzGVRr1WcN96FauxZIrbMEwDEdQ7WL9xWY8fqNNom0B0Nkkv9LhP2VeNDmQj2ZcZ i0FDjAfxtgY5ysla0fQBiotFWu1pUHdJjhna1alCUirOSkx3qyauaQgBaiGFsp677TnN haRZPvf1zsYqWlQjsVx93FUdc2JOM+m+qQvG8MKkiSwCtlXkQ7IKRsn21jEzzlGkFTAo GfNQ== X-Gm-Message-State: AOJu0YyrsIQ6/uRPPKcqqSf7o39urj15AWGGCP6XgyNp3C3rIkiN+fRM QIpmZQRGPkSwpEUR702X/aLr8T2X/40hoTqG6+Qrj4WmQIVkV5jwhA2vkfRkktdhb+QQxWXd7sD C43hCntZTjHih4dSgVYd4W9bzTnNlwX33sJzJza583VVw+NRaBeVHR23Mgdpv5ziwRdi3 X-Received: by 2002:a5d:5187:0:b0:31f:ec06:20f with SMTP id k7-20020a5d5187000000b0031fec06020fmr3882918wrv.14.1696477539945; Wed, 04 Oct 2023 20:45:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFiXsXwMge9QP3zHGQIqLRPaKSzw4qbrQk0IQz0ke4JOb7bJRlPPDEmXTSBfiKe75xvvda/KA== X-Received: by 2002:a5d:5187:0:b0:31f:ec06:20f with SMTP id k7-20020a5d5187000000b0031fec06020fmr3882907wrv.14.1696477539733; Wed, 04 Oct 2023 20:45:39 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:36 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ilya Maximets , Stefan Hajnoczi Subject: [PULL v2 47/53] virtio: use shadow_avail_idx while checking number of heads Message-ID: <850cd20b072cd330cb24aa1c92732b9722998d40.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477781203100007 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ilya Maximets We do not need the most up to date number of heads, we only want to know if there is at least one. Use shadow variable as long as it is not equal to the last available index checked. This avoids expensive qatomic dereference of the RCU-protected memory region cache as well as the memory access itself. The change improves performance of the af-xdp network backend by 2-3%. Signed-off-by: Ilya Maximets Message-Id: <20230927135157.2316982-1-i.maximets@ovn.org> Reviewed-by: Stefan Hajnoczi Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/virtio.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index c727e9201b..2058b838e9 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -997,7 +997,12 @@ void virtqueue_push(VirtQueue *vq, const VirtQueueElem= ent *elem, /* Called within rcu_read_lock(). */ static int virtqueue_num_heads(VirtQueue *vq, unsigned int idx) { - uint16_t num_heads =3D vring_avail_idx(vq) - idx; + uint16_t avail_idx, num_heads; + + /* Use shadow index whenever possible. */ + avail_idx =3D (vq->shadow_avail_idx !=3D idx) ? vq->shadow_avail_idx + : vring_avail_idx(vq); + num_heads =3D avail_idx - idx; =20 /* Check it isn't doing very strange things with descriptor numbers. */ if (num_heads > vq->vring.num) { @@ -1005,8 +1010,15 @@ static int virtqueue_num_heads(VirtQueue *vq, unsign= ed int idx) idx, vq->shadow_avail_idx); return -EINVAL; } - /* On success, callers read a descriptor at vq->last_avail_idx. - * Make sure descriptor read does not bypass avail index read. */ + /* + * On success, callers read a descriptor at vq->last_avail_idx. + * Make sure descriptor read does not bypass avail index read. + * + * This is necessary even if we are using a shadow index, since + * the shadow index could have been initialized by calling + * vring_avail_idx() outside of this function, i.e., by a guest + * memory read not accompanied by a barrier. + */ if (num_heads) { smp_rmb(); } --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477718; cv=none; d=zohomail.com; s=zohoarc; b=VNA//6kSUBJ1YTWEdpAIhqN+CQRmMTeSnkcp3gAfU+oDBl7frMj30Z8O/3Oj07iDcU4gaxrQDCuSGZTdsS4QGns7Z++uMy0+nHXd1PY7EZQKnWWJ3oIgUwcWy6GOaw1j+fQlGyomwgmXn0fa9/+63QK15YU/TewMUjtlEPsjous= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477718; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FYiqXRxzTWfTn4i/+SBced8bQTg6zrqu/s2l3fD1Gks=; b=D+hzMKWRBsa4UMzjE5UBuSAzGaqpfthzDqr+mQctrmcQBXPm2lWxhh8f5GXs0+Gp5/8DtPeq395D+r7HxVGEqVEdQVEx6KSKzoufqvlBMwO9RLGkcXLLSLoKeFMwqWWRb7wQrm7akB9or6wLBC5Jsnj82sHnisIw/9jodZlz7qs= 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 1696477718093797.2566904107834; Wed, 4 Oct 2023 20:48:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJP-0000fT-GE; Wed, 04 Oct 2023 23:46:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJL-0000Xo-JG for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:46:03 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJG-0000pS-2q for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:46: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_256_GCM_SHA384) id us-mta-664-ZLW1vzwmOhGlw1RK5w49Dw-1; Wed, 04 Oct 2023 23:45:45 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-40647c6f71dso4316005e9.2 for ; Wed, 04 Oct 2023 20:45:45 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id bd5-20020a05600c1f0500b004030e8ff964sm2815082wmb.34.2023.10.04.20.45.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477556; 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=FYiqXRxzTWfTn4i/+SBced8bQTg6zrqu/s2l3fD1Gks=; b=U807K68wy35vvmChWOFaV85rxASauTY/WwOQMKEv3oSN2NGEfyHLVMcXsy3RRI5H49WcIM tSHGpjPbPzizAvcbAxKm/Fqm3peGD6zqRN7/UPSmkvFM+RtfoXAfJcr80eezVCpF/BYfer z2+3+yii3/bwdy27Ong/7EcmEbxcX4o= X-MC-Unique: ZLW1vzwmOhGlw1RK5w49Dw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477543; x=1697082343; 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=FYiqXRxzTWfTn4i/+SBced8bQTg6zrqu/s2l3fD1Gks=; b=PQn5jMtA6rkis1x058qQf1U/BCqTiR32VFg6B1LXhI9uVYKukm14B5SUOnHlI5hUWs ers+/qFMRdGNK6Vu8pg5SclwTbopYtm/WOZDIi6pEMwPterPe+UQTffGcUOG7TnqmASx JYaLAuGh3U5W7shfOImp6EAPqy+t6MeFeZ0GsyKH1WIIezi20tyJym2yWYP/13tYv8sX Y3WVtDZ7t+r+pmcm8lWSm8mK2W++rbM4u2bthBuhwj31N1e0+N4hpyE5L2z/Um/GkTae LUwgT93m4nW57EuhvbZEt36NUdZnQQYSWcCS/dU5E+7KOXpk9xS/CmE9qPuNA+BTaiGn 86fw== X-Gm-Message-State: AOJu0YxxYpwbe5AgEbFe0JJ0mgrLf5kIzzvWhtZmb120anBcJJAbySYn M1Pb4dxr2i0w5tdP5Zhmv7MTAKfNKPULEHzI8efdNIgoeR4TUIxMfMYGsE8tRm1rHQAQCioqs3i +w8TsIP64rGeouA6KL9O4k/CfYPiZWiof4pscQezde42XwSV55medUU4PtEOBtOrpvvlG X-Received: by 2002:a05:600c:ac4:b0:406:599f:f934 with SMTP id c4-20020a05600c0ac400b00406599ff934mr3961237wmr.12.1696477543557; Wed, 04 Oct 2023 20:45:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFftP7lgNUwMrf0xOVBmqnG01o6rUvgWM+GONrO1aNv77SqA2JyXQeq+uAOpGopYCk6m+9g0A== X-Received: by 2002:a05:600c:ac4:b0:406:599f:f934 with SMTP id c4-20020a05600c0ac400b00406599ff934mr3961222wmr.12.1696477543254; Wed, 04 Oct 2023 20:45:43 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:39 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ilya Maximets , Stefan Hajnoczi Subject: [PULL v2 48/53] virtio: remove unnecessary thread fence while reading next descriptor Message-ID: References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477718377100011 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ilya Maximets It was supposed to be a compiler barrier and it was a compiler barrier initially called 'wmb' when virtio core support was introduced. Later all the instances of 'wmb' were switched to smp_wmb to fix memory ordering issues on non-x86 platforms. However, this one doesn't need to be an actual barrier, as its only purpose was to ensure that the value is not read twice. And since commit aa570d6fb6bd ("virtio: combine the read of a descriptor") there is no need for a barrier at all, since we're no longer reading guest memory here, but accessing a local structure. Signed-off-by: Ilya Maximets Message-Id: <20230927140016.2317404-2-i.maximets@ovn.org> Reviewed-by: Stefan Hajnoczi Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/virtio.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 2058b838e9..87e8f990c5 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1060,8 +1060,6 @@ static int virtqueue_split_read_next_desc(VirtIODevic= e *vdev, VRingDesc *desc, =20 /* Check they're not leading us off end of descriptors. */ *next =3D desc->next; - /* Make sure compiler knows to grab that: we don't want it changing! */ - smp_wmb(); =20 if (*next >=3D max) { virtio_error(vdev, "Desc next is %u", *next); --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477794; cv=none; d=zohomail.com; s=zohoarc; b=HMfcb9/Xuaddo6qGAkTd6nKGN/BAH2SoZc/JhWQUGC16SId8n5/49UubcgzSUshaejtokf05tCpapycjGDEygbWvJBjU29U9rhCgK1D1HbINkQWmyjlhcSz04mxeINVPzdpaRr5Br8A+NZB2g2gu3xYgq9xVpItbWuEVDipSYew= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477794; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hmbr6Yy0aSGhAeUFXnJnhooAueC1pSdc2KnGldQB5w4=; b=GsYuW0jbVjSz0ecV9EjVlPlV7DlCoNmLHCgGy8JD9y2uFkTOeLn51wvxJcr5uFWsWoHy5O+E8yY3Qtx3FYJUAchpfOLLsXJDvOiafTu+kubzfkg5ylJaHA1KYbIKmfAJQnu80lrhPkYCalO7r8Y872drHKdI9EkjBzhL8ElUW0A= 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 1696477794884574.7190232166845; Wed, 4 Oct 2023 20:49:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFMP-0008LT-PB; Wed, 04 Oct 2023 23:49:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFMJ-0007MC-Rx for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:49:08 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFMH-0001Pp-MD for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:49:07 -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_256_GCM_SHA384) id us-mta-191-1NM9B4DOO9-TGfKwglP-WQ-1; Wed, 04 Oct 2023 23:45:48 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-32172e3679bso464260f8f.2 for ; Wed, 04 Oct 2023 20:45:48 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id s10-20020a05600c044a00b004063c9f68f2sm538641wmb.26.2023.10.04.20.45.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477744; 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=hmbr6Yy0aSGhAeUFXnJnhooAueC1pSdc2KnGldQB5w4=; b=eO9d6D1RWSyolLo+qLeZRQEODlplkxCmiz546vgDrUuHzFe/8tLpNfMBFd+49sQlrar+aA 15XfFlFY1spHrnT3SVJuvefc7JFwczj4xpmTACGQDumpSmiJI+WgyjgvAJSCew/ud/LrRa vmb2Azbb0QQRquQ1RCNnIdHn48i57sE= X-MC-Unique: 1NM9B4DOO9-TGfKwglP-WQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477547; x=1697082347; 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=hmbr6Yy0aSGhAeUFXnJnhooAueC1pSdc2KnGldQB5w4=; b=dfh7eiRcOc8FyTfx7fT0iFhYLcNOdCVs7xgmUWajKpXMDoGRaaYrKDAW7nwqsiUsP/ 0fTsBrT9d0dsroCkMR8FKV6oqChTOdq+h+QwZkvXIjjVe4MewMP+wQeuLnbUie3Cymmi QMbcc+8SyeCCzT13jGiJBywekc/x7R0fp83jVJ+lVXGF8RZvalMWi2UGEUL4t8k4EWuS XLkoMNm8f3AHtfoezwiFnMcVpUUtIBRyIIE4t2qnc47q+w8vg9rJQbqmxk7oHLn5pwsG vqbuPJ/CipoG0amnr8sZGLD+HMVmz+89r8j9hvH5DKHX4T9PfVi+Sc2WCz5RjrxF3Va9 S5IA== X-Gm-Message-State: AOJu0Yw9n6sJRRhg5q6bKCyY20/fGq5KXvFPHkHz+CnbqE16yjut9P4t PFq2W5dU7iJ47Zu6YVMjOA2nLu9qutMzgaRcW8bcrAJzq99Z5PrwfpnHvAw5ly2Oe+KzYicg4IK jtup3ah5ypzFgihLJ6SOEDu/2E7oMmyUAmIZCls5H24BE9kpoPdfwU4SB8nUTiM0CE8kV X-Received: by 2002:a5d:664a:0:b0:31f:f91c:d872 with SMTP id f10-20020a5d664a000000b0031ff91cd872mr4366733wrw.19.1696477547032; Wed, 04 Oct 2023 20:45:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFKR4+rGqD99tX0YIdLp8cA1/oUBQ/oFy50etu9i43M+/QwMCPL1uK4dAlBF26WaofK/Vn7ew== X-Received: by 2002:a5d:664a:0:b0:31f:f91c:d872 with SMTP id f10-20020a5d664a000000b0031ff91cd872mr4366724wrw.19.1696477546814; Wed, 04 Oct 2023 20:45:46 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:43 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ilya Maximets , Stefan Hajnoczi Subject: [PULL v2 49/53] virtio: remove unused next argument from virtqueue_split_read_next_desc() Message-ID: <70f88436aa5a8aeddd33e4d06270146af5d5bb52.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477795368100005 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ilya Maximets The 'next' was converted from a local variable to an output parameter in commit: 412e0e81b174 ("virtio: handle virtqueue_read_next_desc() errors") But all the actual uses of the 'i/next' as an output were removed a few months prior in commit: aa570d6fb6bd ("virtio: combine the read of a descriptor") Remove the unused argument to simplify the code. Also, adding a comment to the function to describe what it is actually doing, as it is not obvious that the 'desc' is both an input and an output argument. Signed-off-by: Ilya Maximets Message-Id: <20230927140016.2317404-3-i.maximets@ovn.org> Reviewed-by: Stefan Hajnoczi Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/virtio.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 87e8f990c5..6facd64fbc 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1049,9 +1049,10 @@ enum { VIRTQUEUE_READ_DESC_MORE =3D 1, /* more buffers in chain */ }; =20 +/* Reads the 'desc->next' descriptor into '*desc'. */ static int virtqueue_split_read_next_desc(VirtIODevice *vdev, VRingDesc *d= esc, MemoryRegionCache *desc_cache, - unsigned int max, unsigned int *= next) + unsigned int max) { /* If this descriptor says it doesn't chain, we're done. */ if (!(desc->flags & VRING_DESC_F_NEXT)) { @@ -1059,14 +1060,12 @@ static int virtqueue_split_read_next_desc(VirtIODev= ice *vdev, VRingDesc *desc, } =20 /* Check they're not leading us off end of descriptors. */ - *next =3D desc->next; - - if (*next >=3D max) { - virtio_error(vdev, "Desc next is %u", *next); + if (desc->next >=3D max) { + virtio_error(vdev, "Desc next is %u", desc->next); return VIRTQUEUE_READ_DESC_ERROR; } =20 - vring_split_desc_read(vdev, desc, desc_cache, *next); + vring_split_desc_read(vdev, desc, desc_cache, desc->next); return VIRTQUEUE_READ_DESC_MORE; } =20 @@ -1146,7 +1145,7 @@ static void virtqueue_split_get_avail_bytes(VirtQueue= *vq, goto done; } =20 - rc =3D virtqueue_split_read_next_desc(vdev, &desc, desc_cache,= max, &i); + rc =3D virtqueue_split_read_next_desc(vdev, &desc, desc_cache,= max); } while (rc =3D=3D VIRTQUEUE_READ_DESC_MORE); =20 if (rc =3D=3D VIRTQUEUE_READ_DESC_ERROR) { @@ -1601,7 +1600,7 @@ static void *virtqueue_split_pop(VirtQueue *vq, size_= t sz) goto err_undo_map; } =20 - rc =3D virtqueue_split_read_next_desc(vdev, &desc, desc_cache, max= , &i); + rc =3D virtqueue_split_read_next_desc(vdev, &desc, desc_cache, max= ); } while (rc =3D=3D VIRTQUEUE_READ_DESC_MORE); =20 if (rc =3D=3D VIRTQUEUE_READ_DESC_ERROR) { @@ -4055,8 +4054,7 @@ VirtioQueueElement *qmp_x_query_virtio_queue_element(= const char *path, list =3D node; =20 ndescs++; - rc =3D virtqueue_split_read_next_desc(vdev, &desc, desc_cache, - max, &i); + rc =3D virtqueue_split_read_next_desc(vdev, &desc, desc_cache,= max); } while (rc =3D=3D VIRTQUEUE_READ_DESC_MORE); element->descs =3D list; done: --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477735; cv=none; d=zohomail.com; s=zohoarc; b=Tn3wvw3b/PHoq+1l+0b7P7f8g8O2h6gqX9a+IIOYOPAk/Kzs1eowhlJoBLfUOrKLx8HaQZJZYK6CQWZvGk6RVNm8BVBhuTPUK6AbCh4vbC6S4xlvk6dItAuC8vHPt/jAF/fFHm2aEqz5PYOuaKuWdzXv/PUw4zmy9e/aumIXtMA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477735; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=tctm3+uo+cxVRzR1eAsWLGEe5b6Azf26SVqS4Nhd8Io=; b=MWnv+t21/emRaXO/cRaKEW4r5kIQIrvgqUQLIS0P64cniDSwp5AByJiPcNrDmeYBxonIlNgQkRlhfzZHYcG9sfulJbuBG2te+2p3aY+vNp8tN6vssnjlIGPbe+8+gFURZQXc/p7WOAlhgS+oC/BVp0V5/QkijH+Nn0HlYGjghk8= 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 1696477735290946.2673147923964; Wed, 4 Oct 2023 20:48:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJP-0000fV-FR; Wed, 04 Oct 2023 23:46:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJH-0000HC-AT for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:59 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJC-0000or-I7 for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:45:56 -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_256_GCM_SHA384) id us-mta-399-zqNP7IyiP-m9xH60L4u8NA-1; Wed, 04 Oct 2023 23:45:52 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-405535740d2so3377745e9.3 for ; Wed, 04 Oct 2023 20:45:52 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id o4-20020a05600c378400b003fc0505be19sm526383wmr.37.2023.10.04.20.45.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477553; 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=tctm3+uo+cxVRzR1eAsWLGEe5b6Azf26SVqS4Nhd8Io=; b=eXVih8fhFKFv+6x3fsXbHOGZVWnD9WkPOWruEP8Jk/bOtdXkElVihascwlEv3qAifMEc0a HqqJyCME3ydvhEwvH7/TVG2cbutfVTd5L3t65umCA/rf4dcRJNHTSYZlIJS1NSX14QBT5G x4eUjfJTVhRlIH5uRqeyGjO8AXlughI= X-MC-Unique: zqNP7IyiP-m9xH60L4u8NA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477551; x=1697082351; 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=tctm3+uo+cxVRzR1eAsWLGEe5b6Azf26SVqS4Nhd8Io=; b=JaUx4hq1fgm2WGZCdKx9PVELENAs+1MPICJ7pKsTXbldR3ai/9HjpLJ9XJpLjCMUyf MFjcamTjMQ8NqVesmzUiD3vvYXTDdouZQXqQ9ljZOWQCHV4MhB+ubF0pNDFn7fyTFkL3 NqTMWfN+iDYRoUjaYgset0dOqo9QrbXThEM1V4DIMu/NWf+GJdOYig317bGAAC6x9fOU Mtgv2J9ogrBgr5EeJcEBpJzXXzeYWsvw7+SGnSSaM6Nvs+9KjBwgzVQNcsF2upSYCeTA MEtZiY8+Jyq6FflpWeF2PR8BZtdy9+1NTlj2sn5sGm3ordAAbrByjH1RM72cGWUkRfkd MheA== X-Gm-Message-State: AOJu0Yzar0VJbwXoaIPL2n6RrIXPHGuDqJvhXZrJylMnr7dpbYlhVCEJ rIA/ngKklqXv5CVjVxJCIMdWtBRUKcusqVdExIbSlDwXsClDuykEDBBOPZrXCs0zpRHkdaLo90t AsC5dTiR2q9KYYopwhNtE+4AxxNVhOCq/kMYKp8jdomIgwUN2D2GQty/OZQCQO0w9TOZr X-Received: by 2002:a1c:4c10:0:b0:402:f8eb:28d8 with SMTP id z16-20020a1c4c10000000b00402f8eb28d8mr3834728wmf.6.1696477550944; Wed, 04 Oct 2023 20:45:50 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHCiT7PtRntGlHemVVDYg9MPUiIu4p7LcVIDr9vdB/qWNLG2gAWobKBYKzCwcSf9Ma3TGIYdA== X-Received: by 2002:a1c:4c10:0:b0:402:f8eb:28d8 with SMTP id z16-20020a1c4c10000000b00402f8eb28d8mr3834714wmf.6.1696477550500; Wed, 04 Oct 2023 20:45:50 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:46 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Albert Esteve , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Fam Zheng Subject: [PULL v2 50/53] util/uuid: add a hash function Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477736750100003 From: Albert Esteve Add hash function to uuid module using the djb2 hash algorithm. Add a couple simple unit tests for the hash function, checking collisions for similar UUIDs. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Albert Esteve Message-Id: <20231002065706.94707-2-aesteve@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/qemu/uuid.h | 2 ++ tests/unit/test-uuid.c | 27 +++++++++++++++++++++++++++ util/uuid.c | 14 ++++++++++++++ 3 files changed, 43 insertions(+) diff --git a/include/qemu/uuid.h b/include/qemu/uuid.h index dc40ee1fc9..e24a1099e4 100644 --- a/include/qemu/uuid.h +++ b/include/qemu/uuid.h @@ -96,4 +96,6 @@ int qemu_uuid_parse(const char *str, QemuUUID *uuid); =20 QemuUUID qemu_uuid_bswap(QemuUUID uuid); =20 +uint32_t qemu_uuid_hash(const void *uuid); + #endif diff --git a/tests/unit/test-uuid.c b/tests/unit/test-uuid.c index c111de5fc1..aedc125ae9 100644 --- a/tests/unit/test-uuid.c +++ b/tests/unit/test-uuid.c @@ -171,6 +171,32 @@ static void test_uuid_unparse_strdup(void) } } =20 +static void test_uuid_hash(void) +{ + QemuUUID uuid; + int i; + + for (i =3D 0; i < 100; i++) { + qemu_uuid_generate(&uuid); + /* Obtain the UUID hash */ + uint32_t hash_a =3D qemu_uuid_hash(&uuid); + int data_idx =3D g_random_int_range(0, 15); + /* Change a single random byte of the UUID */ + if (uuid.data[data_idx] < 0xFF) { + uuid.data[data_idx]++; + } else { + uuid.data[data_idx]--; + } + /* Obtain the UUID hash again */ + uint32_t hash_b =3D qemu_uuid_hash(&uuid); + /* + * Both hashes shall be different (avoid collision) + * for any change in the UUID fields + */ + g_assert_cmpint(hash_a, !=3D, hash_b); + } +} + int main(int argc, char **argv) { g_test_init(&argc, &argv, NULL); @@ -179,6 +205,7 @@ int main(int argc, char **argv) g_test_add_func("/uuid/parse", test_uuid_parse); g_test_add_func("/uuid/unparse", test_uuid_unparse); g_test_add_func("/uuid/unparse_strdup", test_uuid_unparse_strdup); + g_test_add_func("/uuid/hash", test_uuid_hash); =20 return g_test_run(); } diff --git a/util/uuid.c b/util/uuid.c index b1108dde78..d71aa79e5e 100644 --- a/util/uuid.c +++ b/util/uuid.c @@ -116,3 +116,17 @@ QemuUUID qemu_uuid_bswap(QemuUUID uuid) bswap16s(&uuid.fields.time_high_and_version); return uuid; } + +/* djb2 hash algorithm */ +uint32_t qemu_uuid_hash(const void *uuid) +{ + QemuUUID *qid =3D (QemuUUID *) uuid; + uint32_t h =3D 5381; + int i; + + for (i =3D 0; i < ARRAY_SIZE(qid->data); i++) { + h =3D (h << 5) + h + qid->data[i]; + } + + return h; +} --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477767; cv=none; d=zohomail.com; s=zohoarc; b=UzccBTyp+Luh7zx5hSdrC+t71PGabZgrZ4JN6f2AsM6Lwt1U6Y3CgBm5Pvutg0DbyNSuZY7RsiaN0i6dJ4N6YsaEwWU2G7nrnh/6tP36aFso9mEz9TFEG/L8IRMZxaMfbQ6TARfpdNAKbJFy79991mACg3fWGIvQ/PkUodGMhMw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477767; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QIZFTDtcHLZEWOs9w2yLpIydiDk9DmmNiU1rmzLhTo8=; b=LgxBN30K+PbxowocnaX48Lq/IyxviGKgIeoVTvNs87mU3UOQdlLuqMpyvWRJtUXc6Ah2m6Jfh1BbpCi3m6rGn2u8EqxxS5ExVkDFfS9rQG6mcwyMMJBnTSpa3AafGvH63kasbffCt9dbRqUH6Z5kMsrUmUfv0w/dxxCJdKuiWjY= 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 1696477767753138.34506547174362; Wed, 4 Oct 2023 20:49:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFMN-0007g7-0l; Wed, 04 Oct 2023 23:49:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFMJ-0007Ek-9X for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:49:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFMF-0001PB-1h for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:49: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_256_GCM_SHA384) id us-mta-393-iSh7y2K6PdCLRuYfDPTV_g-1; Wed, 04 Oct 2023 23:45:56 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4065d52a83aso4031625e9.1 for ; Wed, 04 Oct 2023 20:45:56 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id 6-20020a05600c22c600b0040303a9965asm2793292wmg.40.2023.10.04.20.45.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477742; 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=QIZFTDtcHLZEWOs9w2yLpIydiDk9DmmNiU1rmzLhTo8=; b=Ae2JRwwZ0Sfkw/LIoZh5Ep23UKHlE/Vjp4C/CXW7Ic6HIdQnXIgCVWrCu6+/2JMuMY6flV EdnTYoe8TqZVKGEY4TCz/YDAxbUHU0fI4EFEro4RdA+3JL9jYVa7X7OcZb9PZNk4MA8pJU VKc8cG6J1fIZnFwccgUtKU/GR3JoKHQ= X-MC-Unique: iSh7y2K6PdCLRuYfDPTV_g-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477555; x=1697082355; 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=QIZFTDtcHLZEWOs9w2yLpIydiDk9DmmNiU1rmzLhTo8=; b=E15LyR7s23pyrbLCrn8PojuBNMukka1m7v+xwD4ZETI0CJs9WG5m3TSsYdLoHaEUR4 Jj+V5B97NE60gO9KVLjlMoUreBgUBFoIHC0CejI4rZiREraqebFHwtAqgcsld+o9CMbT Q3EKlgPbewfU6krDMsc1G2Q5fhlrwmRbHKgPRC/iCQDpF57jH/K9M/wfVObwAlUQDq30 Ql+hSuYjiv9kt51m73WaMur1kh1avtB296YLhNSSvq609D9FbZx+b/k5/j5TBAgVH4Gn 8JA5drMgNZ6hm3TxrQXIljYsC0de/yBoHLZTF3ctr/vVktClhMWMdukMMkNkMVpCnnJh caBw== X-Gm-Message-State: AOJu0Yy94Lc+QRzCF0efsJ6SVnr5VJY+ITVKKMqJj0ogiXZzNTVredmm osHsA/Q1S0iVvOdB4XMKSKAJVVF1khyPE6LlE1o/kl2aZxpwDooOH7316Au0U5Pe7dKuYXWf3Qn /HXIaisJ49uGtCZi75dQr0mCYVGz2DAYGn60Iih3uaa9glcHjTAWDUpdV+klTZs0B/hEI X-Received: by 2002:a7b:c8c8:0:b0:402:cf9f:c02d with SMTP id f8-20020a7bc8c8000000b00402cf9fc02dmr3860005wml.8.1696477554880; Wed, 04 Oct 2023 20:45:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFkE9UzdcsJeAuTLdGsomCvCfC4MhQv5x1P1+Spytkkwujow3kRdtmHB7xqCg3NglTvGmXbDw== X-Received: by 2002:a7b:c8c8:0:b0:402:cf9f:c02d with SMTP id f8-20020a7bc8c8000000b00402cf9fc02dmr3859993wml.8.1696477554504; Wed, 04 Oct 2023 20:45:54 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:50 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Albert Esteve , Gerd Hoffmann , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: [PULL v2 51/53] hw/display: introduce virtio-dmabuf Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477769189100003 From: Albert Esteve This API manages objects (in this iteration, dmabuf fds) that can be shared along different virtio devices, associated to a UUID. The API allows the different devices to add, remove and/or retrieve the objects by simply invoking the public functions that reside in the virtio-dmabuf file. For vhost backends, the API stores the pointer to the backend holding the object. Suggested-by: Gerd Hoffmann Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Albert Esteve Message-Id: <20231002065706.94707-3-aesteve@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/virtio-dmabuf.h | 100 ++++++++++++++++++++++ hw/display/virtio-dmabuf.c | 138 ++++++++++++++++++++++++++++++ tests/unit/test-virtio-dmabuf.c | 137 +++++++++++++++++++++++++++++ MAINTAINERS | 7 ++ hw/display/meson.build | 1 + tests/unit/meson.build | 1 + 6 files changed, 384 insertions(+) create mode 100644 include/hw/virtio/virtio-dmabuf.h create mode 100644 hw/display/virtio-dmabuf.c create mode 100644 tests/unit/test-virtio-dmabuf.c diff --git a/include/hw/virtio/virtio-dmabuf.h b/include/hw/virtio/virtio-d= mabuf.h new file mode 100644 index 0000000000..627c3b6db7 --- /dev/null +++ b/include/hw/virtio/virtio-dmabuf.h @@ -0,0 +1,100 @@ +/* + * Virtio Shared dma-buf + * + * Copyright Red Hat, Inc. 2023 + * + * Authors: + * Albert Esteve + * + * This work is licensed under the terms of the GNU GPL, version 2. + * See the COPYING file in the top-level directory. + */ + +#ifndef VIRTIO_DMABUF_H +#define VIRTIO_DMABUF_H + +#include "qemu/uuid.h" +#include "vhost.h" + +typedef enum SharedObjectType { + TYPE_INVALID =3D 0, + TYPE_DMABUF, + TYPE_VHOST_DEV, +} SharedObjectType; + +typedef struct VirtioSharedObject { + SharedObjectType type; + gpointer value; +} VirtioSharedObject; + +/** + * virtio_add_dmabuf() - Add a new dma-buf resource to the lookup table + * @uuid: new resource's UUID + * @dmabuf_fd: the dma-buf descriptor that will be stored and shared with + * other virtio devices. The caller retains ownership over the + * descriptor and its lifecycle. + * + * Note: @dmabuf_fd must be a valid (non-negative) file descriptor. + * + * Return: true if the UUID did not exist and the resource has been added, + * false if another resource with the same UUID already existed. + * Note that if it finds a repeated UUID, the resource is not inserted in + * the lookup table. + */ +bool virtio_add_dmabuf(QemuUUID *uuid, int dmabuf_fd); + +/** + * virtio_add_vhost_device() - Add a new exporter vhost device that holds = the + * resource with the associated UUID + * @uuid: new resource's UUID + * @dev: the pointer to the vhost device that holds the resource. The call= er + * retains ownership over the device struct and its lifecycle. + * + * Return: true if the UUID did not exist and the device has been tracked, + * false if another resource with the same UUID already existed. + * Note that if it finds a repeated UUID, the resource is not inserted in + * the lookup table. + */ +bool virtio_add_vhost_device(QemuUUID *uuid, struct vhost_dev *dev); + +/** + * virtio_remove_resource() - Removes a resource from the lookup table + * @uuid: resource's UUID + * + * Return: true if the UUID has been found and removed from the lookup tab= le. + */ +bool virtio_remove_resource(const QemuUUID *uuid); + +/** + * virtio_lookup_dmabuf() - Looks for a dma-buf resource in the lookup tab= le + * @uuid: resource's UUID + * + * Return: the dma-buf file descriptor integer, or -1 if the key is not fo= und. + */ +int virtio_lookup_dmabuf(const QemuUUID *uuid); + +/** + * virtio_lookup_vhost_device() - Looks for an exporter vhost device in the + * lookup table + * @uuid: resource's UUID + * + * Return: pointer to the vhost_dev struct, or NULL if the key is not foun= d. + */ +struct vhost_dev *virtio_lookup_vhost_device(const QemuUUID *uuid); + +/** + * virtio_object_type() - Looks for the type of resource in the lookup tab= le + * @uuid: resource's UUID + * + * Return: the type of resource associated with the UUID, or TYPE_INVALID = if + * the key is not found. + */ +SharedObjectType virtio_object_type(const QemuUUID *uuid); + +/** + * virtio_free_resources() - Destroys all keys and values of the shared + * resources lookup table, and frees them + */ +void virtio_free_resources(void); + +#endif /* VIRTIO_DMABUF_H */ diff --git a/hw/display/virtio-dmabuf.c b/hw/display/virtio-dmabuf.c new file mode 100644 index 0000000000..4a8e430f3d --- /dev/null +++ b/hw/display/virtio-dmabuf.c @@ -0,0 +1,138 @@ +/* + * Virtio Shared dma-buf + * + * Copyright Red Hat, Inc. 2023 + * + * Authors: + * Albert Esteve + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" + +#include "hw/virtio/virtio-dmabuf.h" + + +static GMutex lock; +static GHashTable *resource_uuids; + +/* + * uuid_equal_func: wrapper for UUID is_equal function to + * satisfy g_hash_table_new expected parameters signatures. + */ +static int uuid_equal_func(const void *lhv, const void *rhv) +{ + return qemu_uuid_is_equal(lhv, rhv); +} + +static bool virtio_add_resource(QemuUUID *uuid, VirtioSharedObject *value) +{ + bool result =3D false; + + g_mutex_lock(&lock); + if (resource_uuids =3D=3D NULL) { + resource_uuids =3D g_hash_table_new_full(qemu_uuid_hash, + uuid_equal_func, + NULL, + g_free); + } + if (g_hash_table_lookup(resource_uuids, uuid) =3D=3D NULL) { + result =3D g_hash_table_insert(resource_uuids, uuid, value); + } + g_mutex_unlock(&lock); + + return result; +} + +bool virtio_add_dmabuf(QemuUUID *uuid, int udmabuf_fd) +{ + bool result; + VirtioSharedObject *vso; + if (udmabuf_fd < 0) { + return false; + } + vso =3D g_new(VirtioSharedObject, 1); + vso->type =3D TYPE_DMABUF; + vso->value =3D GINT_TO_POINTER(udmabuf_fd); + result =3D virtio_add_resource(uuid, vso); + + return result; +} + +bool virtio_add_vhost_device(QemuUUID *uuid, struct vhost_dev *dev) +{ + bool result; + VirtioSharedObject *vso; + if (dev =3D=3D NULL) { + return false; + } + vso =3D g_new(VirtioSharedObject, 1); + vso->type =3D TYPE_VHOST_DEV; + vso->value =3D dev; + result =3D virtio_add_resource(uuid, vso); + + return result; +} + +bool virtio_remove_resource(const QemuUUID *uuid) +{ + bool result; + g_mutex_lock(&lock); + result =3D g_hash_table_remove(resource_uuids, uuid); + g_mutex_unlock(&lock); + + return result; +} + +static VirtioSharedObject *get_shared_object(const QemuUUID *uuid) +{ + gpointer lookup_res =3D NULL; + + g_mutex_lock(&lock); + if (resource_uuids !=3D NULL) { + lookup_res =3D g_hash_table_lookup(resource_uuids, uuid); + } + g_mutex_unlock(&lock); + + return (VirtioSharedObject *) lookup_res; +} + +int virtio_lookup_dmabuf(const QemuUUID *uuid) +{ + VirtioSharedObject *vso =3D get_shared_object(uuid); + if (vso =3D=3D NULL) { + return -1; + } + assert(vso->type =3D=3D TYPE_DMABUF); + return GPOINTER_TO_INT(vso->value); +} + +struct vhost_dev *virtio_lookup_vhost_device(const QemuUUID *uuid) +{ + VirtioSharedObject *vso =3D get_shared_object(uuid); + if (vso =3D=3D NULL) { + return NULL; + } + assert(vso->type =3D=3D TYPE_VHOST_DEV); + return (struct vhost_dev *) vso->value; +} + +SharedObjectType virtio_object_type(const QemuUUID *uuid) +{ + VirtioSharedObject *vso =3D get_shared_object(uuid); + if (vso =3D=3D NULL) { + return TYPE_INVALID; + } + return vso->type; +} + +void virtio_free_resources(void) +{ + g_mutex_lock(&lock); + g_hash_table_destroy(resource_uuids); + /* Reference count shall be 0 after the implicit unref on destroy */ + resource_uuids =3D NULL; + g_mutex_unlock(&lock); +} diff --git a/tests/unit/test-virtio-dmabuf.c b/tests/unit/test-virtio-dmabu= f.c new file mode 100644 index 0000000000..a45ec52f42 --- /dev/null +++ b/tests/unit/test-virtio-dmabuf.c @@ -0,0 +1,137 @@ +/* + * QEMU tests for shared dma-buf API + * + * Copyright (c) 2023 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + */ + +#include "qemu/osdep.h" +#include "hw/virtio/virtio-dmabuf.h" + + +static void test_add_remove_resources(void) +{ + QemuUUID uuid; + int i, dmabuf_fd; + + for (i =3D 0; i < 100; ++i) { + qemu_uuid_generate(&uuid); + dmabuf_fd =3D g_random_int_range(3, 500); + /* Add a new resource */ + g_assert(virtio_add_dmabuf(&uuid, dmabuf_fd)); + g_assert_cmpint(virtio_lookup_dmabuf(&uuid), =3D=3D, dmabuf_fd); + /* Remove the resource */ + g_assert(virtio_remove_resource(&uuid)); + /* Resource is not found anymore */ + g_assert_cmpint(virtio_lookup_dmabuf(&uuid), =3D=3D, -1); + } +} + +static void test_add_remove_dev(void) +{ + QemuUUID uuid; + struct vhost_dev *dev =3D g_new0(struct vhost_dev, 1); + int i; + + for (i =3D 0; i < 100; ++i) { + qemu_uuid_generate(&uuid); + virtio_add_vhost_device(&uuid, dev); + /* vhost device is found */ + g_assert(virtio_lookup_vhost_device(&uuid) !=3D NULL); + /* Remove the vhost device */ + g_assert(virtio_remove_resource(&uuid)); + /* vhost device is not found anymore */ + g_assert(virtio_lookup_vhost_device(&uuid) =3D=3D NULL); + } + g_free(dev); +} + +static void test_remove_invalid_resource(void) +{ + QemuUUID uuid; + int i; + + for (i =3D 0; i < 20; ++i) { + qemu_uuid_generate(&uuid); + g_assert_cmpint(virtio_lookup_dmabuf(&uuid), =3D=3D, -1); + /* Removing a resource that does not exist returns false */ + g_assert_false(virtio_remove_resource(&uuid)); + } +} + +static void test_add_invalid_resource(void) +{ + QemuUUID uuid; + struct vhost_dev *dev =3D NULL; + int i, dmabuf_fd =3D -2, alt_dmabuf =3D 2; + + for (i =3D 0; i < 20; ++i) { + qemu_uuid_generate(&uuid); + /* Add a new resource with invalid (negative) resource fd */ + g_assert_false(virtio_add_dmabuf(&uuid, dmabuf_fd)); + /* Resource is not found */ + g_assert_cmpint(virtio_lookup_dmabuf(&uuid), =3D=3D, -1); + /* Add a new vhost device with invalid (NULL) pointer */ + g_assert_false(virtio_add_vhost_device(&uuid, dev)); + /* vhost device is not found */ + g_assert(virtio_lookup_vhost_device(&uuid) =3D=3D NULL); + } + + for (i =3D 0; i < 20; ++i) { + /* Add a valid resource */ + qemu_uuid_generate(&uuid); + dmabuf_fd =3D g_random_int_range(3, 500); + g_assert(virtio_add_dmabuf(&uuid, dmabuf_fd)); + g_assert_cmpint(virtio_lookup_dmabuf(&uuid), =3D=3D, dmabuf_fd); + /* Add a new resource with repeated uuid returns false */ + g_assert_false(virtio_add_dmabuf(&uuid, alt_dmabuf)); + /* The value for the uuid key is not replaced */ + g_assert_cmpint(virtio_lookup_dmabuf(&uuid), =3D=3D, dmabuf_fd); + } +} + +static void test_free_resources(void) +{ + QemuUUID uuids[20]; + int i, dmabuf_fd; + + for (i =3D 0; i < ARRAY_SIZE(uuids); ++i) { + qemu_uuid_generate(&uuids[i]); + dmabuf_fd =3D g_random_int_range(3, 500); + g_assert(virtio_add_dmabuf(&uuids[i], dmabuf_fd)); + g_assert_cmpint(virtio_lookup_dmabuf(&uuids[i]), =3D=3D, dmabuf_fd= ); + } + virtio_free_resources(); + for (i =3D 0; i < ARRAY_SIZE(uuids); ++i) { + /* None of the resources is found after free'd */ + g_assert_cmpint(virtio_lookup_dmabuf(&uuids[i]), =3D=3D, -1); + } + +} + +int main(int argc, char **argv) +{ + g_test_init(&argc, &argv, NULL); + g_test_add_func("/virtio-dmabuf/add_rm_res", test_add_remove_resources= ); + g_test_add_func("/virtio-dmabuf/add_rm_dev", test_add_remove_dev); + g_test_add_func("/virtio-dmabuf/rm_invalid_res", + test_remove_invalid_resource); + g_test_add_func("/virtio-dmabuf/add_invalid_res", + test_add_invalid_resource); + g_test_add_func("/virtio-dmabuf/free_res", test_free_resources); + + return g_test_run(); +} diff --git a/MAINTAINERS b/MAINTAINERS index 355b1960ce..5e27ce3ceb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2154,6 +2154,13 @@ T: git https://gitlab.com/cohuck/qemu.git s390-next T: git https://github.com/borntraeger/qemu.git s390-next L: qemu-s390x@nongnu.org =20 +virtio-dmabuf +M: Albert Esteve +S: Supported +F: hw/display/virtio-dmabuf.c +F: include/hw/virtio/virtio-dmabuf.h +F: tests/unit/test-virtio-dmabuf.c + virtiofs M: Stefan Hajnoczi S: Supported diff --git a/hw/display/meson.build b/hw/display/meson.build index 413ba4ab24..05619c6968 100644 --- a/hw/display/meson.build +++ b/hw/display/meson.build @@ -37,6 +37,7 @@ system_ss.add(when: 'CONFIG_MACFB', if_true: files('macfb= .c')) system_ss.add(when: 'CONFIG_NEXTCUBE', if_true: files('next-fb.c')) =20 system_ss.add(when: 'CONFIG_VGA', if_true: files('vga.c')) +system_ss.add(when: 'CONFIG_VIRTIO', if_true: files('virtio-dmabuf.c')) =20 if (config_all_devices.has_key('CONFIG_VGA_CIRRUS') or config_all_devices.has_key('CONFIG_VGA_PCI') or diff --git a/tests/unit/meson.build b/tests/unit/meson.build index 0299ef6906..1977b302e2 100644 --- a/tests/unit/meson.build +++ b/tests/unit/meson.build @@ -50,6 +50,7 @@ tests =3D { 'test-qapi-util': [], 'test-interval-tree': [], 'test-xs-node': [qom], + 'test-virtio-dmabuf': [meson.project_source_root() / 'hw/display/virtio-= dmabuf.c'], } =20 if have_system or have_tools --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477749; cv=none; d=zohomail.com; s=zohoarc; b=gmWrnL62Nm5Exn2p7Zia9jX79HuhKVsjfmk2NOr1dLc11v7nKpijDSmB94x16nbA0aY3qLa1buyn0W/QSs+IL5MxR9vZTcDPxuaJYqvqrEoUSq/JxG27nrHyW/SPtdLrNitYC6bjz8zkm5SIZ1GOO8hDm2Fi2gi8dOtLTgCKScI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477749; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=IL+0u6Y9ni2NTr+Pq389CoMdv+eJbHzzSWh12MIlkJ8=; b=gBya44mdY0HVTSsRzJnhUFnX3KXn1tbGSgDEogZ2pcjo++7Ug59P870xluZF8k/pv9y+cDgVXAD8EzvGzidUW6hHDpcQjUHSlwDSCIVnFb53Y/J1zDUc2gotnmEwOBKUznCp4aHsBADFPdeowe3wCQKPRtgJuazAQqbOMMPFjRo= 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 1696477749613447.4978781712332; Wed, 4 Oct 2023 20:49:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJQ-0000ik-S6; Wed, 04 Oct 2023 23:46:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJN-0000ck-Pr for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:46:06 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJL-0000ps-AU for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:46: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_256_GCM_SHA384) id us-mta-467-PEKlC5M-NW-dQeCJ9NRF0g-1; Wed, 04 Oct 2023 23:46:01 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-32006e08483so412431f8f.0 for ; Wed, 04 Oct 2023 20:46:00 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id y3-20020adff143000000b0032327b70ef6sm629501wro.70.2023.10.04.20.45.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:45:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477562; 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=IL+0u6Y9ni2NTr+Pq389CoMdv+eJbHzzSWh12MIlkJ8=; b=G6H8kAyAZZzNAvKE/i2QRlVmCe17kBHyKl0AW3mjp2+XmF4NLz//QwTYH5J+gWqhXmdwhL Y7uIMrz9Rwv014XoCRJ6O3Qdg3vwbpKZtyxloo0TqXh7QC/4BUTP3wpxJlE+txxwXIkz78 3K798h2LsoMCas+GSTwM4oIDb6qUeDU= X-MC-Unique: PEKlC5M-NW-dQeCJ9NRF0g-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477559; x=1697082359; 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=IL+0u6Y9ni2NTr+Pq389CoMdv+eJbHzzSWh12MIlkJ8=; b=su9+bwaiB0Ft1hu0ssNAYNvVTt6H13x6HCara0svM6CbQ1lG7R+JoWPEjY6z9/n7MX wZ9kBzZy63grrSw5uf4cQpMYs4Ki81XKqMthAP67Nvkl1ciERbc1wL72diyblzDl+jck NHW4AfJ0Kkqwfz6FbXqG14HrrQR76cY9xd2hYi58X1mrT/aa9sHHi7bARfbM/9lCTBWM Ebf80vzeJYu3g/E4b2OqNvxE/kMtJbXEz1XJttF1wmgSTZX99vCOJ58IHkYcOn3OAJrS Kg6XdNvqZgMKGfG/y+JApnPXS6Rk12bgDC97KnNOHB0ZRiM+ZxdUgp5mYf5I2RnU59h5 41aw== X-Gm-Message-State: AOJu0YxXZWdXG1/2kIBQD3+5Tan+y3RSy5ZZWD3At6wTohaWjCDBcRvl x5m2FKgORZNSUbKLlAfjcAMUn5FJpxTy4LV3AYgsiCnj2fcb9WUGhhSgYmcbdNl7eWrnHhphDwd PFlU/2JwTCtuO+Z912XHWyA6O4x7nB0w0guqV8YFvWBy1zPtsnMySNlceSUNJzxCtOUre X-Received: by 2002:adf:efd1:0:b0:31f:fc96:9af1 with SMTP id i17-20020adfefd1000000b0031ffc969af1mr3709993wrp.59.1696477559366; Wed, 04 Oct 2023 20:45:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHn9zopj7kAhxEmenZrGnMaQvj5PD9BlG15NheDZc3oPZDYj4FXLQd9+U2MVZz8SYe8V3Ed/A== X-Received: by 2002:adf:efd1:0:b0:31f:fc96:9af1 with SMTP id i17-20020adfefd1000000b0031ffc969af1mr3709984wrp.59.1696477558909; Wed, 04 Oct 2023 20:45:58 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:55 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Albert Esteve Subject: [PULL v2 52/53] vhost-user: add shared_object msg Message-ID: <160947666276c5b7f6bca4d746bcac2966635d79.1696477105.git.mst@redhat.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477750841100017 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Albert Esteve Add three new vhost-user protocol `VHOST_USER_BACKEND_SHARED_OBJECT_* messages`. These new messages are sent from vhost-user back-ends to interact with the virtio-dmabuf table in order to add or remove themselves as virtio exporters, or lookup for virtio dma-buf shared objects. The action taken in the front-end depends on the type stored in the virtio shared object hash table. When the table holds a pointer to a vhost backend for a given UUID, the front-end sends a VHOST_USER_GET_SHARED_OBJECT to the backend holding the shared object. The messages can only be sent after successfully negotiating a new VHOST_USER_PROTOCOL_F_SHARED_OBJECT vhost-user protocol feature bit. Finally, refactor code to send response message so that all common parts both for the common REPLY_ACK case, and other data responses, can call it and avoid code repetition. Signed-off-by: Albert Esteve Message-Id: <20231002065706.94707-4-aesteve@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/vhost-backend.h | 3 + include/hw/virtio/vhost-user.h | 1 + hw/virtio/vhost-user.c | 167 +++++++++++++++++++++++++++--- docs/interop/vhost-user.rst | 57 ++++++++++ 4 files changed, 216 insertions(+), 12 deletions(-) diff --git a/include/hw/virtio/vhost-backend.h b/include/hw/virtio/vhost-ba= ckend.h index 31a251a9f5..1860b541d8 100644 --- a/include/hw/virtio/vhost-backend.h +++ b/include/hw/virtio/vhost-backend.h @@ -196,4 +196,7 @@ int vhost_backend_handle_iotlb_msg(struct vhost_dev *de= v, =20 int vhost_user_gpu_set_socket(struct vhost_dev *dev, int fd); =20 +int vhost_user_get_shared_object(struct vhost_dev *dev, unsigned char *uui= d, + int *dmabuf_fd); + #endif /* VHOST_BACKEND_H */ diff --git a/include/hw/virtio/vhost-user.h b/include/hw/virtio/vhost-user.h index 80e2b4a463..9f9ddf878d 100644 --- a/include/hw/virtio/vhost-user.h +++ b/include/hw/virtio/vhost-user.h @@ -29,6 +29,7 @@ enum VhostUserProtocolFeature { VHOST_USER_PROTOCOL_F_INBAND_NOTIFICATIONS =3D 14, VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS =3D 15, VHOST_USER_PROTOCOL_F_STATUS =3D 16, + VHOST_USER_PROTOCOL_F_SHARED_OBJECT =3D 17, VHOST_USER_PROTOCOL_F_MAX }; =20 diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index a096335921..3766b415f8 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -10,6 +10,7 @@ =20 #include "qemu/osdep.h" #include "qapi/error.h" +#include "hw/virtio/virtio-dmabuf.h" #include "hw/virtio/vhost.h" #include "hw/virtio/virtio-crypto.h" #include "hw/virtio/vhost-user.h" @@ -21,6 +22,7 @@ #include "sysemu/kvm.h" #include "qemu/error-report.h" #include "qemu/main-loop.h" +#include "qemu/uuid.h" #include "qemu/sockets.h" #include "sysemu/runstate.h" #include "sysemu/cryptodev.h" @@ -100,6 +102,7 @@ typedef enum VhostUserRequest { VHOST_USER_REM_MEM_REG =3D 38, VHOST_USER_SET_STATUS =3D 39, VHOST_USER_GET_STATUS =3D 40, + VHOST_USER_GET_SHARED_OBJECT =3D 41, VHOST_USER_MAX } VhostUserRequest; =20 @@ -108,6 +111,9 @@ typedef enum VhostUserBackendRequest { VHOST_USER_BACKEND_IOTLB_MSG =3D 1, VHOST_USER_BACKEND_CONFIG_CHANGE_MSG =3D 2, VHOST_USER_BACKEND_VRING_HOST_NOTIFIER_MSG =3D 3, + VHOST_USER_BACKEND_SHARED_OBJECT_ADD =3D 6, + VHOST_USER_BACKEND_SHARED_OBJECT_REMOVE =3D 7, + VHOST_USER_BACKEND_SHARED_OBJECT_LOOKUP =3D 8, VHOST_USER_BACKEND_MAX } VhostUserBackendRequest; =20 @@ -181,6 +187,10 @@ typedef struct VhostUserInflight { uint16_t queue_size; } VhostUserInflight; =20 +typedef struct VhostUserShared { + unsigned char uuid[16]; +} VhostUserShared; + typedef struct { VhostUserRequest request; =20 @@ -205,6 +215,7 @@ typedef union { VhostUserCryptoSession session; VhostUserVringArea area; VhostUserInflight inflight; + VhostUserShared object; } VhostUserPayload; =20 typedef struct VhostUserMsg { @@ -1580,6 +1591,139 @@ static int vhost_user_backend_handle_vring_host_not= ifier(struct vhost_dev *dev, return 0; } =20 +static int +vhost_user_backend_handle_shared_object_add(struct vhost_dev *dev, + VhostUserShared *object) +{ + QemuUUID uuid; + + memcpy(uuid.data, object->uuid, sizeof(object->uuid)); + return virtio_add_vhost_device(&uuid, dev); +} + +static int +vhost_user_backend_handle_shared_object_remove(VhostUserShared *object) +{ + QemuUUID uuid; + + memcpy(uuid.data, object->uuid, sizeof(object->uuid)); + return virtio_remove_resource(&uuid); +} + +static bool vhost_user_send_resp(QIOChannel *ioc, VhostUserHeader *hdr, + VhostUserPayload *payload, Error **errp) +{ + struct iovec iov[] =3D { + { .iov_base =3D hdr, .iov_len =3D VHOST_USER_HDR_SIZE }, + { .iov_base =3D payload, .iov_len =3D hdr->size }, + }; + + hdr->flags &=3D ~VHOST_USER_NEED_REPLY_MASK; + hdr->flags |=3D VHOST_USER_REPLY_MASK; + + return !qio_channel_writev_all(ioc, iov, ARRAY_SIZE(iov), errp); +} + +static bool +vhost_user_backend_send_dmabuf_fd(QIOChannel *ioc, VhostUserHeader *hdr, + VhostUserPayload *payload, Error **errp) +{ + hdr->size =3D sizeof(payload->u64); + return vhost_user_send_resp(ioc, hdr, payload, errp); +} + +int vhost_user_get_shared_object(struct vhost_dev *dev, unsigned char *uui= d, + int *dmabuf_fd) +{ + struct vhost_user *u =3D dev->opaque; + CharBackend *chr =3D u->user->chr; + int ret; + VhostUserMsg msg =3D { + .hdr.request =3D VHOST_USER_GET_SHARED_OBJECT, + .hdr.flags =3D VHOST_USER_VERSION, + }; + memcpy(msg.payload.object.uuid, uuid, sizeof(msg.payload.object.uuid)); + + ret =3D vhost_user_write(dev, &msg, NULL, 0); + if (ret < 0) { + return ret; + } + + ret =3D vhost_user_read(dev, &msg); + if (ret < 0) { + return ret; + } + + if (msg.hdr.request !=3D VHOST_USER_GET_SHARED_OBJECT) { + error_report("Received unexpected msg type. " + "Expected %d received %d", + VHOST_USER_GET_SHARED_OBJECT, msg.hdr.request); + return -EPROTO; + } + + *dmabuf_fd =3D qemu_chr_fe_get_msgfd(chr); + if (*dmabuf_fd < 0) { + error_report("Failed to get dmabuf fd"); + return -EIO; + } + + return 0; +} + +static int +vhost_user_backend_handle_shared_object_lookup(struct vhost_user *u, + QIOChannel *ioc, + VhostUserHeader *hdr, + VhostUserPayload *payload) +{ + QemuUUID uuid; + CharBackend *chr =3D u->user->chr; + Error *local_err =3D NULL; + int dmabuf_fd =3D -1; + int fd_num =3D 0; + + memcpy(uuid.data, payload->object.uuid, sizeof(payload->object.uuid)); + + payload->u64 =3D 0; + switch (virtio_object_type(&uuid)) { + case TYPE_DMABUF: + dmabuf_fd =3D virtio_lookup_dmabuf(&uuid); + break; + case TYPE_VHOST_DEV: + { + struct vhost_dev *dev =3D virtio_lookup_vhost_device(&uuid); + if (dev =3D=3D NULL) { + payload->u64 =3D -EINVAL; + break; + } + int ret =3D vhost_user_get_shared_object(dev, uuid.data, &dmabuf_f= d); + if (ret < 0) { + payload->u64 =3D ret; + } + break; + } + case TYPE_INVALID: + payload->u64 =3D -EINVAL; + break; + } + + if (dmabuf_fd !=3D -1) { + fd_num++; + } + + if (qemu_chr_fe_set_msgfds(chr, &dmabuf_fd, fd_num) < 0) { + error_report("Failed to set msg fds."); + payload->u64 =3D -EINVAL; + } + + if (!vhost_user_backend_send_dmabuf_fd(ioc, hdr, payload, &local_err))= { + error_report_err(local_err); + return -EINVAL; + } + + return 0; +} + static void close_backend_channel(struct vhost_user *u) { g_source_destroy(u->backend_src); @@ -1637,6 +1781,16 @@ static gboolean backend_read(QIOChannel *ioc, GIOCon= dition condition, ret =3D vhost_user_backend_handle_vring_host_notifier(dev, &payloa= d.area, fd ? fd[0] : -1); break; + case VHOST_USER_BACKEND_SHARED_OBJECT_ADD: + ret =3D vhost_user_backend_handle_shared_object_add(dev, &payload.= object); + break; + case VHOST_USER_BACKEND_SHARED_OBJECT_REMOVE: + ret =3D vhost_user_backend_handle_shared_object_remove(&payload.ob= ject); + break; + case VHOST_USER_BACKEND_SHARED_OBJECT_LOOKUP: + ret =3D vhost_user_backend_handle_shared_object_lookup(dev->opaque= , ioc, + &hdr, &payloa= d); + break; default: error_report("Received unexpected msg type: %d.", hdr.request); ret =3D -EINVAL; @@ -1647,21 +1801,10 @@ static gboolean backend_read(QIOChannel *ioc, GIOCo= ndition condition, * directly in their request handlers. */ if (hdr.flags & VHOST_USER_NEED_REPLY_MASK) { - struct iovec iovec[2]; - - - hdr.flags &=3D ~VHOST_USER_NEED_REPLY_MASK; - hdr.flags |=3D VHOST_USER_REPLY_MASK; - payload.u64 =3D !!ret; hdr.size =3D sizeof(payload.u64); =20 - iovec[0].iov_base =3D &hdr; - iovec[0].iov_len =3D VHOST_USER_HDR_SIZE; - iovec[1].iov_base =3D &payload; - iovec[1].iov_len =3D hdr.size; - - if (qio_channel_writev_all(ioc, iovec, ARRAY_SIZE(iovec), &local_e= rr)) { + if (!vhost_user_send_resp(ioc, &hdr, &payload, &local_err)) { error_report_err(local_err); goto err; } diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst index 5a070adbc1..415bb47a19 100644 --- a/docs/interop/vhost-user.rst +++ b/docs/interop/vhost-user.rst @@ -1440,6 +1440,18 @@ Front-end message types query the back-end for its device status as defined in the Virtio specification. =20 +``VHOST_USER_GET_SHARED_OBJECT`` + :id: 41 + :equivalent ioctl: N/A + :request payload: ``struct VhostUserShared`` + :reply payload: dmabuf fd + + When the ``VHOST_USER_PROTOCOL_F_SHARED_OBJECT`` protocol + feature has been successfully negotiated, and the UUID is found + in the exporters cache, this message is submitted by the front-end + to retrieve a given dma-buf fd from a given back-end, determined by + the requested UUID. Back-end will reply passing the fd when the operation + is successful, or no fd otherwise. =20 Back-end message types ---------------------- @@ -1528,6 +1540,51 @@ is sent by the front-end. =20 The state.num field is currently reserved and must be set to 0. =20 +``VHOST_USER_BACKEND_SHARED_OBJECT_ADD`` + :id: 6 + :equivalent ioctl: N/A + :request payload: ``struct VhostUserShared`` + :reply payload: N/A + + When the ``VHOST_USER_PROTOCOL_F_SHARED_OBJECT`` protocol + feature has been successfully negotiated, this message can be submitted + by the backends to add themselves as exporters to the virtio shared look= up + table. The back-end device gets associated with a UUID in the shared tab= le. + The back-end is responsible of keeping its own table with exported dma-b= uf fds. + When another back-end tries to import the resource associated with the U= UID, + it will send a message to the front-end, which will act as a proxy to the + exporter back-end. If ``VHOST_USER_PROTOCOL_F_REPLY_ACK`` is negotiated,= and + the back-end sets the ``VHOST_USER_NEED_REPLY`` flag, the front-end must + respond with zero when operation is successfully completed, or non-zero + otherwise. + +``VHOST_USER_BACKEND_SHARED_OBJECT_REMOVE`` + :id: 7 + :equivalent ioctl: N/A + :request payload: ``struct VhostUserShared`` + :reply payload: N/A + + When the ``VHOST_USER_PROTOCOL_F_SHARED_OBJECT`` protocol + feature has been successfully negotiated, this message can be submitted + by the backend to remove themselves from to the virtio-dmabuf shared + table API. The shared table will remove the back-end device associated w= ith + the UUID. If ``VHOST_USER_PROTOCOL_F_REPLY_ACK`` is negotiated, and the + back-end sets the ``VHOST_USER_NEED_REPLY`` flag, the front-end must res= pond + with zero when operation is successfully completed, or non-zero otherwis= e. + +``VHOST_USER_BACKEND_SHARED_OBJECT_LOOKUP`` + :id: 8 + :equivalent ioctl: N/A + :request payload: ``struct VhostUserShared`` + :reply payload: dmabuf fd and ``u64`` + + When the ``VHOST_USER_PROTOCOL_F_SHARED_OBJECT`` protocol + feature has been successfully negotiated, this message can be submitted + by the backends to retrieve a given dma-buf fd from the virtio-dmabuf + shared table given a UUID. Frontend will reply passing the fd and a zero + when the operation is successful, or non-zero otherwise. Note that if the + operation fails, no fd is sent to the backend. + .. _reply_ack: =20 VHOST_USER_PROTOCOL_F_REPLY_ACK --=20 MST From nobody Sun May 19 12:00:57 2024 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=1696477610; cv=none; d=zohomail.com; s=zohoarc; b=Qiek89oAKaqxKNe2vGDMX00LnmnKokBTZuC6x4jdioZoEapiFOYAELnWH7pvauXz56HfZE1eJizkP3kBai5cdS7AI2njdYchYUrEDCJSEXGKXztbeABXw+hBSmraGiaGd778JdVskuwtq5xM5hYOfJOAHlt5b3bjvEJLel6dyuE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696477610; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/o+pWUz+EoH/jGO7Kt6c0rJ1UNqPWmD2dEHSCZyKa5w=; b=VAmtVbyNBupUUTeIdxI9EIgtxMxUdyA6T/IUx4NwBTW4lXn43Dbodyps6lQREOhwYHb7yKVhP1T4NIrnqRSEsF5caW3urdVPdzdxgsEr30MvT+it7jlpt7r9v7xegJ0Fddif7to4OjgxU5VwR3y4fPYxlhWd/7JMeVewPyFmGIM= 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 1696477610901266.65521713727276; Wed, 4 Oct 2023 20:46:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qoFJU-0000t7-Ij; Wed, 04 Oct 2023 23:46:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJS-0000oZ-Lm for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:46:10 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qoFJQ-0000qL-Lz for qemu-devel@nongnu.org; Wed, 04 Oct 2023 23:46:10 -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_256_GCM_SHA384) id us-mta-442-Q-go0QmUO_2OrkDrHs21QQ-1; Wed, 04 Oct 2023 23:46:05 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-30932d15a30so385675f8f.1 for ; Wed, 04 Oct 2023 20:46:05 -0700 (PDT) Received: from redhat.com ([2.52.137.96]) by smtp.gmail.com with ESMTPSA id d9-20020adff849000000b0031fbbe347e1sm636885wrq.65.2023.10.04.20.46.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 20:46:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696477567; 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=/o+pWUz+EoH/jGO7Kt6c0rJ1UNqPWmD2dEHSCZyKa5w=; b=Q498j464aj3q7mR36rMMhPj8NLUCy0ZbO35pNTVZzdLlZw/jMAkDD1I8VI8T9VjAksk/BG gFOJ1cL11i+OHuh1fBf0wpvzw9drnYt3x8mAeoamWdoFRDdMsjfg6Pga5Ak+u02xcVdlrE 15NjP99BophFxCgAfJr91J3T6hAtdbA= X-MC-Unique: Q-go0QmUO_2OrkDrHs21QQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696477563; x=1697082363; 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=/o+pWUz+EoH/jGO7Kt6c0rJ1UNqPWmD2dEHSCZyKa5w=; b=eRjYPiZVr0wVSpQrNqC/cTMUhr/xrD9WwPpfOrWIYleQ7bDVss4jINFWICj2GJEfhb oxbFFekpCbVXJhnNkVqxAiMlhXPdq1VEwcxInB1tx4u9MMICTTSXKNM8q6PXRrnsWr5Y tO3hGAKsS5Y4OUGmPq2KeOE9pofcsfw4fiDeq0yzZX9ADC4zAlh4LwA9epJ5oW6Vxv6V 6DSHZBx0l3wXKo1Zo7UIay5jIX6y7VXC6AIY0W33T6auhezu5hsPNFu/YAokOkxVm5Ci tNXntUVW9SpG974ZuLLyi/EBhiJPb4T+0cQonaDYwo/dp/ynqy3ai7Z6Gj1K5MfsmATa PRyw== X-Gm-Message-State: AOJu0Yz7uxjWlTS9ND71nEiv2h1tm8lWOkBBorRS6SDt2rzWhkNADovm U9R7EyOUnFKQqskMqR5kIE/u8doeD4Ca9L356FuqSdOpKwzzzjyjOLVD7YRQ10B/+Pf/wzHV8GL LoDHrc+lSxcrQokPnXodCn4WgMgRRjGeiZ8qlCunbTtXoVnw/x06xWZ+pTrWPoXtm9b4I X-Received: by 2002:a5d:4106:0:b0:31a:dc58:cdd9 with SMTP id l6-20020a5d4106000000b0031adc58cdd9mr3672855wrp.60.1696477563669; Wed, 04 Oct 2023 20:46:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFgtlHs9eZcYG1Gcd8KfywdWy6VZ2+XUvnsAaBbBcXZU+3hVY16iAfyGZnnG6sy0VvDv40jlA== X-Received: by 2002:a5d:4106:0:b0:31a:dc58:cdd9 with SMTP id l6-20020a5d4106000000b0031adc58cdd9mr3672845wrp.60.1696477563329; Wed, 04 Oct 2023 20:46:03 -0700 (PDT) Date: Wed, 4 Oct 2023 23:45:59 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Albert Esteve Subject: [PULL v2 53/53] libvhost-user: handle shared_object msg Message-ID: References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1696477612807100023 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Albert Esteve In the libvhost-user library we need to handle VHOST_USER_GET_SHARED_OBJECT requests, and add helper functions to allow sending messages to interact with the virtio shared objects hash table. Signed-off-by: Albert Esteve Message-Id: <20231002065706.94707-5-aesteve@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- subprojects/libvhost-user/libvhost-user.h | 55 +++++++++- subprojects/libvhost-user/libvhost-user.c | 120 ++++++++++++++++++++++ 2 files changed, 174 insertions(+), 1 deletion(-) diff --git a/subprojects/libvhost-user/libvhost-user.h b/subprojects/libvho= st-user/libvhost-user.h index 708370c5f5..b36a42a7ca 100644 --- a/subprojects/libvhost-user/libvhost-user.h +++ b/subprojects/libvhost-user/libvhost-user.h @@ -64,7 +64,8 @@ enum VhostUserProtocolFeature { VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD =3D 12, VHOST_USER_PROTOCOL_F_INBAND_NOTIFICATIONS =3D 14, VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS =3D 15, - + /* Feature 16 is reserved for VHOST_USER_PROTOCOL_F_STATUS. */ + VHOST_USER_PROTOCOL_F_SHARED_OBJECT =3D 17, VHOST_USER_PROTOCOL_F_MAX }; =20 @@ -109,6 +110,7 @@ typedef enum VhostUserRequest { VHOST_USER_GET_MAX_MEM_SLOTS =3D 36, VHOST_USER_ADD_MEM_REG =3D 37, VHOST_USER_REM_MEM_REG =3D 38, + VHOST_USER_GET_SHARED_OBJECT =3D 41, VHOST_USER_MAX } VhostUserRequest; =20 @@ -119,6 +121,9 @@ typedef enum VhostUserBackendRequest { VHOST_USER_BACKEND_VRING_HOST_NOTIFIER_MSG =3D 3, VHOST_USER_BACKEND_VRING_CALL =3D 4, VHOST_USER_BACKEND_VRING_ERR =3D 5, + VHOST_USER_BACKEND_SHARED_OBJECT_ADD =3D 6, + VHOST_USER_BACKEND_SHARED_OBJECT_REMOVE =3D 7, + VHOST_USER_BACKEND_SHARED_OBJECT_LOOKUP =3D 8, VHOST_USER_BACKEND_MAX } VhostUserBackendRequest; =20 @@ -172,6 +177,12 @@ typedef struct VhostUserInflight { uint16_t queue_size; } VhostUserInflight; =20 +#define UUID_LEN 16 + +typedef struct VhostUserShared { + unsigned char uuid[UUID_LEN]; +} VhostUserShared; + #if defined(_WIN32) && (defined(__x86_64__) || defined(__i386__)) # define VU_PACKED __attribute__((gcc_struct, packed)) #else @@ -199,6 +210,7 @@ typedef struct VhostUserMsg { VhostUserConfig config; VhostUserVringArea area; VhostUserInflight inflight; + VhostUserShared object; } payload; =20 int fds[VHOST_MEMORY_BASELINE_NREGIONS]; @@ -232,6 +244,7 @@ typedef int (*vu_get_config_cb) (VuDev *dev, uint8_t *c= onfig, uint32_t len); typedef int (*vu_set_config_cb) (VuDev *dev, const uint8_t *data, uint32_t offset, uint32_t size, uint32_t flags); +typedef int (*vu_get_shared_object_cb) (VuDev *dev, const unsigned char *u= uid); =20 typedef struct VuDevIface { /* called by VHOST_USER_GET_FEATURES to get the features bitmask */ @@ -258,6 +271,8 @@ typedef struct VuDevIface { vu_get_config_cb get_config; /* set the config space of the device */ vu_set_config_cb set_config; + /* get virtio shared object from the underlying vhost implementation. = */ + vu_get_shared_object_cb get_shared_object; } VuDevIface; =20 typedef void (*vu_queue_handler_cb) (VuDev *dev, int qidx); @@ -541,6 +556,44 @@ void vu_set_queue_handler(VuDev *dev, VuVirtq *vq, bool vu_set_queue_host_notifier(VuDev *dev, VuVirtq *vq, int fd, int size, int offset); =20 +/** + * vu_lookup_shared_object: + * @dev: a VuDev context + * @uuid: UUID of the shared object + * @dmabuf_fd: output dma-buf file descriptor + * + * Lookup for a virtio shared object (i.e., dma-buf fd) associated with the + * received UUID. Result, if found, is stored in the dmabuf_fd argument. + * + * Returns: whether the virtio object was found. + */ +bool vu_lookup_shared_object(VuDev *dev, unsigned char uuid[UUID_LEN], + int *dmabuf_fd); + +/** + * vu_add_shared_object: + * @dev: a VuDev context + * @uuid: UUID of the shared object + * + * Registers this back-end as the exporter for the object associated with + * the received UUID. + * + * Returns: TRUE on success, FALSE on failure. + */ +bool vu_add_shared_object(VuDev *dev, unsigned char uuid[UUID_LEN]); + +/** + * vu_rm_shared_object: + * @dev: a VuDev context + * @uuid: UUID of the shared object + * + * Removes a shared object entry (i.e., back-end entry) associated with the + * received UUID key from the hash table. + * + * Returns: TRUE on success, FALSE on failure. + */ +bool vu_rm_shared_object(VuDev *dev, unsigned char uuid[UUID_LEN]); + /** * vu_queue_set_notification: * @dev: a VuDev context diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvho= st-user/libvhost-user.c index 49b57c7ef4..051a611da3 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -161,6 +161,7 @@ vu_request_to_string(unsigned int req) REQ(VHOST_USER_GET_MAX_MEM_SLOTS), REQ(VHOST_USER_ADD_MEM_REG), REQ(VHOST_USER_REM_MEM_REG), + REQ(VHOST_USER_GET_SHARED_OBJECT), REQ(VHOST_USER_MAX), }; #undef REQ @@ -901,6 +902,24 @@ vu_rem_mem_reg(VuDev *dev, VhostUserMsg *vmsg) { return false; } =20 +static bool +vu_get_shared_object(VuDev *dev, VhostUserMsg *vmsg) +{ + int fd_num =3D 0; + int dmabuf_fd =3D -1; + if (dev->iface->get_shared_object) { + dmabuf_fd =3D dev->iface->get_shared_object( + dev, &vmsg->payload.object.uuid[0]); + } + if (dmabuf_fd !=3D -1) { + DPRINT("dmabuf_fd found for requested UUID\n"); + vmsg->fds[fd_num++] =3D dmabuf_fd; + } + vmsg->fd_num =3D fd_num; + + return true; +} + static bool vu_set_mem_table_exec_postcopy(VuDev *dev, VhostUserMsg *vmsg) { @@ -1404,6 +1423,105 @@ bool vu_set_queue_host_notifier(VuDev *dev, VuVirtq= *vq, int fd, return vu_process_message_reply(dev, &vmsg); } =20 +bool +vu_lookup_shared_object(VuDev *dev, unsigned char uuid[UUID_LEN], + int *dmabuf_fd) +{ + bool result =3D false; + VhostUserMsg msg_reply; + VhostUserMsg msg =3D { + .request =3D VHOST_USER_BACKEND_SHARED_OBJECT_LOOKUP, + .size =3D sizeof(msg.payload.object), + .flags =3D VHOST_USER_VERSION | VHOST_USER_NEED_REPLY_MASK, + }; + + memcpy(msg.payload.object.uuid, uuid, sizeof(uuid[0]) * UUID_LEN); + + if (!vu_has_protocol_feature(dev, VHOST_USER_PROTOCOL_F_SHARED_OBJECT)= ) { + return false; + } + + pthread_mutex_lock(&dev->backend_mutex); + if (!vu_message_write(dev, dev->backend_fd, &msg)) { + goto out; + } + + if (!vu_message_read_default(dev, dev->backend_fd, &msg_reply)) { + goto out; + } + + if (msg_reply.request !=3D msg.request) { + DPRINT("Received unexpected msg type. Expected %d, received %d", + msg.request, msg_reply.request); + goto out; + } + + if (msg_reply.fd_num !=3D 1) { + DPRINT("Received unexpected number of fds. Expected 1, received %d= ", + msg_reply.fd_num); + goto out; + } + + *dmabuf_fd =3D msg_reply.fds[0]; + result =3D *dmabuf_fd > 0 && msg_reply.payload.u64 =3D=3D 0; +out: + pthread_mutex_unlock(&dev->backend_mutex); + + return result; +} + +static bool +vu_send_message(VuDev *dev, VhostUserMsg *vmsg) +{ + bool result =3D false; + pthread_mutex_lock(&dev->backend_mutex); + if (!vu_message_write(dev, dev->backend_fd, vmsg)) { + goto out; + } + + result =3D true; +out: + pthread_mutex_unlock(&dev->backend_mutex); + + return result; +} + +bool +vu_add_shared_object(VuDev *dev, unsigned char uuid[UUID_LEN]) +{ + VhostUserMsg msg =3D { + .request =3D VHOST_USER_BACKEND_SHARED_OBJECT_ADD, + .size =3D sizeof(msg.payload.object), + .flags =3D VHOST_USER_VERSION, + }; + + memcpy(msg.payload.object.uuid, uuid, sizeof(uuid[0]) * UUID_LEN); + + if (!vu_has_protocol_feature(dev, VHOST_USER_PROTOCOL_F_SHARED_OBJECT)= ) { + return false; + } + + return vu_send_message(dev, &msg); +} + +bool +vu_rm_shared_object(VuDev *dev, unsigned char uuid[UUID_LEN]) +{ + VhostUserMsg msg =3D { + .request =3D VHOST_USER_BACKEND_SHARED_OBJECT_REMOVE, + .size =3D sizeof(msg.payload.object), + .flags =3D VHOST_USER_VERSION, + }; + + memcpy(msg.payload.object.uuid, uuid, sizeof(uuid[0]) * UUID_LEN); + + if (!vu_has_protocol_feature(dev, VHOST_USER_PROTOCOL_F_SHARED_OBJECT)= ) { + return false; + } + + return vu_send_message(dev, &msg); +} + static bool vu_set_vring_call_exec(VuDev *dev, VhostUserMsg *vmsg) { @@ -1944,6 +2062,8 @@ vu_process_message(VuDev *dev, VhostUserMsg *vmsg) return vu_add_mem_reg(dev, vmsg); case VHOST_USER_REM_MEM_REG: return vu_rem_mem_reg(dev, vmsg); + case VHOST_USER_GET_SHARED_OBJECT: + return vu_get_shared_object(dev, vmsg); default: vmsg_close_fds(vmsg); vu_panic(dev, "Unhandled request: %d", vmsg->request); --=20 MST