From nobody Sat May 18 18:13:07 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=1687783659; cv=none; d=zohomail.com; s=zohoarc; b=mfl56toyMNERG7nKG39FFSLNbG6sqpcrzhCyJ7HWlv5d1rTdvMq5m1P7mX8RNANrcXGmHfOqvnSjPyU7GRuxqdWzUVLcG27w67G2uHIgGi/GR4fFxd3gBWJAcQui7gWT/xRfCL+PJFT0JrorKSWfYf1axVui4FpMwgYRPYEefHM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783659; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0Af6at3fsIEuuqbjTx7xlWdUMwOaCT0ky+V/sNrkOzw=; b=QQa/MPQ8NfxaTj1tGwOfVPopDwKSabrGGfT3odBws9HxrQtiCsPeT07tgqBbyCPhoNZptIWxlnpT/XpVvK5Zz1Uv1HH+6o+ThkJ/3PEpPVP/y3Fn2A9M5f44JTWkoAJv3sngDmCht2nN55YMUyGw1tko/D7u4JPlXjPPjMjcK+s= 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 168778365926481.4355030376862; Mon, 26 Jun 2023 05:47:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlK3-0000lf-F4; Mon, 26 Jun 2023 08:27: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 1qDlK1-0000jy-Vs for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:27: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 1qDlK0-0002X1-5Y for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:27:57 -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-488-or3VkmzUPeKGa3G1okYAww-1; Mon, 26 Jun 2023 08:27:54 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-313c930ee0eso1071344f8f.0 for ; Mon, 26 Jun 2023 05:27:53 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id v10-20020a5d590a000000b0030631a599a0sm7233459wrd.24.2023.06.26.05.27.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:27:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782475; 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=0Af6at3fsIEuuqbjTx7xlWdUMwOaCT0ky+V/sNrkOzw=; b=RbBkmZ8GYdIJ/n7TvDZvJUOpTX79gs6FfRBZf/xNAV6NwulsWAenxnL7Pa57acpaaMb6x3 qfHjWQhOlnXwdulSV6kd2GJOyDn9IAKPUEGmOQOgaj+BTO5fthobeuZRLvZnjifJriS8un zh1d8qvqYcssA6MA71RyNYhgwBxhiSA= X-MC-Unique: or3VkmzUPeKGa3G1okYAww-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782472; x=1690374472; 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=0Af6at3fsIEuuqbjTx7xlWdUMwOaCT0ky+V/sNrkOzw=; b=l9ej23obwoaVXf4bahd3/Q/o7Ih6olsyjownEn6vJiXu1hwPoYGQ3rHGcBLg789Yyy wLELIqIUSV9AVJpENUxYEgOhM53tVNAUicWx2S6gPr4Qffidh5oQ8hUL7viuUfLKAV65 oGShaTDfFlPnp8lwKqVcAhpbJ80vUxtxXa5UbbqrMCIYiOTsv96vWaKRie86Z1GGc4B0 LcAMQw879ayV5HVU2jyRPBhPABjxzYX3U9H1z9x5uNKMS6cEuGqV5rd38Ntdp+aXjbzz fKyyfbQW/tXRU6emvS50kLI8JIkLHMAeXA2VtgMLQcRminL1oXZgS1LI0APKrfKcCBGm S7Sw== X-Gm-Message-State: AC+VfDwG0oJvLXj4hQ+31oRzh826gAWT3Szfeux5KUC/gBPs3lyE/rSF ZcAKkYtnTQxZ5t4+Z/GlRarI5BZ7zExBSStCwzb8S3/woAJsntN3QUrXCqKUkkcLex7+HDLPBQu 6YxEmtk8xBR2xwgUS4Znr6w4kKCt0c4GASust+mZ3+Y9pgaJVeHJswfZtCnWHu92KPBCy X-Received: by 2002:adf:fa06:0:b0:30f:be04:5b5e with SMTP id m6-20020adffa06000000b0030fbe045b5emr18267180wrr.37.1687782472606; Mon, 26 Jun 2023 05:27:52 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5uMYw/TxDROijUdI1EzBOUH3Bwe5cP7iUQP4ZBE0DHkDQ/D/vBgKHO1OdQO6pC9WmowfKFnQ== X-Received: by 2002:adf:fa06:0:b0:30f:be04:5b5e with SMTP id m6-20020adffa06000000b0030fbe045b5emr18267164wrr.37.1687782472295; Mon, 26 Jun 2023 05:27:52 -0700 (PDT) Date: Mon, 26 Jun 2023 08:27:49 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ira Weiny , Fan Ni , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Jonathan Cameron , Richard Henderson , Thomas Huth Subject: [PULL 01/53] bswap: Add the ability to store to an unaligned 24 bit field Message-ID: <14180d6221502bd4b9d96fa5f1065e7cda4bcf00.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783660488100001 From: Ira Weiny CXL has 24 bit unaligned fields which need to be stored to. CXL is specified as little endian. Define st24_le_p() and the supporting functions to store such a field from a 32 bit host native value. The use of b, w, l, q as the size specifier is limiting. So "24" was used for the size part of the function name. Reviewed-by: Fan Ni Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Ira Weiny Signed-off-by: Jonathan Cameron Message-Id: <20230526170010.574-2-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/qemu/bswap.h | 25 +++++++++++++++++++++++++ docs/devel/loads-stores.rst | 2 ++ 2 files changed, 27 insertions(+) diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h index 15a78c0db5..933a66ee87 100644 --- a/include/qemu/bswap.h +++ b/include/qemu/bswap.h @@ -8,11 +8,23 @@ #undef bswap64 #define bswap64(_x) __builtin_bswap64(_x) =20 +static inline uint32_t bswap24(uint32_t x) +{ + return (((x & 0x000000ffU) << 16) | + ((x & 0x0000ff00U) << 0) | + ((x & 0x00ff0000U) >> 16)); +} + static inline void bswap16s(uint16_t *s) { *s =3D __builtin_bswap16(*s); } =20 +static inline void bswap24s(uint32_t *s) +{ + *s =3D bswap24(*s & 0x00ffffffU); +} + static inline void bswap32s(uint32_t *s) { *s =3D __builtin_bswap32(*s); @@ -26,11 +38,13 @@ static inline void bswap64s(uint64_t *s) #if HOST_BIG_ENDIAN #define be_bswap(v, size) (v) #define le_bswap(v, size) glue(__builtin_bswap, size)(v) +#define le_bswap24(v) bswap24(v) #define be_bswaps(v, size) #define le_bswaps(p, size) \ do { *p =3D glue(__builtin_bswap, size)(*p); } while (0) #else #define le_bswap(v, size) (v) +#define le_bswap24(v) (v) #define be_bswap(v, size) glue(__builtin_bswap, size)(v) #define le_bswaps(v, size) #define be_bswaps(p, size) \ @@ -176,6 +190,7 @@ CPU_CONVERT(le, 64, uint64_t) * size is: * b: 8 bits * w: 16 bits + * 24: 24 bits * l: 32 bits * q: 64 bits * @@ -248,6 +263,11 @@ static inline void stw_he_p(void *ptr, uint16_t v) __builtin_memcpy(ptr, &v, sizeof(v)); } =20 +static inline void st24_he_p(void *ptr, uint32_t v) +{ + __builtin_memcpy(ptr, &v, 3); +} + static inline int ldl_he_p(const void *ptr) { int32_t r; @@ -297,6 +317,11 @@ static inline void stw_le_p(void *ptr, uint16_t v) stw_he_p(ptr, le_bswap(v, 16)); } =20 +static inline void st24_le_p(void *ptr, uint32_t v) +{ + st24_he_p(ptr, le_bswap24(v)); +} + static inline void stl_le_p(void *ptr, uint32_t v) { stl_he_p(ptr, le_bswap(v, 32)); diff --git a/docs/devel/loads-stores.rst b/docs/devel/loads-stores.rst index d2cefc77a2..dab6dfa0ac 100644 --- a/docs/devel/loads-stores.rst +++ b/docs/devel/loads-stores.rst @@ -36,6 +36,7 @@ store: ``st{size}_{endian}_p(ptr, val)`` ``size`` - ``b`` : 8 bits - ``w`` : 16 bits + - ``24`` : 24 bits - ``l`` : 32 bits - ``q`` : 64 bits =20 @@ -65,6 +66,7 @@ of size ``sz`` bytes. Regexes for git grep - ``\`` - ``\`` + - ``\`` - ``\`` - ``\`` =20 --=20 MST From nobody Sat May 18 18:13:07 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=1687782563; cv=none; d=zohomail.com; s=zohoarc; b=fb/Cjv5+aNUR8QseMIyGVJ15bf3jNNPl4hdmiQJ0ZDFko8C2zW/fgFn6NsldtUvh7OsVuUbYaReWc+uHh5vsB+3Wt4qCW7PUMT/qx3uSo/K8k3W/dCEJgwnvS1voaFwIiyq0nJ1oBDpYmoDvqRXnFYS6Qb6uQL7mrwXWpVjL8WI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782563; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/C6oeVnoaVoSlGcngszxeHeYdTkhyIoXavdtJwa6AYc=; b=mXg7KhaLlAaFFudmXNuJ/FpzbGJhqPktC0wvvjy8wcPahuD/EGzMmblNc2DfVK6P1zoNf73q6fnBpumnn4OBUpbtiG/JqtOs3e/6TgMvGbI2arqiyKLZvP30FEnoVI1vEUSp4JZB81RWQTVzUIVuZ50sX1fIMJ47Tl+IFK+b/7E= 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 1687782563683317.6536269613921; Mon, 26 Jun 2023 05:29:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlK7-0000nl-3v; Mon, 26 Jun 2023 08:28: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 1qDlK5-0000n7-O1 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:01 -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 1qDlK3-0002Xl-A9 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:01 -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-605-xoRSscG1NBmP84NTG9E2bQ-1; Mon, 26 Jun 2023 08:27:57 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-3fa8562f6cdso7192205e9.0 for ; Mon, 26 Jun 2023 05:27:57 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id d10-20020adfe2ca000000b0031272fced4dsm7274190wrj.52.2023.06.26.05.27.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:27:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782478; 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=/C6oeVnoaVoSlGcngszxeHeYdTkhyIoXavdtJwa6AYc=; b=D8xtVJsqFqHJC2XtnKHCwpHBoOwkDJeUpE7hNKskNZKqdRTpll0Qe7VVfj6hqJxHIN+0Vo dFFdd8ZTRoz1j5BpcAO9w1LwYragcTYqLPwGZVoX1GkqzK7dLOwNqijMd00Tio+DZCFHUB uM2KrjM/nKJ7QUoEX5MDRcMcSTfZvsE= X-MC-Unique: xoRSscG1NBmP84NTG9E2bQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782476; x=1690374476; 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=/C6oeVnoaVoSlGcngszxeHeYdTkhyIoXavdtJwa6AYc=; b=QIiIy0SmGJQsZIcS0xaXldzRv0aHeldFALxOk+bgkU6fxBADiBUyvnDOBOOJfkNisb Ds28jmSX2ixRuhULY38qjaSvEke9SLz36NPSoco85LM1Ul10Dz4d22qFbEixHolazZCK VYluU931yL+3TmHPPRmjHNKBbXdw9Hq9oU6IU/g+H9g2RoRz/YkpZKmyjejouWxcHM9l qVQq6/SABF6smKRvLfU9vcq7r/m9j62zihE9mdLoPLqBlORaKR03a9H2IP7epN4GBh5B 2I5N0ChhuXaDDP9Hk1pzNWTJVjtalzpBp/MOoC/RkdycvUpqlsiX1YjjhGfWOQnMqoR5 sxLQ== X-Gm-Message-State: AC+VfDz2RIONAmeO6wvQ+gL+7uou6YW3iZYry3Xja+G5emspv9EwR66m r1h/6EA94VmpXjl9dse49yPjQCpONIG+0MyJDtVxX4G+42EKwdUqvhReCUAj5ZQzkWEl5RZGQJ8 +IvkMvzxpkWaQj4FXpnfnRZB5hJvw5U+dnyvhviS+iyKwxtrNxF6K6tEfQzyXrVUX/Kxd X-Received: by 2002:adf:e8c1:0:b0:30f:bcf3:9a30 with SMTP id k1-20020adfe8c1000000b0030fbcf39a30mr8993543wrn.17.1687782475888; Mon, 26 Jun 2023 05:27:55 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5NBA/xR6D9VX5Pe8p/ogQQnCPf+hoceAgte3zs73Hhl7LhkSpVMJXzXt+gCFU1rOPWaPbn5w== X-Received: by 2002:adf:e8c1:0:b0:30f:bcf3:9a30 with SMTP id k1-20020adfe8c1000000b0030fbcf39a30mr8993523wrn.17.1687782475486; Mon, 26 Jun 2023 05:27:55 -0700 (PDT) Date: Mon, 26 Jun 2023 08:27:52 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Fan Ni , Ira Weiny , Markus Armbruster , Eric Blake Subject: [PULL 02/53] hw/cxl: QMP based poison injection support Message-ID: <9547754f40ee5c5e3d1dbed0fbc972caacd075e8.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782565836100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron Inject poison using QMP command cxl-inject-poison to add an entry to the poison list. For now, the poison is not returned CXL.mem reads, but only via the mailbox command Get Poison List. So a normal memory read to an address that is on the poison list will not yet result in a synchronous exception (and similar for partial cacheline writes). That is left for a future patch. See CXL rev 3.0, sec 8.2.9.8.4.1 Get Poison list (Opcode 4300h) Kernel patches to use this interface here: https://lore.kernel.org/linux-cxl/cover.1665606782.git.alison.schofield@int= el.com/ To inject poison using QMP (telnet to the QMP port) { "execute": "qmp_capabilities" } { "execute": "cxl-inject-poison", "arguments": { "path": "/machine/peripheral/cxl-pmem0", "start": 2048, "length": 256 } } Adjusted to select a device on your machine. Note that the poison list supported is kept short enough to avoid the complexity of state machine that is needed to handle the MORE flag. Reviewed-by: Fan Ni Reviewed-by: Ira Weiny Acked-by: Markus Armbruster Signed-off-by: Jonathan Cameron Message-Id: <20230526170010.574-3-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- qapi/cxl.json | 21 +++++++++ include/hw/cxl/cxl.h | 1 + include/hw/cxl/cxl_device.h | 20 +++++++++ hw/cxl/cxl-mailbox-utils.c | 90 +++++++++++++++++++++++++++++++++++++ hw/mem/cxl_type3.c | 56 +++++++++++++++++++++++ hw/mem/cxl_type3_stubs.c | 6 +++ 6 files changed, 194 insertions(+) diff --git a/qapi/cxl.json b/qapi/cxl.json index b21c9b4c1c..ed1c7eea3a 100644 --- a/qapi/cxl.json +++ b/qapi/cxl.json @@ -5,6 +5,27 @@ # =3D CXL devices ## =20 +## +# @cxl-inject-poison: +# +# Poison records indicate that a CXL memory device knows that a +# particular memory region may be corrupted. This may be because of +# locally detected errors (e.g. ECC failure) or poisoned writes +# received from other components in the system. This injection +# mechanism enables testing of the OS handling of poison records which +# may be queried via the CXL mailbox. +# +# @path: CXL type 3 device canonical QOM path +# +# @start: Start address; must be 64 byte aligned. +# +# @length: Length of poison to inject; must be a multiple of 64 bytes. +# +# Since: 8.1 +## +{ 'command': 'cxl-inject-poison', + 'data': { 'path': 'str', 'start': 'uint64', 'length': 'size' }} + ## # @CxlUncorErrorType: # diff --git a/include/hw/cxl/cxl.h b/include/hw/cxl/cxl.h index c453983e83..56c9e7676e 100644 --- a/include/hw/cxl/cxl.h +++ b/include/hw/cxl/cxl.h @@ -18,6 +18,7 @@ #include "cxl_component.h" #include "cxl_device.h" =20 +#define CXL_CACHE_LINE_SIZE 64 #define CXL_COMPONENT_REG_BAR_IDX 0 #define CXL_DEVICE_REG_BAR_IDX 2 =20 diff --git a/include/hw/cxl/cxl_device.h b/include/hw/cxl/cxl_device.h index 02befda0f6..32c234ea91 100644 --- a/include/hw/cxl/cxl_device.h +++ b/include/hw/cxl/cxl_device.h @@ -242,6 +242,18 @@ typedef struct CXLError { =20 typedef QTAILQ_HEAD(, CXLError) CXLErrorList; =20 +typedef struct CXLPoison { + uint64_t start, length; + uint8_t type; +#define CXL_POISON_TYPE_EXTERNAL 0x1 +#define CXL_POISON_TYPE_INTERNAL 0x2 +#define CXL_POISON_TYPE_INJECTED 0x3 + QLIST_ENTRY(CXLPoison) node; +} CXLPoison; + +typedef QLIST_HEAD(, CXLPoison) CXLPoisonList; +#define CXL_POISON_LIST_LIMIT 256 + struct CXLType3Dev { /* Private */ PCIDevice parent_obj; @@ -264,6 +276,12 @@ struct CXLType3Dev { =20 /* Error injection */ CXLErrorList error_list; + + /* Poison Injection - cache */ + CXLPoisonList poison_list; + unsigned int poison_list_cnt; + bool poison_list_overflowed; + uint64_t poison_list_overflow_ts; }; =20 #define TYPE_CXL_TYPE3 "cxl-type3" @@ -289,4 +307,6 @@ MemTxResult cxl_type3_write(PCIDevice *d, hwaddr host_a= ddr, uint64_t data, =20 uint64_t cxl_device_get_timestamp(CXLDeviceState *cxlds); =20 +void cxl_set_poison_list_overflowed(CXLType3Dev *ct3d); + #endif diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c index 702e16ca20..1f74b26ea2 100644 --- a/hw/cxl/cxl-mailbox-utils.c +++ b/hw/cxl/cxl-mailbox-utils.c @@ -62,6 +62,8 @@ enum { #define GET_PARTITION_INFO 0x0 #define GET_LSA 0x2 #define SET_LSA 0x3 + MEDIA_AND_POISON =3D 0x43, + #define GET_POISON_LIST 0x0 }; =20 /* 8.2.8.4.5.1 Command Return Codes */ @@ -295,6 +297,10 @@ static CXLRetCode cmd_identify_memory_device(struct cx= l_cmd *cmd, stq_le_p(&id->persistent_capacity, cxl_dstate->pmem_size / CXL_CAPACIT= Y_MULTIPLIER); stq_le_p(&id->volatile_capacity, cxl_dstate->vmem_size / CXL_CAPACITY_= MULTIPLIER); stl_le_p(&id->lsa_size, cvc->get_lsa_size(ct3d)); + /* 256 poison records */ + st24_le_p(id->poison_list_max_mer, 256); + /* No limit - so limited by main poison record limit */ + stw_le_p(&id->inject_poison_limit, 0); =20 *len =3D sizeof(*id); return CXL_MBOX_SUCCESS; @@ -384,6 +390,88 @@ static CXLRetCode cmd_ccls_set_lsa(struct cxl_cmd *cmd, return CXL_MBOX_SUCCESS; } =20 +/* + * This is very inefficient, but good enough for now! + * Also the payload will always fit, so no need to handle the MORE flag and + * make this stateful. We may want to allow longer poison lists to aid + * testing that kernel functionality. + */ +static CXLRetCode cmd_media_get_poison_list(struct cxl_cmd *cmd, + CXLDeviceState *cxl_dstate, + uint16_t *len) +{ + struct get_poison_list_pl { + uint64_t pa; + uint64_t length; + } QEMU_PACKED; + + struct get_poison_list_out_pl { + uint8_t flags; + uint8_t rsvd1; + uint64_t overflow_timestamp; + uint16_t count; + uint8_t rsvd2[0x14]; + struct { + uint64_t addr; + uint32_t length; + uint32_t resv; + } QEMU_PACKED records[]; + } QEMU_PACKED; + + struct get_poison_list_pl *in =3D (void *)cmd->payload; + struct get_poison_list_out_pl *out =3D (void *)cmd->payload; + CXLType3Dev *ct3d =3D container_of(cxl_dstate, CXLType3Dev, cxl_dstate= ); + uint16_t record_count =3D 0, i =3D 0; + uint64_t query_start, query_length; + CXLPoisonList *poison_list =3D &ct3d->poison_list; + CXLPoison *ent; + uint16_t out_pl_len; + + query_start =3D ldq_le_p(&in->pa); + /* 64 byte alignemnt required */ + if (query_start & 0x3f) { + return CXL_MBOX_INVALID_INPUT; + } + query_length =3D ldq_le_p(&in->length) * CXL_CACHE_LINE_SIZE; + + QLIST_FOREACH(ent, poison_list, node) { + /* Check for no overlap */ + if (ent->start >=3D query_start + query_length || + ent->start + ent->length <=3D query_start) { + continue; + } + record_count++; + } + out_pl_len =3D sizeof(*out) + record_count * sizeof(out->records[0]); + assert(out_pl_len <=3D CXL_MAILBOX_MAX_PAYLOAD_SIZE); + + memset(out, 0, out_pl_len); + QLIST_FOREACH(ent, poison_list, node) { + uint64_t start, stop; + + /* Check for no overlap */ + if (ent->start >=3D query_start + query_length || + ent->start + ent->length <=3D query_start) { + continue; + } + + /* Deal with overlap */ + start =3D MAX(ROUND_DOWN(ent->start, 64ull), query_start); + stop =3D MIN(ROUND_DOWN(ent->start, 64ull) + ent->length, + query_start + query_length); + stq_le_p(&out->records[i].addr, start | (ent->type & 0x7)); + stl_le_p(&out->records[i].length, (stop - start) / CXL_CACHE_LINE_= SIZE); + i++; + } + if (ct3d->poison_list_overflowed) { + out->flags =3D (1 << 1); + stq_le_p(&out->overflow_timestamp, ct3d->poison_list_overflow_ts); + } + stw_le_p(&out->count, record_count); + *len =3D out_pl_len; + return CXL_MBOX_SUCCESS; +} + #define IMMEDIATE_CONFIG_CHANGE (1 << 1) #define IMMEDIATE_DATA_CHANGE (1 << 2) #define IMMEDIATE_POLICY_CHANGE (1 << 3) @@ -411,6 +499,8 @@ static struct cxl_cmd cxl_cmd_set[256][256] =3D { [CCLS][GET_LSA] =3D { "CCLS_GET_LSA", cmd_ccls_get_lsa, 8, 0 }, [CCLS][SET_LSA] =3D { "CCLS_SET_LSA", cmd_ccls_set_lsa, ~0, IMMEDIATE_CONFIG_CHANGE | IMMEDIATE_DATA_CHANGE }, + [MEDIA_AND_POISON][GET_POISON_LIST] =3D { "MEDIA_AND_POISON_GET_POISON= _LIST", + cmd_media_get_poison_list, 16, 0 }, }; =20 void cxl_process_mailbox(CXLDeviceState *cxl_dstate) diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index 2adacbd01b..ab600735eb 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -947,6 +947,62 @@ static void set_lsa(CXLType3Dev *ct3d, const void *buf= , uint64_t size, */ } =20 +void cxl_set_poison_list_overflowed(CXLType3Dev *ct3d) +{ + ct3d->poison_list_overflowed =3D true; + ct3d->poison_list_overflow_ts =3D + cxl_device_get_timestamp(&ct3d->cxl_dstate); +} + +void qmp_cxl_inject_poison(const char *path, uint64_t start, uint64_t leng= th, + Error **errp) +{ + Object *obj =3D object_resolve_path(path, NULL); + CXLType3Dev *ct3d; + CXLPoison *p; + + if (length % 64) { + error_setg(errp, "Poison injection must be in multiples of 64 byte= s"); + return; + } + if (start % 64) { + error_setg(errp, "Poison start address must be 64 byte aligned"); + return; + } + if (!obj) { + error_setg(errp, "Unable to resolve path"); + return; + } + if (!object_dynamic_cast(obj, TYPE_CXL_TYPE3)) { + error_setg(errp, "Path does not point to a CXL type 3 device"); + return; + } + + ct3d =3D CXL_TYPE3(obj); + + QLIST_FOREACH(p, &ct3d->poison_list, node) { + if (((start >=3D p->start) && (start < p->start + p->length)) || + ((start + length > p->start) && + (start + length <=3D p->start + p->length))) { + error_setg(errp, "Overlap with existing poisoned region not su= pported"); + return; + } + } + + if (ct3d->poison_list_cnt =3D=3D CXL_POISON_LIST_LIMIT) { + cxl_set_poison_list_overflowed(ct3d); + return; + } + + p =3D g_new0(CXLPoison, 1); + p->length =3D length; + p->start =3D start; + p->type =3D CXL_POISON_TYPE_INTERNAL; /* Different from injected via t= he mbox */ + + QLIST_INSERT_HEAD(&ct3d->poison_list, p, node); + ct3d->poison_list_cnt++; +} + /* For uncorrectable errors include support for multiple header recording = */ void qmp_cxl_inject_uncorrectable_errors(const char *path, CXLUncorErrorRecordList *errors, diff --git a/hw/mem/cxl_type3_stubs.c b/hw/mem/cxl_type3_stubs.c index d574c58f9a..fd1166a610 100644 --- a/hw/mem/cxl_type3_stubs.c +++ b/hw/mem/cxl_type3_stubs.c @@ -3,6 +3,12 @@ #include "qapi/error.h" #include "qapi/qapi-commands-cxl.h" =20 +void qmp_cxl_inject_poison(const char *path, uint64_t start, uint64_t leng= th, + Error **errp) +{ + error_setg(errp, "CXL Type 3 support is not compiled in"); +} + void qmp_cxl_inject_uncorrectable_errors(const char *path, CXLUncorErrorRecordList *errors, Error **errp) --=20 MST From nobody Sat May 18 18:13:07 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=1687782516; cv=none; d=zohomail.com; s=zohoarc; b=j5OAV0wm+UKkqMb3xEEPaMsUbi+ls+TEJygNqAuJ3xN83PG4nkMx1KvxleqqScpiwNqU1/HudgB57IBf6IWYr4YFAF/+KbRIclkbL8yilxqhCkqMkmKbnl93RX8ob3IF+pIwhElPIzcMjIL8c6S8P8zymvB1kgGkDevXqY1nrME= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782516; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=M8S9j0Q9MSKKbWjgTlZzkGY9Jb2O2eOGPudQd2ZsdWw=; b=hvJCWMivheiljuhgyzpwbgtZzZnkr/MZZ8KadwwaiVK1JsCHLqeEu9LISCH15l6nDLKh2W8vhcbZSIPosu1ObAdQz228QG91PHsLteE/Dg1C4Dbez53ZJ9H1vnyMPPusC7VY5n496hrAN5UXropqXDXUhs5BgjnCk1V5AKCaerk= 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 16877825168756.670212545486152; Mon, 26 Jun 2023 05:28:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlK9-0000pe-IE; Mon, 26 Jun 2023 08:28:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlK8-0000od-0y for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:04 -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 1qDlK6-0002Y8-C7 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:03 -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-66-tqY2jBx0OESPQEXQv7xKOA-1; Mon, 26 Jun 2023 08:28:00 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-31283f7f2d1so1851183f8f.0 for ; Mon, 26 Jun 2023 05:28:00 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id f2-20020a5d5682000000b00313ec7dd652sm4406617wrv.44.2023.06.26.05.27.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:27:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782481; 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=M8S9j0Q9MSKKbWjgTlZzkGY9Jb2O2eOGPudQd2ZsdWw=; b=bZ4yx4eT+xGahgkcObN+5c8DR8srXJzITwJEqTWEu2wal/8EZ7MZi36bioNKxZLx1MvWdR NNQnRZ5pcfkFWfPZLBBEHlVHvsD+Frq/Bovsg/slXVdPSCzkotaHRcbfqOG816cPXMOvVG B8ScrlKPjkNaeBIkTfNCMbmxUDwSp+w= X-MC-Unique: tqY2jBx0OESPQEXQv7xKOA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782479; x=1690374479; 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=M8S9j0Q9MSKKbWjgTlZzkGY9Jb2O2eOGPudQd2ZsdWw=; b=higLN6648f5kkmZ2ATltIhl/z+uz6piDrliu5B/N6k+P7E3In26OwydBabsZrKUUV4 NeeXEMszqogvEE67VnOSEQDFssUeQTV3IMl987pE+gjksaIODjqE7oQntHlbSbWSwHfn lauyzi8mQA+OV1a0toNlwY59G7RX7jan75je+GVzeU+OW0zDpygxcT1+pkQ5JRuGCtsx zsS+lTkEp4yXjziT65ZUtqeUWv23znsFTHK/S+mkhP2sC4lNWYdBH3eW16X/15aNWf1S MG1VjCklucwpnmRe44XQ20T4qYHvLgIwCDLAc92yh6Z2FzMjLBJvu+jrWYiIt7StF5il afPw== X-Gm-Message-State: AC+VfDwH+y9JdAwek3eBiNy590PqT5Ej7qVkdV3LganteRmPT5vPw9H7 P0KE2JSQni69BoO0ErUQJeya7VrP0HahSy62qv8gQY3j1rtGhKOSp7DJICnq20LKehfK11khey9 ZLXQ7xUvJEAn2nycxAMBMrgsBFpJMcSs7dvFxcDLSCXtppE/1SLFJ9RA2XAAkUUMChElt X-Received: by 2002:adf:e441:0:b0:313:f45f:74a1 with SMTP id t1-20020adfe441000000b00313f45f74a1mr1321502wrm.51.1687782478846; Mon, 26 Jun 2023 05:27:58 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7rGrrCEZ+E2ktxrZVeu9ZadTeEiMbcT3rnI+FQhNcLqfnf0PEr2kwZmnoABi3YrFTbLWR0wg== X-Received: by 2002:adf:e441:0:b0:313:f45f:74a1 with SMTP id t1-20020adfe441000000b00313f45f74a1mr1321490wrm.51.1687782478477; Mon, 26 Jun 2023 05:27:58 -0700 (PDT) Date: Mon, 26 Jun 2023 08:27:55 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Ira Weiny , Fan Ni Subject: [PULL 03/53] hw/cxl: Add poison injection via the mailbox. 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782518340100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron Very simple implementation to allow testing of corresponding kernel code. Note that for now we track each 64 byte section independently. Whilst a valid implementation choice, it may make sense to fuse entries so as to prove out more complex corners of the kernel code. Reviewed-by: Ira Weiny Reviewed-by: Fan Ni Signed-off-by: Jonathan Cameron Message-Id: <20230526170010.574-4-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/cxl/cxl-mailbox-utils.c | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c index 1f74b26ea2..6c476ad7f4 100644 --- a/hw/cxl/cxl-mailbox-utils.c +++ b/hw/cxl/cxl-mailbox-utils.c @@ -64,6 +64,7 @@ enum { #define SET_LSA 0x3 MEDIA_AND_POISON =3D 0x43, #define GET_POISON_LIST 0x0 + #define INJECT_POISON 0x1 }; =20 /* 8.2.8.4.5.1 Command Return Codes */ @@ -472,6 +473,45 @@ static CXLRetCode cmd_media_get_poison_list(struct cxl= _cmd *cmd, return CXL_MBOX_SUCCESS; } =20 +static CXLRetCode cmd_media_inject_poison(struct cxl_cmd *cmd, + CXLDeviceState *cxl_dstate, + uint16_t *len_unused) +{ + CXLType3Dev *ct3d =3D container_of(cxl_dstate, CXLType3Dev, cxl_dstate= ); + CXLPoisonList *poison_list =3D &ct3d->poison_list; + CXLPoison *ent; + struct inject_poison_pl { + uint64_t dpa; + }; + struct inject_poison_pl *in =3D (void *)cmd->payload; + uint64_t dpa =3D ldq_le_p(&in->dpa); + CXLPoison *p; + + QLIST_FOREACH(ent, poison_list, node) { + if (dpa >=3D ent->start && + dpa + CXL_CACHE_LINE_SIZE <=3D ent->start + ent->length) { + return CXL_MBOX_SUCCESS; + } + } + + if (ct3d->poison_list_cnt =3D=3D CXL_POISON_LIST_LIMIT) { + return CXL_MBOX_INJECT_POISON_LIMIT; + } + p =3D g_new0(CXLPoison, 1); + + p->length =3D CXL_CACHE_LINE_SIZE; + p->start =3D dpa; + p->type =3D CXL_POISON_TYPE_INJECTED; + + /* + * Possible todo: Merge with existing entry if next to it and if same = type + */ + QLIST_INSERT_HEAD(poison_list, p, node); + ct3d->poison_list_cnt++; + + return CXL_MBOX_SUCCESS; +} + #define IMMEDIATE_CONFIG_CHANGE (1 << 1) #define IMMEDIATE_DATA_CHANGE (1 << 2) #define IMMEDIATE_POLICY_CHANGE (1 << 3) @@ -501,6 +541,8 @@ static struct cxl_cmd cxl_cmd_set[256][256] =3D { ~0, IMMEDIATE_CONFIG_CHANGE | IMMEDIATE_DATA_CHANGE }, [MEDIA_AND_POISON][GET_POISON_LIST] =3D { "MEDIA_AND_POISON_GET_POISON= _LIST", cmd_media_get_poison_list, 16, 0 }, + [MEDIA_AND_POISON][INJECT_POISON] =3D { "MEDIA_AND_POISON_INJECT_POISO= N", + cmd_media_inject_poison, 8, 0 }, }; =20 void cxl_process_mailbox(CXLDeviceState *cxl_dstate) --=20 MST From nobody Sat May 18 18:13:07 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=1687782788; cv=none; d=zohomail.com; s=zohoarc; b=iVXAwnJJ5qGtPACwT4mMKrveWdQfGBgc3ZoJxAvVp5OUSZop29q9zMMK8A7wLrdSZfm3rEgSWWFsRCOBlYXLCnqpcqzkY9FgDvxFIjJViWpEyazxraJ898efgmiyjQzA+V8z/gjq6RdDL/tsyXwYKfIw3GsTOrJGmAtPD2dzfMw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782788; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kI03NjQB8ru4Nw/R5Bq2TCinmmajORtmgzFeybe/w5g=; b=kVbHBOAxE7PjY5qBqOCnT5ORSQDu2IDTKIsRDeRV2KrqHNEHKXMykWZW3uT7vIAfJaqEINVFqn9emyvlkM5AiJnK+pz2/yaXPsKYnU41OTTq9reNA62lmdmFuMcf7aCTe0OhBA1tCG9+PjEmu8Xe2zoOT4Q2mNDKao8cpZ4bPBU= 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 1687782788964523.1058768338764; Mon, 26 Jun 2023 05:33:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlKE-0000wp-6c; Mon, 26 Jun 2023 08:28:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlKC-0000vi-Ng for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:08 -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 1qDlKA-0002YZ-V1 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:08 -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-533-pMTTG9KvMTey99pEsl7rbQ-1; Mon, 26 Jun 2023 08:28:03 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-30e4943ca7fso1218376f8f.3 for ; Mon, 26 Jun 2023 05:28:03 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id b3-20020adfe303000000b0030fd03e3d25sm7288876wrj.75.2023.06.26.05.27.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782485; 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=kI03NjQB8ru4Nw/R5Bq2TCinmmajORtmgzFeybe/w5g=; b=ZFTnwNs9X4C3Btz+wmOBZTjRHaF2OTUJ14YSQFYJ+km6RzKqXeHwlaqD85CsFKUCbmUnG4 t7k6Mb4lrfoJSXyXzwi8Ltwjv7RTxVptvzZEx1tP55Qfqr24+ebp0KisSvqNbDdBkoCaFs JnC97aot0Jlizq2yhNtIZB0nEjP1Vqo= X-MC-Unique: pMTTG9KvMTey99pEsl7rbQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782481; x=1690374481; 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=kI03NjQB8ru4Nw/R5Bq2TCinmmajORtmgzFeybe/w5g=; b=e2Tz5wVl89xxJNI2t3nzIwt7fLRDnn3iqACwROqEEGVWEK/mhxE9ATpyZHbT53Z2v1 cDFaDpbfvSbN28pHFeDTwPah3vZ0O4rgnutI2boiROtu77M7R1sLWOUDZ+PEfkcNTY6b vny4maCvo5ogYFccI1aAQblM9XvQy1ckHDJeQQH7K21J0upFnTxdBEFsq8OQHJyvjZTX 5M8x7zEZ1qRNVCadojuqfMTnV3aTIOGiQjBy6WaUQFD2rChELCTcIUhexFltnjnROTVH Q6QXuR2mqmpDQUv8CuVD7aub7YuC33J1vfEx7EZPqqNZ3MJoR6MhorBLgo9iXnN5xSbh idiA== X-Gm-Message-State: AC+VfDz9lNGvRJLsfpGNJU1eH9PXNiIbbQr8rbOHTKqiLgVJWaCfTRag l7AVx6An3sJWop3nEU++M1xMGXnd93yK6fpmfMi0TLn0Ggr1GfcO7mrl1hg3E6dzzq1ycsZZoYc ERXwau1JNNresd7baR4bHxXDa5ZnhEitOgxOAw1b6D2QffMKQZvXf6IwTKD5b4lXme1QU X-Received: by 2002:adf:e387:0:b0:313:f395:f5a3 with SMTP id e7-20020adfe387000000b00313f395f5a3mr1203027wrm.38.1687782481587; Mon, 26 Jun 2023 05:28:01 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5alL0yEsATExBsdDlntYFvgXtaKiqmPh13aYdw/59Y86OAQaOZY4BHv5pMZHaf7LNTkQlLvw== X-Received: by 2002:adf:e387:0:b0:313:f395:f5a3 with SMTP id e7-20020adfe387000000b00313f395f5a3mr1203014wrm.38.1687782481245; Mon, 26 Jun 2023 05:28:01 -0700 (PDT) Date: Mon, 26 Jun 2023 08:27:59 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Fan Ni , Ira Weiny Subject: [PULL 04/53] hw/cxl: Add clear poison mailbox command support. Message-ID: <6bda41a69bdcee8ff7dcf75df2f9647ce55908ab.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782791038100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron Current implementation is very simple so many of the corner cases do not exist (e.g. fragmenting larger poison list entries) Reviewed-by: Fan Ni Reviewed-by: Ira Weiny Signed-off-by: Jonathan Cameron Message-Id: <20230526170010.574-5-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/cxl/cxl_device.h | 1 + hw/cxl/cxl-mailbox-utils.c | 82 +++++++++++++++++++++++++++++++++++++ hw/mem/cxl_type3.c | 37 +++++++++++++++++ 3 files changed, 120 insertions(+) diff --git a/include/hw/cxl/cxl_device.h b/include/hw/cxl/cxl_device.h index 32c234ea91..73328a52cf 100644 --- a/include/hw/cxl/cxl_device.h +++ b/include/hw/cxl/cxl_device.h @@ -298,6 +298,7 @@ struct CXLType3Class { uint64_t offset); void (*set_lsa)(CXLType3Dev *ct3d, const void *buf, uint64_t size, uint64_t offset); + bool (*set_cacheline)(CXLType3Dev *ct3d, uint64_t dpa_offset, uint8_t = *data); }; =20 MemTxResult cxl_type3_read(PCIDevice *d, hwaddr host_addr, uint64_t *data, diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c index 6c476ad7f4..e3401b6be8 100644 --- a/hw/cxl/cxl-mailbox-utils.c +++ b/hw/cxl/cxl-mailbox-utils.c @@ -65,6 +65,7 @@ enum { MEDIA_AND_POISON =3D 0x43, #define GET_POISON_LIST 0x0 #define INJECT_POISON 0x1 + #define CLEAR_POISON 0x2 }; =20 /* 8.2.8.4.5.1 Command Return Codes */ @@ -512,6 +513,85 @@ static CXLRetCode cmd_media_inject_poison(struct cxl_c= md *cmd, return CXL_MBOX_SUCCESS; } =20 +static CXLRetCode cmd_media_clear_poison(struct cxl_cmd *cmd, + CXLDeviceState *cxl_dstate, + uint16_t *len_unused) +{ + CXLType3Dev *ct3d =3D container_of(cxl_dstate, CXLType3Dev, cxl_dstate= ); + CXLPoisonList *poison_list =3D &ct3d->poison_list; + CXLType3Class *cvc =3D CXL_TYPE3_GET_CLASS(ct3d); + struct clear_poison_pl { + uint64_t dpa; + uint8_t data[64]; + }; + CXLPoison *ent; + uint64_t dpa; + + struct clear_poison_pl *in =3D (void *)cmd->payload; + + dpa =3D ldq_le_p(&in->dpa); + if (dpa + CXL_CACHE_LINE_SIZE > cxl_dstate->mem_size) { + return CXL_MBOX_INVALID_PA; + } + + /* Clearing a region with no poison is not an error so always do so */ + if (cvc->set_cacheline) { + if (!cvc->set_cacheline(ct3d, dpa, in->data)) { + return CXL_MBOX_INTERNAL_ERROR; + } + } + + QLIST_FOREACH(ent, poison_list, node) { + /* + * Test for contained in entry. Simpler than general case + * as clearing 64 bytes and entries 64 byte aligned + */ + if ((dpa >=3D ent->start) && (dpa < ent->start + ent->length)) { + break; + } + } + if (!ent) { + return CXL_MBOX_SUCCESS; + } + + QLIST_REMOVE(ent, node); + ct3d->poison_list_cnt--; + + if (dpa > ent->start) { + CXLPoison *frag; + /* Cannot overflow as replacing existing entry */ + + frag =3D g_new0(CXLPoison, 1); + + frag->start =3D ent->start; + frag->length =3D dpa - ent->start; + frag->type =3D ent->type; + + QLIST_INSERT_HEAD(poison_list, frag, node); + ct3d->poison_list_cnt++; + } + + if (dpa + CXL_CACHE_LINE_SIZE < ent->start + ent->length) { + CXLPoison *frag; + + if (ct3d->poison_list_cnt =3D=3D CXL_POISON_LIST_LIMIT) { + cxl_set_poison_list_overflowed(ct3d); + } else { + frag =3D g_new0(CXLPoison, 1); + + frag->start =3D dpa + CXL_CACHE_LINE_SIZE; + frag->length =3D ent->start + ent->length - frag->start; + frag->type =3D ent->type; + QLIST_INSERT_HEAD(poison_list, frag, node); + ct3d->poison_list_cnt++; + } + } + /* Any fragments have been added, free original entry */ + g_free(ent); + + return CXL_MBOX_SUCCESS; +} + #define IMMEDIATE_CONFIG_CHANGE (1 << 1) #define IMMEDIATE_DATA_CHANGE (1 << 2) #define IMMEDIATE_POLICY_CHANGE (1 << 3) @@ -543,6 +623,8 @@ static struct cxl_cmd cxl_cmd_set[256][256] =3D { cmd_media_get_poison_list, 16, 0 }, [MEDIA_AND_POISON][INJECT_POISON] =3D { "MEDIA_AND_POISON_INJECT_POISO= N", cmd_media_inject_poison, 8, 0 }, + [MEDIA_AND_POISON][CLEAR_POISON] =3D { "MEDIA_AND_POISON_CLEAR_POISON", + cmd_media_clear_poison, 72, 0 }, }; =20 void cxl_process_mailbox(CXLDeviceState *cxl_dstate) diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index ab600735eb..d751803188 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -947,6 +947,42 @@ static void set_lsa(CXLType3Dev *ct3d, const void *buf= , uint64_t size, */ } =20 +static bool set_cacheline(CXLType3Dev *ct3d, uint64_t dpa_offset, uint8_t = *data) +{ + MemoryRegion *vmr =3D NULL, *pmr =3D NULL; + AddressSpace *as; + + if (ct3d->hostvmem) { + vmr =3D host_memory_backend_get_memory(ct3d->hostvmem); + } + if (ct3d->hostpmem) { + pmr =3D host_memory_backend_get_memory(ct3d->hostpmem); + } + + if (!vmr && !pmr) { + return false; + } + + if (dpa_offset + CXL_CACHE_LINE_SIZE > ct3d->cxl_dstate.mem_size) { + return false; + } + + if (vmr) { + if (dpa_offset < memory_region_size(vmr)) { + as =3D &ct3d->hostvmem_as; + } else { + as =3D &ct3d->hostpmem_as; + dpa_offset -=3D memory_region_size(vmr); + } + } else { + as =3D &ct3d->hostpmem_as; + } + + address_space_write(as, dpa_offset, MEMTXATTRS_UNSPECIFIED, &data, + CXL_CACHE_LINE_SIZE); + return true; +} + void cxl_set_poison_list_overflowed(CXLType3Dev *ct3d) { ct3d->poison_list_overflowed =3D true; @@ -1168,6 +1204,7 @@ static void ct3_class_init(ObjectClass *oc, void *dat= a) cvc->get_lsa_size =3D get_lsa_size; cvc->get_lsa =3D get_lsa; cvc->set_lsa =3D set_lsa; + cvc->set_cacheline =3D set_cacheline; } =20 static const TypeInfo ct3d_info =3D { --=20 MST From nobody Sat May 18 18:13:07 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=1687782517; cv=none; d=zohomail.com; s=zohoarc; b=X3iQzaiq4L3llElsoCJeVbWhmPtWLyuMICl2ISxQ3EIMb/t/dt0VDkfpEhgx+o4xIvpJ1tOGO+n1i+ZjL/fHF/dH4VPURvt7mQUGPeBj4KqczzbGvaztoYk0axZkRJG1bJ4mqmW+RM+b684ra2qip3MigWvRTipfMseTPEaZ95E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782517; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wPDxc9YqI6AoJHyJER4tPjBxwE7SdPofbV/3jbPeXFo=; b=Idos1Ix72yFG8uowDOddC56ApR8RtlYeU3CZ41dFmL01+sCM+Rr0IeYr57MPDpaOXBOIEcKhlUSoo5S6ECj6rVUTby8cZfe36uvKWeglNIH+DFh+Iuagj90JXuH6qNbxeCNRvDwKKqpH+tWZvRg/JTkOTtATet3XS4AGhYbudkc= 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 1687782517614776.9130596919847; Mon, 26 Jun 2023 05:28:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlKF-0000z0-NB; Mon, 26 Jun 2023 08:28: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 1qDlKD-0000wX-VU for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:09 -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 1qDlKC-0002Yq-0x for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:09 -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-593-TkAUlja9O3qmCckg9pN1Mg-1; Mon, 26 Jun 2023 08:28:06 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-313f442806dso379353f8f.3 for ; Mon, 26 Jun 2023 05:28:05 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id z3-20020a5d4c83000000b0030497b3224bsm7242259wrs.64.2023.06.26.05.28.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782487; 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=wPDxc9YqI6AoJHyJER4tPjBxwE7SdPofbV/3jbPeXFo=; b=eUbfBfBjVDfyePrPlxx2DGDjtAMsoTbVrHdEjxv6N6hSljS/pKnJgQc3TdIsZ+lKr2ezCa jyVre74UVbos7ueoNa5yXP/q7YYC1YTRFAs9dXz9pRfpvSOEB1a1UJAE6FIzB9Dkj8cIPq EJxc+XG5er58QQrPiVGd40jKIL7edbI= X-MC-Unique: TkAUlja9O3qmCckg9pN1Mg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782484; x=1690374484; 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=wPDxc9YqI6AoJHyJER4tPjBxwE7SdPofbV/3jbPeXFo=; b=PlaRJ1CXLF2GFfoY8Y+BiapzTOcDmHy53IBPeCpogv7A9BzNU86sWiTqVw1TtcMbGO K521yC++2/FPO0WHgdz+ZjMRY9Mn9BEwULOxrK+jgXcqqP63EeRp29DyQOaZfL9sYfEK vi25Evqw/41BTQkLofJ4cb4FsudV6rciY4GKwqJRcFfnjFZYvgMZT6E79R7C4sAS4uIk SYgupAh7SXEI5v+FTbIacwViFkKwo1BNAt+qGOVwYd6fwi9leaa4xNNZM0opJqknLppi Z2ZFg4Ti6rfYXWBS0cHO6ZljrywqHJJrWYMNuJos+C4YuoDM0SwpAMh1jHtpz9Sojsq3 pGhw== X-Gm-Message-State: AC+VfDxrwlY4fCthkz7a5Abq/KC+rCzL+3BZgxARUODeHXp11L59mhS5 +Hm20KJsejUvNChVW6SmW5bLkyf94jfU/SEYRNo5utK3vP9wxIBp7UZHTIQAjaAn+B3yAuIBM4t KuMmysynqNrPWKpbSpG/XWzR2IXVUkgAqt9jYmK7oUk5zc6vBVhIzq3PvJ1piTcw/dZ6i X-Received: by 2002:a05:6000:1c4:b0:313:f462:768 with SMTP id t4-20020a05600001c400b00313f4620768mr1289404wrx.14.1687782484356; Mon, 26 Jun 2023 05:28:04 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7MhjRp5VSwfh/TZshU9I+MfWNXNi/I5vOel3UoaGSr297QFv7HQjuORiIJZwTzzcvLvgephQ== X-Received: by 2002:a05:6000:1c4:b0:313:f462:768 with SMTP id t4-20020a05600001c400b00313f4620768mr1289384wrx.14.1687782484077; Mon, 26 Jun 2023 05:28:04 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:01 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ira Weiny , Fan Ni , Jonathan Cameron Subject: [PULL 05/53] hw/cxl/events: Add event status register 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782519589100007 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ira Weiny The device status register block was defined. However, there were no individual registers nor any data wired up. Define the event status register [CXL 3.0; 8.2.8.3.1] as part of the device status register block. Wire up the register and initialize the event status for each log. To support CXL 3.0 the version of the device status register block needs to be 2. Change the macro to allow for setting the version. Signed-off-by: Ira Weiny Reviewed-by: Fan Ni Signed-off-by: Jonathan Cameron Message-Id: <20230530133603.16934-2-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/cxl/cxl_device.h | 23 +++++++++++++++++--- include/hw/cxl/cxl_events.h | 28 ++++++++++++++++++++++++ hw/cxl/cxl-device-utils.c | 43 ++++++++++++++++++++++++++++++++----- 3 files changed, 86 insertions(+), 8 deletions(-) create mode 100644 include/hw/cxl/cxl_events.h diff --git a/include/hw/cxl/cxl_device.h b/include/hw/cxl/cxl_device.h index 73328a52cf..16993f7098 100644 --- a/include/hw/cxl/cxl_device.h +++ b/include/hw/cxl/cxl_device.h @@ -13,6 +13,7 @@ #include "hw/cxl/cxl_component.h" #include "hw/pci/pci_device.h" #include "hw/register.h" +#include "hw/cxl/cxl_events.h" =20 /* * The following is how a CXL device's Memory Device registers are laid ou= t. @@ -86,7 +87,16 @@ typedef struct cxl_device_state { MemoryRegion device_registers; =20 /* mmio for device capabilities array - 8.2.8.2 */ - MemoryRegion device; + struct { + MemoryRegion device; + union { + uint8_t dev_reg_state[CXL_DEVICE_STATUS_REGISTERS_LENGTH]; + uint16_t dev_reg_state16[CXL_DEVICE_STATUS_REGISTERS_LENGTH / = 2]; + uint32_t dev_reg_state32[CXL_DEVICE_STATUS_REGISTERS_LENGTH / = 4]; + uint64_t dev_reg_state64[CXL_DEVICE_STATUS_REGISTERS_LENGTH / = 8]; + }; + uint64_t event_status; + }; MemoryRegion memory_device; struct { MemoryRegion caps; @@ -141,6 +151,9 @@ REG64(CXL_DEV_CAP_ARRAY, 0) /* Documented as 128 bit re= gister but 64 byte access FIELD(CXL_DEV_CAP_ARRAY, CAP_VERSION, 16, 8) FIELD(CXL_DEV_CAP_ARRAY, CAP_COUNT, 32, 16) =20 +void cxl_event_set_status(CXLDeviceState *cxl_dstate, CXLEventLogType log_= type, + bool available); + /* * Helper macro to initialize capability headers for CXL devices. * @@ -175,7 +188,7 @@ CXL_DEVICE_CAPABILITY_HEADER_REGISTER(MEMORY_DEVICE, void cxl_initialize_mailbox(CXLDeviceState *cxl_dstate); void cxl_process_mailbox(CXLDeviceState *cxl_dstate); =20 -#define cxl_device_cap_init(dstate, reg, cap_id) = \ +#define cxl_device_cap_init(dstate, reg, cap_id, ver) = \ do { = \ uint32_t *cap_hdrs =3D dstate->caps_reg_state32; = \ int which =3D R_CXL_DEV_##reg##_CAP_HDR0; = \ @@ -183,7 +196,7 @@ void cxl_process_mailbox(CXLDeviceState *cxl_dstate); FIELD_DP32(cap_hdrs[which], CXL_DEV_##reg##_CAP_HDR0, = \ CAP_ID, cap_id); = \ cap_hdrs[which] =3D FIELD_DP32( = \ - cap_hdrs[which], CXL_DEV_##reg##_CAP_HDR0, CAP_VERSION, 1); = \ + cap_hdrs[which], CXL_DEV_##reg##_CAP_HDR0, CAP_VERSION, ver); = \ cap_hdrs[which + 1] =3D = \ FIELD_DP32(cap_hdrs[which + 1], CXL_DEV_##reg##_CAP_HDR1, = \ CAP_OFFSET, CXL_##reg##_REGISTERS_OFFSET); = \ @@ -192,6 +205,10 @@ void cxl_process_mailbox(CXLDeviceState *cxl_dstate); CAP_LENGTH, CXL_##reg##_REGISTERS_LENGTH); = \ } while (0) =20 +/* CXL 3.0 8.2.8.3.1 Event Status Register */ +REG64(CXL_DEV_EVENT_STATUS, 0) + FIELD(CXL_DEV_EVENT_STATUS, EVENT_STATUS, 0, 32) + /* CXL 2.0 8.2.8.4.3 Mailbox Capabilities Register */ REG32(CXL_DEV_MAILBOX_CAP, 0) FIELD(CXL_DEV_MAILBOX_CAP, PAYLOAD_SIZE, 0, 5) diff --git a/include/hw/cxl/cxl_events.h b/include/hw/cxl/cxl_events.h new file mode 100644 index 0000000000..aeb3b0590e --- /dev/null +++ b/include/hw/cxl/cxl_events.h @@ -0,0 +1,28 @@ +/* + * QEMU CXL Events + * + * Copyright (c) 2022 Intel + * + * This work is licensed under the terms of the GNU GPL, version 2. See the + * COPYING file in the top-level directory. + */ + +#ifndef CXL_EVENTS_H +#define CXL_EVENTS_H + +/* + * CXL rev 3.0 section 8.2.9.2.2; Table 8-49 + * + * Define these as the bit position for the event status register for ease= of + * setting the status. + */ +typedef enum CXLEventLogType { + CXL_EVENT_TYPE_INFO =3D 0, + CXL_EVENT_TYPE_WARN =3D 1, + CXL_EVENT_TYPE_FAIL =3D 2, + CXL_EVENT_TYPE_FATAL =3D 3, + CXL_EVENT_TYPE_DYNAMIC_CAP =3D 4, + CXL_EVENT_TYPE_MAX +} CXLEventLogType; + +#endif /* CXL_EVENTS_H */ diff --git a/hw/cxl/cxl-device-utils.c b/hw/cxl/cxl-device-utils.c index 86e1cea8ce..517f06d869 100644 --- a/hw/cxl/cxl-device-utils.c +++ b/hw/cxl/cxl-device-utils.c @@ -41,7 +41,20 @@ static uint64_t caps_reg_read(void *opaque, hwaddr offse= t, unsigned size) =20 static uint64_t dev_reg_read(void *opaque, hwaddr offset, unsigned size) { - return 0; + CXLDeviceState *cxl_dstate =3D opaque; + + switch (size) { + case 1: + return cxl_dstate->dev_reg_state[offset]; + case 2: + return cxl_dstate->dev_reg_state16[offset / size]; + case 4: + return cxl_dstate->dev_reg_state32[offset / size]; + case 8: + return cxl_dstate->dev_reg_state64[offset / size]; + default: + g_assert_not_reached(); + } } =20 static uint64_t mailbox_reg_read(void *opaque, hwaddr offset, unsigned siz= e) @@ -236,7 +249,27 @@ void cxl_device_register_block_init(Object *obj, CXLDe= viceState *cxl_dstate) &cxl_dstate->memory_device); } =20 -static void device_reg_init_common(CXLDeviceState *cxl_dstate) { } +void cxl_event_set_status(CXLDeviceState *cxl_dstate, CXLEventLogType log_= type, + bool available) +{ + if (available) { + cxl_dstate->event_status |=3D (1 << log_type); + } else { + cxl_dstate->event_status &=3D ~(1 << log_type); + } + + ARRAY_FIELD_DP64(cxl_dstate->dev_reg_state64, CXL_DEV_EVENT_STATUS, + EVENT_STATUS, cxl_dstate->event_status); +} + +static void device_reg_init_common(CXLDeviceState *cxl_dstate) +{ + CXLEventLogType log; + + for (log =3D 0; log < CXL_EVENT_TYPE_MAX; log++) { + cxl_event_set_status(cxl_dstate, log, false); + } +} =20 static void mailbox_reg_init_common(CXLDeviceState *cxl_dstate) { @@ -258,13 +291,13 @@ void cxl_device_register_init_common(CXLDeviceState *= cxl_dstate) ARRAY_FIELD_DP64(cap_hdrs, CXL_DEV_CAP_ARRAY, CAP_VERSION, 1); ARRAY_FIELD_DP64(cap_hdrs, CXL_DEV_CAP_ARRAY, CAP_COUNT, cap_count); =20 - cxl_device_cap_init(cxl_dstate, DEVICE_STATUS, 1); + cxl_device_cap_init(cxl_dstate, DEVICE_STATUS, 1, 2); device_reg_init_common(cxl_dstate); =20 - cxl_device_cap_init(cxl_dstate, MAILBOX, 2); + cxl_device_cap_init(cxl_dstate, MAILBOX, 2, 1); mailbox_reg_init_common(cxl_dstate); =20 - cxl_device_cap_init(cxl_dstate, MEMORY_DEVICE, 0x4000); + cxl_device_cap_init(cxl_dstate, MEMORY_DEVICE, 0x4000, 1); memdev_reg_init_common(cxl_dstate); =20 cxl_initialize_mailbox(cxl_dstate); --=20 MST From nobody Sat May 18 18:13:07 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=1687783140; cv=none; d=zohomail.com; s=zohoarc; b=i4LMyuJXOF4jjj/k67nK5JnlvT17ZT+9gtrJumtMSWTCR6K80JEQeJQKnN34ErRWX4p5+1SerWdreyd1ur8bca8IP02cmGHQ1tbWw8TS2nMKubIyHU8yxmdyu0QKuGl4TbEvUu2DFlp6PGm23BPvakkss27j8Bszep8dVFmtCpY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783140; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=s4Nn0d4t8O+zA9gTBqamJX6fozHQh9bN5sN8K/Y3DoY=; b=inpKkheDjRziPk50csujHjJbMY1zZVCKWnRbOZjtNOia1t3dcRmfAmZcDMjgQBoCvtZAIQy/DbiHqn44yXoP+PL54I5ewOTfz0EGgWc36wxpc3zFhmsZ9oY/89R+9VS3C8jZLlSRlOS5d5GtSOp7SdpqpYwJUFSJ1dKiNWmMlEs= 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 1687783140652172.1789052661195; Mon, 26 Jun 2023 05:39:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlKH-0000zp-My; Mon, 26 Jun 2023 08:28: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 1qDlKG-0000zQ-DZ for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:12 -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 1qDlKE-0002Zh-Qn for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:12 -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-556-nwMJv44bOQCRBsdgRhGg6A-1; Mon, 26 Jun 2023 08:28:09 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-3f7e4dc0fe5so19020905e9.3 for ; Mon, 26 Jun 2023 05:28:08 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id z3-20020a5d4d03000000b0030aec5e020fsm7219705wrt.86.2023.06.26.05.28.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782490; 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=s4Nn0d4t8O+zA9gTBqamJX6fozHQh9bN5sN8K/Y3DoY=; b=T+6F7leeHdbUEQb/Zg5TiEsKR7qtDG9jVSM9lCvv7PZMHjRZX9apWsPtF5UJewtQFb/faT lY/m/a/g7B0FVZ+Gas06lLUszdxv/7mO1y/zjaNu8Cuz32a/fdxUOJBe8eZQhBPUKI7gB9 qGES7KtbqLE7yRxjDcka7jEwUXtFZfk= X-MC-Unique: nwMJv44bOQCRBsdgRhGg6A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782487; x=1690374487; 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=s4Nn0d4t8O+zA9gTBqamJX6fozHQh9bN5sN8K/Y3DoY=; b=ZospJIKbtWdrZTTOg1+tZPC8V/qYnW8J5/pfnY4x2DZkHj79aOYYdhPcVtdyFBQ1YM xLd+czzFo4Wtt3dTTvwEGTRtWeZdvfCrLv4red0f0HRdphB3g6/cK8fLB0+V/pmn9PXS 7nyVJYCbprEmHcV5ah7Y1kh4YjI051Vz0aQotrC4SnmT15C/iMs5Ho/lUT9QRTofMGv0 ZEAVqzEoAn1tXF8Wvb+k8O9rxUsA1X389qxseGVaBdFHokVMLpcKj2OEFu/vqLAdhil9 1m+9rq84fBeKkCld6khEl3leLi2ejjiecP/Tu1stEYpNPwCaTwdlPOmHGwcxR6EV5oFU 6/lg== X-Gm-Message-State: AC+VfDzdnqVFS4kT1Gt+YYqTfsFLlK1A49jVgiD0uQAPsVOlVRcmUjZa hBR9ZD9Wq9AdhmsrbizcVKUA6VATRNeXhbLQAOYeFv6B8Ojc90Wyx9yZ/1R4/xmYEspy4N5XwOe yc2hVlrbWoPRnupkqwS14iRk4yOPdGEXZ0QICzmYIl18ZLOnscLkBFglX/p2TOpBaoNUj X-Received: by 2002:a7b:c392:0:b0:3fa:8fb1:50fe with SMTP id s18-20020a7bc392000000b003fa8fb150femr2728126wmj.15.1687782487372; Mon, 26 Jun 2023 05:28:07 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4lMSjZUQoOc0wEFqnF0xkv1Ez7xHeDyQLDrxdsbrz5KM7riWg3m2DLrt6GiBxbO58l7/eX1A== X-Received: by 2002:a7b:c392:0:b0:3fa:8fb1:50fe with SMTP id s18-20020a7bc392000000b003fa8fb150femr2728110wmj.15.1687782487118; Mon, 26 Jun 2023 05:28:07 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:04 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Ira Weiny , Fan Ni Subject: [PULL 06/53] hw/cxl: Move CXLRetCode definition to cxl_device.h Message-ID: <2f6b8c8f420d90579b29a96f46630e241dd2c1cc.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, UPPERCASE_50_75=0.008 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: 1687783142839100009 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron Following patches will need access to the mailbox return code type so move it to the header. Reviewed-by: Ira Weiny Reviewed-by: Fan Ni Signed-off-by: Jonathan Cameron Message-Id: <20230530133603.16934-3-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/cxl/cxl_device.h | 28 ++++++++++++++++++++++++++++ hw/cxl/cxl-mailbox-utils.c | 28 ---------------------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/include/hw/cxl/cxl_device.h b/include/hw/cxl/cxl_device.h index 16993f7098..9f8ee85f8a 100644 --- a/include/hw/cxl/cxl_device.h +++ b/include/hw/cxl/cxl_device.h @@ -83,6 +83,34 @@ (CXL_DEVICE_CAP_REG_SIZE + CXL_DEVICE_STATUS_REGISTERS_LENGTH + \ CXL_MAILBOX_REGISTERS_LENGTH + CXL_MEMORY_DEVICE_REGISTERS_LENGTH) =20 +/* 8.2.8.4.5.1 Command Return Codes */ +typedef enum { + CXL_MBOX_SUCCESS =3D 0x0, + CXL_MBOX_BG_STARTED =3D 0x1, + CXL_MBOX_INVALID_INPUT =3D 0x2, + CXL_MBOX_UNSUPPORTED =3D 0x3, + CXL_MBOX_INTERNAL_ERROR =3D 0x4, + CXL_MBOX_RETRY_REQUIRED =3D 0x5, + CXL_MBOX_BUSY =3D 0x6, + CXL_MBOX_MEDIA_DISABLED =3D 0x7, + CXL_MBOX_FW_XFER_IN_PROGRESS =3D 0x8, + CXL_MBOX_FW_XFER_OUT_OF_ORDER =3D 0x9, + CXL_MBOX_FW_AUTH_FAILED =3D 0xa, + CXL_MBOX_FW_INVALID_SLOT =3D 0xb, + CXL_MBOX_FW_ROLLEDBACK =3D 0xc, + CXL_MBOX_FW_REST_REQD =3D 0xd, + CXL_MBOX_INVALID_HANDLE =3D 0xe, + CXL_MBOX_INVALID_PA =3D 0xf, + CXL_MBOX_INJECT_POISON_LIMIT =3D 0x10, + CXL_MBOX_PERMANENT_MEDIA_FAILURE =3D 0x11, + CXL_MBOX_ABORTED =3D 0x12, + CXL_MBOX_INVALID_SECURITY_STATE =3D 0x13, + CXL_MBOX_INCORRECT_PASSPHRASE =3D 0x14, + CXL_MBOX_UNSUPPORTED_MAILBOX =3D 0x15, + CXL_MBOX_INVALID_PAYLOAD_LENGTH =3D 0x16, + CXL_MBOX_MAX =3D 0x17 +} CXLRetCode; + typedef struct cxl_device_state { MemoryRegion device_registers; =20 diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c index e3401b6be8..d7e114aaae 100644 --- a/hw/cxl/cxl-mailbox-utils.c +++ b/hw/cxl/cxl-mailbox-utils.c @@ -68,34 +68,6 @@ enum { #define CLEAR_POISON 0x2 }; =20 -/* 8.2.8.4.5.1 Command Return Codes */ -typedef enum { - CXL_MBOX_SUCCESS =3D 0x0, - CXL_MBOX_BG_STARTED =3D 0x1, - CXL_MBOX_INVALID_INPUT =3D 0x2, - CXL_MBOX_UNSUPPORTED =3D 0x3, - CXL_MBOX_INTERNAL_ERROR =3D 0x4, - CXL_MBOX_RETRY_REQUIRED =3D 0x5, - CXL_MBOX_BUSY =3D 0x6, - CXL_MBOX_MEDIA_DISABLED =3D 0x7, - CXL_MBOX_FW_XFER_IN_PROGRESS =3D 0x8, - CXL_MBOX_FW_XFER_OUT_OF_ORDER =3D 0x9, - CXL_MBOX_FW_AUTH_FAILED =3D 0xa, - CXL_MBOX_FW_INVALID_SLOT =3D 0xb, - CXL_MBOX_FW_ROLLEDBACK =3D 0xc, - CXL_MBOX_FW_REST_REQD =3D 0xd, - CXL_MBOX_INVALID_HANDLE =3D 0xe, - CXL_MBOX_INVALID_PA =3D 0xf, - CXL_MBOX_INJECT_POISON_LIMIT =3D 0x10, - CXL_MBOX_PERMANENT_MEDIA_FAILURE =3D 0x11, - CXL_MBOX_ABORTED =3D 0x12, - CXL_MBOX_INVALID_SECURITY_STATE =3D 0x13, - CXL_MBOX_INCORRECT_PASSPHRASE =3D 0x14, - CXL_MBOX_UNSUPPORTED_MAILBOX =3D 0x15, - CXL_MBOX_INVALID_PAYLOAD_LENGTH =3D 0x16, - CXL_MBOX_MAX =3D 0x17 -} CXLRetCode; - struct cxl_cmd; typedef CXLRetCode (*opcode_handler)(struct cxl_cmd *cmd, CXLDeviceState *cxl_dstate, uint16_t *l= en); --=20 MST From nobody Sat May 18 18:13:07 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=1687782541; cv=none; d=zohomail.com; s=zohoarc; b=Ma8ggt4FUoTG2MXI+638PQYBuSkCrr84/z4Ps1Tvzc/+jwlETGayEFo9FpjZkEs11GFJpdGkKUHpRxGMT3bSCvWl6r8iySua9a9DQiscQQdMkCDKjvaMdPtk/cre549Lsl/fpSXMNVir5zeCp/MBi3NmnJk2SSX6aWxEqWMNGO8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782541; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ctNdhPChoMKnkBU3Q/zPm8VRBg89QlSJY0fP+5jZP4w=; b=F08CpHxBgxgg0IxtzqWus227Xb7fWiJ90VEhln4x+uRt0nx9mCgjiZGuXv0R/iyTyiFYWWIL8QwVLzN5uVoDoYIFn3pwWHvl8MlwYu4Vp6kMlUlcbhpqtnh0xB1dh5kknCy8dwb5+QOedHDOlrlWhwGIMSl8wJNRkIWH2OHk71Q= 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 1687782541364889.6729467756212; Mon, 26 Jun 2023 05:29:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlKN-00011r-Ki; Mon, 26 Jun 2023 08:28: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 1qDlKM-00010p-N1 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:18 -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 1qDlKK-0002dl-Cc for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:18 -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-563-JPx6BFIvMH6-ZeKw8x5vZw-1; Mon, 26 Jun 2023 08:28:12 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-3f81f4a7596so23985325e9.1 for ; Mon, 26 Jun 2023 05:28:12 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id q6-20020a7bce86000000b003f7ea771b5dsm7612246wmj.1.2023.06.26.05.28.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782495; 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=ctNdhPChoMKnkBU3Q/zPm8VRBg89QlSJY0fP+5jZP4w=; b=H4GI+u/MoFLbWdngyeygvluSkYrpG10tESohFlzTDm3aG8c5I7KHih+NbhALOHSDqfr4oz 0d3+gsN/A+/eON+2i5iiUNc2VFfq6XoBwKTdPzqN02GJcpeU1jRjpfmPa8yF7RMZeNFHVc lWiPynYat0s0VYGBvnZUI94d7PmYXts= X-MC-Unique: JPx6BFIvMH6-ZeKw8x5vZw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782491; x=1690374491; 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=ctNdhPChoMKnkBU3Q/zPm8VRBg89QlSJY0fP+5jZP4w=; b=Xecd0x7uvrvMxrkC+kY/T1ewVfPAe29FSP/1ZwWvJ/vuVWdbyCs9vwYX2q+L+s0qAG R+kuXTGBMIhwy4kpKYBDkFkClMT4odb5ZZfjWnVu1Pb5KwhuSRvw47BmilbWxgNJH/MM SB0VtuSLo2Ui16M7t3A4PygBQSIMAHyn5brYXaabU7JoEmCi3n58jihhey9M1xlnh2yC UwXHSslNI11gzw+tgMedh2IkdrrjDlsA34pOGy3cs2lDVCTlPIgTJHb8RrThutuloMNN YnrB93iLpErY2arlaSVZuEn5r7tGdMTo/iOS7ZKRB+F0widfrEH1XOPjD7v13C0DwSRk zZfQ== X-Gm-Message-State: AC+VfDzktsPGVQSy7LVVGbQsLG6brRFuVIeB7Oaxl6oRZmpHJiSsFZnI SYrCH6NOwUZOSxrwYiSj0l9wRXvmgJZFcEQ1DRs1TYdhR5HDDIqGeIHn40wpE2/uuFLKUMrGNWY J9rpbum7bWztYCQrHqblVU3ouGM/yGmcvQJ1OgsT7NTWs5NwGcWg3R7ExH1Y4VKpBnhUJ X-Received: by 2002:a1c:f709:0:b0:3f6:9634:c8d6 with SMTP id v9-20020a1cf709000000b003f69634c8d6mr25257038wmh.18.1687782490658; Mon, 26 Jun 2023 05:28:10 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6tCGI+hQXicZvO3SoCfuY2eZd+L7dGtw/n8zIQ2+7iU0BLruXTm1+qcjri7EQdlnzqrN7+gA== X-Received: by 2002:a1c:f709:0:b0:3f6:9634:c8d6 with SMTP id v9-20020a1cf709000000b003f69634c8d6mr25257017wmh.18.1687782490238; Mon, 26 Jun 2023 05:28:10 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:07 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ira Weiny , Fan Ni , Jonathan Cameron Subject: [PULL 07/53] hw/cxl/events: Wire up get/clear event mailbox commands Message-ID: <22d7e3be0714f39bae43bd0c05f6e6d149a47b13.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782542512100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ira Weiny CXL testing is benefited from an artificial event log injection mechanism. Add an event log infrastructure to insert, get, and clear events from the various logs available on a device. Replace the stubbed out CXL Get/Clear Event mailbox commands with commands that operate on the new infrastructure. Signed-off-by: Ira Weiny Reviewed-by: Fan Ni Signed-off-by: Jonathan Cameron Message-Id: <20230530133603.16934-4-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/cxl/cxl_device.h | 25 +++++ include/hw/cxl/cxl_events.h | 55 +++++++++ hw/cxl/cxl-events.c | 217 ++++++++++++++++++++++++++++++++++++ hw/cxl/cxl-mailbox-utils.c | 40 ++++++- hw/mem/cxl_type3.c | 1 + hw/cxl/meson.build | 1 + 6 files changed, 337 insertions(+), 2 deletions(-) create mode 100644 hw/cxl/cxl-events.c diff --git a/include/hw/cxl/cxl_device.h b/include/hw/cxl/cxl_device.h index 9f8ee85f8a..d3aec1bc0e 100644 --- a/include/hw/cxl/cxl_device.h +++ b/include/hw/cxl/cxl_device.h @@ -111,6 +111,20 @@ typedef enum { CXL_MBOX_MAX =3D 0x17 } CXLRetCode; =20 +typedef struct CXLEvent { + CXLEventRecordRaw data; + QSIMPLEQ_ENTRY(CXLEvent) node; +} CXLEvent; + +typedef struct CXLEventLog { + uint16_t next_handle; + uint16_t overflow_err_count; + uint64_t first_overflow_timestamp; + uint64_t last_overflow_timestamp; + QemuMutex lock; + QSIMPLEQ_HEAD(, CXLEvent) events; +} CXLEventLog; + typedef struct cxl_device_state { MemoryRegion device_registers; =20 @@ -161,6 +175,8 @@ typedef struct cxl_device_state { uint64_t mem_size; uint64_t pmem_size; uint64_t vmem_size; + + CXLEventLog event_logs[CXL_EVENT_TYPE_MAX]; } CXLDeviceState; =20 /* Initialize the register block for a device */ @@ -353,6 +369,15 @@ MemTxResult cxl_type3_write(PCIDevice *d, hwaddr host_= addr, uint64_t data, =20 uint64_t cxl_device_get_timestamp(CXLDeviceState *cxlds); =20 +void cxl_event_init(CXLDeviceState *cxlds); +bool cxl_event_insert(CXLDeviceState *cxlds, CXLEventLogType log_type, + CXLEventRecordRaw *event); +CXLRetCode cxl_event_get_records(CXLDeviceState *cxlds, CXLGetEventPayload= *pl, + uint8_t log_type, int max_recs, + uint16_t *len); +CXLRetCode cxl_event_clear_records(CXLDeviceState *cxlds, + CXLClearEventPayload *pl); + void cxl_set_poison_list_overflowed(CXLType3Dev *ct3d); =20 #endif diff --git a/include/hw/cxl/cxl_events.h b/include/hw/cxl/cxl_events.h index aeb3b0590e..d4aaa894f1 100644 --- a/include/hw/cxl/cxl_events.h +++ b/include/hw/cxl/cxl_events.h @@ -10,6 +10,8 @@ #ifndef CXL_EVENTS_H #define CXL_EVENTS_H =20 +#include "qemu/uuid.h" + /* * CXL rev 3.0 section 8.2.9.2.2; Table 8-49 * @@ -25,4 +27,57 @@ typedef enum CXLEventLogType { CXL_EVENT_TYPE_MAX } CXLEventLogType; =20 +/* + * Common Event Record Format + * CXL rev 3.0 section 8.2.9.2.1; Table 8-42 + */ +#define CXL_EVENT_REC_HDR_RES_LEN 0xf +typedef struct CXLEventRecordHdr { + QemuUUID id; + uint8_t length; + uint8_t flags[3]; + uint16_t handle; + uint16_t related_handle; + uint64_t timestamp; + uint8_t maint_op_class; + uint8_t reserved[CXL_EVENT_REC_HDR_RES_LEN]; +} QEMU_PACKED CXLEventRecordHdr; + +#define CXL_EVENT_RECORD_DATA_LENGTH 0x50 +typedef struct CXLEventRecordRaw { + CXLEventRecordHdr hdr; + uint8_t data[CXL_EVENT_RECORD_DATA_LENGTH]; +} QEMU_PACKED CXLEventRecordRaw; +#define CXL_EVENT_RECORD_SIZE (sizeof(CXLEventRecordRaw)) + +/* + * Get Event Records output payload + * CXL rev 3.0 section 8.2.9.2.2; Table 8-50 + */ +#define CXL_GET_EVENT_FLAG_OVERFLOW BIT(0) +#define CXL_GET_EVENT_FLAG_MORE_RECORDS BIT(1) +typedef struct CXLGetEventPayload { + uint8_t flags; + uint8_t reserved1; + uint16_t overflow_err_count; + uint64_t first_overflow_timestamp; + uint64_t last_overflow_timestamp; + uint16_t record_count; + uint8_t reserved2[0xa]; + CXLEventRecordRaw records[]; +} QEMU_PACKED CXLGetEventPayload; +#define CXL_EVENT_PAYLOAD_HDR_SIZE (sizeof(CXLGetEventPayload)) + +/* + * Clear Event Records input payload + * CXL rev 3.0 section 8.2.9.2.3; Table 8-51 + */ +typedef struct CXLClearEventPayload { + uint8_t event_log; /* CXLEventLogType */ + uint8_t clear_flags; + uint8_t nr_recs; + uint8_t reserved[3]; + uint16_t handle[]; +} CXLClearEventPayload; + #endif /* CXL_EVENTS_H */ diff --git a/hw/cxl/cxl-events.c b/hw/cxl/cxl-events.c new file mode 100644 index 0000000000..5da1b76b97 --- /dev/null +++ b/hw/cxl/cxl-events.c @@ -0,0 +1,217 @@ +/* + * CXL Event processing + * + * Copyright(C) 2023 Intel Corporation. + * + * This work is licensed under the terms of the GNU GPL, version 2. See the + * COPYING file in the top-level directory. + */ + +#include + +#include "qemu/osdep.h" +#include "qemu/bswap.h" +#include "qemu/typedefs.h" +#include "qemu/error-report.h" +#include "hw/cxl/cxl.h" +#include "hw/cxl/cxl_events.h" + +/* Artificial limit on the number of events a log can hold */ +#define CXL_TEST_EVENT_OVERFLOW 8 + +static void reset_overflow(CXLEventLog *log) +{ + log->overflow_err_count =3D 0; + log->first_overflow_timestamp =3D 0; + log->last_overflow_timestamp =3D 0; +} + +void cxl_event_init(CXLDeviceState *cxlds) +{ + CXLEventLog *log; + int i; + + for (i =3D 0; i < CXL_EVENT_TYPE_MAX; i++) { + log =3D &cxlds->event_logs[i]; + log->next_handle =3D 1; + log->overflow_err_count =3D 0; + log->first_overflow_timestamp =3D 0; + log->last_overflow_timestamp =3D 0; + qemu_mutex_init(&log->lock); + QSIMPLEQ_INIT(&log->events); + } +} + +static CXLEvent *cxl_event_get_head(CXLEventLog *log) +{ + return QSIMPLEQ_FIRST(&log->events); +} + +static CXLEvent *cxl_event_get_next(CXLEvent *entry) +{ + return QSIMPLEQ_NEXT(entry, node); +} + +static int cxl_event_count(CXLEventLog *log) +{ + CXLEvent *event; + int rc =3D 0; + + QSIMPLEQ_FOREACH(event, &log->events, node) { + rc++; + } + + return rc; +} + +static bool cxl_event_empty(CXLEventLog *log) +{ + return QSIMPLEQ_EMPTY(&log->events); +} + +static void cxl_event_delete_head(CXLDeviceState *cxlds, + CXLEventLogType log_type, + CXLEventLog *log) +{ + CXLEvent *entry =3D cxl_event_get_head(log); + + reset_overflow(log); + QSIMPLEQ_REMOVE_HEAD(&log->events, node); + if (cxl_event_empty(log)) { + cxl_event_set_status(cxlds, log_type, false); + } + g_free(entry); +} + +/* + * return true if an interrupt should be generated as a result + * of inserting this event. + */ +bool cxl_event_insert(CXLDeviceState *cxlds, CXLEventLogType log_type, + CXLEventRecordRaw *event) +{ + uint64_t time; + CXLEventLog *log; + CXLEvent *entry; + + if (log_type >=3D CXL_EVENT_TYPE_MAX) { + return false; + } + + time =3D cxl_device_get_timestamp(cxlds); + + log =3D &cxlds->event_logs[log_type]; + + QEMU_LOCK_GUARD(&log->lock); + + if (cxl_event_count(log) >=3D CXL_TEST_EVENT_OVERFLOW) { + if (log->overflow_err_count =3D=3D 0) { + log->first_overflow_timestamp =3D time; + } + log->overflow_err_count++; + log->last_overflow_timestamp =3D time; + return false; + } + + entry =3D g_new0(CXLEvent, 1); + + memcpy(&entry->data, event, sizeof(*event)); + + entry->data.hdr.handle =3D cpu_to_le16(log->next_handle); + log->next_handle++; + /* 0 handle is never valid */ + if (log->next_handle =3D=3D 0) { + log->next_handle++; + } + entry->data.hdr.timestamp =3D cpu_to_le64(time); + + QSIMPLEQ_INSERT_TAIL(&log->events, entry, node); + cxl_event_set_status(cxlds, log_type, true); + + /* Count went from 0 to 1 */ + return cxl_event_count(log) =3D=3D 1; +} + +CXLRetCode cxl_event_get_records(CXLDeviceState *cxlds, CXLGetEventPayload= *pl, + uint8_t log_type, int max_recs, + uint16_t *len) +{ + CXLEventLog *log; + CXLEvent *entry; + uint16_t nr; + + if (log_type >=3D CXL_EVENT_TYPE_MAX) { + return CXL_MBOX_INVALID_INPUT; + } + + log =3D &cxlds->event_logs[log_type]; + + QEMU_LOCK_GUARD(&log->lock); + + entry =3D cxl_event_get_head(log); + for (nr =3D 0; entry && nr < max_recs; nr++) { + memcpy(&pl->records[nr], &entry->data, CXL_EVENT_RECORD_SIZE); + entry =3D cxl_event_get_next(entry); + } + + if (!cxl_event_empty(log)) { + pl->flags |=3D CXL_GET_EVENT_FLAG_MORE_RECORDS; + } + + if (log->overflow_err_count) { + pl->flags |=3D CXL_GET_EVENT_FLAG_OVERFLOW; + pl->overflow_err_count =3D cpu_to_le16(log->overflow_err_count); + pl->first_overflow_timestamp =3D cpu_to_le64(log->first_overflow_t= imestamp); + pl->last_overflow_timestamp =3D cpu_to_le64(log->last_overflow_tim= estamp); + } + + pl->record_count =3D cpu_to_le16(nr); + *len =3D CXL_EVENT_PAYLOAD_HDR_SIZE + (CXL_EVENT_RECORD_SIZE * nr); + + return CXL_MBOX_SUCCESS; +} + +CXLRetCode cxl_event_clear_records(CXLDeviceState *cxlds, CXLClearEventPay= load *pl) +{ + CXLEventLog *log; + uint8_t log_type; + CXLEvent *entry; + int nr; + + log_type =3D pl->event_log; + + if (log_type >=3D CXL_EVENT_TYPE_MAX) { + return CXL_MBOX_INVALID_INPUT; + } + + log =3D &cxlds->event_logs[log_type]; + + QEMU_LOCK_GUARD(&log->lock); + /* + * Must itterate the queue twice. + * "The device shall verify the event record handles specified in the = input + * payload are in temporal order. If the device detects an older event + * record that will not be cleared when Clear Event Records is execute= d, + * the device shall return the Invalid Handle return code and shall not + * clear any of the specified event records." + * -- CXL 3.0 8.2.9.2.3 + */ + entry =3D cxl_event_get_head(log); + for (nr =3D 0; entry && nr < pl->nr_recs; nr++) { + uint16_t handle =3D pl->handle[nr]; + + /* NOTE: Both handles are little endian. */ + if (handle =3D=3D 0 || entry->data.hdr.handle !=3D handle) { + return CXL_MBOX_INVALID_INPUT; + } + entry =3D cxl_event_get_next(entry); + } + + entry =3D cxl_event_get_head(log); + for (nr =3D 0; entry && nr < pl->nr_recs; nr++) { + cxl_event_delete_head(cxlds, log_type, log); + entry =3D cxl_event_get_head(log); + } + + return CXL_MBOX_SUCCESS; +} diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c index d7e114aaae..3f46538048 100644 --- a/hw/cxl/cxl-mailbox-utils.c +++ b/hw/cxl/cxl-mailbox-utils.c @@ -9,6 +9,7 @@ =20 #include "qemu/osdep.h" #include "hw/cxl/cxl.h" +#include "hw/cxl/cxl_events.h" #include "hw/pci/pci.h" #include "qemu/cutils.h" #include "qemu/log.h" @@ -95,11 +96,46 @@ struct cxl_cmd { return CXL_MBOX_SUCCESS; \ } =20 -DEFINE_MAILBOX_HANDLER_ZEROED(events_get_records, 0x20); -DEFINE_MAILBOX_HANDLER_NOP(events_clear_records); DEFINE_MAILBOX_HANDLER_ZEROED(events_get_interrupt_policy, 4); DEFINE_MAILBOX_HANDLER_NOP(events_set_interrupt_policy); =20 +static CXLRetCode cmd_events_get_records(struct cxl_cmd *cmd, + CXLDeviceState *cxlds, + uint16_t *len) +{ + CXLGetEventPayload *pl; + uint8_t log_type; + int max_recs; + + if (cmd->in < sizeof(log_type)) { + return CXL_MBOX_INVALID_INPUT; + } + + log_type =3D *((uint8_t *)cmd->payload); + + pl =3D (CXLGetEventPayload *)cmd->payload; + memset(pl, 0, sizeof(*pl)); + + max_recs =3D (cxlds->payload_size - CXL_EVENT_PAYLOAD_HDR_SIZE) / + CXL_EVENT_RECORD_SIZE; + if (max_recs > 0xFFFF) { + max_recs =3D 0xFFFF; + } + + return cxl_event_get_records(cxlds, pl, log_type, max_recs, len); +} + +static CXLRetCode cmd_events_clear_records(struct cxl_cmd *cmd, + CXLDeviceState *cxlds, + uint16_t *len) +{ + CXLClearEventPayload *pl; + + pl =3D (CXLClearEventPayload *)cmd->payload; + *len =3D 0; + return cxl_event_clear_records(cxlds, pl); +} + /* 8.2.9.2.1 */ static CXLRetCode cmd_firmware_update_get_info(struct cxl_cmd *cmd, CXLDeviceState *cxl_dstate, diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index d751803188..ec5a384885 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -724,6 +724,7 @@ static void ct3_realize(PCIDevice *pci_dev, Error **err= p) goto err_release_cdat; } =20 + cxl_event_init(&ct3d->cxl_dstate); return; =20 err_release_cdat: diff --git a/hw/cxl/meson.build b/hw/cxl/meson.build index 1f9aa2ea1f..e261ff3881 100644 --- a/hw/cxl/meson.build +++ b/hw/cxl/meson.build @@ -5,6 +5,7 @@ system_ss.add(when: 'CONFIG_CXL', 'cxl-mailbox-utils.c', 'cxl-host.c', 'cxl-cdat.c', + 'cxl-events.c', ), if_false: files( 'cxl-host-stubs.c', --=20 MST From nobody Sat May 18 18:13:07 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=1687782598; cv=none; d=zohomail.com; s=zohoarc; b=NakB92p8M/ztdoHHMxZmtxf/zjQWY3AcE2BOyjKa0X5G/rqFU+H1rSV8TiaMSpsM4WKDQZVR0Y40qBEqYzmKkcOlrHVua4vrzZSzJfWB1WBz+f0U3pzWhuEheuWOfSD129tSdGmakXKqa8CgFo2ehBVGArugQjtP9cl+vkjMpeA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782598; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ilGqUyOuwXdX2jgpH+sgMrGmrKAcuD6YkMqh6lWY1yI=; b=N1YzL7RdsbaQLcHWwS8HoN8xChk9+Bd6+s6VGN+XF5z3USYBKYRhYjZaa85I4r7+GVk6Vpjnb/XPumNgLhHHcz3X1rtDyNm6ry3F1ybouk7hOivxs2jN8jj8URGGWxtMvX2K5UI3DRrNVsnBDrQH6VIUUY9Emf280aumkuvJ15E= 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 168778259877481.12498552744432; Mon, 26 Jun 2023 05:29:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlKQ-0001Ag-E1; Mon, 26 Jun 2023 08:28:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlKO-00012A-43 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:20 -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 1qDlKL-0002f6-P1 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:19 -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-604-g8Fpz2ecNp-o-aPzFpaTkA-1; Mon, 26 Jun 2023 08:28:15 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-313e896c998so1043869f8f.2 for ; Mon, 26 Jun 2023 05:28:15 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id u12-20020adfdd4c000000b0030903d44dbcsm7292150wrm.33.2023.06.26.05.28.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782497; 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=ilGqUyOuwXdX2jgpH+sgMrGmrKAcuD6YkMqh6lWY1yI=; b=ZED/y8OPolYyFAY6bXJrtBQjxVOF5oZbFzZyU9w+mvZ4/YjT+OPqqYidLUGFqzGlvYTqrg Q8+XWMYCAO6oxYndTRoTVd4TiN+ZfHgSdy9VFxINOSK8lkzXWmODt45kJSc0sJbDKLSC3Y +VGUf85bRlG7oaFjUnrOB0ZCX1ogJl4= X-MC-Unique: g8Fpz2ecNp-o-aPzFpaTkA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782493; x=1690374493; 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=ilGqUyOuwXdX2jgpH+sgMrGmrKAcuD6YkMqh6lWY1yI=; b=fucnCXp3yIdF2E1LlANh3dq7T7z0u/LNPou5oJ3xpPDk1TwPo+pAr0JEvSPYn0+qbX wUx6x5exOmB9IV4YjOutTPlBld6zS/1SGZBh/VapHusKvQs9jO09Qd2Zjpmw7tQIEBNw AwOBMSTd5IbS64Za74XPmNi5JWyViRSOwl5PF9XheXduNEukW3Z0BV1elpREu8Okupk5 NhQnJTyE52mBDGnLDwLG++I6lHI5Yduvj9BIl5oEU7GMbTkWkSUunIeO9ORAhBC0jer9 Oll1+aYFL1/rK6K1BJVikXw+O6pFdzhGqUnfY5r4BpKdTMKn5WcSk+kVu37eUzmRd47V VWkw== X-Gm-Message-State: AC+VfDxe0BjuXyTjL36jlPkSOL2W35eyezEPJzFeJIK1ufVB4BbS2+YC qzfzcgAfdHN3pwdYGGKiza8yUxZ9oNceXBfVQlCwY+yDIeULZK074JUDy/78wG6hI5rE54Dc1bJ l0HZgxWTd66sXYOC/uVs6m2MQWEwuN3LioIFe74+9COt2mYuRal+keGMgzeeUe8QkJtJb X-Received: by 2002:a5d:4d0d:0:b0:313:f4e4:9dd with SMTP id z13-20020a5d4d0d000000b00313f4e409ddmr1250461wrt.62.1687782493458; Mon, 26 Jun 2023 05:28:13 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7xrdtrj9AsdVSN1QPlw5M1eGMtPDCd5c+eebIhnNP84RHLqdphe4flaKnyzS1tFiV1rYk8Sg== X-Received: by 2002:a5d:4d0d:0:b0:313:f4e4:9dd with SMTP id z13-20020a5d4d0d000000b00313f4e409ddmr1250442wrt.62.1687782493106; Mon, 26 Jun 2023 05:28:13 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:10 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ira Weiny , Fan Ni , Davidlohr Bueso , Jonathan Cameron Subject: [PULL 08/53] hw/cxl/events: Add event interrupt support Message-ID: <6676bb973ba53d60886b06213ec98fbd736d66a1.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782599463100002 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ira Weiny Replace the stubbed out CXL Get/Set Event interrupt policy mailbox commands. Enable those commands to control interrupts for each of the event log types. Skip the standard input mailbox length on the Set command due to DCD being optional. Perform the checks separately. Signed-off-by: Ira Weiny Reviewed-by: Fan Ni Reviewed-by: Davidlohr Bueso Signed-off-by: Jonathan Cameron Message-Id: <20230530133603.16934-5-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/cxl/cxl_device.h | 6 +- include/hw/cxl/cxl_events.h | 23 ++++++++ hw/cxl/cxl-events.c | 33 ++++++++++- hw/cxl/cxl-mailbox-utils.c | 106 +++++++++++++++++++++++++++++------- hw/mem/cxl_type3.c | 4 +- 5 files changed, 147 insertions(+), 25 deletions(-) diff --git a/include/hw/cxl/cxl_device.h b/include/hw/cxl/cxl_device.h index d3aec1bc0e..1978730fba 100644 --- a/include/hw/cxl/cxl_device.h +++ b/include/hw/cxl/cxl_device.h @@ -121,6 +121,8 @@ typedef struct CXLEventLog { uint16_t overflow_err_count; uint64_t first_overflow_timestamp; uint64_t last_overflow_timestamp; + bool irq_enabled; + int irq_vec; QemuMutex lock; QSIMPLEQ_HEAD(, CXLEvent) events; } CXLEventLog; @@ -369,7 +371,7 @@ MemTxResult cxl_type3_write(PCIDevice *d, hwaddr host_a= ddr, uint64_t data, =20 uint64_t cxl_device_get_timestamp(CXLDeviceState *cxlds); =20 -void cxl_event_init(CXLDeviceState *cxlds); +void cxl_event_init(CXLDeviceState *cxlds, int start_msg_num); bool cxl_event_insert(CXLDeviceState *cxlds, CXLEventLogType log_type, CXLEventRecordRaw *event); CXLRetCode cxl_event_get_records(CXLDeviceState *cxlds, CXLGetEventPayload= *pl, @@ -378,6 +380,8 @@ CXLRetCode cxl_event_get_records(CXLDeviceState *cxlds,= CXLGetEventPayload *pl, CXLRetCode cxl_event_clear_records(CXLDeviceState *cxlds, CXLClearEventPayload *pl); =20 +void cxl_event_irq_assert(CXLType3Dev *ct3d); + void cxl_set_poison_list_overflowed(CXLType3Dev *ct3d); =20 #endif diff --git a/include/hw/cxl/cxl_events.h b/include/hw/cxl/cxl_events.h index d4aaa894f1..4bf8b7aa08 100644 --- a/include/hw/cxl/cxl_events.h +++ b/include/hw/cxl/cxl_events.h @@ -80,4 +80,27 @@ typedef struct CXLClearEventPayload { uint16_t handle[]; } CXLClearEventPayload; =20 +/** + * Event Interrupt Policy + * + * CXL rev 3.0 section 8.2.9.2.4; Table 8-52 + */ +typedef enum CXLEventIntMode { + CXL_INT_NONE =3D 0x00, + CXL_INT_MSI_MSIX =3D 0x01, + CXL_INT_FW =3D 0x02, + CXL_INT_RES =3D 0x03, +} CXLEventIntMode; +#define CXL_EVENT_INT_MODE_MASK 0x3 +#define CXL_EVENT_INT_SETTING(vector) ((((uint8_t)vector & 0xf) << 4) | CX= L_INT_MSI_MSIX) +typedef struct CXLEventInterruptPolicy { + uint8_t info_settings; + uint8_t warn_settings; + uint8_t failure_settings; + uint8_t fatal_settings; + uint8_t dyn_cap_settings; +} QEMU_PACKED CXLEventInterruptPolicy; +/* DCD is optional but other fields are not */ +#define CXL_EVENT_INT_SETTING_MIN_LEN 4 + #endif /* CXL_EVENTS_H */ diff --git a/hw/cxl/cxl-events.c b/hw/cxl/cxl-events.c index 5da1b76b97..d161d57456 100644 --- a/hw/cxl/cxl-events.c +++ b/hw/cxl/cxl-events.c @@ -13,6 +13,8 @@ #include "qemu/bswap.h" #include "qemu/typedefs.h" #include "qemu/error-report.h" +#include "hw/pci/msi.h" +#include "hw/pci/msix.h" #include "hw/cxl/cxl.h" #include "hw/cxl/cxl_events.h" =20 @@ -26,7 +28,7 @@ static void reset_overflow(CXLEventLog *log) log->last_overflow_timestamp =3D 0; } =20 -void cxl_event_init(CXLDeviceState *cxlds) +void cxl_event_init(CXLDeviceState *cxlds, int start_msg_num) { CXLEventLog *log; int i; @@ -37,9 +39,16 @@ void cxl_event_init(CXLDeviceState *cxlds) log->overflow_err_count =3D 0; log->first_overflow_timestamp =3D 0; log->last_overflow_timestamp =3D 0; + log->irq_enabled =3D false; + log->irq_vec =3D start_msg_num++; qemu_mutex_init(&log->lock); QSIMPLEQ_INIT(&log->events); } + + /* Override -- Dynamic Capacity uses the same vector as info */ + cxlds->event_logs[CXL_EVENT_TYPE_DYNAMIC_CAP].irq_vec =3D + cxlds->event_logs[CXL_EVENT_TYPE_INFO].irq_vec; + } =20 static CXLEvent *cxl_event_get_head(CXLEventLog *log) @@ -215,3 +224,25 @@ CXLRetCode cxl_event_clear_records(CXLDeviceState *cxl= ds, CXLClearEventPayload * =20 return CXL_MBOX_SUCCESS; } + +void cxl_event_irq_assert(CXLType3Dev *ct3d) +{ + CXLDeviceState *cxlds =3D &ct3d->cxl_dstate; + PCIDevice *pdev =3D &ct3d->parent_obj; + int i; + + for (i =3D 0; i < CXL_EVENT_TYPE_MAX; i++) { + CXLEventLog *log =3D &cxlds->event_logs[i]; + + if (!log->irq_enabled || cxl_event_empty(log)) { + continue; + } + + /* Notifies interrupt, legacy IRQ is not supported */ + if (msix_enabled(pdev)) { + msix_notify(pdev, log->irq_vec); + } else if (msi_enabled(pdev)) { + msi_notify(pdev, log->irq_vec); + } + } +} diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c index 3f46538048..02f9b5a870 100644 --- a/hw/cxl/cxl-mailbox-utils.c +++ b/hw/cxl/cxl-mailbox-utils.c @@ -80,25 +80,6 @@ struct cxl_cmd { uint8_t *payload; }; =20 -#define DEFINE_MAILBOX_HANDLER_ZEROED(name, size) \ - uint16_t __zero##name =3D size; = \ - static CXLRetCode cmd_##name(struct cxl_cmd *cmd, = \ - CXLDeviceState *cxl_dstate, uint16_t *len= ) \ - { \ - *len =3D __zero##name; = \ - memset(cmd->payload, 0, *len); \ - return CXL_MBOX_SUCCESS; \ - } -#define DEFINE_MAILBOX_HANDLER_NOP(name) \ - static CXLRetCode cmd_##name(struct cxl_cmd *cmd, = \ - CXLDeviceState *cxl_dstate, uint16_t *len= ) \ - { \ - return CXL_MBOX_SUCCESS; \ - } - -DEFINE_MAILBOX_HANDLER_ZEROED(events_get_interrupt_policy, 4); -DEFINE_MAILBOX_HANDLER_NOP(events_set_interrupt_policy); - static CXLRetCode cmd_events_get_records(struct cxl_cmd *cmd, CXLDeviceState *cxlds, uint16_t *len) @@ -136,6 +117,88 @@ static CXLRetCode cmd_events_clear_records(struct cxl_= cmd *cmd, return cxl_event_clear_records(cxlds, pl); } =20 +static CXLRetCode cmd_events_get_interrupt_policy(struct cxl_cmd *cmd, + CXLDeviceState *cxlds, + uint16_t *len) +{ + CXLEventInterruptPolicy *policy; + CXLEventLog *log; + + policy =3D (CXLEventInterruptPolicy *)cmd->payload; + memset(policy, 0, sizeof(*policy)); + + log =3D &cxlds->event_logs[CXL_EVENT_TYPE_INFO]; + if (log->irq_enabled) { + policy->info_settings =3D CXL_EVENT_INT_SETTING(log->irq_vec); + } + + log =3D &cxlds->event_logs[CXL_EVENT_TYPE_WARN]; + if (log->irq_enabled) { + policy->warn_settings =3D CXL_EVENT_INT_SETTING(log->irq_vec); + } + + log =3D &cxlds->event_logs[CXL_EVENT_TYPE_FAIL]; + if (log->irq_enabled) { + policy->failure_settings =3D CXL_EVENT_INT_SETTING(log->irq_vec); + } + + log =3D &cxlds->event_logs[CXL_EVENT_TYPE_FATAL]; + if (log->irq_enabled) { + policy->fatal_settings =3D CXL_EVENT_INT_SETTING(log->irq_vec); + } + + log =3D &cxlds->event_logs[CXL_EVENT_TYPE_DYNAMIC_CAP]; + if (log->irq_enabled) { + /* Dynamic Capacity borrows the same vector as info */ + policy->dyn_cap_settings =3D CXL_INT_MSI_MSIX; + } + + *len =3D sizeof(*policy); + return CXL_MBOX_SUCCESS; +} + +static CXLRetCode cmd_events_set_interrupt_policy(struct cxl_cmd *cmd, + CXLDeviceState *cxlds, + uint16_t *len) +{ + CXLEventInterruptPolicy *policy; + CXLEventLog *log; + + if (*len < CXL_EVENT_INT_SETTING_MIN_LEN) { + return CXL_MBOX_INVALID_PAYLOAD_LENGTH; + } + + policy =3D (CXLEventInterruptPolicy *)cmd->payload; + + log =3D &cxlds->event_logs[CXL_EVENT_TYPE_INFO]; + log->irq_enabled =3D (policy->info_settings & CXL_EVENT_INT_MODE_MASK)= =3D=3D + CXL_INT_MSI_MSIX; + + log =3D &cxlds->event_logs[CXL_EVENT_TYPE_WARN]; + log->irq_enabled =3D (policy->warn_settings & CXL_EVENT_INT_MODE_MASK)= =3D=3D + CXL_INT_MSI_MSIX; + + log =3D &cxlds->event_logs[CXL_EVENT_TYPE_FAIL]; + log->irq_enabled =3D (policy->failure_settings & CXL_EVENT_INT_MODE_MA= SK) =3D=3D + CXL_INT_MSI_MSIX; + + log =3D &cxlds->event_logs[CXL_EVENT_TYPE_FATAL]; + log->irq_enabled =3D (policy->fatal_settings & CXL_EVENT_INT_MODE_MASK= ) =3D=3D + CXL_INT_MSI_MSIX; + + /* DCD is optional */ + if (*len < sizeof(*policy)) { + return CXL_MBOX_SUCCESS; + } + + log =3D &cxlds->event_logs[CXL_EVENT_TYPE_DYNAMIC_CAP]; + log->irq_enabled =3D (policy->dyn_cap_settings & CXL_EVENT_INT_MODE_MA= SK) =3D=3D + CXL_INT_MSI_MSIX; + + *len =3D sizeof(*policy); + return CXL_MBOX_SUCCESS; +} + /* 8.2.9.2.1 */ static CXLRetCode cmd_firmware_update_get_info(struct cxl_cmd *cmd, CXLDeviceState *cxl_dstate, @@ -611,9 +674,10 @@ static struct cxl_cmd cxl_cmd_set[256][256] =3D { [EVENTS][CLEAR_RECORDS] =3D { "EVENTS_CLEAR_RECORDS", cmd_events_clear_records, ~0, IMMEDIATE_LOG_CHANGE }, [EVENTS][GET_INTERRUPT_POLICY] =3D { "EVENTS_GET_INTERRUPT_POLICY", - cmd_events_get_interrupt_policy, 0, 0 }, + cmd_events_get_interrupt_policy, 0, = 0 }, [EVENTS][SET_INTERRUPT_POLICY] =3D { "EVENTS_SET_INTERRUPT_POLICY", - cmd_events_set_interrupt_policy, 4, IMMEDIATE_CONFIG_CHANGE }, + cmd_events_set_interrupt_policy, + ~0, IMMEDIATE_CONFIG_CHANGE }, [FIRMWARE_UPDATE][GET_INFO] =3D { "FIRMWARE_UPDATE_GET_INFO", cmd_firmware_update_get_info, 0, 0 }, [TIMESTAMP][GET] =3D { "TIMESTAMP_GET", cmd_timestamp_get, 0, 0 }, diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index ec5a384885..c9e347f42b 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -659,7 +659,7 @@ static void ct3_realize(PCIDevice *pci_dev, Error **err= p) ComponentRegisters *regs =3D &cxl_cstate->crb; MemoryRegion *mr =3D ®s->component_registers; uint8_t *pci_conf =3D pci_dev->config; - unsigned short msix_num =3D 1; + unsigned short msix_num =3D 6; int i, rc; =20 QTAILQ_INIT(&ct3d->error_list); @@ -723,8 +723,8 @@ static void ct3_realize(PCIDevice *pci_dev, Error **err= p) if (rc) { goto err_release_cdat; } + cxl_event_init(&ct3d->cxl_dstate, 2); =20 - cxl_event_init(&ct3d->cxl_dstate); return; =20 err_release_cdat: --=20 MST From nobody Sat May 18 18:13:07 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=1687782523; cv=none; d=zohomail.com; s=zohoarc; b=BgKMfJCrUqwpBI78h1kVhhmKz687rUWoqO9DpeDeItgfYb7lHk2ZlNv/7uHKpXjT+2CnVCC0tW+Jff8ULsZqL/GJTPav/xBZ9HEHzccGUgJmFznF65MFZePfrCkp3gSU413EICtvr2qHjd3SkDF0K2FKQtVUqBeiEWME75Qx+mw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782523; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=QoKHLQ/c7+kTFkx0bLsKMbFSfRkTndqGkhVUMRqx9vE=; b=H+/QAtmPVEKzAZrTe3U77jc5w7ndSk7dQuwtSpazMwDMmBO2S7PbWCM58NcW9MTnFhgfUDFNCo6PlyR9KCbON4IBOlr6NMZzcIkh32scfaNNKIm9rIZ6Z2taG1ez4U+rHlFhTvMLsUNimsDFL+51I0qYbdJQ4MDCpBJeNKMAznI= 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 1687782523489200.02360082798123; Mon, 26 Jun 2023 05:28:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlKU-0001TO-Ce; Mon, 26 Jun 2023 08:28:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlKS-0001Jy-Fj for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:24 -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 1qDlKQ-0002j1-3m for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:24 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-169-3BhPHKbpN-CKFwEXMI4Z0A-1; Mon, 26 Jun 2023 08:28:20 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-31275586740so1841908f8f.3 for ; Mon, 26 Jun 2023 05:28:20 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id n2-20020a5d67c2000000b003127741d7desm7180347wrw.58.2023.06.26.05.28.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782501; 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=QoKHLQ/c7+kTFkx0bLsKMbFSfRkTndqGkhVUMRqx9vE=; b=SVLdVFyw4cbRwpYt9vKNIhO800d5I6mkHbaaYLXcvxty7DXbJHAj3uVrZJQgXJQVzVXn05 sTQs7wtwW0wQzbLZINJBn/MESS44Jgkf/Jq5mPJkN2A1j5iLKNFGlZwje7TEtpRiaNLNoZ eGKAjfk+bdmztge0u70Q3iaC0eg+rU0= X-MC-Unique: 3BhPHKbpN-CKFwEXMI4Z0A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782498; x=1690374498; 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=QoKHLQ/c7+kTFkx0bLsKMbFSfRkTndqGkhVUMRqx9vE=; b=f2VZRkjWtLVEbkWue/LK2zypYwsYkIxs/gVR8JxppU7d5Zh5Ot3GoptI5T+lgOjRFF DYQyaQN3mXUn2OqQxHl48SvVzI6a1kB4noNqjJlSne2Dgq4OExCsAHxV6HlbaK85ETdX KlcJuKYzoXtdTJhjbW+g7ALHn+5k+9Kkc41evroAEiopbZM/szr2oUclBFefW4quLB6n BJuOoGf94+W3FJQHHdZY1XAHQLPjtjwr1DSfTssGGSlb0KBrS+97IlEKhegxFe4z6pKV /UreSaw8K7knh+/BiRzVPoizETRzTu1j4d+TBoKOzjJAHSUfuKZJmwF06dmC42bTRueA BqOQ== X-Gm-Message-State: AC+VfDy9g0pFlOPfSkVT8t1Xq3ViDp60/DzIzYsGfdCqq/m3HuBwq7I5 iaYFUkab0NRhOHpfS78mduhUYMUW6joYCiv/lUDQGPzR1UV+BV0F5+2C2upyDrBvTh83ODdZZfV 3rgvJu4VPoFy5/Yon4L9nHUsVoCdN70LW4Cv6VQTBik09sqLcmFjm/A0VH8FHKeY6iJ5E X-Received: by 2002:a5d:6687:0:b0:313:ef93:925a with SMTP id l7-20020a5d6687000000b00313ef93925amr2550593wru.24.1687782498543; Mon, 26 Jun 2023 05:28:18 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5EnlJEEnplPbc/CAtMSYvrGWt9RUKWrlSEFpzyxsPkc19keLmNPJQziZfARzBqMvdsgHGONw== X-Received: by 2002:a5d:6687:0:b0:313:ef93:925a with SMTP id l7-20020a5d6687000000b00313ef93925amr2550575wru.24.1687782498235; Mon, 26 Jun 2023 05:28:18 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:13 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ira Weiny , Fan Ni , Markus Armbruster , Jonathan Cameron , Eric Blake Subject: [PULL 09/53] hw/cxl/events: Add injection of General Media Events 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782524913100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ira Weiny To facilitate testing provide a QMP command to inject a general media event. The event can be added to the log specified. Signed-off-by: Ira Weiny Reviewed-by: Fan Ni Acked-by: Markus Armbruster Signed-off-by: Jonathan Cameron Message-Id: <20230530133603.16934-6-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- qapi/cxl.json | 74 ++++++++++++++++++++++++ include/hw/cxl/cxl_events.h | 20 +++++++ hw/mem/cxl_type3.c | 111 ++++++++++++++++++++++++++++++++++++ hw/mem/cxl_type3_stubs.c | 10 ++++ 4 files changed, 215 insertions(+) diff --git a/qapi/cxl.json b/qapi/cxl.json index ed1c7eea3a..d509430844 100644 --- a/qapi/cxl.json +++ b/qapi/cxl.json @@ -5,6 +5,80 @@ # =3D CXL devices ## =20 +## +# @CxlEventLog: +# +# CXL has a number of separate event logs for different types of +# events. Each such event log is handled and signaled independently. +# +# @informational: Information Event Log +# +# @warning: Warning Event Log +# +# @failure: Failure Event Log +# +# @fatal: Fatal Event Log +# +# Since: 8.1 +## +{ 'enum': 'CxlEventLog', + 'data': ['informational', + 'warning', + 'failure', + 'fatal'] + } + +## +# @cxl-inject-general-media-event: +# +# Inject an event record for a General Media Event (CXL r3.0 +# 8.2.9.2.1.1). This event type is reported via one of the event logs +# specified via the log parameter. +# +# @path: CXL type 3 device canonical QOM path +# +# @log: event log to add the event to +# +# @flags: Event Record Flags. See CXL r3.0 Table 8-42 Common Event +# Record Format, Event Record Flags for subfield definitions. +# +# @dpa: Device Physical Address (relative to @path device). Note +# lower bits include some flags. See CXL r3.0 Table 8-43 General +# Media Event Record, Physical Address. +# +# @descriptor: Memory Event Descriptor with additional memory event +# information. See CXL r3.0 Table 8-43 General Media Event +# Record, Memory Event Descriptor for bit definitions. +# +# @type: Type of memory event that occurred. See CXL r3.0 Table 8-43 +# General Media Event Record, Memory Event Type for possible +# values. +# +# @transaction-type: Type of first transaction that caused the event +# to occur. See CXL r3.0 Table 8-43 General Media Event Record, +# Transaction Type for possible values. +# +# @channel: The channel of the memory event location. A channel is an +# interface that can be independently accessed for a transaction. +# +# @rank: The rank of the memory event location. A rank is a set of +# memory devices on a channel that together execute a transaction. +# +# @device: Bitmask that represents all devices in the rank associated +# with the memory event location. +# +# @component-id: Device specific component identifier for the event. +# May describe a field replaceable sub-component of the device. +# +# Since: 8.1 +## +{ 'command': 'cxl-inject-general-media-event', + 'data': { 'path': 'str', 'log': 'CxlEventLog', 'flags': 'uint8', + 'dpa': 'uint64', 'descriptor': 'uint8', + 'type': 'uint8', 'transaction-type': 'uint8', + '*channel': 'uint8', '*rank': 'uint8', + '*device': 'uint32', '*component-id': 'str' } } + ## # @cxl-inject-poison: # diff --git a/include/hw/cxl/cxl_events.h b/include/hw/cxl/cxl_events.h index 4bf8b7aa08..b189193f4c 100644 --- a/include/hw/cxl/cxl_events.h +++ b/include/hw/cxl/cxl_events.h @@ -103,4 +103,24 @@ typedef struct CXLEventInterruptPolicy { /* DCD is optional but other fields are not */ #define CXL_EVENT_INT_SETTING_MIN_LEN 4 =20 +/* + * General Media Event Record + * CXL rev 3.0 Section 8.2.9.2.1.1; Table 8-43 + */ +#define CXL_EVENT_GEN_MED_COMP_ID_SIZE 0x10 +#define CXL_EVENT_GEN_MED_RES_SIZE 0x2e +typedef struct CXLEventGenMedia { + CXLEventRecordHdr hdr; + uint64_t phys_addr; + uint8_t descriptor; + uint8_t type; + uint8_t transaction_type; + uint16_t validity_flags; + uint8_t channel; + uint8_t rank; + uint8_t device[3]; + uint8_t component_id[CXL_EVENT_GEN_MED_COMP_ID_SIZE]; + uint8_t reserved[CXL_EVENT_GEN_MED_RES_SIZE]; +} QEMU_PACKED CXLEventGenMedia; + #endif /* CXL_EVENTS_H */ diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index c9e347f42b..b1618779d2 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -1181,6 +1181,117 @@ void qmp_cxl_inject_correctable_error(const char *p= ath, CxlCorErrorType type, pcie_aer_inject_error(PCI_DEVICE(obj), &err); } =20 +static void cxl_assign_event_header(CXLEventRecordHdr *hdr, + const QemuUUID *uuid, uint32_t flags, + uint8_t length, uint64_t timestamp) +{ + st24_le_p(&hdr->flags, flags); + hdr->length =3D length; + memcpy(&hdr->id, uuid, sizeof(hdr->id)); + stq_le_p(&hdr->timestamp, timestamp); +} + +static const QemuUUID gen_media_uuid =3D { + .data =3D UUID(0xfbcd0a77, 0xc260, 0x417f, + 0x85, 0xa9, 0x08, 0x8b, 0x16, 0x21, 0xeb, 0xa6), +}; + +#define CXL_GMER_VALID_CHANNEL BIT(0) +#define CXL_GMER_VALID_RANK BIT(1) +#define CXL_GMER_VALID_DEVICE BIT(2) +#define CXL_GMER_VALID_COMPONENT BIT(3) + +static int ct3d_qmp_cxl_event_log_enc(CxlEventLog log) +{ + switch (log) { + case CXL_EVENT_LOG_INFORMATIONAL: + return CXL_EVENT_TYPE_INFO; + case CXL_EVENT_LOG_WARNING: + return CXL_EVENT_TYPE_WARN; + case CXL_EVENT_LOG_FAILURE: + return CXL_EVENT_TYPE_FAIL; + case CXL_EVENT_LOG_FATAL: + return CXL_EVENT_TYPE_FATAL; +/* DCD not yet supported */ + default: + return -EINVAL; + } +} +/* Component ID is device specific. Define this as a string. */ +void qmp_cxl_inject_general_media_event(const char *path, CxlEventLog log, + uint8_t flags, uint64_t dpa, + uint8_t descriptor, uint8_t type, + uint8_t transaction_type, + bool has_channel, uint8_t channel, + bool has_rank, uint8_t rank, + bool has_device, uint32_t device, + const char *component_id, + Error **errp) +{ + Object *obj =3D object_resolve_path(path, NULL); + CXLEventGenMedia gem; + CXLEventRecordHdr *hdr =3D &gem.hdr; + CXLDeviceState *cxlds; + CXLType3Dev *ct3d; + uint16_t valid_flags =3D 0; + uint8_t enc_log; + int rc; + + if (!obj) { + error_setg(errp, "Unable to resolve path"); + return; + } + if (!object_dynamic_cast(obj, TYPE_CXL_TYPE3)) { + error_setg(errp, "Path does not point to a CXL type 3 device"); + return; + } + ct3d =3D CXL_TYPE3(obj); + cxlds =3D &ct3d->cxl_dstate; + + rc =3D ct3d_qmp_cxl_event_log_enc(log); + if (rc < 0) { + error_setg(errp, "Unhandled error log type"); + return; + } + enc_log =3D rc; + + memset(&gem, 0, sizeof(gem)); + cxl_assign_event_header(hdr, &gen_media_uuid, flags, sizeof(gem), + cxl_device_get_timestamp(&ct3d->cxl_dstate)); + + stq_le_p(&gem.phys_addr, dpa); + gem.descriptor =3D descriptor; + gem.type =3D type; + gem.transaction_type =3D transaction_type; + + if (has_channel) { + gem.channel =3D channel; + valid_flags |=3D CXL_GMER_VALID_CHANNEL; + } + + if (has_rank) { + gem.rank =3D rank; + valid_flags |=3D CXL_GMER_VALID_RANK; + } + + if (has_device) { + st24_le_p(gem.device, device); + valid_flags |=3D CXL_GMER_VALID_DEVICE; + } + + if (component_id) { + strncpy((char *)gem.component_id, component_id, + sizeof(gem.component_id) - 1); + valid_flags |=3D CXL_GMER_VALID_COMPONENT; + } + + stw_le_p(&gem.validity_flags, valid_flags); + + if (cxl_event_insert(cxlds, enc_log, (CXLEventRecordRaw *)&gem)) { + cxl_event_irq_assert(ct3d); + } +} + static void ct3_class_init(ObjectClass *oc, void *data) { DeviceClass *dc =3D DEVICE_CLASS(oc); diff --git a/hw/mem/cxl_type3_stubs.c b/hw/mem/cxl_type3_stubs.c index fd1166a610..4dfbdf9268 100644 --- a/hw/mem/cxl_type3_stubs.c +++ b/hw/mem/cxl_type3_stubs.c @@ -3,6 +3,16 @@ #include "qapi/error.h" #include "qapi/qapi-commands-cxl.h" =20 +void qmp_cxl_inject_general_media_event(const char *path, CxlEventLog log, + uint8_t flags, uint64_t dpa, + uint8_t descriptor, uint8_t type, + uint8_t transaction_type, + bool has_channel, uint8_t channel, + bool has_rank, uint8_t rank, + bool has_device, uint32_t device, + const char *component_id, + Error **errp) {} + void qmp_cxl_inject_poison(const char *path, uint64_t start, uint64_t leng= th, Error **errp) { --=20 MST From nobody Sat May 18 18:13:07 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=1687783267; cv=none; d=zohomail.com; s=zohoarc; b=g/WCFyUchrIhBM6nOt7aWd82vwGxlrk8+aTIAjGqGmabwiJn090Opu4FLnkvvRBWm+Sc4ubWlfDkEmIpcQeR5EILdSK5djqHd+kTo0XtVI7QdCnQVDR/pIjTwlRzoHYq2QSqWhEsViLdjkPsWOcVhMgocAZCYsCIi5ft5uvDBtY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783267; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+QhAsN/XuaZ11bEG8Ru5fkaUsTR7CPbUnVIC/HsX/ME=; b=iXy41baN0wAkRKgM6ZRJFSIH8Db+hYEkM2Mb6ks8hHcp6JJfuMrshHD9nT5887oeWZ6X+kixezHP5tuUh4XyE9GXPOPnR8mZcAvW2FoLmNr+6udRvHNg8o4jWRhfG/0KsdE8osNMa73Jm/U0QvUstMImr5zAxYwITAHpvDaaLSw= 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 16877832679620.5742521574312605; Mon, 26 Jun 2023 05:41:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlKY-0001hO-2s; Mon, 26 Jun 2023 08:28:30 -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 1qDlKW-0001cP-6p for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:28 -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 1qDlKU-0002l8-1a for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:27 -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-499-IVt0GAgINWSTlOVyATWCAA-1; Mon, 26 Jun 2023 08:28:23 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-3f9b003507bso15727315e9.0 for ; Mon, 26 Jun 2023 05:28:23 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id a10-20020a1cf00a000000b003f8fb02c413sm7600506wmb.8.2023.06.26.05.28.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782505; 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=+QhAsN/XuaZ11bEG8Ru5fkaUsTR7CPbUnVIC/HsX/ME=; b=AOscxSQj3kzAXYrqsFv8YHUwKD/AyIamJ7W0xzbCSJfcNt9FSLM8jPuQBDEGFjGcWRzJ3Q E7PyQsbnNykGHZAzlUFBbxlS6KiTLNVCA/1clTBx3BorzYllqELClMsBSM0zlDtAWpHako qjhiEC7rfIout6hJUnLDP0Vrq86bMdw= X-MC-Unique: IVt0GAgINWSTlOVyATWCAA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782502; x=1690374502; 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=+QhAsN/XuaZ11bEG8Ru5fkaUsTR7CPbUnVIC/HsX/ME=; b=EWfpTgehMs41lzz5oc+ZKaIWDsUl2E7p8Z52yha0WdD/RF6WZ8FuaL/Ok6mPsD8g5e qd0Pw/I+NFQ7FAxsxekMSDsdPowx+9MkZMGYAo+uXo8Slt8RXGqStBU5geUweGObdDkK VuDW0rFfXan8lyB/IWqJRtD697ghnvlXaA9k8GlcD8xst4fUpAw67D4Jsom/pGR27lT2 CmJww4QIihkIRfKwHaC5PlU08s2gCqyC6VL1EFg+jjKlb5ef5SQHkwcTAvboMOhb8Ft0 j2nT9dkC0tB8veExhiumeqbE1/8kPc6+IDIR2SVV/YMy40+pTdi261TaX59eyO2uc9sq uqNg== X-Gm-Message-State: AC+VfDxmafN0qzZ03dQMXNyjQ27rLUdX4oOYa44XA65qPwKWTuKGaaUn O2MHOOD8S+dbPyI7E28phx7ytngx8sSo8EGm96fXcbxMGLUwnpS2ZqGsM6mebjDVzGOib0lw9x2 palMPDIxu7Xekdr7FashLQmE0lyb2BeZsZ6Dq9fIp5iu0GDlbpm/MecKvrjyjdloud1So X-Received: by 2002:a05:600c:2119:b0:3fb:407e:9b31 with SMTP id u25-20020a05600c211900b003fb407e9b31mr542960wml.37.1687782502091; Mon, 26 Jun 2023 05:28:22 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ72B8bFPZaL8BkUvfbAuUoozMVOmyjVFb018ko+Klw5mrWAF0+TRsaGuTvxwSJ1EDaeizwcEw== X-Received: by 2002:a05:600c:2119:b0:3fb:407e:9b31 with SMTP id u25-20020a05600c211900b003fb407e9b31mr542935wml.37.1687782501490; Mon, 26 Jun 2023 05:28:21 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:18 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Markus Armbruster , Fan Ni , Ira Weiny , Eric Blake Subject: [PULL 10/53] hw/cxl/events: Add injection of DRAM events 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783269861100013 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron Defined in CXL r3.0 8.2.9.2.1.2 DRAM Event Record, this event provides information related to DRAM devices. Example injection command in QMP: { "execute": "cxl-inject-dram-event", "arguments": { "path": "/machine/peripheral/cxl-mem0", "log": "informational", "flags": 1, "dpa": 1000, "descriptor": 3, "type": 3, "transaction-type": 192, "channel": 3, "rank": 17, "nibble-mask": 37421234, "bank-group": 7, "bank": 11, "row": 2, "column": 77, "correction-mask": [33, 44, 55,66] }} Acked-by: Markus Armbruster Reviewed-by: Fan Ni Reviewed-by: Ira Weiny Signed-off-by: Jonathan Cameron Message-Id: <20230530133603.16934-7-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- qapi/cxl.json | 61 +++++++++++++++++++ include/hw/cxl/cxl_events.h | 23 +++++++ hw/mem/cxl_type3.c | 116 ++++++++++++++++++++++++++++++++++++ hw/mem/cxl_type3_stubs.c | 13 ++++ 4 files changed, 213 insertions(+) diff --git a/qapi/cxl.json b/qapi/cxl.json index d509430844..2ad310387c 100644 --- a/qapi/cxl.json +++ b/qapi/cxl.json @@ -79,6 +79,67 @@ '*channel': 'uint8', '*rank': 'uint8', '*device': 'uint32', '*component-id': 'str' } } =20 +## +# @cxl-inject-dram-event: +# +# Inject an event record for a DRAM Event (CXL r3.0 8.2.9.2.1.2). +# This event type is reported via one of the event logs specified via +# the log parameter. +# +# @path: CXL type 3 device canonical QOM path +# +# @log: Event log to add the event to +# +# @flags: Event Record Flags. See CXL r3.0 Table 8-42 Common Event +# Record Format, Event Record Flags for subfield definitions. +# +# @dpa: Device Physical Address (relative to @path device). Note +# lower bits include some flags. See CXL r3.0 Table 8-44 DRAM +# Event Record, Physical Address. +# +# @descriptor: Memory Event Descriptor with additional memory event +# information. See CXL r3.0 Table 8-44 DRAM Event Record, Memory +# Event Descriptor for bit definitions. +# +# @type: Type of memory event that occurred. See CXL r3.0 Table 8-44 +# DRAM Event Record, Memory Event Type for possible values. +# +# @transaction-type: Type of first transaction that caused the event +# to occur. See CXL r3.0 Table 8-44 DRAM Event Record, +# Transaction Type for possible values. +# +# @channel: The channel of the memory event location. A channel is an +# interface that can be independently accessed for a transaction. +# +# @rank: The rank of the memory event location. A rank is a set of +# memory devices on a channel that together execute a transaction. +# +# @nibble-mask: Identifies one or more nibbles that the error affects +# +# @bank-group: Bank group of the memory event location, incorporating +# a number of Banks. +# +# @bank: Bank of the memory event location. A single bank is accessed +# per read or write of the memory. +# +# @row: Row address within the DRAM. +# +# @column: Column address within the DRAM. +# +# @correction-mask: Bits within each nibble. Used in order of bits +# set in the nibble-mask. Up to 4 nibbles may be covered. +# +# Since: 8.1 +## +{ 'command': 'cxl-inject-dram-event', + 'data': { 'path': 'str', 'log': 'CxlEventLog', 'flags': 'uint8', + 'dpa': 'uint64', 'descriptor': 'uint8', + 'type': 'uint8', 'transaction-type': 'uint8', + '*channel': 'uint8', '*rank': 'uint8', '*nibble-mask': 'uint32= ', + '*bank-group': 'uint8', '*bank': 'uint8', '*row': 'uint32', + '*column': 'uint16', '*correction-mask': [ 'uint64' ] + }} + ## # @cxl-inject-poison: # diff --git a/include/hw/cxl/cxl_events.h b/include/hw/cxl/cxl_events.h index b189193f4c..a39e30d973 100644 --- a/include/hw/cxl/cxl_events.h +++ b/include/hw/cxl/cxl_events.h @@ -123,4 +123,27 @@ typedef struct CXLEventGenMedia { uint8_t reserved[CXL_EVENT_GEN_MED_RES_SIZE]; } QEMU_PACKED CXLEventGenMedia; =20 +/* + * DRAM Event Record + * CXL Rev 3.0 Section 8.2.9.2.1.2: Table 8-44 + * All fields little endian. + */ +typedef struct CXLEventDram { + CXLEventRecordHdr hdr; + uint64_t phys_addr; + uint8_t descriptor; + uint8_t type; + uint8_t transaction_type; + uint16_t validity_flags; + uint8_t channel; + uint8_t rank; + uint8_t nibble_mask[3]; + uint8_t bank_group; + uint8_t bank; + uint8_t row[3]; + uint16_t column; + uint64_t correction_mask[4]; + uint8_t reserved[0x17]; +} QEMU_PACKED CXLEventDram; + #endif /* CXL_EVENTS_H */ diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index b1618779d2..3c07b1b7a3 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -1196,6 +1196,11 @@ static const QemuUUID gen_media_uuid =3D { 0x85, 0xa9, 0x08, 0x8b, 0x16, 0x21, 0xeb, 0xa6), }; =20 +static const QemuUUID dram_uuid =3D { + .data =3D UUID(0x601dcbb3, 0x9c06, 0x4eab, 0xb8, 0xaf, + 0x4e, 0x9b, 0xfb, 0x5c, 0x96, 0x24), +}; + #define CXL_GMER_VALID_CHANNEL BIT(0) #define CXL_GMER_VALID_RANK BIT(1) #define CXL_GMER_VALID_DEVICE BIT(2) @@ -1292,6 +1297,117 @@ void qmp_cxl_inject_general_media_event(const char = *path, CxlEventLog log, } } =20 +#define CXL_DRAM_VALID_CHANNEL BIT(0) +#define CXL_DRAM_VALID_RANK BIT(1) +#define CXL_DRAM_VALID_NIBBLE_MASK BIT(2) +#define CXL_DRAM_VALID_BANK_GROUP BIT(3) +#define CXL_DRAM_VALID_BANK BIT(4) +#define CXL_DRAM_VALID_ROW BIT(5) +#define CXL_DRAM_VALID_COLUMN BIT(6) +#define CXL_DRAM_VALID_CORRECTION_MASK BIT(7) + +void qmp_cxl_inject_dram_event(const char *path, CxlEventLog log, uint8_t = flags, + uint64_t dpa, uint8_t descriptor, + uint8_t type, uint8_t transaction_type, + bool has_channel, uint8_t channel, + bool has_rank, uint8_t rank, + bool has_nibble_mask, uint32_t nibble_mask, + bool has_bank_group, uint8_t bank_group, + bool has_bank, uint8_t bank, + bool has_row, uint32_t row, + bool has_column, uint16_t column, + bool has_correction_mask, uint64List *corre= ction_mask, + Error **errp) +{ + Object *obj =3D object_resolve_path(path, NULL); + CXLEventDram dram; + CXLEventRecordHdr *hdr =3D &dram.hdr; + CXLDeviceState *cxlds; + CXLType3Dev *ct3d; + uint16_t valid_flags =3D 0; + uint8_t enc_log; + int rc; + + if (!obj) { + error_setg(errp, "Unable to resolve path"); + return; + } + if (!object_dynamic_cast(obj, TYPE_CXL_TYPE3)) { + error_setg(errp, "Path does not point to a CXL type 3 device"); + return; + } + ct3d =3D CXL_TYPE3(obj); + cxlds =3D &ct3d->cxl_dstate; + + rc =3D ct3d_qmp_cxl_event_log_enc(log); + if (rc < 0) { + error_setg(errp, "Unhandled error log type"); + return; + } + enc_log =3D rc; + + memset(&dram, 0, sizeof(dram)); + cxl_assign_event_header(hdr, &dram_uuid, flags, sizeof(dram), + cxl_device_get_timestamp(&ct3d->cxl_dstate)); + stq_le_p(&dram.phys_addr, dpa); + dram.descriptor =3D descriptor; + dram.type =3D type; + dram.transaction_type =3D transaction_type; + + if (has_channel) { + dram.channel =3D channel; + valid_flags |=3D CXL_DRAM_VALID_CHANNEL; + } + + if (has_rank) { + dram.rank =3D rank; + valid_flags |=3D CXL_DRAM_VALID_RANK; + } + + if (has_nibble_mask) { + st24_le_p(dram.nibble_mask, nibble_mask); + valid_flags |=3D CXL_DRAM_VALID_NIBBLE_MASK; + } + + if (has_bank_group) { + dram.bank_group =3D bank_group; + valid_flags |=3D CXL_DRAM_VALID_BANK_GROUP; + } + + if (has_bank) { + dram.bank =3D bank; + valid_flags |=3D CXL_DRAM_VALID_BANK; + } + + if (has_row) { + st24_le_p(dram.row, row); + valid_flags |=3D CXL_DRAM_VALID_ROW; + } + + if (has_column) { + stw_le_p(&dram.column, column); + valid_flags |=3D CXL_DRAM_VALID_COLUMN; + } + + if (has_correction_mask) { + int count =3D 0; + while (correction_mask && count < 4) { + stq_le_p(&dram.correction_mask[count], + correction_mask->value); + count++; + correction_mask =3D correction_mask->next; + } + valid_flags |=3D CXL_DRAM_VALID_CORRECTION_MASK; + } + + stw_le_p(&dram.validity_flags, valid_flags); + + if (cxl_event_insert(cxlds, enc_log, (CXLEventRecordRaw *)&dram)) { + cxl_event_irq_assert(ct3d); + } + return; +} + static void ct3_class_init(ObjectClass *oc, void *data) { DeviceClass *dc =3D DEVICE_CLASS(oc); diff --git a/hw/mem/cxl_type3_stubs.c b/hw/mem/cxl_type3_stubs.c index 4dfbdf9268..e904c5d089 100644 --- a/hw/mem/cxl_type3_stubs.c +++ b/hw/mem/cxl_type3_stubs.c @@ -13,6 +13,19 @@ void qmp_cxl_inject_general_media_event(const char *path= , CxlEventLog log, const char *component_id, Error **errp) {} =20 +void qmp_cxl_inject_dram_event(const char *path, CxlEventLog log, uint8_t = flags, + uint64_t dpa, uint8_t descriptor, + uint8_t type, uint8_t transaction_type, + bool has_channel, uint8_t channel, + bool has_rank, uint8_t rank, + bool has_nibble_mask, uint32_t nibble_mask, + bool has_bank_group, uint8_t bank_group, + bool has_bank, uint8_t bank, + bool has_row, uint32_t row, + bool has_column, uint16_t column, + bool has_correction_mask, uint64List *corre= ction_mask, + Error **errp) {} + void qmp_cxl_inject_poison(const char *path, uint64_t start, uint64_t leng= th, Error **errp) { --=20 MST From nobody Sat May 18 18:13:07 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=1687782789; cv=none; d=zohomail.com; s=zohoarc; b=FJSyPD6CVRiHI+nUQq5fSx40QlBgPqriGAJHOldoGFWVMB8SXj6K2bSmpFF48cB81klcHes8RB2JFfustKBAQjOoulUXzIC/VphCF7szMAaMVvEFaLGiFUlBjo76uCZAkQrSIetzFnZTlVuPANUYY0DuypKGH9Nu4yAmXOwj/ng= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782789; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=CvHv0xRrL+n4gHBfU6fz1bd4t5h8JYvFuitEDaGVga0=; b=GvBesg+N6Os+IIbONGXO49BY44nvivHSCm1Yb3JN76PFFFbgqCxktLcEYEHps+Y1oWUUQ3hzIhMk19fmfKgJQpTNZ98W6u0HHi3ESCEpwcXqdQhoXs4N9yjdA+ZHW6XCNmh/Q6bSxckFkVlVhCCbIe/ph8NckKmrwVSqEAJL6UY= 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 1687782789061187.564550596255; Mon, 26 Jun 2023 05:33:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlKb-0001km-AU; Mon, 26 Jun 2023 08:28:33 -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 1qDlKZ-0001iS-9M for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:31 -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 1qDlKX-0002lh-Au for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:31 -0400 Received: from mail-lj1-f199.google.com (mail-lj1-f199.google.com [209.85.208.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-13-3Ly1rWS_OlSZ-iHBWYTRnQ-1; Mon, 26 Jun 2023 08:28:27 -0400 Received: by mail-lj1-f199.google.com with SMTP id 38308e7fff4ca-2b620465d0eso11924351fa.0 for ; Mon, 26 Jun 2023 05:28:27 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id t12-20020a7bc3cc000000b003f604793989sm10297184wmj.18.2023.06.26.05.28.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782508; 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=CvHv0xRrL+n4gHBfU6fz1bd4t5h8JYvFuitEDaGVga0=; b=Yq/BB65R5DXAY0JqHqfHHV+R5kRX5XRMN811zfgW6EYPSu8Mk8UMVdk952/pB9rAUwbuoZ NlsGiiLSCA2FeTemNErijAAwvCCOyAvIIoBAwxV9oRqGse4IulI1imvk3leR6jopM63nB9 7vsgJ7fMt+mpR7Kj38abNC4oJPEHa3M= X-MC-Unique: 3Ly1rWS_OlSZ-iHBWYTRnQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782505; x=1690374505; 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=CvHv0xRrL+n4gHBfU6fz1bd4t5h8JYvFuitEDaGVga0=; b=mIWSZewfIAQWRYSAi002RkH0eqg/6IAt2n6YYZTyIplDBhmzzhKzevIEVuQyMP+CFC OuHG278rMc+NGkMg9D6d2Lt1bhBkW309ccdSkw/cHMK3gviHEEW2Gouqpg4xSyWuFNbQ Hoc3Zo1kolcoko8EpZ0+uddlnreUKKQVKfd/rxl9mRJw0YspDcKN5IH/jMkJV1dC8xJA WFgN9UBpIwAgsoJS4aseewpuzkoFuahJJ322lyWrSGWllmFa2MKAjJ/XAfJWntv9Nx3x Zbq7TLFX8Ih/ZORfAKEKVem2sCyaOxQNhr5R0PBwSRtVPpFu3oViZhf4vl95/140LO13 HvpQ== X-Gm-Message-State: AC+VfDy3BOIssCnZt2foYC63s26LJ4NqepuJJustyWn6VFOb3Ah2pjAM 7AhHeL0/axCXkjIdqeTv2JphTnXQP8l+lKNQn2hVrBcvTGHPLP/iQil9ZilPpBFhKEFo61oXQFv cXjMJCRpIv1xM0jp99u7A0CsKQD51kvZg5i3C634ej6t2RtikVSZnj6SmxSaVYyz627Xy X-Received: by 2002:ac2:5de6:0:b0:4f7:6976:2070 with SMTP id z6-20020ac25de6000000b004f769762070mr16090142lfq.40.1687782505598; Mon, 26 Jun 2023 05:28:25 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4TidHk/DVMiErVZn5VKGYv8G149EwkYEMljrTvIrfqRETKCjYRYLJRxI45YgbMV34JPiiUyw== X-Received: by 2002:ac2:5de6:0:b0:4f7:6976:2070 with SMTP id z6-20020ac25de6000000b004f769762070mr16090117lfq.40.1687782504927; Mon, 26 Jun 2023 05:28:24 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:21 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Jonathan Cameron , Markus Armbruster , Fan Ni , Ira Weiny , Eric Blake Subject: [PULL 11/53] hw/cxl/events: Add injection of Memory Module Events 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782791068100006 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Jonathan Cameron These events include a copy of the device health information at the time of the event. Actually using the emulated device health would require a lot of controls to manipulate that state. Given the aim of this injection code is to just test the flows when events occur, inject the contents of the device health state as well. Future work may add more sophisticate device health emulation including direct generation of these records when events occur (such as a temperature threshold being crossed). That does not reduce the usefulness of this more basic generation of the events. Acked-by: Markus Armbruster Reviewed-by: Fan Ni Reviewed-by: Ira Weiny Signed-off-by: Jonathan Cameron Message-Id: <20230530133603.16934-8-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- qapi/cxl.json | 53 +++++++++++++++++++++++++++++++ include/hw/cxl/cxl_events.h | 19 ++++++++++++ hw/mem/cxl_type3.c | 62 +++++++++++++++++++++++++++++++++++++ hw/mem/cxl_type3_stubs.c | 12 +++++++ 4 files changed, 146 insertions(+) diff --git a/qapi/cxl.json b/qapi/cxl.json index 2ad310387c..d5b5293eb5 100644 --- a/qapi/cxl.json +++ b/qapi/cxl.json @@ -140,6 +140,59 @@ '*column': 'uint16', '*correction-mask': [ 'uint64' ] }} =20 +## +# @cxl-inject-memory-module-event: +# +# Inject an event record for a Memory Module Event (CXL r3.0 +# 8.2.9.2.1.3). This event includes a copy of the Device Health +# info at the time of the event. +# +# @path: CXL type 3 device canonical QOM path +# +# @log: Event Log to add the event to +# +# @flags: Event Record Flags. See CXL r3.0 Table 8-42 Common Event +# Record Format, Event Record Flags for subfield definitions. +# +# @type: Device Event Type. See CXL r3.0 Table 8-45 Memory Module +# Event Record for bit definitions for bit definiions. +# +# @health-status: Overall health summary bitmap. See CXL r3.0 Table +# 8-100 Get Health Info Output Payload, Health Status for bit +# definitions. +# +# @media-status: Overall media health summary. See CXL r3.0 Table +# 8-100 Get Health Info Output Payload, Media Status for bit +# definitions. +# +# @additional-status: See CXL r3.0 Table 8-100 Get Health Info Output +# Payload, Additional Status for subfield definitions. +# +# @life-used: Percentage (0-100) of factory expected life span. +# +# @temperature: Device temperature in degrees Celsius. +# +# @dirty-shutdown-count: Number of times the device has been unable +# to determine whether data loss may have occurred. +# +# @corrected-volatile-error-count: Total number of correctable errors +# in volatile memory. +# +# @corrected-persistent-error-count: Total number of correctable +# errors in persistent memory +# +# Since: 8.1 +## +{ 'command': 'cxl-inject-memory-module-event', + 'data': { 'path': 'str', 'log': 'CxlEventLog', 'flags' : 'uint8', + 'type': 'uint8', 'health-status': 'uint8', + 'media-status': 'uint8', 'additional-status': 'uint8', + 'life-used': 'uint8', 'temperature' : 'int16', + 'dirty-shutdown-count': 'uint32', + 'corrected-volatile-error-count': 'uint32', + 'corrected-persistent-error-count': 'uint32' + }} + ## # @cxl-inject-poison: # diff --git a/include/hw/cxl/cxl_events.h b/include/hw/cxl/cxl_events.h index a39e30d973..089ba2091f 100644 --- a/include/hw/cxl/cxl_events.h +++ b/include/hw/cxl/cxl_events.h @@ -146,4 +146,23 @@ typedef struct CXLEventDram { uint8_t reserved[0x17]; } QEMU_PACKED CXLEventDram; =20 +/* + * Memory Module Event Record + * CXL Rev 3.0 Section 8.2.9.2.1.3: Table 8-45 + * All fields little endian. + */ +typedef struct CXLEventMemoryModule { + CXLEventRecordHdr hdr; + uint8_t type; + uint8_t health_status; + uint8_t media_status; + uint8_t additional_status; + uint8_t life_used; + int16_t temperature; + uint32_t dirty_shutdown_count; + uint32_t corrected_volatile_error_count; + uint32_t corrected_persistent_error_count; + uint8_t reserved[0x3d]; +} QEMU_PACKED CXLEventMemoryModule; + #endif /* CXL_EVENTS_H */ diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c index 3c07b1b7a3..4e314748d3 100644 --- a/hw/mem/cxl_type3.c +++ b/hw/mem/cxl_type3.c @@ -1201,6 +1201,11 @@ static const QemuUUID dram_uuid =3D { 0x4e, 0x9b, 0xfb, 0x5c, 0x96, 0x24), }; =20 +static const QemuUUID memory_module_uuid =3D { + .data =3D UUID(0xfe927475, 0xdd59, 0x4339, 0xa5, 0x86, + 0x79, 0xba, 0xb1, 0x13, 0xb7, 0x74), +}; + #define CXL_GMER_VALID_CHANNEL BIT(0) #define CXL_GMER_VALID_RANK BIT(1) #define CXL_GMER_VALID_DEVICE BIT(2) @@ -1408,6 +1413,63 @@ void qmp_cxl_inject_dram_event(const char *path, Cxl= EventLog log, uint8_t flags, return; } =20 +void qmp_cxl_inject_memory_module_event(const char *path, CxlEventLog log, + uint8_t flags, uint8_t type, + uint8_t health_status, + uint8_t media_status, + uint8_t additional_status, + uint8_t life_used, + int16_t temperature, + uint32_t dirty_shutdown_count, + uint32_t corrected_volatile_error_= count, + uint32_t corrected_persistent_erro= r_count, + Error **errp) +{ + Object *obj =3D object_resolve_path(path, NULL); + CXLEventMemoryModule module; + CXLEventRecordHdr *hdr =3D &module.hdr; + CXLDeviceState *cxlds; + CXLType3Dev *ct3d; + uint8_t enc_log; + int rc; + + if (!obj) { + error_setg(errp, "Unable to resolve path"); + return; + } + if (!object_dynamic_cast(obj, TYPE_CXL_TYPE3)) { + error_setg(errp, "Path does not point to a CXL type 3 device"); + return; + } + ct3d =3D CXL_TYPE3(obj); + cxlds =3D &ct3d->cxl_dstate; + + rc =3D ct3d_qmp_cxl_event_log_enc(log); + if (rc < 0) { + error_setg(errp, "Unhandled error log type"); + return; + } + enc_log =3D rc; + + memset(&module, 0, sizeof(module)); + cxl_assign_event_header(hdr, &memory_module_uuid, flags, sizeof(module= ), + cxl_device_get_timestamp(&ct3d->cxl_dstate)); + + module.type =3D type; + module.health_status =3D health_status; + module.media_status =3D media_status; + module.additional_status =3D additional_status; + module.life_used =3D life_used; + stw_le_p(&module.temperature, temperature); + stl_le_p(&module.dirty_shutdown_count, dirty_shutdown_count); + stl_le_p(&module.corrected_volatile_error_count, corrected_volatile_er= ror_count); + stl_le_p(&module.corrected_persistent_error_count, corrected_persisten= t_error_count); + + if (cxl_event_insert(cxlds, enc_log, (CXLEventRecordRaw *)&module)) { + cxl_event_irq_assert(ct3d); + } +} + static void ct3_class_init(ObjectClass *oc, void *data) { DeviceClass *dc =3D DEVICE_CLASS(oc); diff --git a/hw/mem/cxl_type3_stubs.c b/hw/mem/cxl_type3_stubs.c index e904c5d089..f3e4a9fa72 100644 --- a/hw/mem/cxl_type3_stubs.c +++ b/hw/mem/cxl_type3_stubs.c @@ -26,6 +26,18 @@ void qmp_cxl_inject_dram_event(const char *path, CxlEven= tLog log, uint8_t flags, bool has_correction_mask, uint64List *corre= ction_mask, Error **errp) {} =20 +void qmp_cxl_inject_memory_module_event(const char *path, CxlEventLog log, + uint8_t flags, uint8_t type, + uint8_t health_status, + uint8_t media_status, + uint8_t additional_status, + uint8_t life_used, + int16_t temperature, + uint32_t dirty_shutdown_count, + uint32_t corrected_volatile_error_= count, + uint32_t corrected_persistent_erro= r_count, + Error **errp) {} + void qmp_cxl_inject_poison(const char *path, uint64_t start, uint64_t leng= th, Error **errp) { --=20 MST From nobody Sat May 18 18:13:07 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=1687782546; cv=none; d=zohomail.com; s=zohoarc; b=gfz4xqJYEiUvnCacSvKIxXuQ+kgTqzovTG4Zu/rIcTxcWfgCCMjEjhZJ+PkssdUeHMuPRlmIRTNp+Nc6e+vfnPizY4nSNUj4USudf4epRqm9E6wYYcbRK9MqzaTZjAbEsB7V+PxiEBgADW3z5mQZz8zOVDaaaqRzYOuEq0Sz+cI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782546; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=HpijCPbqmV8/82Yuz6YLQPDKA9gyZY4F7fQYMz5NMV0=; b=hxEB1Dc7hjNLsSwMo0K3VD1FrCibBuijBJ8rTUahZyH3lIhe6b59dkSJOeDcKD6jPUuPW1gpGH2QnJToeI6spoJv7njv36tURPXYZkR+D+vBaAHGLbYLEo7wa9tZeXl3ZopiCJua0cOsuYGM0uhK3uhJDbyUM9S45+gd2tJ9ay4= 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 1687782546317298.1639333943549; Mon, 26 Jun 2023 05:29:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlKg-0001vO-9R; Mon, 26 Jun 2023 08:28: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 1qDlKc-0001q6-LJ for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28: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 1qDlKa-0002mm-JN for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:34 -0400 Received: from mail-lf1-f71.google.com (mail-lf1-f71.google.com [209.85.167.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-454-eGjlKC-aNMSauQY3Q1qmnw-1; Mon, 26 Jun 2023 08:28:30 -0400 Received: by mail-lf1-f71.google.com with SMTP id 2adb3069b0e04-4f3932e595dso2516089e87.1 for ; Mon, 26 Jun 2023 05:28:30 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id z7-20020a05600c220700b003fa999cefc0sm1874055wml.36.2023.06.26.05.28.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782511; 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=HpijCPbqmV8/82Yuz6YLQPDKA9gyZY4F7fQYMz5NMV0=; b=fVlpWfKt8ZE9yVs6IDeUlnRnRtyo0YASW72CQOYmtnSdbxgcuKQtaRP+O/joPrRTXh6uGM IzBx0KjaTQ+54v4bUVOZZGgNbrubsY2A2dFEY0ccNTBUTzhsI0UXdX7cauU2hCuJoL9FLF EI2/QpHWT5ap4gWvNohdg+gu5I6NG6o= X-MC-Unique: eGjlKC-aNMSauQY3Q1qmnw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782508; x=1690374508; 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=HpijCPbqmV8/82Yuz6YLQPDKA9gyZY4F7fQYMz5NMV0=; b=j/NB5ycTc1QGARV+7rUNhYBehe91uVL5RJUcDCJB8cyamK0b5Z1gK4PDkC8IStE8Rb L+aw8fCi477SUshEJNgsUsjlobLmlnS+ahN1AB9JcTmy5SeL0e7xRgkTqMF77D6TjIu3 CfcmURZioul9Z/kWvcSRI5F+alykjntCUrlCt0+UfnpyGZsQnksiDMUQigKvkXl2uG3G aloaiZCXTNl4GuvdcOyE9+CrzytQw/QVogYMkEwztDwxUCTDjUm2PUstxxM4x177Ru3/ rROLQkYYd0ORvs3Cnjbut9JoPkLY2mqtauLh+KmXYTrFP7VaMfHwhkSw4p0MrfaJnuF0 XMMw== X-Gm-Message-State: AC+VfDxe2J4r9e20RpDAdlF4mm/3beBoZygmnlSUued4Xz6GSiBpuhid 1EJpivfZC17urSeiW76fepl6bXdfzwYqzQ6VEukH7OAM1PKOqD23aRLZDVUAZ/m95dzdbAWl3t5 7s3KzKkE+rh7+WA41WEhlTT7BB78Xo2+hwxQWMfhuG5ETWXVX9QRD7mvxmOi9Qo27AptU X-Received: by 2002:a19:6918:0:b0:4f8:7556:23eb with SMTP id e24-20020a196918000000b004f8755623ebmr11807974lfc.39.1687782508473; Mon, 26 Jun 2023 05:28:28 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ61JZ9npbgcU5MTbby1wX0cl8dcdczPPgkuF6YipqAl4OLXwLheXyvPKXkBlkvPaGKtCl8Iow== X-Received: by 2002:a19:6918:0:b0:4f8:7556:23eb with SMTP id e24-20020a196918000000b004f8755623ebmr11807951lfc.39.1687782508135; Mon, 26 Jun 2023 05:28:28 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:25 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Gowrishankar Muthukrishnan , "Gonglei (Arei)" , Zhenwei Pi Subject: [PULL 12/53] cryptodev-vhost-user: add asymmetric crypto support Message-ID: <5c33f9783ace0b5e077060b220978d94fecb3e81.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782548412100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Gowrishankar Muthukrishnan Add asymmetric crypto support in vhost_user backend. Signed-off-by: Gowrishankar Muthukrishnan Message-Id: <20230516083139.2349744-1-gmuthukrishn@marvell.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- backends/cryptodev-vhost-user.c | 9 ++-- hw/virtio/vhost-user.c | 75 +++++++++++++++++++++++++++------ 2 files changed, 66 insertions(+), 18 deletions(-) diff --git a/backends/cryptodev-vhost-user.c b/backends/cryptodev-vhost-use= r.c index b1d9eb735f..c3283ba84a 100644 --- a/backends/cryptodev-vhost-user.c +++ b/backends/cryptodev-vhost-user.c @@ -232,9 +232,9 @@ static void cryptodev_vhost_user_init( backend->conf.max_auth_key_len =3D VHOST_USER_MAX_AUTH_KEY_LEN; } =20 -static int64_t cryptodev_vhost_user_sym_create_session( +static int64_t cryptodev_vhost_user_crypto_create_session( CryptoDevBackend *backend, - CryptoDevBackendSymSessionInfo *sess_info, + CryptoDevBackendSessionInfo *sess_info, uint32_t queue_index, Error **errp) { CryptoDevBackendClient *cc =3D @@ -266,18 +266,17 @@ static int cryptodev_vhost_user_create_session( void *opaque) { uint32_t op_code =3D sess_info->op_code; - CryptoDevBackendSymSessionInfo *sym_sess_info; int64_t ret; Error *local_error =3D NULL; int status; =20 switch (op_code) { case VIRTIO_CRYPTO_CIPHER_CREATE_SESSION: + case VIRTIO_CRYPTO_AKCIPHER_CREATE_SESSION: case VIRTIO_CRYPTO_HASH_CREATE_SESSION: case VIRTIO_CRYPTO_MAC_CREATE_SESSION: case VIRTIO_CRYPTO_AEAD_CREATE_SESSION: - sym_sess_info =3D &sess_info->u.sym_sess_info; - ret =3D cryptodev_vhost_user_sym_create_session(backend, sym_sess_= info, + ret =3D cryptodev_vhost_user_crypto_create_session(backend, sess_i= nfo, queue_index, &local_error); break; =20 diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index 74a2a28663..2ad75a7964 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -11,6 +11,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "hw/virtio/vhost.h" +#include "hw/virtio/virtio-crypto.h" #include "hw/virtio/vhost-user.h" #include "hw/virtio/vhost-backend.h" #include "hw/virtio/virtio.h" @@ -163,13 +164,24 @@ typedef struct VhostUserConfig { =20 #define VHOST_CRYPTO_SYM_HMAC_MAX_KEY_LEN 512 #define VHOST_CRYPTO_SYM_CIPHER_MAX_KEY_LEN 64 +#define VHOST_CRYPTO_ASYM_MAX_KEY_LEN 1024 =20 typedef struct VhostUserCryptoSession { + uint64_t op_code; + union { + struct { + CryptoDevBackendSymSessionInfo session_setup_data; + uint8_t key[VHOST_CRYPTO_SYM_CIPHER_MAX_KEY_LEN]; + uint8_t auth_key[VHOST_CRYPTO_SYM_HMAC_MAX_KEY_LEN]; + } sym; + struct { + CryptoDevBackendAsymSessionInfo session_setup_data; + uint8_t key[VHOST_CRYPTO_ASYM_MAX_KEY_LEN]; + } asym; + } u; + /* session id for success, -1 on errors */ int64_t session_id; - CryptoDevBackendSymSessionInfo session_setup_data; - uint8_t key[VHOST_CRYPTO_SYM_CIPHER_MAX_KEY_LEN]; - uint8_t auth_key[VHOST_CRYPTO_SYM_HMAC_MAX_KEY_LEN]; } VhostUserCryptoSession; =20 static VhostUserConfig c __attribute__ ((unused)); @@ -2357,7 +2369,7 @@ static int vhost_user_crypto_create_session(struct vh= ost_dev *dev, int ret; bool crypto_session =3D virtio_has_feature(dev->protocol_features, VHOST_USER_PROTOCOL_F_CRYPTO_SESSIO= N); - CryptoDevBackendSymSessionInfo *sess_info =3D session_info; + CryptoDevBackendSessionInfo *backend_info =3D session_info; VhostUserMsg msg =3D { .hdr.request =3D VHOST_USER_CREATE_CRYPTO_SESSION, .hdr.flags =3D VHOST_USER_VERSION, @@ -2371,16 +2383,53 @@ static int vhost_user_crypto_create_session(struct = vhost_dev *dev, return -ENOTSUP; } =20 - memcpy(&msg.payload.session.session_setup_data, sess_info, - sizeof(CryptoDevBackendSymSessionInfo)); - if (sess_info->key_len) { - memcpy(&msg.payload.session.key, sess_info->cipher_key, - sess_info->key_len); - } - if (sess_info->auth_key_len > 0) { - memcpy(&msg.payload.session.auth_key, sess_info->auth_key, - sess_info->auth_key_len); + if (backend_info->op_code =3D=3D VIRTIO_CRYPTO_AKCIPHER_CREATE_SESSION= ) { + CryptoDevBackendAsymSessionInfo *sess =3D &backend_info->u.asym_se= ss_info; + size_t keylen; + + memcpy(&msg.payload.session.u.asym.session_setup_data, sess, + sizeof(CryptoDevBackendAsymSessionInfo)); + if (sess->keylen) { + keylen =3D sizeof(msg.payload.session.u.asym.key); + if (sess->keylen > keylen) { + error_report("Unsupported asymmetric key size"); + return -ENOTSUP; + } + + memcpy(&msg.payload.session.u.asym.key, sess->key, + sess->keylen); + } + } else { + CryptoDevBackendSymSessionInfo *sess =3D &backend_info->u.sym_sess= _info; + size_t keylen; + + memcpy(&msg.payload.session.u.sym.session_setup_data, sess, + sizeof(CryptoDevBackendSymSessionInfo)); + if (sess->key_len) { + keylen =3D sizeof(msg.payload.session.u.sym.key); + if (sess->key_len > keylen) { + error_report("Unsupported cipher key size"); + return -ENOTSUP; + } + + memcpy(&msg.payload.session.u.sym.key, sess->cipher_key, + sess->key_len); + } + + if (sess->auth_key_len > 0) { + keylen =3D sizeof(msg.payload.session.u.sym.auth_key); + if (sess->auth_key_len > keylen) { + error_report("Unsupported auth key size"); + return -ENOTSUP; + } + + memcpy(&msg.payload.session.u.sym.auth_key, sess->auth_key, + sess->auth_key_len); + } } + + msg.payload.session.op_code =3D backend_info->op_code; + msg.payload.session.session_id =3D backend_info->session_id; ret =3D vhost_user_write(dev, &msg, NULL, 0); if (ret < 0) { error_report("vhost_user_write() return %d, create session failed", --=20 MST From nobody Sat May 18 18:13:07 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=1687782590; cv=none; d=zohomail.com; s=zohoarc; b=UJgxYcavdE1ve4goQzYfNFiStQK7Sm2N9ykKSmszM9szRl3+iXrDccuD59dfmHiF05kjRCDMHNKud/JBen+RHHmqaM0arqgws99RLY5/rwVagcAGObFdyDXQQveH0vlGlXdLL5SPnAKvo0woVtj4Y1hI1QqwDObJk0k++gGqq6Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782590; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2SGHL2LHvwzaWBgCYGtwaYW5rqEUKCoWms25kqlSWFs=; b=cT+cJbHYpcFGUHhe/4y8hG2Q+orHFM2sbHbpML6eDYcgVph2PRxatoOuPtMJMvyvr89GMy6IFy84XGxG+MclFPNylbCo0CXY3r2gGYxOgLgiUjmyHzR0PoN9AaJ94k1xrekehLwvNdVd55CwiqBN2BMVAi1RGpHZx7r8PrjNmQM= 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 1687782590510560.096233620984; Mon, 26 Jun 2023 05:29:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlKr-00027d-QW; Mon, 26 Jun 2023 08:28: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 1qDlKe-0001x2-WB for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28: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 1qDlKd-0002pH-9f for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:36 -0400 Received: from mail-lj1-f197.google.com (mail-lj1-f197.google.com [209.85.208.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-316-ghBRY_QQOjupxYMR4jFSAw-1; Mon, 26 Jun 2023 08:28:33 -0400 Received: by mail-lj1-f197.google.com with SMTP id 38308e7fff4ca-2b6a0772b97so7638371fa.1 for ; Mon, 26 Jun 2023 05:28:33 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id u18-20020a5d6ad2000000b00313e90d1d0dsm5325493wrw.112.2023.06.26.05.28.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782514; 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=2SGHL2LHvwzaWBgCYGtwaYW5rqEUKCoWms25kqlSWFs=; b=LQvuRa3ao3LiTTya/ajf/dpCuXNlfK/GgXVxO6k5mZjDpBhwUbs/fdR5CMhtcimGS18Zes JCIGBFMemue+oIxVGJ9lTauGfqVvDhuxOAxbe95OIR3mGLVkJvgUYqbvLyQjncXp9A+BV/ jwJUm1bBG+84tRQ8hIhc56Rd3ZFgbn4= X-MC-Unique: ghBRY_QQOjupxYMR4jFSAw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782511; x=1690374511; 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=2SGHL2LHvwzaWBgCYGtwaYW5rqEUKCoWms25kqlSWFs=; b=G27Fbh2dAkNlzVYtpmVUIJjXd/dWBgEcylN2Ge8gcApo+IG6EhfaReOdUyHgVuB9eH mx2kfZtw5GOjmp5q2lwtxLJvU/iOzod0ZG7QyODYjpa9OHc1q01KTHiUjGoulrwHqs+Y AubyWTtOZ72arKxbUlQrcPg92ESxnsZTPqi1KEX9pYWSwmw5bZYsFCQAb0crGz6ujAy8 obcDalKJPc5aen0CTEojuZ3QX2c7wT7FkKB4eFcqPDkbvTPWEWtZJj2hu7T3Nn6/Zifs 69I6ooFgi8Gr7jxd4tI3s2mEHMEyrLlFTWheFltJDL1ksnztZ8xCJRnvL4k2Dk+sVpd+ +5Nw== X-Gm-Message-State: AC+VfDzuRdTG0xeeLyyuzhUpEgW1ED2nZ1sieQ/uYHtAL2SiEl0Pj5oV +MR+66IZB9wehAHOzXmdnyCc5mEKh/EVzGWXcsI3f0e8Q2clRIFm2YhJhPRAqG81hXeKVmoCye4 FxAoWSfaFavrFAIP2HC5npm+eZlZPvQAyzag9kTXla2iXhglwc3Y2jBvzDsmO0sRf+6vA X-Received: by 2002:a19:6418:0:b0:4f9:571d:c50e with SMTP id y24-20020a196418000000b004f9571dc50emr9597064lfb.36.1687782511487; Mon, 26 Jun 2023 05:28:31 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7oYc8eeekdb9sTHbTMX6gS9I7dLEk2lQptTCTrWd/ayxP6THs93h8HQqI5ATWQsfxeUjiSrA== X-Received: by 2002:a19:6418:0:b0:4f9:571d:c50e with SMTP id y24-20020a196418000000b004f9571dc50emr9597045lfb.36.1687782511183; Mon, 26 Jun 2023 05:28:31 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:28 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Thomas Huth , Alex =?utf-8?Q?Benn=C3=A9e?= , Paolo Bonzini , Peter Xu , David Hildenbrand Subject: [PULL 13/53] softmmu: Introduce qemu_target_page_mask() helper 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782592177100003 From: Philippe Mathieu-Daud=C3=A9 Since TARGET_PAGE_MASK is poisoned in target-agnostic code, introduce the qemu_target_page_mask() helper to get this value from target-agnostic code at runtime. Reviewed-by: Thomas Huth Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230524093744.88442-2-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Alex Benn=C3=A9e --- include/exec/target_page.h | 1 + softmmu/physmem.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/include/exec/target_page.h b/include/exec/target_page.h index bbf37aea17..98ffbb5c23 100644 --- a/include/exec/target_page.h +++ b/include/exec/target_page.h @@ -15,6 +15,7 @@ #define EXEC_TARGET_PAGE_H =20 size_t qemu_target_page_size(void); +int qemu_target_page_mask(void); int qemu_target_page_bits(void); int qemu_target_page_bits_min(void); =20 diff --git a/softmmu/physmem.c b/softmmu/physmem.c index 6bdd944fe8..bda475a719 100644 --- a/softmmu/physmem.c +++ b/softmmu/physmem.c @@ -3359,6 +3359,11 @@ size_t qemu_target_page_size(void) return TARGET_PAGE_SIZE; } =20 +int qemu_target_page_mask(void) +{ + return TARGET_PAGE_MASK; +} + int qemu_target_page_bits(void) { return TARGET_PAGE_BITS; --=20 MST From nobody Sat May 18 18:13:07 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=1687783763; cv=none; d=zohomail.com; s=zohoarc; b=CH9NVXtMDI52sMlDPUtEFo7SiibI+PunHE0q4Mz5heceyYdM3/GrMRVepCAUDv/R6ZVl82emSzRBtLS0M2b8vUQUW00L/1Y0AGErbfSIbXhS3IpmJvnebXV1ddaxMJY9m0AXr3CBTq60IxBMIPoi6ycQyjEfc4hNu2i0qBAhH3Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783763; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=I0c/2TSZTwjPfy5oknVtffw6zqqXBeJNU6cIu4XphFk=; b=TBgWvGUqxp+mMfWQMLnceU0clB83bn9FNNf6nk+ptq4Y5Am3eSeuZ3hxImSL8eKzYRCFcfLcDtyUsrApx3q0cM7XRyehir16lvzYLgaUpDH0PJ+ZpDhO4zT4gx6YlGnJdh+B7hbDXzBlfWPi3zFsNqSkCltfLNcxXR2lhSoQL3o= 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 1687783763549893.1810119211135; Mon, 26 Jun 2023 05:49:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlLs-00038p-2c; Mon, 26 Jun 2023 08:29:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlKh-00020q-OR for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28: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 1qDlKf-0002rS-RH for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:39 -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-670-cuMu1rp3PcO9JrAuNzkiSA-1; Mon, 26 Jun 2023 08:28:35 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-3f9d7ff4b6aso19857675e9.1 for ; Mon, 26 Jun 2023 05:28:35 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id d11-20020a05600c3acb00b003f7f475c3bcsm11415769wms.1.2023.06.26.05.28.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782517; 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=I0c/2TSZTwjPfy5oknVtffw6zqqXBeJNU6cIu4XphFk=; b=LN2U5uoDyu53/ZTHfEwNxecoAb/BzWGjx6XN3nUnIcr+l1A0jDwJoHU+a47fkVFX/Vlq05 XPMdzC3Owc9/UNeDnsjtdEyPf/T59bPmA3u7qbv+JxAFGrsBSr627G1KxA91oBXUDPZvNQ KUiFqMMK1le2fuA+2t5781/Q74FYQns= X-MC-Unique: cuMu1rp3PcO9JrAuNzkiSA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782514; x=1690374514; 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=I0c/2TSZTwjPfy5oknVtffw6zqqXBeJNU6cIu4XphFk=; b=WNHyolQgWOtmlQZB5AhzyHtN7+Q89daom90kfHWB2ubnaX1eOKS1QhXS/tfiyOizX/ 1+UrKPo5CP/GN9BY1IiklrBaIy2dYfR19g4XZvQiDpfx/lrVWasf3MXUlZW8kblWsety PGN2TQIEIsoNYHO+B3IjEe5191iVlsaE2HRniM+wxWNf6AeuoFPldn8hCfuckGliX9HH 8tJuRnmDzzGG+31H6F7AnWCvuyoSR8xum4mNey4QRgpBXnQj1IW8v2xapMg02iKp3uva dmTYNnPQCNbJ6LYh6uURdSOoiMPpEv8kmKaGSYH+rmSxCyZIngKjSGT/txzvNDTxeqts oqkA== X-Gm-Message-State: AC+VfDxgQmE27fmyXLCkpnVqh/YCGKkR13Qk4edj4xbn3J4y08g6pIyi 1OPoogr/dLlczJg8KiH/O7j1eD/gyHcnklJeT/TN+JddQE8/xm9an5BUukXVvfwaG2B7ZoJAYst MDeY4vJkOaoGNr6hXgdZRHwTal2E+fXZlXgiH5bHw3ktlY1ieeJLEcN312U3SsLgWf4OY X-Received: by 2002:a1c:f70d:0:b0:3f7:3685:1e10 with SMTP id v13-20020a1cf70d000000b003f736851e10mr22378325wmh.40.1687782514372; Mon, 26 Jun 2023 05:28:34 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ658bWNkubd5ISDcHjNYxMp2YimZXxTgdBfkawPhYJ+L2Wj/lh7QHqB4kii5x0BuGxk1wxtJg== X-Received: by 2002:a1c:f70d:0:b0:3f7:3685:1e10 with SMTP id v13-20020a1cf70d000000b003f736851e10mr22378313wmh.40.1687782514119; Mon, 26 Jun 2023 05:28:34 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:31 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Thomas Huth , Richard Henderson , Alex =?utf-8?Q?Benn=C3=A9e?= , Paolo Bonzini , Fam Zheng Subject: [PULL 14/53] hw/scsi: Introduce VHOST_SCSI_COMMON symbol in Kconfig Message-ID: <8f691f1cb76f0591874e91eb18569a150bb3cfe0.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783763755100001 From: Philippe Mathieu-Daud=C3=A9 Instead of adding 'vhost-scsi-common.c' twice (for VHOST_SCSI and VHOST_USER_SCSI), have it depend on VHOST_SCSI_COMMON, selected by both symbols. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Reviewed-by: Richard Henderson Message-Id: <20230524093744.88442-3-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Alex Benn=C3=A9e --- hw/scsi/Kconfig | 6 ++++++ hw/scsi/meson.build | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig index e7b34dc8e2..1feab84c4c 100644 --- a/hw/scsi/Kconfig +++ b/hw/scsi/Kconfig @@ -48,13 +48,19 @@ config VIRTIO_SCSI depends on VIRTIO select SCSI =20 +config VHOST_SCSI_COMMON + bool + depends on VIRTIO + config VHOST_SCSI bool default y + select VHOST_SCSI_COMMON depends on VIRTIO && VHOST_KERNEL =20 config VHOST_USER_SCSI bool # Only PCI devices are provided for now default y if VIRTIO_PCI + select VHOST_SCSI_COMMON depends on VIRTIO && VHOST_USER && LINUX diff --git a/hw/scsi/meson.build b/hw/scsi/meson.build index 7a1e7f13f0..2a005420d2 100644 --- a/hw/scsi/meson.build +++ b/hw/scsi/meson.build @@ -17,8 +17,10 @@ specific_scsi_ss =3D ss.source_set() =20 virtio_scsi_ss =3D ss.source_set() virtio_scsi_ss.add(files('virtio-scsi.c', 'virtio-scsi-dataplane.c')) -virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI', if_true: files('vhost-scsi-c= ommon.c', 'vhost-scsi.c')) -virtio_scsi_ss.add(when: 'CONFIG_VHOST_USER_SCSI', if_true: files('vhost-s= csi-common.c', 'vhost-user-scsi.c')) + +virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI_COMMON', if_true: files('vhost= -scsi-common.c')) +virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI', if_true: files('vhost-scsi.c= ')) +virtio_scsi_ss.add(when: 'CONFIG_VHOST_USER_SCSI', if_true: files('vhost-u= ser-scsi.c')) specific_scsi_ss.add_all(when: 'CONFIG_VIRTIO_SCSI', if_true: virtio_scsi_= ss) =20 specific_scsi_ss.add(when: 'CONFIG_SPAPR_VSCSI', if_true: files('spapr_vsc= si.c')) --=20 MST From nobody Sat May 18 18:13:07 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=1687783310; cv=none; d=zohomail.com; s=zohoarc; b=gy4f1gVujXshPhMw/hrxI4gH0NY1r5JX6OR/CoATacWIbJWq5P+hma6B/BWfEdQO3dQ0V8b8lCpnV/4TuSsYvOZYFC0YfHOcmKIWON5KIP13tfeXMzgjtWnOKGUpGvJPyNR3faem1UnGva/7rrwlow/RbZfbZ6o4rNvNjDy6FuE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783310; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nX2b6CW1d8Yj4PrNeXLgA95+PA1EOaqmbtd7Cf9aLUE=; b=WTmlZOvYUyThFoOFWvSVBN5T0pmc/RjvTLe/8c7b9d7NhcTvz5fHA9zAhudztfUy9glcQ7KcKkHVsyGyZt7+N4qP+U1nsHRPeP7/XR+bqAcY9qPq2PzezZzKbQLxu9jjxRWWUhqs4Bn0aMqQmQq1pD9rQNN0sKFulhzZbKj3YEQ= 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 1687783310579824.781504555545; Mon, 26 Jun 2023 05:41:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlLP-0002Qk-7l; Mon, 26 Jun 2023 08:29: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 1qDlKm-00023E-3a for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28: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 1qDlKk-0002un-5O for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:43 -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-581-CmsgN05rO1GrSKGSALltAA-1; Mon, 26 Jun 2023 08:28:39 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-313e6020882so681281f8f.1 for ; Mon, 26 Jun 2023 05:28:38 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id u14-20020adfed4e000000b00313f100c2aasm2900472wro.21.2023.06.26.05.28.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782520; 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=nX2b6CW1d8Yj4PrNeXLgA95+PA1EOaqmbtd7Cf9aLUE=; b=ix+w/cOzD+XP/EUrH2jNGMfGuv8Ju8HxZr9i/5DBOtscd6pyTDvOnzoeGE2B3iXfPvziLp xsJDzUZV6sWRjsj2T2em6VRMo6CEwVG9V+tWgB67VuBtmpakC9bAM0YXrdBTWUoR9WifqO 4DJ8oDsCb6MP/Vkk9nVP7jyEhNjJRYI= X-MC-Unique: CmsgN05rO1GrSKGSALltAA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782517; x=1690374517; 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=nX2b6CW1d8Yj4PrNeXLgA95+PA1EOaqmbtd7Cf9aLUE=; b=LX+ywspiq3q2J0LEHcjkCGNtUnX0zN9hvtr56C+OH7o2DoEab5F48sH75mnTC6E7Bb fgoORESq/KFIghz0HiEEidbBua2u583b+8ax/TNWSElOtvLJnqevYlyqquvK+twwvBFf xNO2NXxQzRiYiOriO1ln93WBvCxBXC5D9FXuxQDOhHjDGb2/4a2x5mF35F1eNKLpevTC zXiUDkYTyVMP/gfT6dmLlXdIVpjJg403WvfylFR/QSV4dLpVqMOl1iu9pw1153MEDad8 BQHfnwV8PGv6n7V3X2n7/6Lee44jWuaTBktXS9LWTDpPVZIVPB5M+nX/slsNrjKy9D8F kyIQ== X-Gm-Message-State: AC+VfDwsj/BQynuqPD3cYBo3E863SWYZSXyLSiNQto90d7WQikihbAJT jIBt/rzstUIiGOA1ea30bZuV6Nze8miHngFpWZO5Sk4CGLScNnKiN5fm5YDovvNSbKF4i6xfUka 0wWHKUw7ME6K2PG1RaiDtMISeQECKB/eku0/f3lBCUdcQIM1yzOHEBJY7SpIl5e5Avhq3 X-Received: by 2002:adf:ef10:0:b0:311:ff2:87e4 with SMTP id e16-20020adfef10000000b003110ff287e4mr27024871wro.33.1687782517501; Mon, 26 Jun 2023 05:28:37 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4/+Qwhi0GQnBM/L069lQHEH6MwmkzvfIjeh9+27IkJDTz5by3okw3b0ovDOFXiygffoDNI3g== X-Received: by 2002:adf:ef10:0:b0:311:ff2:87e4 with SMTP id e16-20020adfef10000000b003110ff287e4mr27024859wro.33.1687782517301; Mon, 26 Jun 2023 05:28:37 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:34 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson , Thomas Huth , Alex =?utf-8?Q?Benn=C3=A9e?= , Paolo Bonzini , Fam Zheng Subject: [PULL 15/53] hw/scsi: Rearrange meson.build Message-ID: <04ca164ad3fc5309732e482534410a36b4713b11.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783311990100002 From: Philippe Mathieu-Daud=C3=A9 We will modify this file shortly. Re-arrange it slightly first, declaring source sets first. No logical change. Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230524093744.88442-4-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Thomas Huth Reviewed-by: Alex Benn=C3=A9e --- hw/scsi/meson.build | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/scsi/meson.build b/hw/scsi/meson.build index 2a005420d2..d9b5673c14 100644 --- a/hw/scsi/meson.build +++ b/hw/scsi/meson.build @@ -1,4 +1,7 @@ scsi_ss =3D ss.source_set() +specific_scsi_ss =3D ss.source_set() +virtio_scsi_ss =3D ss.source_set() + scsi_ss.add(files( 'emulation.c', 'scsi-bus.c', @@ -11,18 +14,15 @@ scsi_ss.add(when: 'CONFIG_LSI_SCSI_PCI', if_true: files= ('lsi53c895a.c')) scsi_ss.add(when: 'CONFIG_MEGASAS_SCSI_PCI', if_true: files('megasas.c')) scsi_ss.add(when: 'CONFIG_MPTSAS_SCSI_PCI', if_true: files('mptsas.c', 'mp= tconfig.c', 'mptendian.c')) scsi_ss.add(when: 'CONFIG_VMW_PVSCSI_SCSI_PCI', if_true: files('vmw_pvscsi= .c')) -system_ss.add_all(when: 'CONFIG_SCSI', if_true: scsi_ss) =20 -specific_scsi_ss =3D ss.source_set() - -virtio_scsi_ss =3D ss.source_set() virtio_scsi_ss.add(files('virtio-scsi.c', 'virtio-scsi-dataplane.c')) - virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI_COMMON', if_true: files('vhost= -scsi-common.c')) virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI', if_true: files('vhost-scsi.c= ')) virtio_scsi_ss.add(when: 'CONFIG_VHOST_USER_SCSI', if_true: files('vhost-u= ser-scsi.c')) + specific_scsi_ss.add_all(when: 'CONFIG_VIRTIO_SCSI', if_true: virtio_scsi_= ss) =20 specific_scsi_ss.add(when: 'CONFIG_SPAPR_VSCSI', if_true: files('spapr_vsc= si.c')) =20 +system_ss.add_all(when: 'CONFIG_SCSI', if_true: scsi_ss) specific_ss.add_all(when: 'CONFIG_SCSI', if_true: specific_scsi_ss) --=20 MST From nobody Sat May 18 18:13:07 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=1687783267; cv=none; d=zohomail.com; s=zohoarc; b=oBK7lqLRjJvw5jiNr+Xo/rG85xKH2RKY6A2IbECtS6gqKkWZ0t5xwe8rUgvF96uWiUnvdaZK36LGsVw28Xan48NWzSXgiiB4eKQeTSYIISkcYbv5yFkRs8STaA49eZJUdHywvGaUPVa5EHtKEmGGVpQ32VJV2RB7jCdDlYHzw1Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783267; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=RypNFNxe8nuVR5tzX73KR4W5kbnIlhQSpngct70qAFo=; b=B8MzusIDxDNlHly5OuPnfYt9WgZO9NUSJt4S8OGANBCxVtcT+XcSrVC6CFbCFvbOcogrxmUAu3Skk2m7WIT10Sii2SmksFIpkHtPh10MF9Xr6x8AvfySX0Q4Wkuqwu7u89nAEgIIxYGJCCVqN/goH/fMGKYqeD/a3/FKTMAJ/Hw= 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 1687783267639696.4358237610329; Mon, 26 Jun 2023 05:41:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlMS-0005Vg-41; Mon, 26 Jun 2023 08:30:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlKn-00026N-Nb for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28: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 1qDlKl-0002xK-R1 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:45 -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-194-aG9EiiGKP9SzvFANNdllow-1; Mon, 26 Jun 2023 08:28:41 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-313f442806dso379612f8f.3 for ; Mon, 26 Jun 2023 05:28:41 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id v2-20020a5d6102000000b003127a21e986sm7151764wrt.104.2023.06.26.05.28.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782523; 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=RypNFNxe8nuVR5tzX73KR4W5kbnIlhQSpngct70qAFo=; b=biWWlW97dchV583xq667ZwJ1qYIMofWu94MDqVItA64pzVFJ7IyXU7hnUxKzmIHcoRb7ta rvC7Ym4wkz60w+A/wz8EcN/2JwJtX8tSMDBJ6Y5m8kBPZYv9TGReTk59CKRyEU7yn1anUs yOAWXzNZkvc/mL2DcubM8p4ecOyfgWM= X-MC-Unique: aG9EiiGKP9SzvFANNdllow-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782520; x=1690374520; 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=RypNFNxe8nuVR5tzX73KR4W5kbnIlhQSpngct70qAFo=; b=CsWfHOpjmiYUiA2lvoghg0A6mzI9xx4j7YAjro3EoyXLMg+F5QL08zZMofSLgup/hY C7FmVaQukHHP6AtZNSs9ks3R6ysPphqE2zD4c5SPcf8YGyY/8DA+uUFurbtF+FCGpBU5 yxHkIaBKItpf1EnSjTTS3aUuD5UcvfN2tcE1X+tJckJLHyGQpwOeOc0JfxhhugI1zRv4 cOQAMHkP2W4+CNGSlEb67hOXRGbPXLdKPkY1ktWG+AXd7skqm/QjwXkrOiaNmb5KIIod fatBXAjkCv16KiBJGhGFfGglZ82oHjKnNI/0RSGU9l5y9VjJqVvMGyjTrpWkBide9WnZ IM/g== X-Gm-Message-State: AC+VfDzsxW6YBibCwk6enADf7O+DGnBdwymYbSpOQdejEyu/dkLR6cMZ XJLv/pY7In7GRbnATMBdmQhjKD7mNfcVnlZXqi9xXuZFlZ7lUFfpWLvbCgqf6tQeLPNfxsDukeB JRr/FIZtIjzPKO7R8aTU/jE+kxj6Akw96MbwgrZVGcwYVmwc+pUZZLxXAxqy9XhnKjeur X-Received: by 2002:adf:f643:0:b0:313:ee73:cc9a with SMTP id x3-20020adff643000000b00313ee73cc9amr3265752wrp.70.1687782520521; Mon, 26 Jun 2023 05:28:40 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6ZiF8jsexczalbz+I5rZ9hSU1kFVOX7wj2osxFf3Twwca69dUIWLNFAoMWew3Dhr9qWK08EQ== X-Received: by 2002:adf:f643:0:b0:313:ee73:cc9a with SMTP id x3-20020adff643000000b00313ee73cc9amr3265735wrp.70.1687782520239; Mon, 26 Jun 2023 05:28:40 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:37 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson , Thomas Huth , Paolo Bonzini , Fam Zheng Subject: [PULL 16/53] hw/scsi: Rename target-specific source set as 'specific_virtio_scsi_ss' Message-ID: <5268f5f5224ed67de63e0b91b05e410a97dbb976.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783269377100007 From: Philippe Mathieu-Daud=C3=A9 Following the SCSI variable named '[specific_]scsi_ss', rename the target-specific VirtIO/SCSI set prefixed with 'specific_'. This will help when adding target-agnostic VirtIO/SCSI set in few commits. No logical change. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20230524093744.88442-5-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Thomas Huth --- hw/scsi/meson.build | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hw/scsi/meson.build b/hw/scsi/meson.build index d9b5673c14..43746700be 100644 --- a/hw/scsi/meson.build +++ b/hw/scsi/meson.build @@ -1,6 +1,6 @@ scsi_ss =3D ss.source_set() specific_scsi_ss =3D ss.source_set() -virtio_scsi_ss =3D ss.source_set() +specific_virtio_scsi_ss =3D ss.source_set() =20 scsi_ss.add(files( 'emulation.c', @@ -15,12 +15,12 @@ scsi_ss.add(when: 'CONFIG_MEGASAS_SCSI_PCI', if_true: f= iles('megasas.c')) scsi_ss.add(when: 'CONFIG_MPTSAS_SCSI_PCI', if_true: files('mptsas.c', 'mp= tconfig.c', 'mptendian.c')) scsi_ss.add(when: 'CONFIG_VMW_PVSCSI_SCSI_PCI', if_true: files('vmw_pvscsi= .c')) =20 -virtio_scsi_ss.add(files('virtio-scsi.c', 'virtio-scsi-dataplane.c')) -virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI_COMMON', if_true: files('vhost= -scsi-common.c')) -virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI', if_true: files('vhost-scsi.c= ')) -virtio_scsi_ss.add(when: 'CONFIG_VHOST_USER_SCSI', if_true: files('vhost-u= ser-scsi.c')) +specific_virtio_scsi_ss.add(files('virtio-scsi.c', 'virtio-scsi-dataplane.= c')) +specific_virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI_COMMON', if_true: fil= es('vhost-scsi-common.c')) +specific_virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI', if_true: files('vho= st-scsi.c')) +specific_virtio_scsi_ss.add(when: 'CONFIG_VHOST_USER_SCSI', if_true: files= ('vhost-user-scsi.c')) =20 -specific_scsi_ss.add_all(when: 'CONFIG_VIRTIO_SCSI', if_true: virtio_scsi_= ss) +specific_scsi_ss.add_all(when: 'CONFIG_VIRTIO_SCSI', if_true: specific_vir= tio_scsi_ss) =20 specific_scsi_ss.add(when: 'CONFIG_SPAPR_VSCSI', if_true: files('spapr_vsc= si.c')) =20 --=20 MST From nobody Sat May 18 18:13:07 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=1687783337; cv=none; d=zohomail.com; s=zohoarc; b=Dy8pfA0B5OAJ+HFnjZ+BqxX8BtA5wSmNnh//8Z/6aLXDtH+0xCYdY2pRIsqfre/ewLhPxcpiNDAwM1+IupeSMa5kGpLvQMmrlcAH4aC4JgUlEj0MHdmP+mU5NgyeWxXp1LuSDzJ1kHkdG+gDhJupjwJ6uU3R5jHonjl0ZqPauZw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783337; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UxG3vkztDABFKvGFJuiCrBUuGxHDzYPIW6GxfE8K+J0=; b=DkjFpsrtW6t6HuRrNONP+0sNkjwObryDSuOfcQrDseddg46JKPNE0OZmq0TIoPk9wzL3Np7AONVOiPg0K4o2wyBL+PUh8OrXt7VVQQaQo8bN5QUY+KZQ6YcnMQr+ysQwjpZNsxsjwbaoIVBlaBLmDSWZAusQKEAKBErJCuBl+xs= 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 1687783337058180.94038997447308; Mon, 26 Jun 2023 05:42:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlND-00066D-L5; Mon, 26 Jun 2023 08:31:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlKr-0002CF-Of for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:50 -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 1qDlKo-0002zV-Se for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:49 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-635-6TMIWX7CNlqdtwGEamHPFw-1; Mon, 26 Jun 2023 08:28:44 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-3f810b4903fso19812955e9.2 for ; Mon, 26 Jun 2023 05:28:44 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id a10-20020a1cf00a000000b003f8fb02c413sm7601442wmb.8.2023.06.26.05.28.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782526; 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=UxG3vkztDABFKvGFJuiCrBUuGxHDzYPIW6GxfE8K+J0=; b=TSddZMnLu+YXOfm0ut1JT1NL8EXkJ3etaMr3/9iUvTbueLxo0nfkbH1S8wd0+SYYo6BpCq PLPJZb9zlvk/mqfS3sFvG91K1fa/0Z7gJ9FUt5iOJ7MSlRRDlKYRiPNCvfqJh6vJE6bqyI vYT+t4lBKghNqBvGlxwbVWhXXlUlQWU= X-MC-Unique: 6TMIWX7CNlqdtwGEamHPFw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782523; x=1690374523; 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=UxG3vkztDABFKvGFJuiCrBUuGxHDzYPIW6GxfE8K+J0=; b=TZmxz6xNrAaFgGURWi9tyu+uZUM0UtX2bhb1vZKrkaZYnqYgConPxz2EczsxfBu2+h zHV9DXOz8yQmpqAKMIKNGDSvFIMpEiDra6Q8rP64+lyBQ3CZb5318Xb6Q7Sa3gPf9EXj cQH8CK7av9JmB1cbVVu+Zdwx2uIYq5O7tqf5HHTSgHFitCrjXAs4qLXcF8hBZyFv9m3M G4vVDAUhcLRwzOPcNGhDLRIJEQZat5fygqTRujnn5VGziHHU20ulIeTLWQ0B8O5jogeL 0IdhcIMWAnIU05aQdwMGbiZsHd5dLd5a9Jow+ZILP9Xo3ZQRKikTGb8Uz8j7uHfMFeTg XDow== X-Gm-Message-State: AC+VfDzXtT1aKZWvh7W91sMkFmqlmD1kua96Yu6/Gd62csNd9Ic/DMoW vSx5ccQMfPqtcDVAJgtGQbMadmUuq4mLvjUUt0GrawHlyeQif+wpnODQSM1sbeORElj2Z/oUGKg hfnxPqHE1dQmx2cJjJOZvBLOausCQ4N2PYyD4r3qH5LQ1qCadlf9kKXtL/Ql37opq6KWH X-Received: by 2002:a05:600c:21c5:b0:3fa:1af8:6ebf with SMTP id x5-20020a05600c21c500b003fa1af86ebfmr10093464wmj.0.1687782523429; Mon, 26 Jun 2023 05:28:43 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4X77oYzVG3Xio+A82hu7u3UCWzmVI45CIOcaja/0YcnL/EPxZQyUDecni+59AIVZc3g3wAWg== X-Received: by 2002:a05:600c:21c5:b0:3fa:1af8:6ebf with SMTP id x5-20020a05600c21c500b003fa1af86ebfmr10093447wmj.0.1687782523203; Mon, 26 Jun 2023 05:28:43 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:40 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson , Thomas Huth , Alex =?utf-8?Q?Benn=C3=A9e?= , Stefano Garzarella , Paolo Bonzini Subject: [PULL 17/53] hw/virtio: Introduce VHOST_VSOCK_COMMON symbol in Kconfig Message-ID: <6df956299a751c1eff03a8ea791a0182a688a7cc.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783337678100001 From: Philippe Mathieu-Daud=C3=A9 Instead of adding 'vhost-vsock-common.c' twice (for VHOST_VSOCK and VHOST_USER_VSOCK), have it depend on VHOST_VSOCK_COMMON, selected by both symbols. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Reviewed-by: Thomas Huth Message-Id: <20230524093744.88442-6-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Stefano Garzarella --- hw/virtio/Kconfig | 6 ++++++ hw/virtio/meson.build | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig index 89e9e426d8..de7a35429a 100644 --- a/hw/virtio/Kconfig +++ b/hw/virtio/Kconfig @@ -56,14 +56,20 @@ config VIRTIO_MEM depends on VIRTIO_MEM_SUPPORTED select MEM_DEVICE =20 +config VHOST_VSOCK_COMMON + bool + depends on VIRTIO + config VHOST_VSOCK bool default y + select VHOST_VSOCK_COMMON depends on VIRTIO && VHOST_KERNEL =20 config VHOST_USER_VSOCK bool default y + select VHOST_VSOCK_COMMON depends on VIRTIO && VHOST_USER =20 config VHOST_USER_I2C diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build index e83c37fffd..a6ea5beae7 100644 --- a/hw/virtio/meson.build +++ b/hw/virtio/meson.build @@ -23,8 +23,9 @@ specific_virtio_ss.add(when: 'CONFIG_VIRTIO_BALLOON', if_= true: files('virtio-bal specific_virtio_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('virti= o-crypto.c')) specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_FS', if_true: files('vhost= -user-fs.c')) specific_virtio_ss.add(when: 'CONFIG_VIRTIO_PMEM', if_true: files('virtio-= pmem.c')) -specific_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-v= sock.c', 'vhost-vsock-common.c')) -specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_VSOCK', if_true: files('vh= ost-user-vsock.c', 'vhost-vsock-common.c')) +specific_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK_COMMON', if_true: files('= vhost-vsock-common.c')) +specific_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-v= sock.c')) +specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_VSOCK', if_true: files('vh= ost-user-vsock.c')) specific_virtio_ss.add(when: 'CONFIG_VIRTIO_RNG', if_true: files('virtio-r= ng.c')) specific_virtio_ss.add(when: 'CONFIG_VIRTIO_IOMMU', if_true: files('virtio= -iommu.c')) specific_virtio_ss.add(when: 'CONFIG_VIRTIO_MEM', if_true: files('virtio-m= em.c')) --=20 MST From nobody Sat May 18 18:13:07 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=1687782603; cv=none; d=zohomail.com; s=zohoarc; b=CRCiXYdx2Lmj2pqrAffSN7uToMEsE5fK8HVoOqZAIgbGT9smRo4AHDeOqQIvyQ3RV+Rfn827FFzhrxKU1L3GdolOaFuGfNkBA710bd/rbitJFkjjIhw/MZF+Irbe9lcQQn9ANTUcplT2TysmsFzAXX7IcM+ZyOeUIUOnkmkJGp0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782603; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/lUSJaMnlnz/HAJShdhWd+2sdzRo2ASZhZzrf+rbuEM=; b=il2gdIgYLgBgKhP9fEe+lAUSUly5bhMDYfFSZrKgUV4cmPPA9OWwQ0DGgY8V0sDomCFwB9uW6oEmQ2mIHUX2xfboDrjfG2V7KlKZmPL8VC7qh6sw9dYtFjVIhsIZgRZ5hAyYEQn/Mf424Xs3uOW7UVFrwwxQPIKpKRFLyYJycy0= 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 1687782603804993.0695128482972; Mon, 26 Jun 2023 05:30:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlLq-0002vG-Cg; Mon, 26 Jun 2023 08:29: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 1qDlKu-0002Ht-CG for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:54 -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 1qDlKr-000310-Gc for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:50 -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-536-uIW9Ob6PMR2HK3vz-V4YIA-1; Mon, 26 Jun 2023 08:28:47 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-3fb40d90456so1352805e9.0 for ; Mon, 26 Jun 2023 05:28:47 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id j19-20020a5d4533000000b0030aded83385sm7309811wra.27.2023.06.26.05.28.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782528; 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=/lUSJaMnlnz/HAJShdhWd+2sdzRo2ASZhZzrf+rbuEM=; b=bY+Ob/AFYeiOYRKEUzbNBSBdzsVUK0gXec8m3w6aqSIcOl8dLo5cvd9RIgCIfrOtpQB4Ts i7YFXXtIXTBYxP0lndMLGs9NbgqhHyHK1wgV9ZsPPhi332aXiwrwuiu6yZqcQrUIPAS7oa dd5L/UlxGlzjRNOu/0Ejxgfto8Nqfnk= X-MC-Unique: uIW9Ob6PMR2HK3vz-V4YIA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782526; x=1690374526; 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=/lUSJaMnlnz/HAJShdhWd+2sdzRo2ASZhZzrf+rbuEM=; b=VMLGgSf7x0UV4RjUP4kvUsdLi88baIMmkfBROIQCLFo758ZrzYNgEWbIpZcL3RbCiF 0d8Stj5trWkHr/CYr495/8fdpVslQmdTYRbXTdKPwb+5b9fhSy4oGVskOBV7nHt6Bw3Z W5snp9p/1afjpfHMYHSOjtGFgjznrdrLkHjxIuG1tLYS68oc4zfppzB3W83bIvsbKCw9 3WAAyTBu2INRGDhHUFJl30cujoPSOfZOkjT3+otAJ2wTRApe9uSr+/gpOgCm+nvTSa5N PpnWEUUcF4eQsPjNQDcHq0P4QMVguzrOhW//8HA396sMtN1xtD1mrzMIj5SHs49dhewf K5Lw== X-Gm-Message-State: AC+VfDxbhw2p1m20PSWKDUbjXLLsMX0B/cFXRrkVlpr7OjsGatiNhPLV 70l3LD6opB29aWWCYpiTQChKaKE0ATdJv4Pw9RjbGb4C8EVJarxS2D8k0mGNelHwuyzONG9Q/kG jvrF5Ip3ZLWI/mpjvCLnYVLU2+XozZGw3vG/JC6YTQVXo6SBVRxczTeWqlVYnrwOGsSdi X-Received: by 2002:a7b:c401:0:b0:3f4:2a69:409 with SMTP id k1-20020a7bc401000000b003f42a690409mr26793062wmi.11.1687782526135; Mon, 26 Jun 2023 05:28:46 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7fxFdN41aRBm7SHVwgNoRmhkopLTVBDvTPf0WLpXVcz66w0wT1Bin8nPE9R/d8tEFvDr237Q== X-Received: by 2002:a7b:c401:0:b0:3f4:2a69:409 with SMTP id k1-20020a7bc401000000b003f42a690409mr26793047wmi.11.1687782525911; Mon, 26 Jun 2023 05:28:45 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:43 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , David Hildenbrand , Richard Henderson , Alex =?utf-8?Q?Benn=C3=A9e?= Subject: [PULL 18/53] hw/virtio/virtio-mem: Use qemu_ram_get_fd() helper Message-ID: <21e6435066bd3818969b520b69415ba62a85cd24.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782605300100001 From: Philippe Mathieu-Daud=C3=A9 Avoid accessing RAMBlock internals, use the provided qemu_ram_get_fd() getter to get the file descriptor. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: David Hildenbrand Reviewed-by: Richard Henderson Message-Id: <20230524093744.88442-7-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Alex Benn=C3=A9e --- hw/virtio/virtio-mem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c index 538b695c29..74e63bd47a 100644 --- a/hw/virtio/virtio-mem.c +++ b/hw/virtio/virtio-mem.c @@ -135,7 +135,7 @@ static bool virtio_mem_has_shared_zeropage(RAMBlock *rb) * anonymous RAM. In any other case, reading unplugged *can* populate a * fresh page, consuming actual memory. */ - return !qemu_ram_is_shared(rb) && rb->fd < 0 && + return !qemu_ram_is_shared(rb) && qemu_ram_get_fd(rb) < 0 && qemu_ram_pagesize(rb) =3D=3D qemu_real_host_page_size(); } #endif /* VIRTIO_MEM_HAS_LEGACY_GUESTS */ --=20 MST From nobody Sat May 18 18:13:07 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=1687783893; cv=none; d=zohomail.com; s=zohoarc; b=C2NlXjJhZd32GH030cnHePPvt+hHYe6e/7XdRBvudD7i5Wz9mVMd/u/wAEzO/gzJ3RV5WQcaRQj/NbzxJtvm1B2O2qs14ZtyLEdFyU4QqbTAnwHkcSrwwUMcgkHC0a2OHqsW6vLW/zbbZd7/mdGBIEvAbOFzRQfjiZMMhKhOV8w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783893; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=m/fSQrh3AqOqxqH5X37BkjIgkbSIkWL7nr6LD5BoZqM=; b=IGq3xZTg91P7XLAeU9A9zn18FYlYr8RF/eCHcjHSwzrq1qJ1uhMNMIowzP1lWjl6ptYTYk2TXhkxUj28eVQXOCw4q+d1JtthRo9iC+ovB1QphgdYOYmQFHXt1PmzO3I2/AGYDuJuCfIsOvIbEKu1mYW/Bnh1tAQeRF4InWLi6XY= 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 1687783893185134.2225138825189; Mon, 26 Jun 2023 05:51:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlMO-00055O-96; Mon, 26 Jun 2023 08:30: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 1qDlKy-0002MU-Qa for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:00 -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 1qDlKw-000324-Ii for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28:55 -0400 Received: from mail-lf1-f72.google.com (mail-lf1-f72.google.com [209.85.167.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-222-DD7622xVPZStV1k54H8f7w-1; Mon, 26 Jun 2023 08:28:51 -0400 Received: by mail-lf1-f72.google.com with SMTP id 2adb3069b0e04-4fb7b4be07bso324198e87.1 for ; Mon, 26 Jun 2023 05:28:50 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id r13-20020a05600c284d00b003f733c1129fsm7551958wmb.33.2023.06.26.05.28.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782532; 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=m/fSQrh3AqOqxqH5X37BkjIgkbSIkWL7nr6LD5BoZqM=; b=SoaRlU2STDLk0aoQifscK3BuczGR9J6Hu4t5UkomySGpSb6My0T9xzmw9BnDO4JW8E8P2f v4wnxIFLlQXNMHPduqnjTYz04oE1ax0eKsBGcS4bkPygQ3yfW1EJj2SJxm6SK+VlztfyUH o/HEvEE5kMVPJGwzQ67G2L/dqnRWI+M= X-MC-Unique: DD7622xVPZStV1k54H8f7w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782529; x=1690374529; 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=m/fSQrh3AqOqxqH5X37BkjIgkbSIkWL7nr6LD5BoZqM=; b=ebujaBUp9ATbdglteifVtPotVNhFnmWW4ybOeI3wghx+iN1hnpFPHsUFNKppXQDA7T J2qR40r0Umk5hD9M0OzkqlEkmYLaRS/NuFKX1c7TdEVJPsyODHMckPs42k4AzJscBz2A Ymd9djcKN5PItDvnAHooOtbFJ6gq7dhizJcF2eIMzxlHwEVxFfF3yNVQB8MiM7TKhRKo I9aHejDcaDlGr7oHYstrkeVUhY8ulprdoI/sXuxWobZa6yQp8vy3ShTWlU0R/RxqXEaN QMpi9kZWJeQe7SK4T2LhwBfsXJ684SbKQEp3KOlBgTjhrJh3yZZpakd1SYcnaet+pN0U gadw== X-Gm-Message-State: AC+VfDyCdtXvYcJVQNxYXTqNilbc6SKciiG9nay/Z3LC6dT6KAR7ZUPp nAn/W5I89VJDd38U+V54BoANss6OKmYyekNtcMfxUJBu9CIlqSqnb46nnZzmy4fiHiYFPSBdouR xyPFbfaPuO1jFbXMCrwJ+bAnZX+AhW5Ywh6BD9tPAh2mvhxdKgnPyTPqUu/gOhNZKNVkY X-Received: by 2002:a19:e34a:0:b0:4f8:4263:42f with SMTP id c10-20020a19e34a000000b004f84263042fmr16129645lfk.17.1687782529105; Mon, 26 Jun 2023 05:28:49 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6s+n685Bgv6neJStv7gUPMikrpj39BrByux7Ez36TeeziHONAx9BjzDIeyB+A2JO29TBpOhg== X-Received: by 2002:a19:e34a:0:b0:4f8:4263:42f with SMTP id c10-20020a19e34a000000b004f84263042fmr16129634lfk.17.1687782528767; Mon, 26 Jun 2023 05:28:48 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:46 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson , Thomas Huth , Alex =?utf-8?Q?Benn=C3=A9e?= , Stefano Garzarella Subject: [PULL 19/53] hw/virtio/vhost-vsock: Include missing 'virtio/virtio-bus.h' header 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783893955100003 From: Philippe Mathieu-Daud=C3=A9 Instead of having "virtio/virtio-bus.h" implicitly included, explicitly include it, to avoid when rearranging headers: hw/virtio/vhost-vsock-common.c: In function =E2=80=98vhost_vsock_common_s= tart=E2=80=99: hw/virtio/vhost-vsock-common.c:51:5: error: unknown type name =E2=80=98Vi= rtioBusClass=E2=80=99; did you mean =E2=80=98VirtioDeviceClass=E2=80=99? 51 | VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); | ^~~~~~~~~~~~~~ | VirtioDeviceClass hw/virtio/vhost-vsock-common.c:51:25: error: implicit declaration of func= tion =E2=80=98VIRTIO_BUS_GET_CLASS=E2=80=99; did you mean =E2=80=98VIRTIO_D= EVICE_CLASS=E2=80=99? [-Werror=3Dimplicit-function-declaration] 51 | VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); | ^~~~~~~~~~~~~~~~~~~~ | VIRTIO_DEVICE_CLASS Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Message-Id: <20230524093744.88442-8-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Stefano Garzarella --- hw/virtio/vhost-vsock-common.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/virtio/vhost-vsock-common.c b/hw/virtio/vhost-vsock-common.c index d2b5519d5a..e89af9b329 100644 --- a/hw/virtio/vhost-vsock-common.c +++ b/hw/virtio/vhost-vsock-common.c @@ -11,6 +11,7 @@ #include "qemu/osdep.h" #include "standard-headers/linux/virtio_vsock.h" #include "qapi/error.h" +#include "hw/virtio/virtio-bus.h" #include "hw/virtio/virtio-access.h" #include "qemu/error-report.h" #include "hw/qdev-properties.h" --=20 MST From nobody Sat May 18 18:13:07 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=1687783256; cv=none; d=zohomail.com; s=zohoarc; b=cJjxnA2oFSje77LIV1sSTZZGqVVyFzkOhAQLjk8x0F2RHbuIe5I164zGh5QHznawQd4JDOyVyoTajtllD1oxEJMrJySeX9mnTMrGVmuIGfgP1gYjyciXZdVe1+W+1V8VERRKKeEC/DaZvyavtHOqazyfBWaswuAgs/6xL2ae4WA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783256; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=p3R7bbX1OVcHwyYU8dbH6MaxjId8JlY7Jg13CA3d3Lg=; b=gwemkRE3mhTeQXB5MkNZaIooLUle0I3tK8h5CIQ7K3v3ZSWedpO1K0Qtqyb4SFMJITEstYrepZOUZ7vs/2NBGSaRlInNVM+bfG9GwKmwOH/cNSp59fDEc3iNSk3wXMRlsdnrNB7XrBQTYoi4f2Vi/9rYXhliD+AcsHjJQi/GSAs= 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 1687783256007626.0069753886011; Mon, 26 Jun 2023 05:40:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlMR-0005S8-98; Mon, 26 Jun 2023 08:30:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlL0-0002NU-LZ for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:00 -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 1qDlKx-00032E-9a for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:28: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-324-e7PrP15wP5qFLmZW_dgkbw-1; Mon, 26 Jun 2023 08:28:53 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-313f371b0d9so385488f8f.3 for ; Mon, 26 Jun 2023 05:28:53 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id v11-20020a5d610b000000b00313e2abfb8dsm6719036wrt.92.2023.06.26.05.28.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782534; 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=p3R7bbX1OVcHwyYU8dbH6MaxjId8JlY7Jg13CA3d3Lg=; b=A+afMQ0UqVRO/Io7gVdV+QfcOxb1Jv7mNq1EiSh+lTdQ1WQdkdqcjzeC1/02oFgiwvIlPm Ly8ZphUx+GIe+JXt8WaGwUpwGn8f0lRb7ds3H9khSlCEeNiqAfJ0cFn4NZuuWr2ywyCVG/ FfgbpDiYsgorTUwBWgYQkE/2HS7to44= X-MC-Unique: e7PrP15wP5qFLmZW_dgkbw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782532; x=1690374532; 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=p3R7bbX1OVcHwyYU8dbH6MaxjId8JlY7Jg13CA3d3Lg=; b=kXw4CCwjznRnHLJbakA+sB9CkxIne1OPh1ka1AWxv5VF96zCwiMHIZNjMBPuc0JyRc TGuYmpL1/Fbe0SX3N6RSoEmdBP61BP8z1aBpGpOJPfsXM7dPGhU+vQdA86lD31Qj6h4t /5MjSa4uVDBc+/fSyBlYvid3AH6wEn0q2mupPgwZJj8nojJytDQWNrfrssN2QJwDQqkA wXgLv6so8pXbqlYjTRiLMNfEt+vn8twQr5ae+32TAo38mWOXugvV39ntQzNA+8I4Q6wJ IvowcsHAxVWriemk9bKqvDBH4ejMCB0bd+nl/0ytrR9qDX8ICYosQVWoHfZIB8BZEfs1 /sew== X-Gm-Message-State: AC+VfDxKFhUrTBprzKCsJB+dEfPOP0dFOCb0o0tZciUSFy+vxIb4Zs9/ qwxJ92m2GwoaZjKJi47PbjymMHFupi8OSxBIMQoEkQsEfPpsfskwR9Y92WmCEVywb5NFnUhwIVa zBcCJSDpxL7VQnmMKBAS3OoCL7Gw54Lpatgw5Oi+snZsxHI+FW+B+gOW+rQiwYX4MKGo8 X-Received: by 2002:adf:f80e:0:b0:313:f3c5:dac9 with SMTP id s14-20020adff80e000000b00313f3c5dac9mr1227676wrp.41.1687782531995; Mon, 26 Jun 2023 05:28:51 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7CC101Wem0BBXxxb3gOEYR8TXBR01iYeCC0mbMy2bH5DeeRiw4iNu8eBcJV+ZtyIw3X7Szfg== X-Received: by 2002:adf:f80e:0:b0:313:f3c5:dac9 with SMTP id s14-20020adff80e000000b00313f3c5dac9mr1227660wrp.41.1687782531723; Mon, 26 Jun 2023 05:28:51 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:49 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson , Eric Auger , Alex =?utf-8?Q?Benn=C3=A9e?= Subject: [PULL 20/53] hw/virtio/virtio-iommu: Use target-agnostic qemu_target_page_mask() 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783257330100003 From: Philippe Mathieu-Daud=C3=A9 In order to have virtio-iommu.c become target-agnostic, we need to avoid using TARGET_PAGE_MASK. Get it with the qemu_target_page_mask() helper. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Reviewed-by: Eric Auger Message-Id: <20230524093744.88442-9-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Alex Benn=C3=A9e --- hw/virtio/virtio-iommu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index 1cd258135d..85905a9e3d 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -20,6 +20,7 @@ #include "qemu/osdep.h" #include "qemu/log.h" #include "qemu/iov.h" +#include "exec/target_page.h" #include "hw/qdev-properties.h" #include "hw/virtio/virtio.h" #include "sysemu/kvm.h" @@ -1164,7 +1165,7 @@ static void virtio_iommu_device_realize(DeviceState *= dev, Error **errp) * in vfio realize */ s->config.bypass =3D s->boot_bypass; - s->config.page_size_mask =3D TARGET_PAGE_MASK; + s->config.page_size_mask =3D qemu_target_page_mask(); s->config.input_range.end =3D UINT64_MAX; s->config.domain_range.end =3D UINT32_MAX; s->config.probe_size =3D VIOMMU_PROBE_SIZE; --=20 MST From nobody Sat May 18 18:13:07 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=1687783085; cv=none; d=zohomail.com; s=zohoarc; b=cjfAl495boFxZtqa2oqq27F1BeE84rP4AJ7sjG8R2wEK7KbRTs+6sVIzDXJ0i3NzGa0AvmcvUCysUyZJ1qlGQLL0aKUq0ame1DqsQhzV81ZJtI7TUS6mK2MCaV6NOkDln8xfZZPi2eAIO9MFqctCwwLL2YSKPiMBSA9wnACYR6M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783085; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cmYTDPAI2xgJjGZMucMrx6UGF1BWykf5qDnfD2qNmBs=; b=nh6LcxLjzSCB/kbU+7OwjvUS1BwmUl6Zna3oS/nQynAL6yLcYYsMr8/ylF6J7by59PbTBUla6qds/tNXD6nDM+rNjoIo9oiLgdwQg9oquflE7GpuQFHs72T4+kBJQ7w7Cv2xxFmBTe2u35vQAEoCJmv3sFb2llKX5q5RV4+mzJs= 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 1687783085165681.9856777906367; Mon, 26 Jun 2023 05:38:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlLv-0003G8-Bv; Mon, 26 Jun 2023 08:29: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 1qDlL5-0002QS-BR for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:11 -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 1qDlL1-00032w-Su for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:01 -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-pE9RZE-_NxSM-k5QQK8b3A-1; Mon, 26 Jun 2023 08:28:57 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-3fa8f8fb7b3so27935215e9.2 for ; Mon, 26 Jun 2023 05:28:57 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id c21-20020a7bc855000000b003f8fac0ad4bsm7510243wml.17.2023.06.26.05.28.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782539; 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=cmYTDPAI2xgJjGZMucMrx6UGF1BWykf5qDnfD2qNmBs=; b=CMdQ7W/lYiWS//lw17PD3cVnwSPJucXJ41onxsxBXHGLWADJpN+wRc/snDFBRhhccdcjXC K/bJid8p1BxeNbkAjhiaX2045R08thkmfP4yfJ7x2RwsW1Fzf7YjuKN4mQeKnpYDU62t4Q InVMi6vLK4Q7sg1hexy7fGr7YYLsmfk= X-MC-Unique: pE9RZE-_NxSM-k5QQK8b3A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782536; x=1690374536; 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=cmYTDPAI2xgJjGZMucMrx6UGF1BWykf5qDnfD2qNmBs=; b=DaeNmwY3G7MivMcyJa6Z8/f9oQP0V8ycY3S1Fm792MEpO1+cZM+zvHJpByThPo6j8y cVZNtYjd7PPpT6d+eDPZyh7/HU1zhn6hYTu2qnN7ohw718xyxZyOYxMLp7IBTqprxPlB d7jfGZO9s2k1gJT8niD0L8Q173quMoA7e6IZ4eWZhD+Nj2b2ZnrrkDicvI419kXaAozk CFGegDLmuP8ZLN9BWQZt9Ry3Cef9g42DGLXa25NV3keWpB/Z1HJ0iJbm/6Izm0DHQN+p lTD3FqjwuZhyvFc7jdvNnw5i9kAM2IJAcCRVblo1YW6cMxdaj1O29eMsYrqG7fQuqyAV mhBQ== X-Gm-Message-State: AC+VfDyBuqVF3M39YwCTo1gPIl5YkypVHxpnBiUsNbFXPnliJ6j/TLGN 0A98UclqsvzEWLG5RzzHaPKn1TLHMixvRGELLTzW/jpoKEN7tX/TdIx6rRNPSWxV6gR0qBgFinK d8f2y2NmJfACYq5Eu7psp3YooXpmH/PDjRNXlAc7TBy9s+Coo0GtH949LGcpsIaPo+mBK X-Received: by 2002:a05:600c:28e:b0:3fa:8aed:d57f with SMTP id 14-20020a05600c028e00b003fa8aedd57fmr5192259wmk.24.1687782536270; Mon, 26 Jun 2023 05:28:56 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7ItFnmCy4mk7X9UK0cRG8CIvcsJxajw3gfBC1SzxWeKRBpOicd4RlXn3UXR3EDEepdTuE0pg== X-Received: by 2002:a05:600c:28e:b0:3fa:8aed:d57f with SMTP id 14-20020a05600c028e00b003fa8aedd57fmr5192229wmk.24.1687782535945; Mon, 26 Jun 2023 05:28:55 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:52 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson , Thomas Huth , Alex =?utf-8?Q?Benn=C3=A9e?= , Stefan Hajnoczi , Kevin Wolf , Hanna Reitz , Cornelia Huck , Halil Pasic , Eric Farman , Christian Borntraeger , David Hildenbrand , Ilya Leoshkevich , Paolo Bonzini , Fam Zheng , Raphael Norwitz , "Gonglei (Arei)" , Eric Auger , qemu-block@nongnu.org, qemu-s390x@nongnu.org Subject: [PULL 21/53] hw/virtio: Remove unnecessary 'virtio-access.h' header Message-ID: <4ee4667ded5841ff9278d4e4a4c765a3220023bf.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1687783086545100003 From: Philippe Mathieu-Daud=C3=A9 None of these files use the VirtIO Load/Store API declared by "hw/virtio/virtio-access.h". This header probably crept in via copy/pasting, remove it. Note, "virtio-access.h" is target-specific, so any file including it also become tainted as target-specific. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Richard Henderson Tested-by: Thomas Huth Message-Id: <20230524093744.88442-10-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Alex Benn=C3=A9e --- hw/block/dataplane/virtio-blk.c | 1 - hw/s390x/virtio-ccw.c | 1 - hw/scsi/vhost-scsi.c | 1 - hw/scsi/vhost-user-scsi.c | 1 - hw/scsi/virtio-scsi-dataplane.c | 1 - hw/virtio/vdpa-dev.c | 1 - hw/virtio/vhost-vdpa.c | 1 - hw/virtio/vhost-vsock-common.c | 1 - hw/virtio/vhost.c | 1 - hw/virtio/virtio-crypto.c | 1 - hw/virtio/virtio-iommu.c | 1 - hw/virtio/virtio-mem.c | 1 - 12 files changed, 12 deletions(-) diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-bl= k.c index b90456c08c..c227b39408 100644 --- a/hw/block/dataplane/virtio-blk.c +++ b/hw/block/dataplane/virtio-blk.c @@ -19,7 +19,6 @@ #include "qemu/main-loop.h" #include "qemu/thread.h" #include "qemu/error-report.h" -#include "hw/virtio/virtio-access.h" #include "hw/virtio/virtio-blk.h" #include "virtio-blk.h" #include "block/aio.h" diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index f44de1a8c1..17c548b84f 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -22,7 +22,6 @@ #include "qemu/error-report.h" #include "qemu/log.h" #include "qemu/module.h" -#include "hw/virtio/virtio-access.h" #include "hw/virtio/virtio-bus.h" #include "hw/s390x/adapter.h" #include "hw/s390x/s390_flic.h" diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c index 6a0fd0dfb1..443f67daa4 100644 --- a/hw/scsi/vhost-scsi.c +++ b/hw/scsi/vhost-scsi.c @@ -26,7 +26,6 @@ #include "hw/virtio/vhost.h" #include "hw/virtio/virtio-scsi.h" #include "hw/virtio/virtio-bus.h" -#include "hw/virtio/virtio-access.h" #include "hw/fw-path-provider.h" #include "hw/qdev-properties.h" #include "qemu/cutils.h" diff --git a/hw/scsi/vhost-user-scsi.c b/hw/scsi/vhost-user-scsi.c index b7a71a802c..ee99b19e7a 100644 --- a/hw/scsi/vhost-user-scsi.c +++ b/hw/scsi/vhost-user-scsi.c @@ -26,7 +26,6 @@ #include "hw/virtio/vhost-backend.h" #include "hw/virtio/vhost-user-scsi.h" #include "hw/virtio/virtio.h" -#include "hw/virtio/virtio-access.h" #include "chardev/char-fe.h" #include "sysemu/sysemu.h" =20 diff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplan= e.c index d55de4c8ca..1e684beebe 100644 --- a/hw/scsi/virtio-scsi-dataplane.c +++ b/hw/scsi/virtio-scsi-dataplane.c @@ -19,7 +19,6 @@ #include "hw/scsi/scsi.h" #include "scsi/constants.h" #include "hw/virtio/virtio-bus.h" -#include "hw/virtio/virtio-access.h" =20 /* Context: QEMU global mutex held */ void virtio_scsi_dataplane_setup(VirtIOSCSI *s, Error **errp) diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c index 01b41eb0f1..e08e830006 100644 --- a/hw/virtio/vdpa-dev.c +++ b/hw/virtio/vdpa-dev.c @@ -25,7 +25,6 @@ #include "hw/virtio/vhost.h" #include "hw/virtio/virtio.h" #include "hw/virtio/virtio-bus.h" -#include "hw/virtio/virtio-access.h" #include "hw/virtio/vdpa-dev.h" #include "sysemu/sysemu.h" #include "sysemu/runstate.h" diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index b3094e8a8b..3c575a9a6e 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -26,7 +26,6 @@ #include "cpu.h" #include "trace.h" #include "qapi/error.h" -#include "hw/virtio/virtio-access.h" =20 /* * Return one past the end of the end of section. Be careful with uint64_t diff --git a/hw/virtio/vhost-vsock-common.c b/hw/virtio/vhost-vsock-common.c index e89af9b329..321262f6b3 100644 --- a/hw/virtio/vhost-vsock-common.c +++ b/hw/virtio/vhost-vsock-common.c @@ -12,7 +12,6 @@ #include "standard-headers/linux/virtio_vsock.h" #include "qapi/error.h" #include "hw/virtio/virtio-bus.h" -#include "hw/virtio/virtio-access.h" #include "qemu/error-report.h" #include "hw/qdev-properties.h" #include "hw/virtio/vhost.h" diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index 23da579ce2..7f3c727777 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -23,7 +23,6 @@ #include "qemu/log.h" #include "standard-headers/linux/vhost_types.h" #include "hw/virtio/virtio-bus.h" -#include "hw/virtio/virtio-access.h" #include "migration/blocker.h" #include "migration/qemu-file-types.h" #include "sysemu/dma.h" diff --git a/hw/virtio/virtio-crypto.c b/hw/virtio/virtio-crypto.c index c729a1f79e..a6d7e1e8ec 100644 --- a/hw/virtio/virtio-crypto.c +++ b/hw/virtio/virtio-crypto.c @@ -21,7 +21,6 @@ #include "hw/virtio/virtio.h" #include "hw/virtio/virtio-crypto.h" #include "hw/qdev-properties.h" -#include "hw/virtio/virtio-access.h" #include "standard-headers/linux/virtio_ids.h" #include "sysemu/cryptodev-vhost.h" =20 diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index 85905a9e3d..1bbad23f4a 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -32,7 +32,6 @@ #include "standard-headers/linux/virtio_ids.h" =20 #include "hw/virtio/virtio-bus.h" -#include "hw/virtio/virtio-access.h" #include "hw/virtio/virtio-iommu.h" #include "hw/pci/pci_bus.h" #include "hw/pci/pci.h" diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c index 74e63bd47a..12ea58d5ad 100644 --- a/hw/virtio/virtio-mem.c +++ b/hw/virtio/virtio-mem.c @@ -20,7 +20,6 @@ #include "sysemu/reset.h" #include "hw/virtio/virtio.h" #include "hw/virtio/virtio-bus.h" -#include "hw/virtio/virtio-access.h" #include "hw/virtio/virtio-mem.h" #include "qapi/error.h" #include "qapi/visitor.h" --=20 MST From nobody Sat May 18 18:13:07 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=1687783274; cv=none; d=zohomail.com; s=zohoarc; b=EfNDuFZpTdD2i3I1HsZewUxJ5d/drLVbDekOs3sdTXVC0eTLUfkrqWE+CH2stSluFgbvDBJjMZYlb0518P12t9s5AV5nVOkZwmvhTfbBcESFepHE/FvsF+w/6IQi1/x+npG3YzWdd2gAHDhVPf0GfbPbfTQHpIwjAU89RBvJBsk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783274; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=H0oeErSXAGqtdLlL9WwcgUJY5/rn+3CrQVAQVjQGGBg=; b=H72hjgIn2Rafzu+kn9Mc0ont829HkZ3r6qkwkBWS9E2G4+Wly5b/4v1dA5V9DzbdKp/iGg+LowIkhNoy4faxEydpfUXb1Ka9i91/7ErmgLLXgC2zopLzkHt2IAPeBtocGV2B2xogfQXoEycENfgGSckmGMo/2fHuvz4aQN6Q9g4= 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 1687783274138139.30154381705734; Mon, 26 Jun 2023 05:41:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlR5-00028m-Rb; Mon, 26 Jun 2023 08:35: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 1qDlLB-0002TT-3X for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:12 -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 1qDlL7-00033e-0g for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:07 -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-379-ZTQjL5VXN1e6qL90vEbXEA-1; Mon, 26 Jun 2023 08:29:01 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-3fa979d0c32so3382305e9.2 for ; Mon, 26 Jun 2023 05:29:00 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id t1-20020adfe441000000b00313f45f74a8sm1706603wrm.103.2023.06.26.05.28.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:28:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782543; 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=H0oeErSXAGqtdLlL9WwcgUJY5/rn+3CrQVAQVjQGGBg=; b=TjF6g1Bw9ukjDqP4XdECAE9P3dNPV9XAyNgj09483XVjKq3hhJ4jhCcz2NPJWWmE5l8Cx6 ovnFUXd8CxEtNFqg8oQstVwAgXCT5AoEeyiRSEbnHjPCZRNJe0uBPHaKimxx0duP0xgSYj MHEj3xOHVtWgrmC23PK5R50gn5pRZJk= X-MC-Unique: ZTQjL5VXN1e6qL90vEbXEA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782539; x=1690374539; 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=H0oeErSXAGqtdLlL9WwcgUJY5/rn+3CrQVAQVjQGGBg=; b=XKmePHPPh6Z3rOI5zs/h0o0hTaB6MxeM2AvBTFXsfhDZFHmZ+9k8lY9HNXIAmiWKWx NSED+8LXEKUBpZTExSTB4c99xBjdEumDEYC24SD9LiM6GmYeLQt7rdG58CHdlxTj4flP e9zA2UPT3DtoZ4075Q5u2ekH8beh3xQBmjcyoFxv6XMNKmKLeTgF29AjQj7h07FUyBH8 KVyTnY2B7gFGI426iZGZ27fbQOyZ7m44cQ/V/790xk/NEwmsHCjRyfAeARXiGTehMhot +Wk3snhv67tDbiXxDf2kfkmhl4Q7B9pPHJAOcoBsklWwelq0Pn1QsSkVQkm+HHgNoAYZ Xl2Q== X-Gm-Message-State: AC+VfDwBtM8BsjgXUZI7KLAbwbyH95gMHFf9rYRDFwa+ry+2bx6VmPQv cfAdAXk99UKr1dop73qjPvz+BtYpFldhch5nRquEb9YkkHBYi37VP92TtT0XF58JJvZ6SYqlh4r Hxx9cQhRh6cTvwRYjMBToCgqZDej7Z71dYJyp8OmnBb9F5dwqEJJpnP/Aq9O9b0E/GWIj X-Received: by 2002:a5d:548e:0:b0:313:ed1b:3622 with SMTP id h14-20020a5d548e000000b00313ed1b3622mr2609368wrv.7.1687782539409; Mon, 26 Jun 2023 05:28:59 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7Bx3bavs2aCu91/d77ggZgWCvBtmfx6+k/B8f2EMglSXR5gq6hxYC72gxvvQm18LQof8eVaQ== X-Received: by 2002:a5d:548e:0:b0:313:ed1b:3622 with SMTP id h14-20020a5d548e000000b00313ed1b3622mr2609347wrv.7.1687782539072; Mon, 26 Jun 2023 05:28:59 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:56 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Richard Henderson , Thomas Huth , Stefan Hajnoczi , Kevin Wolf , Hanna Reitz , Paolo Bonzini , Fam Zheng , qemu-block@nongnu.org Subject: [PULL 22/53] hw/virtio: Build various target-agnostic objects just once Message-ID: <7a0903f7ea8ac7e5b3191c9a2cfd1751b153f48c.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1687783275400100004 From: Philippe Mathieu-Daud=C3=A9 The previous commit remove the unnecessary "virtio-access.h" header. These files no longer have target-specific dependency. Move them to the generic 'softmmu_ss' source set. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Reviewed-by: Thomas Huth Message-Id: <20230524093744.88442-11-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/block/dataplane/meson.build | 2 +- hw/scsi/meson.build | 10 +++++++--- hw/virtio/meson.build | 11 ++++++----- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/hw/block/dataplane/meson.build b/hw/block/dataplane/meson.build index 78d7ac1a11..025b3b061b 100644 --- a/hw/block/dataplane/meson.build +++ b/hw/block/dataplane/meson.build @@ -1,2 +1,2 @@ -specific_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-blk.c')) +system_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-blk.c')) specific_ss.add(when: 'CONFIG_XEN_BUS', if_true: files('xen-block.c')) diff --git a/hw/scsi/meson.build b/hw/scsi/meson.build index 43746700be..bb7d289aa0 100644 --- a/hw/scsi/meson.build +++ b/hw/scsi/meson.build @@ -1,5 +1,6 @@ scsi_ss =3D ss.source_set() specific_scsi_ss =3D ss.source_set() +virtio_scsi_ss =3D ss.source_set() specific_virtio_scsi_ss =3D ss.source_set() =20 scsi_ss.add(files( @@ -15,12 +16,15 @@ scsi_ss.add(when: 'CONFIG_MEGASAS_SCSI_PCI', if_true: f= iles('megasas.c')) scsi_ss.add(when: 'CONFIG_MPTSAS_SCSI_PCI', if_true: files('mptsas.c', 'mp= tconfig.c', 'mptendian.c')) scsi_ss.add(when: 'CONFIG_VMW_PVSCSI_SCSI_PCI', if_true: files('vmw_pvscsi= .c')) =20 -specific_virtio_scsi_ss.add(files('virtio-scsi.c', 'virtio-scsi-dataplane.= c')) +virtio_scsi_ss.add(files('virtio-scsi-dataplane.c')) +virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI', if_true: files('vhost-scsi.c= ')) +virtio_scsi_ss.add(when: 'CONFIG_VHOST_USER_SCSI', if_true: files('vhost-u= ser-scsi.c')) + +specific_virtio_scsi_ss.add(files('virtio-scsi.c')) specific_virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI_COMMON', if_true: fil= es('vhost-scsi-common.c')) -specific_virtio_scsi_ss.add(when: 'CONFIG_VHOST_SCSI', if_true: files('vho= st-scsi.c')) -specific_virtio_scsi_ss.add(when: 'CONFIG_VHOST_USER_SCSI', if_true: files= ('vhost-user-scsi.c')) =20 specific_scsi_ss.add_all(when: 'CONFIG_VIRTIO_SCSI', if_true: specific_vir= tio_scsi_ss) +scsi_ss.add_all(when: 'CONFIG_VIRTIO_SCSI', if_true: virtio_scsi_ss) =20 specific_scsi_ss.add(when: 'CONFIG_SPAPR_VSCSI', if_true: files('spapr_vsc= si.c')) =20 diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build index a6ea5beae7..f32b22f61b 100644 --- a/hw/virtio/meson.build +++ b/hw/virtio/meson.build @@ -2,13 +2,18 @@ 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')) =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 - specific_virtio_ss.add(files('vhost.c', 'vhost-backend.c', 'vhost-iova-t= ree.c')) + softmmu_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 @@ -20,20 +25,16 @@ else endif =20 specific_virtio_ss.add(when: 'CONFIG_VIRTIO_BALLOON', if_true: files('virt= io-balloon.c')) -specific_virtio_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('virti= o-crypto.c')) specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_FS', if_true: files('vhost= -user-fs.c')) specific_virtio_ss.add(when: 'CONFIG_VIRTIO_PMEM', if_true: files('virtio-= pmem.c')) -specific_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK_COMMON', if_true: files('= vhost-vsock-common.c')) specific_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-v= sock.c')) specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_VSOCK', if_true: files('vh= ost-user-vsock.c')) specific_virtio_ss.add(when: 'CONFIG_VIRTIO_RNG', if_true: files('virtio-r= ng.c')) -specific_virtio_ss.add(when: 'CONFIG_VIRTIO_IOMMU', if_true: files('virtio= -iommu.c')) specific_virtio_ss.add(when: 'CONFIG_VIRTIO_MEM', if_true: files('virtio-m= em.c')) specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_I2C', if_true: files('vhos= t-user-i2c.c')) specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_RNG', if_true: files('vhos= t-user-rng.c')) specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_GPIO', if_true: files('vho= st-user-gpio.c')) specific_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_GPIO= '], if_true: files('vhost-user-gpio-pci.c')) -specific_virtio_ss.add(when: 'CONFIG_VHOST_VDPA_DEV', if_true: files('vdpa= -dev.c')) =20 virtio_pci_ss =3D ss.source_set() virtio_pci_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-vsock-= pci.c')) --=20 MST From nobody Sat May 18 18:13:07 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=1687783559; cv=none; d=zohomail.com; s=zohoarc; b=mQ2LokewjDAsFVenbxNN4kKBPLI017c9rUbw5fMNNPrOgEZVB0Jv+4N4NFMsCbBx7/Qz5dDL3qVbA6jGoNCaO3RqRo+qXweVQtIxtcOB3cqzCrrOLbVYLh08bvXfZFhPN2wdJsDhaQwJ5kSNXBEXdAOFG5tDWuRMq80z39su89w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783559; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6BUv4I7dG+GE3/QdNWJM+8uNg6qHOIFVxP5tkVLDkfE=; b=jyWv1lKJFfHItKcoAZ5Ofwb63TdOrySVREfzDXe4Z3p6IqwioAEmrLs6qAuqv3FwQ3s2t0ISM3GJ3ZwmDgCLGNapGNbQXOeK+woQfvtasZeHg3S6Q1fH5FQvRLogeW2gB/guOI9IOJy6XcuWEKSaFskTBmveHZLcexZg4D2r4uY= 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 1687783559029943.054949441565; Mon, 26 Jun 2023 05:45:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlMH-0004Wk-V4; Mon, 26 Jun 2023 08:30: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 1qDlLE-0002Ua-Qm for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:17 -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 1qDlL8-000347-UW for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29: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-184-ku1ItySFNMeLtKPursybVg-1; Mon, 26 Jun 2023 08:29:04 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-31283f4d22fso1183964f8f.2 for ; Mon, 26 Jun 2023 05:29:03 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id o7-20020adfeac7000000b003095bd71159sm7377490wrn.7.2023.06.26.05.29.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782545; 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=6BUv4I7dG+GE3/QdNWJM+8uNg6qHOIFVxP5tkVLDkfE=; b=ZD2gGeJh8n3MKy8OiKJWDx4vs5DLqcdIry01zv2PjT5GNO5Tzs/WuP5cU7lcZ8oKtEUeno HUkrAdzZOXlLc+bZNdi0dehKzNiVGmroMDfE71qtcbi8pv++EMgCB26/GFdZ0/fMqXRSUD TaucYNKsQ/IyE1hOxAeIGTVJUCjkOog= X-MC-Unique: ku1ItySFNMeLtKPursybVg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782542; x=1690374542; 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=6BUv4I7dG+GE3/QdNWJM+8uNg6qHOIFVxP5tkVLDkfE=; b=bMs+d8HDfNPNWuhSLnGAAcbYo2wY9Oirh1hgDCQWMcwsbgmqCVdz26crrwsfpQ9dkY VUIAa8SXXO9ukjuKUi2f2GcNHZjnwfQ0ut6AWM8oLPJfxcHCHJXt73KcRceorwhGQDKK beYu7uV/UcQ6rn6KlWKXQtJ8UjaSG8p4alGlVQIy83MIdERhqHCpUmuFqJHSDGN5hgV2 QW3Pn5kkVAnsm0Y8FzOAifrh0Z+REUgT4ZJCqQmRcq9PlADHAW7X3+eczneLDb2dUkwC ALYtWhmOGEeVnRkevVgzu7oA6WM9hGI0wTjKyB/ivDi7qwtIoZLGazWoTHorJA7wPRUp JHVw== X-Gm-Message-State: AC+VfDxOOJ+JkvuRErOxAOx5cbPBCSs8Ex83Ze7MfcDSCJFuXNi+82if NPw9BGfdqMnUFrIyyfc5JjL5+9CPA256PznfQ/Bb2asrfqR/VD4CmJ10gKmFU9xeYjLZAcrH9iG 3kM49vTagAhg64XQw6z6hU/MBH0jovG8J3tLEFaNuE+GlcDQ0ODknxp3xIfXjY5LBg73i X-Received: by 2002:a05:6000:1001:b0:313:e971:53af with SMTP id a1-20020a056000100100b00313e97153afmr3230461wrx.32.1687782542024; Mon, 26 Jun 2023 05:29:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5pJ14OiuaxwW64vtAmIesshoMB8LCjUlm7g3/nMVQf6ts0FY5FOb4u+FrD0fyj3hvaxm59Cg== X-Received: by 2002:a05:6000:1001:b0:313:e971:53af with SMTP id a1-20020a056000100100b00313e97153afmr3230446wrx.32.1687782541781; Mon, 26 Jun 2023 05:29:01 -0700 (PDT) Date: Mon, 26 Jun 2023 08:28:59 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Prasad Pandit , Peter Xu , qemu-stable@nongnu.org, Jason Wang Subject: [PULL 23/53] vhost: release memory_listener object in error path Message-ID: <1e3ffb34f764f8ac4c003b2b2e6a775b2b073a16.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783561994100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Prasad Pandit vhost_dev_start function does not release memory_listener object in case of an error. This may crash the guest when vhost is unable to set memory table: stack trace of thread 125653: Program terminated with signal SIGSEGV, Segmentation fault #0 memory_listener_register (qemu-kvm + 0x6cda0f) #1 vhost_dev_start (qemu-kvm + 0x699301) #2 vhost_net_start (qemu-kvm + 0x45b03f) #3 virtio_net_set_status (qemu-kvm + 0x665672) #4 qmp_set_link (qemu-kvm + 0x548fd5) #5 net_vhost_user_event (qemu-kvm + 0x552c45) #6 tcp_chr_connect (qemu-kvm + 0x88d473) #7 tcp_chr_new_client (qemu-kvm + 0x88cf83) #8 tcp_chr_accept (qemu-kvm + 0x88b429) #9 qio_net_listener_channel_func (qemu-kvm + 0x7ac07c) #10 g_main_context_dispatch (libglib-2.0.so.0 + 0x54e2f) Release memory_listener objects in the error path. Signed-off-by: Prasad Pandit Message-Id: <20230529114333.31686-2-ppandit@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Peter Xu Fixes: c471ad0e9b ("vhost_net: device IOTLB support") Cc: qemu-stable@nongnu.org Acked-by: Jason Wang --- hw/virtio/vhost.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index 7f3c727777..7e1f556994 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -2003,6 +2003,9 @@ fail_vq: } =20 fail_mem: + if (vhost_dev_has_iommu(hdev)) { + memory_listener_unregister(&hdev->iommu_listener); + } fail_features: vdev->vhost_started =3D false; hdev->started =3D false; --=20 MST From nobody Sat May 18 18:13:07 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=1687782897; cv=none; d=zohomail.com; s=zohoarc; b=BVKkDAKRyw5mZkpf9wN2eP2GOTQE/KuIjPNEcxXUwHtX+rG9H3BAzbwQn/6ciLYv1LOR1fYugfoJ1BnnO12X0V4wanWbqFq56hY4GD8aCt5TOiM7mzWp8e7ooyNkA7qUCV88iQawOztH8A8pXI9oxPQB9WrNorgEqYZNAn7T2Ek= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782897; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2Q1VrgxZvuNezgqJjEDTPymrx7mMrqo8mV/xFnS451k=; b=iHyhjhLWrHNXjCFGBbHAOsHESIS7b8TrwdQ8HdzfQykvgUjtD5x5+TMudlPZ/UQKi0u/UWbYV4iuYO+/cS7vHdAT/ZD/htoE8Lix1IqLSQN3HsXbhF3vXjps5tUHBzyecRx90C6yPp+RavIIiNVS/+S3bQEpyGlH5nH1u2wiTG8= 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 1687782897443197.76070442397315; Mon, 26 Jun 2023 05:34:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlLw-0003Ur-2E; Mon, 26 Jun 2023 08:29: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 1qDlLE-0002Ud-SV for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29: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 1qDlLB-00034h-Fe for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:11 -0400 Received: from mail-lf1-f71.google.com (mail-lf1-f71.google.com [209.85.167.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-634-DnTPahQoOs2A03J1QzUKjA-1; Mon, 26 Jun 2023 08:29:07 -0400 Received: by mail-lf1-f71.google.com with SMTP id 2adb3069b0e04-4fb7b4be07bso324429e87.1 for ; Mon, 26 Jun 2023 05:29:06 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id y12-20020a05600c364c00b003f7f249e7dfsm10587252wmq.4.2023.06.26.05.29.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782548; 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=2Q1VrgxZvuNezgqJjEDTPymrx7mMrqo8mV/xFnS451k=; b=Ynlx8kdzQf4D7NMek94NrYTElsheYQdSYkoPoIi+gE8IHX9Ps5sBrxh0rBy59EyAFlRyQa YUh+rqkARg7kPa9jk7BIEzOcj91zSkTrZOWESiGS/LfMXwguTUtutezQ/89aLUiZkpGbeX ORvUelXBgCkkuiF3VfwLF3/hYVcHK3Q= X-MC-Unique: DnTPahQoOs2A03J1QzUKjA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782545; x=1690374545; 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=2Q1VrgxZvuNezgqJjEDTPymrx7mMrqo8mV/xFnS451k=; b=dWbN+MxtlB+66vXE2WYDVzzBmZbe1EfgzO4KuQjrpfdpBUer7oYGh2VIjBmC7yDBmj A3hy92qIypkD3/vaapMiLJ+ERoxtf/rqMOIKHZK33yZU7uZYbS8L8Ofql8DFK92e19BG 1v8yhclQvRZWSPGrhkIu1E5SrGQ6dbQHAnpobbzGVy00HW4mtXuvicxzt1cXYIpg4bcL sV/K0NwZswfqesrUNvAPxTmyXHpLEQ/WbfCdpeNYT0kXFb5NO6OuNxvPIziCDW/qZNyy 8d01TAIhmOXkwuZ0KQIyIEZKQffJkMPVdyFv1BrUJkPzuAb5Iq8RE1pBmilfUAjFaHl4 DygA== X-Gm-Message-State: AC+VfDwUyRdHzEPDi0J4Y+F6bae6AZ4tFvM0leBBQmTXNuLZCfFHVWkN tlK/Q6k5lJdHu5C4WGUcwIvVRY+TW2X8uYsbVZmw/zKGNciBTC5Q7CxHzW7SFR0rrApVNxQIN9B suE6USv/ZiSZApIoKlHeD92wqC9EcSMzi+iqbOTmtcIk9IqDiFuEZPGFDyTZp01NUshP+ X-Received: by 2002:a19:8c49:0:b0:4f8:5bf7:db05 with SMTP id i9-20020a198c49000000b004f85bf7db05mr13875261lfj.27.1687782545043; Mon, 26 Jun 2023 05:29:05 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5cD3vKd0mN6UDBNonw7GcnFBVJ2tB1WcN5dufAb6w9E/Ex3FNqeRXxnXzYbRQViRFwN2f8Ig== X-Received: by 2002:a19:8c49:0:b0:4f8:5bf7:db05 with SMTP id i9-20020a198c49000000b004f85bf7db05mr13875245lfj.27.1687782544691; Mon, 26 Jun 2023 05:29:04 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:02 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Prasad Pandit , Peter Xu , qemu-stable@nongnu.org, Jason Wang Subject: [PULL 24/53] vhost: release virtqueue objects in error path Message-ID: <77ece20ba04582d94c345ac0107ddff2fd18d27a.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1687782899482100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Prasad Pandit vhost_dev_start function does not release virtqueue objects when event_notifier_init() function fails. Release virtqueue objects and log a message about function failure. Signed-off-by: Prasad Pandit Message-Id: <20230529114333.31686-3-ppandit@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Fixes: f9a09ca3ea ("vhost: add support for configure interrupt") Reviewed-by: Peter Xu Cc: qemu-stable@nongnu.org Acked-by: Jason Wang --- hw/virtio/vhost.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index 7e1f556994..fb7abc9769 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -1941,7 +1941,8 @@ int vhost_dev_start(struct vhost_dev *hdev, VirtIODev= ice *vdev, bool vrings) r =3D event_notifier_init( &hdev->vqs[VHOST_QUEUE_NUM_CONFIG_INR].masked_config_notifier, 0); if (r < 0) { - return r; + VHOST_OPS_DEBUG(r, "event_notifier_init failed"); + goto fail_vq; } event_notifier_test_and_clear( &hdev->vqs[VHOST_QUEUE_NUM_CONFIG_INR].masked_config_notifier); --=20 MST From nobody Sat May 18 18:13:07 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=1687782633; cv=none; d=zohomail.com; s=zohoarc; b=C2MuPkULNS1BafmuYNpNmC4J6XnsCC/DTZiSEwW3c7X0VTP/5/PNYwT67paRUlasLiTFxwUSRbxow+RCfnJjUdYNuTkwDUAQc3wHuPmLswpWBCsFwLxEe7/1za54XV1l+Y/Dc4WXx9gvkSP6Btq2QfymCm5UYkmW/43TfxlfDQs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782633; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=oxD0qVGpFZfM6ssT+tppltDSBoyNs1nLWG55cRcTQec=; b=jPa2ncWyhPOx2hjzr4ENHH0LHF/5oHHe7OBnBLTWp+eDRBhItp9MbLN+j9jgqlQBGMQ3uzWesgGClqE0UE120aBcFpLV3+T0kOk4Hkrr1SdpBG77B+4qKW5NBfgGxcoj8XEhiV6HsV5P+SiIPGx1CFGcYWbLBq+4njim5gEFYNY= 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 1687782633673993.3359648417887; Mon, 26 Jun 2023 05:30:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlLx-0003o3-Q1; Mon, 26 Jun 2023 08:29: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 1qDlLI-0002hd-Iw for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29: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 1qDlLF-00034w-Id for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:16 -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-102-3I-cKAvGPS-_F82eMmOZcw-1; Mon, 26 Jun 2023 08:29:09 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-3fa8db49267so6436235e9.3 for ; Mon, 26 Jun 2023 05:29:09 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id a17-20020a05600c225100b003f42314832fsm7595282wmm.18.2023.06.26.05.29.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782551; 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=oxD0qVGpFZfM6ssT+tppltDSBoyNs1nLWG55cRcTQec=; b=hfvYsDcfHaL9oUGcS2dz3Z5aXOF59DZkHCVBRNMqLh7WOT2e12sw9uGJtIt6cUUKA8M7hb 9jStRWb4rzNCEBewUrqzKHm1usrO87ywghlnzQQH6xvIHIhNF9rxYg7hNhNSbBW432uijk okzY3HOTnuYbhRCPlu1JY+m9lxBg8nc= X-MC-Unique: 3I-cKAvGPS-_F82eMmOZcw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782548; x=1690374548; 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=oxD0qVGpFZfM6ssT+tppltDSBoyNs1nLWG55cRcTQec=; b=NXe7q4TU4ip3m4u+25+0IDRvbEIuaMDi6oyIR6Hlpmhx5wE3tjNNht34q7TnuXylqI cQ6S+g+crMjA/80ULQDaw7CgWBiKFOqybtfCi7H+n4cYIn1Wzy3+dAwJdTuTfgP7aVMi tXFcH+80EWgLjICdTcberUc/xiZh6t7ZEkvxV2W/Q0eXclkYrB6s7/tQdtHIN43VYH9O sTVfDZagwfKZ5ebLJE7XBpEkUHNgnmQ9GWOuvstwmenfuPJ2iySpYhT8kk3kI6J/KfY8 gbL5MfzCDlprtepovc8naRSaDnRgJC3qwYlHKc3J42snIVWS5DBtQtAgYDGJjEdDl6iN QoUA== X-Gm-Message-State: AC+VfDywr6suAT3HCzCpfDEamKr8cRYmQJ8a7PbF/bzgjg/tnLLpaO6T BqX9egux3SWh16SChjDeAhC3oIsfHanqoyFdtn0FVhR5F1UYkSgS2AfY8GcqvluOSz0coN4smek NMTZN8hywY6+fHCD9Zr3+N7LH770I9MEM/Ofln3Ucq6olalcRuKnnM5IohUwViQaNBG1p X-Received: by 2002:a1c:791a:0:b0:3fa:76e2:e6d5 with SMTP id l26-20020a1c791a000000b003fa76e2e6d5mr9421378wme.37.1687782548249; Mon, 26 Jun 2023 05:29:08 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4teelUdCRr5kW51oNM2c2I52EzvjDSU3befidHJy8Kvc0wHu7RBuK5pqPCQl/HMO+y2CRW1g== X-Received: by 2002:a1c:791a:0:b0:3fa:76e2:e6d5 with SMTP id l26-20020a1c791a000000b003fa76e2e6d5mr9421359wme.37.1687782547917; Mon, 26 Jun 2023 05:29:07 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:05 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Vladimir Sementsov-Ogievskiy , David Hildenbrand , Juan Quintela , Marcel Apfelbaum Subject: [PULL 25/53] pci: ROM preallocation for incoming migration Message-ID: <8eb85fb5ac60bfb6ee4c729cc087078d490670c4.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782634288100001 From: Vladimir Sementsov-Ogievskiy On incoming migration we have the following sequence to load option ROM: 1. On device realize we do normal load ROM from the file 2. Than, on incoming migration we rewrite ROM from the incoming RAM block. If sizes mismatch we fail, like this: Size mismatch: 0000:00:03.0/virtio-net-pci.rom: 0x40000 !=3D 0x80000: I= nvalid argument This is not ideal when we migrate to updated distribution: we have to keep old ROM files in new distribution and be careful around romfile property to load correct ROM file. Which is loaded actually just to allocate the ROM with correct length. Note, that romsize property doesn't really help: if we try to specify it when default romfile is larger, it fails with something like: romfile "efi-virtio.rom" (160768 bytes) is too large for ROM size 65536 Let's just ignore ROM file when romsize is specified and we are in incoming migration state. In other words, we need only to preallocate ROM of specified size, local ROM file is unrelated. This way: If romsize was specified on source, we just use same commandline as on source, and migration will work independently of local ROM files on target. If romsize was not specified on source (and we have mismatching local ROM file on target host), we have to specify romsize on target to match source romsize. romfile parameter may be kept same as on source or may be dropped, the file is not loaded anyway. As a bonus we avoid extra reading from ROM file on target. Note: when we don't have romsize parameter on source command line and need it for target, it may be calculated as aligned up to power of two size of ROM file on source (if we know, which file is it) or, alternatively it may be retrieved from source QEMU by QMP qom-get command, like { "execute": "qom-get", "arguments": { "path": "/machine/peripheral/CARD_ID/virtio-net-pci.rom[0]", "property": "size" } } Note: we have extra initialization of size variable to zero in pci_add_option_rom to avoid false-positive "error: =E2=80=98size=E2=80=99 may be used uninitialized" Suggested-by: Michael S. Tsirkin Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: David Hildenbrand Reviewed-by: Juan Quintela Message-Id: <20230522201740.88960-2-vsementsov@yandex-team.ru> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/pci/pci.c | 79 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 46 insertions(+), 33 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index bf38905b7d..e2eb4c3b4a 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -36,6 +36,7 @@ #include "migration/vmstate.h" #include "net/net.h" #include "sysemu/numa.h" +#include "sysemu/runstate.h" #include "sysemu/sysemu.h" #include "hw/loader.h" #include "qemu/error-report.h" @@ -2308,12 +2309,18 @@ static void pci_patch_ids(PCIDevice *pdev, uint8_t = *ptr, uint32_t size) static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom, Error **errp) { - int64_t size; + int64_t size =3D 0; g_autofree char *path =3D NULL; - void *ptr; char name[32]; const VMStateDescription *vmsd; =20 + /* + * In case of incoming migration ROM will come with migration stream, = no + * reason to load the file. Neither we want to fail if local ROM file + * mismatches with specified romsize. + */ + bool load_file =3D !runstate_check(RUN_STATE_INMIGRATE); + if (!pdev->romfile || !strlen(pdev->romfile)) { return; } @@ -2343,32 +2350,35 @@ static void pci_add_option_rom(PCIDevice *pdev, boo= l is_default_rom, return; } =20 - path =3D qemu_find_file(QEMU_FILE_TYPE_BIOS, pdev->romfile); - if (path =3D=3D NULL) { - path =3D g_strdup(pdev->romfile); - } + if (load_file || pdev->romsize =3D=3D -1) { + path =3D qemu_find_file(QEMU_FILE_TYPE_BIOS, pdev->romfile); + if (path =3D=3D NULL) { + path =3D g_strdup(pdev->romfile); + } =20 - size =3D get_image_size(path); - if (size < 0) { - error_setg(errp, "failed to find romfile \"%s\"", pdev->romfile); - return; - } else if (size =3D=3D 0) { - error_setg(errp, "romfile \"%s\" is empty", pdev->romfile); - return; - } else if (size > 2 * GiB) { - error_setg(errp, "romfile \"%s\" too large (size cannot exceed 2 G= iB)", - pdev->romfile); - return; - } - if (pdev->romsize !=3D -1) { - if (size > pdev->romsize) { - error_setg(errp, "romfile \"%s\" (%u bytes) " - "is too large for ROM size %u", - pdev->romfile, (uint32_t)size, pdev->romsize); + size =3D get_image_size(path); + if (size < 0) { + error_setg(errp, "failed to find romfile \"%s\"", pdev->romfil= e); + return; + } else if (size =3D=3D 0) { + error_setg(errp, "romfile \"%s\" is empty", pdev->romfile); + return; + } else if (size > 2 * GiB) { + error_setg(errp, + "romfile \"%s\" too large (size cannot exceed 2 GiB= )", + pdev->romfile); return; } - } else { - pdev->romsize =3D pow2ceil(size); + if (pdev->romsize !=3D -1) { + if (size > pdev->romsize) { + error_setg(errp, "romfile \"%s\" (%u bytes) " + "is too large for ROM size %u", + pdev->romfile, (uint32_t)size, pdev->romsize); + return; + } + } else { + pdev->romsize =3D pow2ceil(size); + } } =20 vmsd =3D qdev_get_vmsd(DEVICE(pdev)); @@ -2379,15 +2389,18 @@ static void pci_add_option_rom(PCIDevice *pdev, boo= l is_default_rom, memory_region_init_rom(&pdev->rom, OBJECT(pdev), name, pdev->romsize, &error_fatal); =20 - ptr =3D memory_region_get_ram_ptr(&pdev->rom); - if (load_image_size(path, ptr, size) < 0) { - error_setg(errp, "failed to load romfile \"%s\"", pdev->romfile); - return; - } + if (load_file) { + void *ptr =3D memory_region_get_ram_ptr(&pdev->rom); =20 - if (is_default_rom) { - /* Only the default rom images will be patched (if needed). */ - pci_patch_ids(pdev, ptr, size); + if (load_image_size(path, ptr, size) < 0) { + error_setg(errp, "failed to load romfile \"%s\"", pdev->romfil= e); + return; + } + + if (is_default_rom) { + /* Only the default rom images will be patched (if needed). */ + pci_patch_ids(pdev, ptr, size); + } } =20 pci_register_bar(pdev, PCI_ROM_SLOT, 0, &pdev->rom); --=20 MST From nobody Sat May 18 18:13:07 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=1687783152; cv=none; d=zohomail.com; s=zohoarc; b=cx42954lGmfonNnilRUHdUUU+MzW4bER4wwkriSuuwAu7fgTBdmlyL58cHVi/AXcsbmDc12iB+qzPBdT2nkLUqygTyCfpELEFszwpvmAf5RNMDD2cubogNJ+TaIR0kweno9/sAMayy6mL7smIo0zD3RHbPd3zBIEUcEbLvQUmiA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783152; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cqGaDSnZccD0ikwcRDWj815DiMnuX6iQ2kN0X0ER5Dk=; b=Zl2jTfeStM7njvS1D76/eMx0AN22pO95dzihAoUtHWftaz8EhYqvgZAktVP+hzKxhDUgL5a9/TqvDw/wIV8CAKklhz4i03btU0YsrQe2lRZioV8Yip0heKaztluBO/xZtznP2znO7JMI7CtRiPkM511q5g/Z60H5ImK+a+Hw+js= 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 168778315249420.202311247541957; Mon, 26 Jun 2023 05:39:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlLt-0003Dc-7Y; Mon, 26 Jun 2023 08:29: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 1qDlLM-0002hy-9K for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:26 -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 1qDlLG-00035P-JJ for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:17 -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-55-T962emIsNgSvGqmy2vY1MQ-1; Mon, 26 Jun 2023 08:29:12 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-3fa8f8fb7b3so27938555e9.2 for ; Mon, 26 Jun 2023 05:29:12 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id v2-20020a5d6782000000b00313f5babb18sm1326446wru.9.2023.06.26.05.29.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782554; 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=cqGaDSnZccD0ikwcRDWj815DiMnuX6iQ2kN0X0ER5Dk=; b=V5Qkiwh2sM6Z0WOaz+iZZgJXUsqRukH+xqj/gvrSzbE2rQE5Gke7VduXP5ftqpMxzWcbE0 uvoMUupt3J4hx01emu4ExHW8ZlelfPigzG5NUiqrC129IH3be4kCXLsSIZVy5lX3USljXA CBo+06ExUa6YvW0YdDqwiNhadEz+3Hg= X-MC-Unique: T962emIsNgSvGqmy2vY1MQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782551; x=1690374551; 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=cqGaDSnZccD0ikwcRDWj815DiMnuX6iQ2kN0X0ER5Dk=; b=NX1ILUR0joXURB15cEW2mUV8ts7TeHR3jVz/24EODqlHOE9whZdZyIKBwq/79CzoHA vqenIpds7JeF5mrofAEbqL/VB5YA1M5xpfNfJNnrQWOKIwgciHIMOjwn3TR2o0lXl1kl bdrNnuY9b6/dE6vCh3RsbQsITmSLMNqJSkNdH5lDMoOsjtM7OGu4798zrciZK9AklvMM 9Bh6AFbrsKIu9cUOeuO2Tq4dZbzNlGZzhZGuCQ+oT1qSKaLlUneYknHTcUPoJfteAcyT pY9jmiH9FgslURrasyMaTgmRWe+hdEaQoUYXxN7gaC0rsHhFq+x3IPTQ59rpZv639klR 4vqg== X-Gm-Message-State: AC+VfDwV9d8WJwtqyj3LFUOOPzAkV9DsNBon1Epd/BrTM7XQqmlWbS4H eXu6klWuAfrt3KPqYLTQTK0oH4QDhauonjWE8X9CnDKR/UQCXCtVz7NRiVRs2kJNVc+i01p33dX 8F0BHaHk1pXQEU8ay1IlVeCkrPTJB18bNucTEoUVVDUgejpOkw1PGRTdjX34bDO6ZcLTs X-Received: by 2002:a7b:c051:0:b0:3f6:1474:905 with SMTP id u17-20020a7bc051000000b003f614740905mr31768613wmc.29.1687782551154; Mon, 26 Jun 2023 05:29:11 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5AuUBfg9tNLl6cA+demAJ79ns6JqjNYh6xNDrcd8C1GUxRIrRSLeU9HTalOY5cH91vVYxRjA== X-Received: by 2002:a7b:c051:0:b0:3f6:1474:905 with SMTP id u17-20020a7bc051000000b003f614740905mr31768597wmc.29.1687782550883; Mon, 26 Jun 2023 05:29:10 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:08 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , David Hildenbrand , Gavin Shan Subject: [PULL 26/53] virtio-mem: Simplify bitmap handling and virtio_mem_set_block_state() Message-ID: <25c893037b89ddd4e42927a2a9b524dbbc0c34a3.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783153297100002 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Hildenbrand Let's separate plug and unplug handling to prepare for future changes and make the code a bit easier to read -- working on block states (plugged/unplugged) instead of on a bitmap. Cc: "Michael S. Tsirkin" Cc: Gavin Shan Signed-off-by: David Hildenbrand Message-Id: <20230523183036.517957-1-david@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/virtio-mem.c | 112 +++++++++++++++++++++++------------------ 1 file changed, 64 insertions(+), 48 deletions(-) diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c index 12ea58d5ad..ec0ae32589 100644 --- a/hw/virtio/virtio-mem.c +++ b/hw/virtio/virtio-mem.c @@ -398,33 +398,46 @@ static void virtio_mem_notify_unplug_all(VirtIOMEM *v= mem) } } =20 -static bool virtio_mem_test_bitmap(const VirtIOMEM *vmem, uint64_t start_g= pa, - uint64_t size, bool plugged) +static bool virtio_mem_is_range_plugged(const VirtIOMEM *vmem, + uint64_t start_gpa, uint64_t size) { const unsigned long first_bit =3D (start_gpa - vmem->addr) / vmem->blo= ck_size; const unsigned long last_bit =3D first_bit + (size / vmem->block_size)= - 1; unsigned long found_bit; =20 /* We fake a shorter bitmap to avoid searching too far. */ - if (plugged) { - found_bit =3D find_next_zero_bit(vmem->bitmap, last_bit + 1, first= _bit); - } else { - found_bit =3D find_next_bit(vmem->bitmap, last_bit + 1, first_bit); - } + found_bit =3D find_next_zero_bit(vmem->bitmap, last_bit + 1, first_bit= ); return found_bit > last_bit; } =20 -static void virtio_mem_set_bitmap(VirtIOMEM *vmem, uint64_t start_gpa, - uint64_t size, bool plugged) +static bool virtio_mem_is_range_unplugged(const VirtIOMEM *vmem, + uint64_t start_gpa, uint64_t siz= e) +{ + const unsigned long first_bit =3D (start_gpa - vmem->addr) / vmem->blo= ck_size; + const unsigned long last_bit =3D first_bit + (size / vmem->block_size)= - 1; + unsigned long found_bit; + + /* We fake a shorter bitmap to avoid searching too far. */ + found_bit =3D find_next_bit(vmem->bitmap, last_bit + 1, first_bit); + return found_bit > last_bit; +} + +static void virtio_mem_set_range_plugged(VirtIOMEM *vmem, uint64_t start_g= pa, + uint64_t size) { const unsigned long bit =3D (start_gpa - vmem->addr) / vmem->block_siz= e; const unsigned long nbits =3D size / vmem->block_size; =20 - if (plugged) { - bitmap_set(vmem->bitmap, bit, nbits); - } else { - bitmap_clear(vmem->bitmap, bit, nbits); - } + bitmap_set(vmem->bitmap, bit, nbits); +} + +static void virtio_mem_set_range_unplugged(VirtIOMEM *vmem, uint64_t start= _gpa, + uint64_t size) +{ + const unsigned long bit =3D (start_gpa - vmem->addr) / vmem->block_siz= e; + const unsigned long nbits =3D size / vmem->block_size; + + bitmap_clear(vmem->bitmap, bit, nbits); } =20 static void virtio_mem_send_response(VirtIOMEM *vmem, VirtQueueElement *el= em, @@ -474,6 +487,7 @@ static int virtio_mem_set_block_state(VirtIOMEM *vmem, = uint64_t start_gpa, { const uint64_t offset =3D start_gpa - vmem->addr; RAMBlock *rb =3D vmem->memdev->mr.ram_block; + int ret =3D 0; =20 if (virtio_mem_is_busy()) { return -EBUSY; @@ -484,42 +498,43 @@ static int virtio_mem_set_block_state(VirtIOMEM *vmem= , uint64_t start_gpa, return -EBUSY; } virtio_mem_notify_unplug(vmem, offset, size); - } else { - int ret =3D 0; + virtio_mem_set_range_unplugged(vmem, start_gpa, size); + return 0; + } =20 - if (vmem->prealloc) { - void *area =3D memory_region_get_ram_ptr(&vmem->memdev->mr) + = offset; - int fd =3D memory_region_get_fd(&vmem->memdev->mr); - Error *local_err =3D NULL; + if (vmem->prealloc) { + void *area =3D memory_region_get_ram_ptr(&vmem->memdev->mr) + offs= et; + int fd =3D memory_region_get_fd(&vmem->memdev->mr); + Error *local_err =3D NULL; =20 - qemu_prealloc_mem(fd, area, size, 1, NULL, &local_err); - if (local_err) { - static bool warned; + qemu_prealloc_mem(fd, area, size, 1, NULL, &local_err); + if (local_err) { + static bool warned; =20 - /* - * Warn only once, we don't want to fill the log with these - * warnings. - */ - if (!warned) { - warn_report_err(local_err); - warned =3D true; - } else { - error_free(local_err); - } - ret =3D -EBUSY; + /* + * Warn only once, we don't want to fill the log with these + * warnings. + */ + if (!warned) { + warn_report_err(local_err); + warned =3D true; + } else { + error_free(local_err); } - } - if (!ret) { - ret =3D virtio_mem_notify_plug(vmem, offset, size); - } - - if (ret) { - /* Could be preallocation or a notifier populated memory. */ - ram_block_discard_range(vmem->memdev->mr.ram_block, offset, si= ze); - return -EBUSY; + ret =3D -EBUSY; } } - virtio_mem_set_bitmap(vmem, start_gpa, size, plug); + + if (!ret) { + ret =3D virtio_mem_notify_plug(vmem, offset, size); + } + if (ret) { + /* Could be preallocation or a notifier populated memory. */ + ram_block_discard_range(vmem->memdev->mr.ram_block, offset, size); + return -EBUSY; + } + + virtio_mem_set_range_plugged(vmem, start_gpa, size); return 0; } =20 @@ -538,7 +553,8 @@ static int virtio_mem_state_change_request(VirtIOMEM *v= mem, uint64_t gpa, } =20 /* test if really all blocks are in the opposite state */ - if (!virtio_mem_test_bitmap(vmem, gpa, size, !plug)) { + if ((plug && !virtio_mem_is_range_unplugged(vmem, gpa, size)) || + (!plug && !virtio_mem_is_range_plugged(vmem, gpa, size))) { return VIRTIO_MEM_RESP_ERROR; } =20 @@ -651,9 +667,9 @@ static void virtio_mem_state_request(VirtIOMEM *vmem, V= irtQueueElement *elem, return; } =20 - if (virtio_mem_test_bitmap(vmem, gpa, size, true)) { + if (virtio_mem_is_range_plugged(vmem, gpa, size)) { resp.u.state.state =3D cpu_to_le16(VIRTIO_MEM_STATE_PLUGGED); - } else if (virtio_mem_test_bitmap(vmem, gpa, size, false)) { + } else if (virtio_mem_is_range_unplugged(vmem, gpa, size)) { resp.u.state.state =3D cpu_to_le16(VIRTIO_MEM_STATE_UNPLUGGED); } else { resp.u.state.state =3D cpu_to_le16(VIRTIO_MEM_STATE_MIXED); @@ -1372,7 +1388,7 @@ static bool virtio_mem_rdm_is_populated(const RamDisc= ardManager *rdm, return false; } =20 - return virtio_mem_test_bitmap(vmem, start_gpa, end_gpa - start_gpa, tr= ue); + return virtio_mem_is_range_plugged(vmem, start_gpa, end_gpa - start_gp= a); } =20 struct VirtIOMEMReplayData { --=20 MST From nobody Sat May 18 18:13:07 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=1687782695; cv=none; d=zohomail.com; s=zohoarc; b=grsUHRk9b/2VLGo+noQy3YRUkMwLHioP6DjgI2X4WuJHmLDlNlsqWhJ06oJeVsTzBBwsTVQhvNbuXcJpOwPuUAjUG4MjuolrVv+yaeYMSnRyPFX+6pAXbtmElHsAgVmV1tx/8KHl2FNyF4iZXoGA+sRPf0N+dnQgO03wKK5x6Us= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782695; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fXU90TCrPGTJYXwM0DjJPPrOfmo7FHnSBsI1Li4hHxI=; b=cLMm8aXxSwAZJFyyK3hMHsh9d4VqZ62uC7vrkGAKyegAznjVDo7//QZlQW1uNv1NrubcJrrE9rjcG7uwFhXJ37f9OtdkUrDXJmYiFjK4YCdGta7OXkniPKfNFHW4BNZ8YBDTOd0ZWRz80MhWb0mv4lnrMxPKN789ETeZj4lygrk= 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 1687782695585123.53353573700997; Mon, 26 Jun 2023 05:31:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlMT-0005eE-8I; Mon, 26 Jun 2023 08:30: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 1qDlLP-0002pP-QH for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29: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 1qDlLJ-00035h-8a for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:20 -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-y1Unr-5yP8qh8-uGAN_28w-1; Mon, 26 Jun 2023 08:29:15 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-3f814f78af2so13116045e9.0 for ; Mon, 26 Jun 2023 05:29:15 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id i7-20020adfdec7000000b00313dfe954ecsm7160021wrn.11.2023.06.26.05.29.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782556; 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=fXU90TCrPGTJYXwM0DjJPPrOfmo7FHnSBsI1Li4hHxI=; b=MsyJVi+LZN7G+JhpSqvfXO5tnNR4/guQCfqR/kKdKe6O0c5XVlm29sXyVRhaBMK+6ZRss9 +YTaQMao7fd46jnh0FMVQHAUmjnkUp3veNkR7z9/3LhJdMgOFCVpHiaAoqbLdOIabehHlG g4ctb72bG7xIyHeXX/Z+pAljlbYHG9g= X-MC-Unique: y1Unr-5yP8qh8-uGAN_28w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782554; x=1690374554; 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=fXU90TCrPGTJYXwM0DjJPPrOfmo7FHnSBsI1Li4hHxI=; b=VYFrHx60e9uRE56AokKgvkbMYhCAlWPeMbOBXVEfpIzc+HnPUceXOi1oSBY24F3mIC L3QUrYJDzgU9TGnktNoAU2vss7IvI8DhnyR4Dj3YNfeuY9emzlysM4he7juZVPJv51dU liHAiGvWBoWDflrliPQBraFZ1EdE974+DnrUtZCRMR0J7nEp6uJfDY8os1buCT+x8daH 1HFO66biDd7ghkqBB1a4ajkVGmQ4+/ePtMQ9SMAr7MWKb2HkYQV/yVrO52I6lQwpdwSb SM20GWBXid9q7uw7xcp7kcwfPR4KcEZxjSTGJM0qX2qtZUefmwlnPs2ayH13g7McfWYt 0qFg== X-Gm-Message-State: AC+VfDxy2ZupwYyupvpE8XaOIKjS0xFRgaoAqDeV5cEGRpdkzj42YdWs KW1P+1nWBmea9/YP1yTcXgxaX020W9W7eaS/xVwIBl4EeNA1XmADafr7QMIwTqIMrellUKxPt73 usTlyylf86frpfOEfm0n3hywCDVMu26VkvNdbgmB9Occe3S67NfIqVzjy54q89sK0+VUT X-Received: by 2002:a05:600c:2204:b0:3fa:8db4:91ec with SMTP id z4-20020a05600c220400b003fa8db491ecmr2409540wml.10.1687782553958; Mon, 26 Jun 2023 05:29:13 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7yQcKQX++d4QM53cylS2Kk+92ukcHM0rFU4P6sy6fzGSG4gYYsmaSjDUZn5IGEPD0Aez0XBg== X-Received: by 2002:a05:600c:2204:b0:3fa:8db4:91ec with SMTP id z4-20020a05600c220400b003fa8db491ecmr2409526wml.10.1687782553638; Mon, 26 Jun 2023 05:29:13 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:11 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Stefano Garzarella , Jason Wang , Lei Yang Subject: [PULL 27/53] vdpa: return errno in vhost_vdpa_get_vring_group error Message-ID: <0f2bb0bf38b04e9dfdc32ce5c762dd317f5a4c5a.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782696578100001 From: Eugenio P=C3=A9rez We need to tell in the caller, as some errors are expected in a normal workflow. In particular, parent drivers in recent kernels with VHOST_BACKEND_F_IOTLB_ASID may not support vring groups. In that case, -ENOTSUP is returned. This is the case of vp_vdpa in Linux 6.2. Next patches in this series will use that information to know if it must abort or not. Also, next patches return properly an errp instead of printing with error_report. Reviewed-by: Stefano Garzarella Acked-by: Jason Wang Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230526153143.470745-2-eperezma@redhat.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 37cdc84562..3fb833fe76 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -362,6 +362,14 @@ static NetClientInfo net_vhost_vdpa_info =3D { .check_peer_type =3D vhost_vdpa_check_peer_type, }; =20 +/** + * Get vring virtqueue group + * + * @device_fd vdpa device fd + * @vq_index Virtqueue index + * + * Return -errno in case of error, or vq group if success. + */ static int64_t vhost_vdpa_get_vring_group(int device_fd, unsigned vq_index) { struct vhost_vring_state state =3D { @@ -370,6 +378,7 @@ static int64_t vhost_vdpa_get_vring_group(int device_fd= , unsigned vq_index) int r =3D ioctl(device_fd, VHOST_VDPA_GET_VRING_GROUP, &state); =20 if (unlikely(r < 0)) { + r =3D -errno; error_report("Cannot get VQ %u group: %s", vq_index, g_strerror(errno)); return r; --=20 MST From nobody Sat May 18 18:13:07 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=1687782792; cv=none; d=zohomail.com; s=zohoarc; b=fB2IM03wW6kIjwsCwSyr6MSvE+GYb0omy1tRRCONVhHt9iK9V5aVMcKU13AxpXN4aTMxSIYmQk4FApVPvqX88MZVE/wgdKEh4VNE+KEjMHOePEwVwnl74wqzkQW9yXG5h4msqCabsd1vIlabMp2UZX/srYFXloT56eep3jq8/y4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782792; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=G4bFahDJeZoMWoK8kIZQmkC6+vW0g+dat8uXM/Zt97Q=; b=hjscw2SH3OgSX8BMlEtrqUzNPbw11JTm76/joat53uLiyELBxF3kCPhE3Sc3TcysOXDezyHkTh4bkPt/eRqipd4C3eyxwXPPTuAdRu0LnCD7QEO1rlo56FlpNSK8OnVb1KdD4QuLrZhPkIfSL9b1sb5ew21JUuc1Tz+5ZsAedzA= 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 1687782792237914.116372990442; Mon, 26 Jun 2023 05:33:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlLx-0003lp-Dv; Mon, 26 Jun 2023 08:29: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 1qDlLQ-0002ra-6j for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:31 -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 1qDlLM-00035w-Go for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:23 -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-583-sSfmeFHFMWO0tAqLwajkhg-1; Mon, 26 Jun 2023 08:29:18 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-3fa7b245a75so14507515e9.0 for ; Mon, 26 Jun 2023 05:29:18 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id c14-20020a7bc84e000000b003f8126bcf34sm10471913wml.48.2023.06.26.05.29.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782559; 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=G4bFahDJeZoMWoK8kIZQmkC6+vW0g+dat8uXM/Zt97Q=; b=Hskawo22iQl99DK+esX7ZungoMRqFAVBajYC7EhJsriWLCpXXB/FpdB7OtimKIJeZ01CU0 IcLM1BhJS/jdSQac4IuF5IMplAYOpkNNZPGaskjveMKbgYF/w0FzwkWFabBDFQj5dxTKAi XxVmK8h6c+HlGu249qYMLuDN/MnoQjI= X-MC-Unique: sSfmeFHFMWO0tAqLwajkhg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782557; x=1690374557; 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=G4bFahDJeZoMWoK8kIZQmkC6+vW0g+dat8uXM/Zt97Q=; b=gD2Kd8AXtdHMJbVOb2DeP7Zik6wymzZ6VoKZ9mcDLtY7TU+L64Li6thTa6pYuxM0KW loBKBipJqx9QjG8VkrSB2WTJErmFmSNEYezUOU4MyrMc9Bi6KboAk4oyK2ktvs9/IW7D l4qqE1tTn5COZNKEXh3QwLqbmcAnWxH/pbC4KmWBFwOQq8APfcfc8BEZWKQRqLvPvcW3 sMLpjjCuqFLw+0UpqTQviJ19VyKKqzK4/8FBU6UgPqw4ofwezvIJMeD7+bfX2hSGnza1 1pjPsGEwijW8NirnNU/QMBx3Xz+U+3lHOTfQVx1Q4dINiSCNUlf+yI//of0ZoUoXAFwK muHQ== X-Gm-Message-State: AC+VfDx2p50q+Tl1iYGjsp1/4r1nZ3BYNfO7IS9UQFdNQiyos8Ek1u9S 1TymeowsSkDk97EpthgXW/it9pUwF/wq+YYedJuw4Mav8onXrOrLRbJv5OxkYZp3RK4SIJdOYSH K0PfBM/0SIkB2kG4DxbUwAgxHseDE+qXzJdFKGAnRfDGgWhRzoIOVe/rGuxvqnRE97sCW X-Received: by 2002:a05:600c:3b1f:b0:3fa:125c:8d65 with SMTP id m31-20020a05600c3b1f00b003fa125c8d65mr12355552wms.3.1687782556899; Mon, 26 Jun 2023 05:29:16 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5ryX7WtcPFnVvmDZYqTUjibINZrdB+ircz7JhNisIQKLaYhjdH0KRnBukb/m3nDGN9YZqCXA== X-Received: by 2002:a05:600c:3b1f:b0:3fa:125c:8d65 with SMTP id m31-20020a05600c3b1f00b003fa125c8d65mr12355531wms.3.1687782556527; Mon, 26 Jun 2023 05:29:16 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:14 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Lei Yang , Jason Wang Subject: [PULL 28/53] vdpa: move CVQ isolation check to net_init_vhost_vdpa Message-ID: <152128d646973ed298d41dafd7a5bccff43336c8.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782793125100011 From: Eugenio P=C3=A9rez Evaluating it at start time instead of initialization time may make the guest capable of dynamically adding or removing migration blockers. Also, moving to initialization reduces the number of ioctls in the migration, reducing failure possibilities. As a drawback we need to check for CVQ isolation twice: one time with no MQ negotiated and another one acking it, as long as the device supports it. This is because Vring ASID / group management is based on vq indexes, but we don't know the index of CVQ before negotiating MQ. Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230526153143.470745-3-eperezma@redhat.com> Tested-by: Lei Yang Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Acked-by: Jason Wang --- net/vhost-vdpa.c | 157 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 113 insertions(+), 44 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 3fb833fe76..46778d5313 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -43,6 +43,10 @@ typedef struct VhostVDPAState { =20 /* The device always have SVQ enabled */ bool always_svq; + + /* The device can isolate CVQ in its own ASID */ + bool cvq_isolated; + bool started; } VhostVDPAState; =20 @@ -362,15 +366,8 @@ static NetClientInfo net_vhost_vdpa_info =3D { .check_peer_type =3D vhost_vdpa_check_peer_type, }; =20 -/** - * Get vring virtqueue group - * - * @device_fd vdpa device fd - * @vq_index Virtqueue index - * - * Return -errno in case of error, or vq group if success. - */ -static int64_t vhost_vdpa_get_vring_group(int device_fd, unsigned vq_index) +static int64_t vhost_vdpa_get_vring_group(int device_fd, unsigned vq_index, + Error **errp) { struct vhost_vring_state state =3D { .index =3D vq_index, @@ -379,8 +376,7 @@ static int64_t vhost_vdpa_get_vring_group(int device_fd= , unsigned vq_index) =20 if (unlikely(r < 0)) { r =3D -errno; - error_report("Cannot get VQ %u group: %s", vq_index, - g_strerror(errno)); + error_setg_errno(errp, errno, "Cannot get VQ %u group", vq_index); return r; } =20 @@ -480,9 +476,9 @@ static int vhost_vdpa_net_cvq_start(NetClientState *nc) { VhostVDPAState *s, *s0; struct vhost_vdpa *v; - uint64_t backend_features; int64_t cvq_group; - int cvq_index, r; + int r; + Error *err =3D NULL; =20 assert(nc->info->type =3D=3D NET_CLIENT_DRIVER_VHOST_VDPA); =20 @@ -502,40 +498,21 @@ static int vhost_vdpa_net_cvq_start(NetClientState *n= c) /* * If we early return in these cases SVQ will not be enabled. The migr= ation * will be blocked as long as vhost-vdpa backends will not offer _F_LO= G. - * - * Calling VHOST_GET_BACKEND_FEATURES as they are not available in v->= dev - * yet. */ - r =3D ioctl(v->device_fd, VHOST_GET_BACKEND_FEATURES, &backend_feature= s); - if (unlikely(r < 0)) { - error_report("Cannot get vdpa backend_features: %s(%d)", - g_strerror(errno), errno); - return -1; - } - if (!(backend_features & BIT_ULL(VHOST_BACKEND_F_IOTLB_ASID)) || - !vhost_vdpa_net_valid_svq_features(v->dev->features, NULL)) { + if (!vhost_vdpa_net_valid_svq_features(v->dev->features, NULL)) { return 0; } =20 - /* - * Check if all the virtqueues of the virtio device are in a different= vq - * than the last vq. VQ group of last group passed in cvq_group. - */ - cvq_index =3D v->dev->vq_index_end - 1; - cvq_group =3D vhost_vdpa_get_vring_group(v->device_fd, cvq_index); - if (unlikely(cvq_group < 0)) { - return cvq_group; + if (!s->cvq_isolated) { + return 0; } - for (int i =3D 0; i < cvq_index; ++i) { - int64_t group =3D vhost_vdpa_get_vring_group(v->device_fd, i); =20 - if (unlikely(group < 0)) { - return group; - } - - if (group =3D=3D cvq_group) { - return 0; - } + cvq_group =3D vhost_vdpa_get_vring_group(v->device_fd, + v->dev->vq_index_end - 1, + &err); + if (unlikely(cvq_group < 0)) { + error_report_err(err); + return cvq_group; } =20 r =3D vhost_vdpa_set_address_space_id(v, cvq_group, VHOST_VDPA_NET_CVQ= _ASID); @@ -799,6 +776,87 @@ static const VhostShadowVirtqueueOps vhost_vdpa_net_sv= q_ops =3D { .avail_handler =3D vhost_vdpa_net_handle_ctrl_avail, }; =20 +/** + * Probe if CVQ is isolated + * + * @device_fd The vdpa device fd + * @features Features offered by the device. + * @cvq_index The control vq pair index + * + * Returns <0 in case of failure, 0 if false and 1 if true. + */ +static int vhost_vdpa_probe_cvq_isolation(int device_fd, uint64_t features, + int cvq_index, Error **errp) +{ + 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; + int r; + + ERRP_GUARD(); + + r =3D ioctl(device_fd, VHOST_GET_BACKEND_FEATURES, &backend_features); + if (unlikely(r < 0)) { + error_setg_errno(errp, errno, "Cannot get vdpa backend_features"); + return r; + } + + if (!(backend_features & BIT_ULL(VHOST_BACKEND_F_IOTLB_ASID))) { + return 0; + } + + r =3D ioctl(device_fd, VHOST_SET_FEATURES, &features); + if (unlikely(r)) { + error_setg_errno(errp, errno, "Cannot set features"); + } + + r =3D ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); + if (unlikely(r)) { + error_setg_errno(errp, -r, "Cannot set device features"); + goto out; + } + + cvq_group =3D vhost_vdpa_get_vring_group(device_fd, cvq_index, errp); + if (unlikely(cvq_group < 0)) { + if (cvq_group !=3D -ENOTSUP) { + r =3D cvq_group; + goto out; + } + + /* + * The kernel report VHOST_BACKEND_F_IOTLB_ASID if the vdpa fronte= nd + * support ASID even if the parent driver does not. The CVQ canno= t be + * isolated in this case. + */ + error_free(*errp); + *errp =3D NULL; + r =3D 0; + goto out; + } + + for (int i =3D 0; i < cvq_index; ++i) { + int64_t group =3D vhost_vdpa_get_vring_group(device_fd, i, errp); + if (unlikely(group < 0)) { + r =3D group; + goto out; + } + + if (group =3D=3D (int64_t)cvq_group) { + r =3D 0; + goto out; + } + } + + r =3D 1; + +out: + status =3D 0; + ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); + return r; +} + static NetClientState *net_vhost_vdpa_init(NetClientState *peer, const char *device, const char *name, @@ -808,16 +866,26 @@ static NetClientState *net_vhost_vdpa_init(NetClientS= tate *peer, bool is_datapath, bool svq, struct vhost_vdpa_iova_range iova_r= ange, - uint64_t features) + uint64_t features, + Error **errp) { NetClientState *nc =3D NULL; VhostVDPAState *s; int ret =3D 0; assert(name); + int cvq_isolated; + if (is_datapath) { nc =3D qemu_new_net_client(&net_vhost_vdpa_info, peer, device, name); } else { + cvq_isolated =3D vhost_vdpa_probe_cvq_isolation(vdpa_device_fd, fe= atures, + queue_pair_index * 2, + errp); + if (unlikely(cvq_isolated < 0)) { + return NULL; + } + nc =3D qemu_new_net_control_client(&net_vhost_vdpa_cvq_info, peer, device, name); } @@ -844,6 +912,7 @@ static NetClientState *net_vhost_vdpa_init(NetClientSta= te *peer, =20 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; =20 /* * TODO: We cannot migrate devices with CVQ as there is no way to = set @@ -972,7 +1041,7 @@ int net_init_vhost_vdpa(const Netdev *netdev, const ch= ar *name, for (i =3D 0; i < queue_pairs; i++) { ncs[i] =3D net_vhost_vdpa_init(peer, TYPE_VHOST_VDPA, name, vdpa_device_fd, i, 2, true, opts->x_s= vq, - iova_range, features); + iova_range, features, errp); if (!ncs[i]) goto err; } @@ -980,7 +1049,7 @@ int net_init_vhost_vdpa(const Netdev *netdev, const ch= ar *name, if (has_cvq) { nc =3D net_vhost_vdpa_init(peer, TYPE_VHOST_VDPA, name, vdpa_device_fd, i, 1, false, - opts->x_svq, iova_range, features); + opts->x_svq, iova_range, features, errp); if (!nc) goto err; } --=20 MST From nobody Sat May 18 18:13:07 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=1687783333; cv=none; d=zohomail.com; s=zohoarc; b=CnHaLK1NrnZjCRtFUcnnOwPRHe6lR9/hVKj0zzOhC2s9B8Cu4NnwmJR+C0DsN4OQ2k0fBU7rAAhS0YJ3A9ll7yHVV5jcfafBN0IIYToxCfHXM7mt5mKywLbuUByRO1TQ8mBFbcpUeSpUAjozxGvx3W0b1BNMrZhKaV1Kmy2RRiA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783333; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xKvBYl51urE4Jt5rZyA5rOqZcY4rCot88Ld8XbjXNhc=; b=kV7/YzH2cUWBPVVUw2THr82TA+lfbgCfteP1F98MZb/kfJAeoqy1eL9PeHfzIzLmqEKjgmKoYfMg8c2LZQfTs/UC/DTgUUdqOpbtxaDtbv9WOiFbKRUz5E+V6rtCiRABmBh649FaUJ0TTtUQMvDtycibdPDXyqq4+UY3exC1E2E= 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 1687783333170861.0943004004604; Mon, 26 Jun 2023 05:42:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlMX-0005wZ-B1; Mon, 26 Jun 2023 08:30:33 -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 1qDlLV-0002uh-3G for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:33 -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 1qDlLT-00036e-E3 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:28 -0400 Received: from mail-lf1-f69.google.com (mail-lf1-f69.google.com [209.85.167.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-146-vNZs2RZtPuSv4V6GaX5b2A-1; Mon, 26 Jun 2023 08:29:22 -0400 Received: by mail-lf1-f69.google.com with SMTP id 2adb3069b0e04-4f8757ca7c6so2523714e87.0 for ; Mon, 26 Jun 2023 05:29:21 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id m21-20020a7bca55000000b003f4248dcfcbsm10495757wml.30.2023.06.26.05.29.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782566; 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=xKvBYl51urE4Jt5rZyA5rOqZcY4rCot88Ld8XbjXNhc=; b=DrPbrQxHamZ0eYZrsxVbpjnuXz9voIktTY84AB3GcKm13Ayr6s8A2EUSaYwyTvkpOoLtdn iYMs/KI84v31ppe9FTCvwGkUz5JyfELMlhqd5Ef2oBq94PTdSltZyIibukHcgSveSW0wLX UgOugC2Tv6ud8Nf9OFK/TcGGz1QAzqw= X-MC-Unique: vNZs2RZtPuSv4V6GaX5b2A-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782560; x=1690374560; 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=xKvBYl51urE4Jt5rZyA5rOqZcY4rCot88Ld8XbjXNhc=; b=gBrjBiDejAJjo30iCsdq2Efp95o3p8io2/j4fVhGwvIkT2jC0OcHBTx/rtPpEsEcNw FsgCooBp87lXGH3+bYodwLvBtX9fltQ8OEdgIGwCVO7mWpYY/pf65MEY9/df/iMcMlK5 ahiP5A6KoZmuYJFFPlV94l93d1V6p6/dloPCr6DNaabGvWoffLz0iyf7LyUYA3EDmk/Y v1e7Lv5LRUTWWY1OsBpC3q46GUKsfBEBrKYwxLvmL7Ht50S6NbKAgn4bd5eFULl2U0wY Ia6pHGMnsViNlHiydzw0q39medsdttGVACJkoPxk0LzysjtPempPvL8AcEpofe+Ib4si 6V9A== X-Gm-Message-State: AC+VfDx0Qs7PwuUrqnO3FLMMMT0BVnD1j/lG0zwhk6TbmfC6Wdx873ZA X9lpczMkc/e73DQf77iHs1tzqceFh07YxGJdFq2F1Pkk1XmWPWJwAJbPfSGSkp77sds/1M8h/r1 Ys/4N+vbG46zQ1PyRYIgeQAGV62GctDO4chaRHhQ6GH2/OxZIhsAZ8tAIIykYxmVMPoxk X-Received: by 2002:a19:f201:0:b0:4f7:42de:3a8f with SMTP id q1-20020a19f201000000b004f742de3a8fmr15213748lfh.56.1687782560120; Mon, 26 Jun 2023 05:29:20 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5u8ibGwdlGts4s5tEUNGfJyMIPLrYbofF3G8vJfo3oIK+wpX1pk+awYS7fsmTh5RJEvligGQ== X-Received: by 2002:a19:f201:0:b0:4f7:42de:3a8f with SMTP id q1-20020a19f201000000b004f742de3a8fmr15213725lfh.56.1687782559197; Mon, 26 Jun 2023 05:29:19 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:16 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , zhenwei pi , "Gonglei (Arei)" Subject: [PULL 29/53] cryptodev: fix memory leak during stats query 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783333669100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: zhenwei pi object_get_canonical_path already returns newly allocated memory, this means no additional g_strdup required. Remove g_strdup to avoid memory leak. Fixes: Coverity CID 1508074 Fixes: f2b901098 ("cryptodev: Support query-stats QMP command") Cc: Peter Maydell Signed-off-by: zhenwei pi Message-Id: <20230503115437.262469-1-pizhenwei@bytedance.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- backends/cryptodev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backends/cryptodev.c b/backends/cryptodev.c index 94ca393cee..7d29517843 100644 --- a/backends/cryptodev.c +++ b/backends/cryptodev.c @@ -522,7 +522,7 @@ static int cryptodev_backend_stats_query(Object *obj, v= oid *data) =20 entry =3D g_new0(StatsResult, 1); entry->provider =3D STATS_PROVIDER_CRYPTODEV; - entry->qom_path =3D g_strdup(object_get_canonical_path(obj)); + entry->qom_path =3D object_get_canonical_path(obj); entry->stats =3D stats_list; QAPI_LIST_PREPEND(*stats_results, entry); =20 --=20 MST From nobody Sat May 18 18:13:07 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=1687782633; cv=none; d=zohomail.com; s=zohoarc; b=XrKnjHTO8ZWtYisyOqfYY3txxr9BBAOvYqTQCRfBgpYhIzyFsFdcpQts0wIElPuDDgXNCfAK2/UNVB3ws3DddMpaIGrK9g0i5/bc7+CRnKtFMcDefkoU0izN19pe3E7SAX3M2Y2aKGUgaEvyNUNf75q3EVzH+sicBNSof8LtEpQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782633; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=p/UK6aQi1zp/6MKRVyY3fLV1bQBOfN+OI1GJ+WI2VHU=; b=TYPeKEatR0FRuAjBlRB5ap53zF+hyPEVN9/EohXd6Jl8CUz4KZMu+bGHa6i6tqPmlTRN3IJJYqyoxn/FKlRGQMpPg9RcotwC906x7H5VjkZnWImDdMFTgOgK1JPJlN5mkZB7adzz6WkgUd6lFLsc0+J8eN06mPzeIgMuxOPxrJc= 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 1687782633084783.4009326737245; Mon, 26 Jun 2023 05:30:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlMF-0004WL-Te; Mon, 26 Jun 2023 08:30:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlLU-0002ud-Rx for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29: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 1qDlLS-00036X-CP for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:28 -0400 Received: from mail-lf1-f72.google.com (mail-lf1-f72.google.com [209.85.167.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-470-XH8wV9X0NXSD-jPqPVMDiQ-1; Mon, 26 Jun 2023 08:29:24 -0400 Received: by mail-lf1-f72.google.com with SMTP id 2adb3069b0e04-4ecb00906d0so2231990e87.1 for ; Mon, 26 Jun 2023 05:29:24 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id v14-20020a1cf70e000000b003f9b2c602c0sm10542462wmh.37.2023.06.26.05.29.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782565; 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=p/UK6aQi1zp/6MKRVyY3fLV1bQBOfN+OI1GJ+WI2VHU=; b=UbiQM+Nz+RZnYjyib34D1jANsJ8L46RWWhTmQrXkG43vjtyBMsZ+majZGqpTn3a6p+b4Ue dc/lE49StefqX5HIj1XeEOdr5eNSzGIfT9x9f8IjCyMD3OPMMb43oNKaqREc51sWZmoJON Pn/TlkShDZrLl8+2I+g3m35a2o4Xv7I= X-MC-Unique: XH8wV9X0NXSD-jPqPVMDiQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782563; x=1690374563; 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=p/UK6aQi1zp/6MKRVyY3fLV1bQBOfN+OI1GJ+WI2VHU=; b=aue3879HYlogO9sR3eX1AfIV+SHP32vh2nRNmP3D0cN8IuxQ/WlEPSPDbZIUEH/8u/ UUJqYJCP56h25mxAlAeuuR0mdX4u6ILcgLyYBqfLmiLc1iax8kUcW8NI0A2xo9seBLz7 BjsWiOfvKF2WuVzo/81n7XFEzjCPiLOfnbrERHl3NJhjYojF+a2cNL5Ia3MQVDGWQgPU 5bH2XYYiA7aKVGYiu76U9j8m8Pe4Xf9X9j4SNQoBV3rEoREefkBtnQOKQ1ozhKfu+2L0 ztqSwAvw97DLsOItUTcnerJiaRTEsK0kKN/BClxF351orB+FXlBPm9x+nGN8RK87DANI 8FWA== X-Gm-Message-State: AC+VfDznnjgoIA0oE8vrFXLmfDRctUHWWcSdF4pjVxBgj7cwdY3YUhJW cMSYwhpoVGMOPuihNncRBko/BJi/GL+1vDvLFe1CbOSZGTtxfLlgHuoczIhIdpuKZquLi1KjsQo xaKZ8V5LfY2fgO0rmXe5rO7eTIqpc7EGo2++avmEckvQPSNpqBjdZ2pxvHqR2DB6vyNsZ X-Received: by 2002:a05:6512:39cc:b0:4f9:652d:e839 with SMTP id k12-20020a05651239cc00b004f9652de839mr8404629lfu.50.1687782562724; Mon, 26 Jun 2023 05:29:22 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6JYEqCW8s6dsRVRA89s0FV/LBfa6EoiScvesSPBx1SSIjHaFAakeJgH6TR41K73XcLUeRq3w== X-Received: by 2002:a05:6512:39cc:b0:4f9:652d:e839 with SMTP id k12-20020a05651239cc00b004f9652de839mr8404614lfu.50.1687782562361; Mon, 26 Jun 2023 05:29:22 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:19 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , BALATON Zoltan , Igor Mammedov , Ani Sinha Subject: [PULL 30/53] hw/acpi: Fix PM control register access Message-ID: <3d563fc68732179b86eff2b87f2d7dbef150315f.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782634493100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: BALATON Zoltan On pegasos2 which has ACPI as part of VT8231 south bridge the board firmware writes PM control register by accessing the second byte so addr will be 1. This wasn't handled correctly and the write went to addr 0 instead. Remove the acpi_pm1_cnt_write() function which is used only once and does not take addr into account and handle non-zero address in acpi_pm_cnt_{read|write}. This fixes ACPI shutdown with pegasos2 firmware. The issue below is possibly related to the same memory core bug. Link: https://gitlab.com/qemu-project/qemu/-/issues/360 Signed-off-by: BALATON Zoltan Message-Id: <20230607200125.A9988746377@zero.eik.bme.hu> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Igor Mammedov --- hw/acpi/core.c | 56 +++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/hw/acpi/core.c b/hw/acpi/core.c index 6da275c599..00b1e79a30 100644 --- a/hw/acpi/core.c +++ b/hw/acpi/core.c @@ -551,8 +551,35 @@ void acpi_pm_tmr_reset(ACPIREGS *ar) } =20 /* ACPI PM1aCNT */ -static void acpi_pm1_cnt_write(ACPIREGS *ar, uint16_t val) +void acpi_pm1_cnt_update(ACPIREGS *ar, + bool sci_enable, bool sci_disable) { + /* ACPI specs 3.0, 4.7.2.5 */ + if (ar->pm1.cnt.acpi_only) { + return; + } + + if (sci_enable) { + ar->pm1.cnt.cnt |=3D ACPI_BITMASK_SCI_ENABLE; + } else if (sci_disable) { + ar->pm1.cnt.cnt &=3D ~ACPI_BITMASK_SCI_ENABLE; + } +} + +static uint64_t acpi_pm_cnt_read(void *opaque, hwaddr addr, unsigned width) +{ + ACPIREGS *ar =3D opaque; + return ar->pm1.cnt.cnt >> addr * 8; +} + +static void acpi_pm_cnt_write(void *opaque, hwaddr addr, uint64_t val, + unsigned width) +{ + ACPIREGS *ar =3D opaque; + + if (addr =3D=3D 1) { + val =3D val << 8 | (ar->pm1.cnt.cnt & 0xff); + } ar->pm1.cnt.cnt =3D val & ~(ACPI_BITMASK_SLEEP_ENABLE); =20 if (val & ACPI_BITMASK_SLEEP_ENABLE) { @@ -575,33 +602,6 @@ static void acpi_pm1_cnt_write(ACPIREGS *ar, uint16_t = val) } } =20 -void acpi_pm1_cnt_update(ACPIREGS *ar, - bool sci_enable, bool sci_disable) -{ - /* ACPI specs 3.0, 4.7.2.5 */ - if (ar->pm1.cnt.acpi_only) { - return; - } - - if (sci_enable) { - ar->pm1.cnt.cnt |=3D ACPI_BITMASK_SCI_ENABLE; - } else if (sci_disable) { - ar->pm1.cnt.cnt &=3D ~ACPI_BITMASK_SCI_ENABLE; - } -} - -static uint64_t acpi_pm_cnt_read(void *opaque, hwaddr addr, unsigned width) -{ - ACPIREGS *ar =3D opaque; - return ar->pm1.cnt.cnt; -} - -static void acpi_pm_cnt_write(void *opaque, hwaddr addr, uint64_t val, - unsigned width) -{ - acpi_pm1_cnt_write(opaque, val); -} - static const MemoryRegionOps acpi_pm_cnt_ops =3D { .read =3D acpi_pm_cnt_read, .write =3D acpi_pm_cnt_write, --=20 MST From nobody Sat May 18 18:13:07 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=1687783606; cv=none; d=zohomail.com; s=zohoarc; b=UAKclTMOCenYX+E8cEYEg+7Nv2FkGGK/zcQqmyvaGovSssZ/c/c/UT8HncbmQuqf2iPpF7YiW80eLJ/Fr9NkxryDABbBb5LWJId9F8g+i7MZhO2ahzxMlnUlcDvjYxyLTGWd+05xX6GG0pvLtWKwjqKJ/kb7iW6Vu6VkIvq//qc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783606; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=SKjaIiozkxiRm9mjEi731tOdTERFV0G/Qnvcg4DvbFQ=; b=RZdNo3oOIGOkBgDIShNqkHCDa4AdY/ItJN0isyj45+Hv6DU797NfW58tm8RmVyOKAbfITyiI765louSXA/ZKs7Q1ShKiN+ob/q5ITPxofCwbuIEnL7sfmYO+133FBhg6Sg/xuFYehQ2oPKTi1OcbZzYVqWHNVAycbF9G4CSKJYE= 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 1687783606786322.2008309651227; Mon, 26 Jun 2023 05:46:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlMN-000538-TI; Mon, 26 Jun 2023 08:30: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 1qDlLc-0002vR-I1 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:46 -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 1qDlLX-000370-8M for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:32 -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-625-7k5VDobnPuKvdaWafq-htw-1; Mon, 26 Jun 2023 08:29:27 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-3f81f4a7596so23990445e9.1 for ; Mon, 26 Jun 2023 05:29:27 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id y12-20020a7bcd8c000000b003fa79af15c7sm10624349wmj.2.2023.06.26.05.29.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782570; 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=SKjaIiozkxiRm9mjEi731tOdTERFV0G/Qnvcg4DvbFQ=; b=JiysKUaWmYAzwRnEQ6qlSNB44QfVJ5Dtr/W7wyhXno8tGWQFtD4c3n2vQtt6ngGgJYa0zh zqtc74AH9SH5GBHynnkvhTltedBzHJX2x35WaavfLuu/h/vKOxjCWzZ7JNJo39qqlYayu3 9/mWo69et1eS2sVIQfhrQpjwVEfEIXE= X-MC-Unique: 7k5VDobnPuKvdaWafq-htw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782566; x=1690374566; 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=SKjaIiozkxiRm9mjEi731tOdTERFV0G/Qnvcg4DvbFQ=; b=BsYo+JcSX/JJ67uhDC15+47mQYPQSj4FRy0oVx1z9rBe67P0BFjdOTDEPBgMi6x3wH QP5oeuaEpc5u9uroUXzeqtx+tAzvZaJlHNh2Mo85JAN5Knz4knM8SEMMwJSo8T7FvwN+ KBRYr6RhyqlIhF0lA8Gevfsu4NFc5oBmDMxi9jM/J+mAKOVSxInLpquqKjJVBuHBBa8f 4+HWvqnK6T/WSxknAlzOgASdtuWjQGo3sif1PyLxzWD3HC9eNS4fNlk1Ec/e9GvnWBNg 0cxLqVO7kXKd+YeAV/Bj0Hbumn61cqBb8cxjDGuv9l7brW075aWApjAp/agzPftIGhWX 91pg== X-Gm-Message-State: AC+VfDzDvhIaCgeJhh7exNwie2dCI9jhu3YXxROCOkeNaPbJ0QZwUTQl nBbQaBM5rt5C8RAnrKa+XnSLi4iq56nGVLsBCuJeRHQP6ZcfRf2N8X+v3WqukTSJsHjFQXn6qFh UhXtiz636BHxIAGmmkFHM5+RzXByjr9eylFw9OJstZsiqVUNiYHPM8YgMec4saT01ZXOl X-Received: by 2002:a7b:c342:0:b0:3f4:d18f:b2fb with SMTP id l2-20020a7bc342000000b003f4d18fb2fbmr26607580wmj.8.1687782565859; Mon, 26 Jun 2023 05:29:25 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5LCmjQ8rBuQ9VMgsMf8S6ZuzWKRBFdsL0Af6fubNnslju45pXWIh/mb/rpq6p1T6iz4EgZJQ== X-Received: by 2002:a7b:c342:0:b0:3f4:d18f:b2fb with SMTP id l2-20020a7bc342000000b003f4d18fb2fbmr26607561wmj.8.1687782565508; Mon, 26 Jun 2023 05:29:25 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:22 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Suravee Suthikulpanit , Daniel P =?utf-8?B?LiBCZXJyYW5nw6k=?= , Igor Mammedov , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum , Ani Sinha Subject: [PULL 31/53] hw/i386/pc: Default to use SMBIOS 3.0 for newer machine models Message-ID: <59c230dab17176f798fb938ba4318543d9cf31d8.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783607144100003 From: Suravee Suthikulpanit Currently, pc-q35 and pc-i44fx machine models are default to use SMBIOS 2.8 (32-bit entry point). Since SMBIOS 3.0 (64-bit entry point) is now fully supported since QEMU 7.0, default to use SMBIOS 3.0 for newer machine models. This is necessary to avoid the following message when launching a VM with large number of vcpus. "SMBIOS 2.1 table length 66822 exceeds 65535" Signed-off-by: Suravee Suthikulpanit Message-Id: <20230607205717.737749-2-suravee.suthikulpanit@amd.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Igor Mammedov --- include/hw/i386/pc.h | 1 + tests/qtest/bios-tables-test-allowed-diff.h | 1 + hw/i386/pc.c | 4 +++- hw/i386/pc_piix.c | 5 +++++ hw/i386/pc_q35.c | 5 +++++ 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index c661e9cc80..6eec0fc51d 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -110,6 +110,7 @@ struct PCMachineClass { bool smbios_defaults; bool smbios_legacy_mode; bool smbios_uuid_encoded; + SmbiosEntryPointType default_smbios_ep_type; =20 /* RAM / address space compat: */ bool gigabyte_align; diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index dfb8523c8b..81148a604f 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,2 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/q35/SSDT.dimmpxm", diff --git a/hw/i386/pc.c b/hw/i386/pc.c index fc52772fdd..8d37567e08 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1856,6 +1856,7 @@ static void pc_machine_set_max_fw_size(Object *obj, V= isitor *v, static void pc_machine_initfn(Object *obj) { PCMachineState *pcms =3D PC_MACHINE(obj); + PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); =20 #ifdef CONFIG_VMPORT pcms->vmport =3D ON_OFF_AUTO_AUTO; @@ -1863,7 +1864,7 @@ static void pc_machine_initfn(Object *obj) pcms->vmport =3D ON_OFF_AUTO_OFF; #endif /* CONFIG_VMPORT */ pcms->max_ram_below_4g =3D 0; /* use default */ - pcms->smbios_entry_point_type =3D SMBIOS_ENTRY_POINT_TYPE_32; + pcms->smbios_entry_point_type =3D pcmc->default_smbios_ep_type; =20 /* acpi build is enabled by default if machine supports it */ pcms->acpi_build_enabled =3D PC_MACHINE_GET_CLASS(pcms)->has_acpi_buil= d; @@ -1975,6 +1976,7 @@ static void pc_machine_class_init(ObjectClass *oc, vo= id *data) mc->nvdimm_supported =3D true; mc->smp_props.dies_supported =3D true; mc->default_ram_id =3D "pc.ram"; + pcmc->default_smbios_ep_type =3D SMBIOS_ENTRY_POINT_TYPE_64; =20 object_class_property_add(oc, PC_MACHINE_MAX_RAM_BELOW_4G, "size", pc_machine_get_max_ram_below_4g, pc_machine_set_max_ram_below_4g, diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 44146e6ff5..f9947fbc10 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -506,11 +506,16 @@ DEFINE_I440FX_MACHINE(v8_1, "pc-i440fx-8.1", NULL, =20 static void pc_i440fx_8_0_machine_options(MachineClass *m) { + PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + pc_i440fx_8_1_machine_options(m); m->alias =3D NULL; m->is_default =3D false; compat_props_add(m->compat_props, hw_compat_8_0, hw_compat_8_0_len); compat_props_add(m->compat_props, pc_compat_8_0, pc_compat_8_0_len); + + /* For pc-i44fx-8.0 and older, use SMBIOS 2.8 by default */ + pcmc->default_smbios_ep_type =3D SMBIOS_ENTRY_POINT_TYPE_32; } =20 DEFINE_I440FX_MACHINE(v8_0, "pc-i440fx-8.0", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index a9a59ed42b..cf68b80974 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -387,10 +387,15 @@ DEFINE_Q35_MACHINE(v8_1, "pc-q35-8.1", NULL, =20 static void pc_q35_8_0_machine_options(MachineClass *m) { + PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + pc_q35_8_1_machine_options(m); m->alias =3D NULL; compat_props_add(m->compat_props, hw_compat_8_0, hw_compat_8_0_len); compat_props_add(m->compat_props, pc_compat_8_0, pc_compat_8_0_len); + + /* For pc-q35-8.0 and older, use SMBIOS 2.8 by default */ + pcmc->default_smbios_ep_type =3D SMBIOS_ENTRY_POINT_TYPE_32; } =20 DEFINE_Q35_MACHINE(v8_0, "pc-q35-8.0", NULL, --=20 MST From nobody Sat May 18 18:13:07 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=1687783179; cv=none; d=zohomail.com; s=zohoarc; b=V5LgsgrKlBOCXXwLd6zJ5uyIpDivtMbqrhF2yToRsPzA3fSynLFkplUOhDEn96MSjmLN3yuAcYnyyfIPEkJqXrBLFn5rz6+uns1Xyd0eS6CJgEe/DN8le33wROI9J3im+n93cMoZl46EEB5Es8QtxqTUBo5gTM9LRWPhixzAYok= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783179; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wcs6ygCPOeUuRIG5HHabBU2pdqpkqeqfBKN/9VnEw90=; b=K68JFOYsEy41fAoxVBPDY9OXpEiKlAE9GzG6P5l+i0llEqB6Ad0I8LNIyUDo4nTxxDHRh40kgQ2H6lVbC4axYLVkqRSDJfwbgjl94qY0X77oHVTcHhD3JlNwpR3if+F9rSfxrbmc/2OTtaFV6LdNlZfgCdIfXoiLq0yB2gOoG/w= 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 1687783179848742.5788245184854; Mon, 26 Jun 2023 05:39:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlOS-0007xZ-45; Mon, 26 Jun 2023 08:32: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 1qDlLe-0002vb-GM for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:46 -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 1qDlLY-00037A-Ab for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:33 -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-353-FWnZTsZpN-2GWetLblXiug-1; Mon, 26 Jun 2023 08:29:30 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-3f7e4dc0fe5so19028365e9.3 for ; Mon, 26 Jun 2023 05:29:29 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id p12-20020a5d638c000000b00313f61889e9sm1201418wru.36.2023.06.26.05.29.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782571; 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=wcs6ygCPOeUuRIG5HHabBU2pdqpkqeqfBKN/9VnEw90=; b=REOsCzioQTgNpZCV3Le5rjQgS3vG4pQqlCePwJbwd9DjAcpArNwiQgjSEAniI41DRG6TB7 5mhGKz8sfeFq++pEiR8vLbG2Zex+tN3t3DtGQ1Y3MH8AiaINQVzMHcbWPN2AVuWCBcFmzL VeEjNY9r3XZn6HVmXv/r5uyUPy6823M= X-MC-Unique: FWnZTsZpN-2GWetLblXiug-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782568; x=1690374568; 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=wcs6ygCPOeUuRIG5HHabBU2pdqpkqeqfBKN/9VnEw90=; b=DwyYnTCepJcmdWdhsmKfYNopWYqFR8K6iQ0KE07PBLRtTKU5xl9ugRQvzpRyv8V/1P cPeP76JWJHvCYaNfKZJ7Oh1nLlrqYoZj1b4dwlCcJXDB5U2rN7u/IDrKCkJ7zBdHR8+U NyrCzp9jn0iz3va/5WkbZrNdDqyPtGNC0yTFfSSD5+/J4EDAvN1fIZFWP+dmeuwKxJb2 k9gvuYoBvyIkReEeJ4tnjsfHsEg5QeOdGjaUbgq0CciywT6DC0lYxZifeviBHHYxYsyd QgQscbJa6Sn1FVfBNDBXu2+4RHybAL+oQKmV36aM35y3oeW9cZKsPLQu3+a3SBoZihXc OHhQ== X-Gm-Message-State: AC+VfDzYM0xVaaRu+ZMKWXMJRlrPCKs8iMw8mA6ePa2cnD1GHQFO+Oos FjsU2pPc1MAUURUnhj8u+U1ucLOl4nVdoruwSFJI2oWU/FbzA3GfT0ugktRRSjGsNdADiMUgANF jCvn9/JSuFWF5E4smw2pfP54bOOB8du+R05vd8TOJyjNi3jGJw9b8CZ3kAOfoL+MGxeoy X-Received: by 2002:a7b:c34d:0:b0:3f7:b1df:26d with SMTP id l13-20020a7bc34d000000b003f7b1df026dmr26691595wmj.38.1687782568519; Mon, 26 Jun 2023 05:29:28 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ65jmB+M9WbQS53Oz4GaUU3qYn8kVUNCc2Nty0rR5ShsuLBoFBrGZfhWzcmiRwB/nt/9oWD2w== X-Received: by 2002:a7b:c34d:0:b0:3f7:b1df:26d with SMTP id l13-20020a7bc34d000000b003f7b1df026dmr26691584wmj.38.1687782568310; Mon, 26 Jun 2023 05:29:28 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:25 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Igor Mammedov , Ani Sinha Subject: [PULL 32/53] tests/data/acpi: update after SMBIOS 2.0 change 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783181182100005 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switching to SMBIOS3.0 by default shifts some addresses, so we get this change in tests/data/acpi/q35/SSDT.dimmpxm : @@ -389,6 +389,6 @@ } } - Name (MEMA, 0x07FFE000) + Name (MEMA, 0x07FFF000) } update the expected file to match. Signed-off-by: Michael S. Tsirkin --- tests/qtest/bios-tables-test-allowed-diff.h | 1 - tests/data/acpi/q35/SSDT.dimmpxm | Bin 1815 -> 1815 bytes 2 files changed, 1 deletion(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index 81148a604f..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,2 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/q35/SSDT.dimmpxm", diff --git a/tests/data/acpi/q35/SSDT.dimmpxm b/tests/data/acpi/q35/SSDT.di= mmpxm index 9ea4e0d0ceaa8a5cbd706afb6d49de853fafe654..70f133412f5e0aa128ab210245a= 8de7304eeb843 100644 GIT binary patch delta 23 ecmbQvH=3DU0wIM^jboSlJzanD9BE_UVz|JeaVy9Ofw delta 23 ecmbQvH=3DU0wIM^jboSlJzam_|9E_UV*|JeaVTLvQl --=20 MST From nobody Sat May 18 18:13:07 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=1687783770; cv=none; d=zohomail.com; s=zohoarc; b=ZGXR9GidNf96PRfBqOETAs1enCd61SCr7OihBz6la2mGEPoGXPZLcFDFbVu9+yoElYwGA8Z53r/CS0x0ybojFaktLuEOKQ6u4kK/w/gkVWSCdJCRDRO1UVImQW0aSIqKIkUI8AD8TxG/2nJmItkzIxE9BhdhwZHG1j/AuYue9j4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783770; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zk3bXCBrHhYRvZthO2EE5E3G0WSYNJpSlRqxYxH75A8=; b=kjTN0EQX5YjgkusN0LEnEWRLW2so4I5Lxc5pBQumtOZPqGnELMeg5QJYoUShdJrG3enbFyWtkOKjK9iwpOEf33bG1tuOVnVElTmS59p0qj1bCE0zXrkmjXFVSXiAooEgHcqblNR3bcKiXYTfywnws9ITniQv3vVV137Nm93zjl0= 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 1687783770235769.9739815131715; Mon, 26 Jun 2023 05:49:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlN7-0005yM-M0; Mon, 26 Jun 2023 08:31:09 -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 1qDlLj-0002x8-Bs for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:50 -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 1qDlLc-00037M-AE for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:39 -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-575-Fxbta0SDPWCld8JBWL2uNA-1; Mon, 26 Jun 2023 08:29:33 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-31114af5e45so1873249f8f.1 for ; Mon, 26 Jun 2023 05:29:33 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id e15-20020adfe7cf000000b0030fae360f14sm7267771wrn.68.2023.06.26.05.29.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782574; 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=zk3bXCBrHhYRvZthO2EE5E3G0WSYNJpSlRqxYxH75A8=; b=XT1GCBBmNDvsY+UAaICNabdsDFB8ZgWJewqi9jDtczd6ntMaXuw808JjObvRvuz5cBUxeX ifXSaKBvwae6yGbbwMpdL/6qGuLX1eGQNmiMsbXn8umXhj8rFaA9beSKCghv9vFPMjkp6K EjwQbqXusheL7iWDdgo8jREDx2CaquM= X-MC-Unique: Fxbta0SDPWCld8JBWL2uNA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782571; x=1690374571; 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=zk3bXCBrHhYRvZthO2EE5E3G0WSYNJpSlRqxYxH75A8=; b=IC/DqqBzDSlSGOTTPk8Nn3zn142XmyoOblKNR0JP4u+kgN/sC6zskLUInc7GSU+l+F qMsIqDx0HLuoMQtPPKnWQT4RCibdjbFfbCkbpHk1+Bb0g6hM3TDmKkJe5/BgrRnxgzNU vemMuLKltbkGXP/mC60S1GsQQ7V6Rp3ZFWri0eBi3lZvr2awOPWdvvIe+MH/ALOG+FY5 TJbWFWqTbWx38TqyiQA8EnWZ+T1CzlyEepfWDQvQ6LnlpbZE8+XevaeQrrPKcU+roLgg +aJyeWbtviDZc0SBiL0mPY7Wc0pbQFzsdlWJnAHUh/1DcSSY5FhN8Fj3nN0kwWIfTmrN z5Hw== X-Gm-Message-State: AC+VfDxmQjYNVphkNI9jzTehiRGprE3uAouyPcDCWIQJcUxS5O3TKJXe 3ngvTkZv79gu0c8F39ZdQKeLtzQ8yq2aa7Eqo41U6USP8Nem01Num54u92s7ytFQ0eNBMkTCPoE zwy3xnqmWYYjbUE3jnF2fD2KMq2hKeTzE6hVjoGdRklPaiLfPdTTZ203wo/O0wynqw4s5 X-Received: by 2002:adf:f544:0:b0:30e:1fc4:d0c9 with SMTP id j4-20020adff544000000b0030e1fc4d0c9mr25845384wrp.9.1687782571691; Mon, 26 Jun 2023 05:29:31 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7XSJqs72bemR8ZHGEm89pOWDPUw6uxfKhYgga/rmqH2gkmBpKjzNbt/KxSC4E8uU7pC2gtUQ== X-Received: by 2002:adf:f544:0:b0:30e:1fc4:d0c9 with SMTP id j4-20020adff544000000b0030e1fc4d0c9mr25845371wrp.9.1687782571469; Mon, 26 Jun 2023 05:29:31 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:28 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Suravee Suthikulpanit , Igor Mammedov , Daniel P =?utf-8?B?LiBCZXJyYW5nw6k=?= , Julia Suvorova , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 33/53] pc: q35: Bump max_cpus to 1024 Message-ID: <318ebd3629bc6a0a1a1b5d0c4642d523abe719e7.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783771326100003 From: Suravee Suthikulpanit Since KVM_MAX_VCPUS is currently defined to 1024 for x86 as shown in arch/x86/include/asm/kvm_host.h, update QEMU limits to the same number. In case KVM could not support the specified number of vcpus, QEMU would return the following error message: qemu-system-x86_64: kvm_init_vcpu: kvm_get_vcpu failed (xxx): Invalid arg= ument Also, keep max_cpus at 288 for machine version 8.0 and older. Cc: Igor Mammedov Cc: Daniel P. Berrang=C3=A9 Cc: Michael S. Tsirkin Cc: Julia Suvorova Reviewed-by: Igor Mammedov Signed-off-by: Suravee Suthikulpanit Message-Id: <20230607205717.737749-3-suravee.suthikulpanit@amd.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Daniel P. Berrang=C3=A9 --- hw/i386/pc_q35.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index cf68b80974..11a7084ea1 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -368,12 +368,12 @@ static void pc_q35_machine_options(MachineClass *m) m->default_nic =3D "e1000e"; m->default_kernel_irqchip_split =3D false; m->no_floppy =3D 1; + m->max_cpus =3D 1024; m->no_parallel =3D !module_object_class_by_name(TYPE_ISA_PARALLEL); machine_class_allow_dynamic_sysbus_dev(m, TYPE_AMD_IOMMU_DEVICE); machine_class_allow_dynamic_sysbus_dev(m, TYPE_INTEL_IOMMU_DEVICE); machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE); machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE); - m->max_cpus =3D 288; } =20 static void pc_q35_8_1_machine_options(MachineClass *m) @@ -396,6 +396,7 @@ static void pc_q35_8_0_machine_options(MachineClass *m) =20 /* For pc-q35-8.0 and older, use SMBIOS 2.8 by default */ pcmc->default_smbios_ep_type =3D SMBIOS_ENTRY_POINT_TYPE_32; + m->max_cpus =3D 288; } =20 DEFINE_Q35_MACHINE(v8_0, "pc-q35-8.0", NULL, --=20 MST From nobody Sat May 18 18:13:07 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=1687783074; cv=none; d=zohomail.com; s=zohoarc; b=Kz6dfRcKCcCkhyU+LfzIxifJC4S4bRo4dBUHI/bEI6g70moRKy3vUwEVNOzNI0Uunrvmc0cAccV5KqgYUWLg5Wt5SotSUSuhlQhXcuZ3YB2D5D4STYyfrD1Jeml2Ix9znkX3qQXhNzM+qzc2g3N45ZlVvXzU49DCoEoCeEZgXf8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783074; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9h5GQO2ixxECW2hjmoc6X163wgQYf5XFJKca0BRTn7c=; b=e2Z6AscA7Fi1sJip/2yvIc+fruiQZKlUkhgxQurO5pKm59zPdNp8aeZ1GZTDiQIWfoLrcSNrPNGAEAx+U2yrrpPtUIZoiZonfYhjDcXnB30ZkYz7v8erBEXaaR5Zr6SqjYXP1zjCkPlpW7p7fjcFDNOPUtpiV3Cvr2NI5e61GLM= 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 1687783074771738.0960708556573; Mon, 26 Jun 2023 05:37:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNJ-0006B3-VA; Mon, 26 Jun 2023 08:31:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlLk-0002xB-0j for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:50 -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 1qDlLe-00037Z-9T for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29: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-499--uob2gTxPkmhZmzOVXC6ZA-1; Mon, 26 Jun 2023 08:29:35 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-3113533a608so1197614f8f.0 for ; Mon, 26 Jun 2023 05:29:35 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id g17-20020a7bc4d1000000b003f7f87ba116sm10511360wmk.19.2023.06.26.05.29.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782577; 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=9h5GQO2ixxECW2hjmoc6X163wgQYf5XFJKca0BRTn7c=; b=KSvLZRFPrzzNWq3Asrje+25u1s9WCCfWPcj8a7TFWeBN9pDRcN9e4DwtfvaVsDnUW2ovSZ 9E/qM3NIXDFiE0XJkZlU/gtqhx0blek3q2iJLvU9sZe+HUwpJOUGxBwxSDdANScFXjtfDk JgA3djZVcmTAubLM5rsKy2CdHDlckuQ= X-MC-Unique: -uob2gTxPkmhZmzOVXC6ZA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782574; x=1690374574; 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=9h5GQO2ixxECW2hjmoc6X163wgQYf5XFJKca0BRTn7c=; b=eE2/W4OTV5jYTo3IfkSeWn9GfVsl1ilMVJptq7jn1ex1Xoj4lEEqK3fZkD9N/PY58J rTxtYhKl8nbwYcdEgAFeaJ+6LAvGdIwam5ZSSGDEmG3n/ZQPDka2qPPoUncoVNU3vFlg TZ8mjTLltdkAMQ/fF+JiBlHPEoYUCm6jLSsC2Ceyfh8KBq1T/KJj5kZdH2mvubjgr5TZ eD1vBuhzoEeP3FQA3JOSlDO7z/V93atUu99xXSYUThpjKKOAx086yb7YGllq42thB79l 7UCwwMBbD6qsCt9FZWQmwq284aWg6vytl1u6BhFznvXVZhImZUGU4FkWePvztzdwpVtj ONTA== X-Gm-Message-State: AC+VfDwX97fLWeXT4v235c2fh9PhkaKMNYYdFC2ty7OJZ2GqydqM3BEJ 6TxXp0qdjgvSJ1luItlqUAuzGVH5qVnP1UaXWcLd6MsRgE2vWPhxb4G7TRTSLoN0M9mvdNOilLy ux8Yh7kDe14lVKL7YxjonWcykJcBtiPDAn75rbpUoHYT7b+zPsumEx9j59JFNB/MooY0M X-Received: by 2002:a05:600c:215:b0:3fa:99d6:47a4 with SMTP id 21-20020a05600c021500b003fa99d647a4mr1211460wmi.22.1687782574353; Mon, 26 Jun 2023 05:29:34 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7ej65/sB6tUS/Wprf+fPtNtRsma/D6uHi5DXvZuzYopKb26iX9a5l92bTwtBFO82ASCTv+iQ== X-Received: by 2002:a05:600c:215:b0:3fa:99d6:47a4 with SMTP id 21-20020a05600c021500b003fa99d647a4mr1211449wmi.22.1687782574113; Mon, 26 Jun 2023 05:29:34 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:31 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Lei Yang , Jason Wang Subject: [PULL 34/53] vdpa: do not block migration if device has cvq and x-svq=on 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783076505100001 From: Eugenio P=C3=A9rez It was a mistake to forbid in all cases, as SVQ is already able to send all the CVQ messages before start forwarding data vqs. It actually caused a regression, making impossible to migrate device previously migratable. Fixes: 36e4647247f2 ("vdpa: add vhost_vdpa_net_valid_svq_features") Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230602143854.1879091-2-eperezma@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Tested-by: Lei Yang --- net/vhost-vdpa.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 46778d5313..4345f1e6de 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -915,13 +915,16 @@ static NetClientState *net_vhost_vdpa_init(NetClientS= tate *peer, s->cvq_isolated =3D cvq_isolated; =20 /* - * TODO: We cannot migrate devices with CVQ as there is no way to = set - * the device state (MAC, MQ, etc) before starting the datapath. + * 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. */ - error_setg(&s->vhost_vdpa.migration_blocker, - "net vdpa cannot migrate with CVQ feature"); + 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 Sat May 18 18:13:07 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=1687783500; cv=none; d=zohomail.com; s=zohoarc; b=igPdm1OrkDSKnzWCBV/3AIta0m7G6Ie6VKKRJBDxv7gPnzCAZPOQ+wGJhCOzMX3PETDbaSXFnoPGD3xMAodJOfKFj4B1zizFuqOtMsGHpOD37DE7CX8nVKEtcuLpvm85O+OcQDacFYj91+NUSry9A8QOkfGMb3cW4FtGT58m4Zg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783500; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ttoNvuHLZ0XFMVgAHJa1QOqb26Br1HM8ci+9NAm22mw=; b=mhGr/dGGBtVykFDMu43wzz92IqFs5Lx4Ptdt44mplY6eNt05/+yLrpDWphChasbKTs7YMb9b6WfSqNLd083m6kA6U2mHERonUMcWrNuqnqiYrTrkgZIFJFbqJrK0Cn6N4+SeO7yReG5RRJWw5XxHVWSZAZpbDCqLrOSbezFKrbY= 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 1687783500720429.9762872984037; Mon, 26 Jun 2023 05:45:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNY-0006R8-Sn; Mon, 26 Jun 2023 08:31: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 1qDlLn-0002xh-TL for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29: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 1qDlLh-00037k-OW for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:44 -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-592-Tn9euGaaMRKRCVl0wJODqA-1; Mon, 26 Jun 2023 08:29:39 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-313f10072daso525363f8f.1 for ; Mon, 26 Jun 2023 05:29:38 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id t5-20020a05600001c500b00313f7b077fesm622749wrx.59.2023.06.26.05.29.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782580; 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=ttoNvuHLZ0XFMVgAHJa1QOqb26Br1HM8ci+9NAm22mw=; b=SI7AUJcEqpRiuRxOIbl1OKtdZCC3YeEzEYS/72ACutkxrqWPTqwb0FWA2PxnWhVcf7c0jd QmDNjbOTVX1DAxUy9wp8ULs5EUfKvra+52VF/ASeQqoJv5WB+nkbTtJ1R9Kj6Y7gbeIQ7M EDDOyKCGQygCvFhDRg5pznklMwNzq3g= X-MC-Unique: Tn9euGaaMRKRCVl0wJODqA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782577; x=1690374577; 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=ttoNvuHLZ0XFMVgAHJa1QOqb26Br1HM8ci+9NAm22mw=; b=Vp2CkmahKl5stmUa6zrecDJzGrzP5oh+3cjtzlTluJ7NQCzYdN59nNY9aAiKoA84Vc U8CMIVA3GTYEF3LRMmthownCRfZQ887srfDjyV/13aB2Wrt7LrrxWd8U+V6E1ucRCCjr eEsgMapnWbZxCddc5ZT/fa0bl5t+tYvjTp6PsnfSyocVvTaxroYspZpMUjUzz6RhTcb3 NufCfq0ZAL2mMJRqiStYX4O6ijC/SRbgtDtXRHAbrcV4BA1ObCO0p2+bj0m0NqpL5LC5 Cv4cmDqyEqyfXvEJVHrlmFGyjJ7ni0ggRGPqvE5sEDzVT3GjlXe0fmEFhubkIv/wqp4c Mcng== X-Gm-Message-State: AC+VfDw92Qo574PxbC1y7XyBcgZy3pTOaBkJbfco07fRh0v0slFPmen6 rslmsGzmxgk/NPwEG+exhw5ioljoaF5gIEHYkjDZj3rXg185xKjAhgp/6fCNM8M9GPcB3Ai6GuJ Bw/taBm3lB5tWCDd+Ro8PsqQDRsD6rz6hdaNmX9IbElmC/rXkpH8FsRasLNIp1vMbQ0IK X-Received: by 2002:a5d:4535:0:b0:313:e6fb:39a0 with SMTP id j21-20020a5d4535000000b00313e6fb39a0mr4842583wra.11.1687782577159; Mon, 26 Jun 2023 05:29:37 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6+LAvAqdJZfCBcJ7MviMZVK2JsAdo+SBE2QTo6KLeXSgquqKZ3usKd5eFsp1fXkhZn4qO8wg== X-Received: by 2002:a5d:4535:0:b0:313:e6fb:39a0 with SMTP id j21-20020a5d4535000000b00313e6fb39a0mr4842569wra.11.1687782576917; Mon, 26 Jun 2023 05:29:36 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:34 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Jason Wang Subject: [PULL 35/53] vdpa: reorder vhost_vdpa_net_cvq_cmd_page_len function Message-ID: <9446bce653f927c04098fcfe36378163ce6086f2.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783501186100001 From: Eugenio P=C3=A9rez We need to call it from resource cleanup context, as munmap needs the size of the mappings. Signed-off-by: Eugenio P=C3=A9rez Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230602143854.1879091-3-eperezma@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 4345f1e6de..e425fabc34 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -120,6 +120,22 @@ VHostNetState *vhost_vdpa_get_vhost_net(NetClientState= *nc) return s->vhost_net; } =20 +static size_t vhost_vdpa_net_cvq_cmd_len(void) +{ + /* + * MAC_TABLE_SET is the ctrl command that produces the longer out buff= er. + * In buffer is always 1 byte, so it should fit here + */ + return sizeof(struct virtio_net_ctrl_hdr) + + 2 * sizeof(struct virtio_net_ctrl_mac) + + MAC_TABLE_ENTRIES * ETH_ALEN; +} + +static size_t vhost_vdpa_net_cvq_cmd_page_len(void) +{ + return ROUND_UP(vhost_vdpa_net_cvq_cmd_len(), qemu_real_host_page_size= ()); +} + static bool vhost_vdpa_net_valid_svq_features(uint64_t features, Error **e= rrp) { uint64_t invalid_dev_features =3D @@ -427,22 +443,6 @@ static void vhost_vdpa_cvq_unmap_buf(struct vhost_vdpa= *v, void *addr) vhost_iova_tree_remove(tree, *map); } =20 -static size_t vhost_vdpa_net_cvq_cmd_len(void) -{ - /* - * MAC_TABLE_SET is the ctrl command that produces the longer out buff= er. - * In buffer is always 1 byte, so it should fit here - */ - return sizeof(struct virtio_net_ctrl_hdr) + - 2 * sizeof(struct virtio_net_ctrl_mac) + - MAC_TABLE_ENTRIES * ETH_ALEN; -} - -static size_t vhost_vdpa_net_cvq_cmd_page_len(void) -{ - return ROUND_UP(vhost_vdpa_net_cvq_cmd_len(), qemu_real_host_page_size= ()); -} - /** Map CVQ buffer. */ static int vhost_vdpa_cvq_map_buf(struct vhost_vdpa *v, void *buf, size_t = size, bool write) --=20 MST From nobody Sat May 18 18:13:07 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=1687782646; cv=none; d=zohomail.com; s=zohoarc; b=jeY0TbAqXMKwBbAaKijnjcbG+uedyVWdWrclEYEXgjJ4zoJ+81mjne7FTXZ+EUt2A1f4XN19OtqXx8Z0cb9q8Wexqm5eHJfBE3k+YAo6urcl52Rx4rBkrD6y7yF3JEJNjapTOGv2Hplssk79Ks+rhofxMQK+tuIqFqg2sK5j98U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782646; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=dB6FfjKXTOnVb8d3WrfijaAV0zZ6uF43dpewIdOQqdk=; b=Wv/1tgHREoafxnUVynCGOoy9Oa2xRRkxWE019guw3HjIwOvMSttaD5P6sPhE6AcQqVj4CBXAFaQ+hAWbCiuwZuSEz/Ps95usZmHOXqW80qmHFiooH86QeNN60R1yBFsP1fnwH7tKmlf0cEsmNMt7pKYLb1kHAl+g5IXagBUciwg= 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 1687782646982491.2633731389071; Mon, 26 Jun 2023 05:30:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlLx-0003oE-UY; Mon, 26 Jun 2023 08:29: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 1qDlLn-0002xi-TH for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29: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 1qDlLj-00037q-Pi for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:45 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-588-NvlwMqfhM3qYQMkEbauQGw-1; Mon, 26 Jun 2023 08:29:41 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-3f9b003507bso15733615e9.0 for ; Mon, 26 Jun 2023 05:29:41 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id u8-20020a05600c00c800b003f70a7b4537sm10485830wmm.36.2023.06.26.05.29.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782582; 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=dB6FfjKXTOnVb8d3WrfijaAV0zZ6uF43dpewIdOQqdk=; b=Tsb7GNeq0m8frQNiBEbiSfH7/6DP0dR3Wm6A0na9tQhANyfniewq5P4GCeFMHQLe4cHfMx AcmjK6sQ4vmiLt4URl0HKIPlQrbAzYbNrw9+D4IapdOLBRm3cDQipAboYAchkr0EWy1581 MtDuYiYKJYAjnq0BHC2CFBWeUttohW4= X-MC-Unique: NvlwMqfhM3qYQMkEbauQGw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782580; x=1690374580; 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=dB6FfjKXTOnVb8d3WrfijaAV0zZ6uF43dpewIdOQqdk=; b=Lu1KM6sw7bzKZ4wSDOoVEOyoma4tEumWr5gzD/h0ozyNSe9YjVQYFMWGku+L0ceZ7Z ZvEPgMN9ss6tQCCCn8Fdrr1qSN5Ixmdv07ZOSqaJfCJ+caiHB0nxG3cxzSRgCOEvSAVZ dy/XmY1MFjQjFu307PGpBCbB5pcpJTdQjafHj3Bgoe9ouCJDTZaQh31BUNt/qPmdKn6D xyDViHf6pl2plZm3ivyoBzLRA1kRugi5ZtkiH8bBDVh/rAkhOuEJiCBweAzzr01+mMjK loS1MD1HsbsLDKfqGJ+l8rghqqBX5L8gQ3IEQjSycm968XuxIufvoq8sT0yqizsJYrK9 +L2Q== X-Gm-Message-State: AC+VfDw2XpS6CJHHg8J3WHafl6l1MeKIyWymnvDUbJ2NwLwWn365WIOH nsk/hPNOv5dVQjoVHaWFWpt6Dd1em2bEdbyr5vEQVdZFekrdV10unkw/Ko8s0h08ubHxavRyU8w kEkw0jdz8lbVyhMJIubLgSIm7qoxx4Tx1yQiYLXB7PmftIVoSXtNx0mDaclC9NA0bntuF X-Received: by 2002:a05:600c:d1:b0:3fa:9823:407 with SMTP id u17-20020a05600c00d100b003fa98230407mr1246738wmm.18.1687782579805; Mon, 26 Jun 2023 05:29:39 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ48ZagAXBR3lvawnpOcKVUGGye9LAIqzXLLCIU36gPkqDV8S9tLXb/DorlHir3q3QK3P2ds3A== X-Received: by 2002:a05:600c:d1:b0:3fa:9823:407 with SMTP id u17-20020a05600c00d100b003fa98230407mr1246720wmm.18.1687782579314; Mon, 26 Jun 2023 05:29:39 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:37 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang Subject: [PULL 36/53] vdpa: map shadow vrings with MAP_SHARED 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782648324100001 From: Eugenio P=C3=A9rez The vdpa devices that use va addresses neeeds these maps shared. Otherwise, vhost_vdpa checks will refuse to accept the maps. The mmap call will always return a page aligned address, so removing the qemu_memalign call. Keeping the ROUND_UP for the size as we still need to DMA-map them in full. Not applying fixes tag as it never worked with va devices. Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230602143854.1879091-4-eperezma@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/vhost-shadow-virtqueue.c | 18 +++++++++--------- net/vhost-vdpa.c | 16 ++++++++-------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-vi= rtqueue.c index bd7c12b6d3..1b1d85306c 100644 --- a/hw/virtio/vhost-shadow-virtqueue.c +++ b/hw/virtio/vhost-shadow-virtqueue.c @@ -649,7 +649,7 @@ void vhost_svq_set_svq_kick_fd(VhostShadowVirtqueue *sv= q, int svq_kick_fd) void vhost_svq_start(VhostShadowVirtqueue *svq, VirtIODevice *vdev, VirtQueue *vq, VhostIOVATree *iova_tree) { - size_t desc_size, driver_size, device_size; + size_t desc_size; =20 event_notifier_set_handler(&svq->hdev_call, vhost_svq_handle_call); svq->next_guest_avail_elem =3D NULL; @@ -662,14 +662,14 @@ void vhost_svq_start(VhostShadowVirtqueue *svq, VirtI= ODevice *vdev, =20 svq->vring.num =3D virtio_queue_get_num(vdev, virtio_get_queue_index(v= q)); svq->num_free =3D svq->vring.num; - driver_size =3D vhost_svq_driver_area_size(svq); - device_size =3D vhost_svq_device_area_size(svq); - svq->vring.desc =3D qemu_memalign(qemu_real_host_page_size(), driver_s= ize); + svq->vring.desc =3D mmap(NULL, vhost_svq_driver_area_size(svq), + PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYM= OUS, + -1, 0); desc_size =3D sizeof(vring_desc_t) * svq->vring.num; svq->vring.avail =3D (void *)((char *)svq->vring.desc + desc_size); - memset(svq->vring.desc, 0, driver_size); - svq->vring.used =3D qemu_memalign(qemu_real_host_page_size(), device_s= ize); - memset(svq->vring.used, 0, device_size); + svq->vring.used =3D mmap(NULL, vhost_svq_device_area_size(svq), + PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYM= OUS, + -1, 0); svq->desc_state =3D g_new0(SVQDescState, svq->vring.num); svq->desc_next =3D g_new0(uint16_t, svq->vring.num); for (unsigned i =3D 0; i < svq->vring.num - 1; i++) { @@ -712,8 +712,8 @@ void vhost_svq_stop(VhostShadowVirtqueue *svq) svq->vq =3D NULL; g_free(svq->desc_next); g_free(svq->desc_state); - qemu_vfree(svq->vring.desc); - qemu_vfree(svq->vring.used); + munmap(svq->vring.desc, vhost_svq_driver_area_size(svq)); + munmap(svq->vring.used, vhost_svq_device_area_size(svq)); event_notifier_set_handler(&svq->hdev_call, NULL); } =20 diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index e425fabc34..8840ca2ea4 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -205,8 +205,8 @@ static void vhost_vdpa_cleanup(NetClientState *nc) { VhostVDPAState *s =3D DO_UPCAST(VhostVDPAState, nc, nc); =20 - qemu_vfree(s->cvq_cmd_out_buffer); - qemu_vfree(s->status); + munmap(s->cvq_cmd_out_buffer, vhost_vdpa_net_cvq_cmd_page_len()); + munmap(s->status, vhost_vdpa_net_cvq_cmd_page_len()); if (s->vhost_net) { vhost_net_cleanup(s->vhost_net); g_free(s->vhost_net); @@ -903,12 +903,12 @@ static NetClientState *net_vhost_vdpa_init(NetClientS= tate *peer, vhost_vdpa_net_valid_svq_features(features, &s->vhost_vdpa.migration_blocker= ); } else if (!is_datapath) { - s->cvq_cmd_out_buffer =3D qemu_memalign(qemu_real_host_page_size(), - vhost_vdpa_net_cvq_cmd_page_le= n()); - memset(s->cvq_cmd_out_buffer, 0, vhost_vdpa_net_cvq_cmd_page_len()= ); - s->status =3D qemu_memalign(qemu_real_host_page_size(), - vhost_vdpa_net_cvq_cmd_page_len()); - memset(s->status, 0, vhost_vdpa_net_cvq_cmd_page_len()); + s->cvq_cmd_out_buffer =3D mmap(NULL, vhost_vdpa_net_cvq_cmd_page_l= en(), + PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_ANONYMOUS, -1, 0); + s->status =3D mmap(NULL, vhost_vdpa_net_cvq_cmd_page_len(), + PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOU= S, + -1, 0); =20 s->vhost_vdpa.shadow_vq_ops =3D &vhost_vdpa_net_svq_ops; s->vhost_vdpa.shadow_vq_ops_opaque =3D s; --=20 MST From nobody Sat May 18 18:13:07 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=1687783269; cv=none; d=zohomail.com; s=zohoarc; b=kMi7QO7s13vmaeh3ObSirMMVUcuc66PK4ZACpRNuKemeXLzcR56GZdHM1dm/wSdkWbIioQgea2PWvPvVYpuX7PAcA6+6GKSsBGInTme2HqD+jgFNUJ8XiNHpgpp2SIh+lE6QLFwiOg1Tvf6JGS8ISytbIpl+F5tITB8FwhXllGM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783269; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IEHVZ+NYDXJmtsy9/YWzgVDEZU+rV/o2cIqXz94Rhbo=; b=Jnat9d1CDeQxHwPyrkejtkMSVo8AdYjqOvg0EjSrjR7t/kSQf5cB3u0HGN3rKwrr0LU0QR0vhMVzPV/4ZqjET1m4kdTapHf4n704kqVX+z7HcJNcpnrMdoOC//r5QGEVR+hXWvj4cfM1w7NxI+PUxXCsZhMiDB3kvhrxIsgFXO0= 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 1687783269378464.3353311754986; Mon, 26 Jun 2023 05:41:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNP-0006EU-24; Mon, 26 Jun 2023 08:31:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlLq-00030d-FV for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29: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 1qDlLn-00039b-M5 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:49 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-608-n0wvxvcKOKmlxW0lfYLqrQ-1; Mon, 26 Jun 2023 08:29:44 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-3f7e4dc0fe5so19029085e9.3 for ; Mon, 26 Jun 2023 05:29:43 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id c25-20020a7bc019000000b003f819faff24sm10511657wmb.40.2023.06.26.05.29.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782585; 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=IEHVZ+NYDXJmtsy9/YWzgVDEZU+rV/o2cIqXz94Rhbo=; b=ARzNvfLiD2/gxh42hK1IA2Wzbj7z4GYQ/GKGWtsnoYIhlSMXMU1L1Hie9/zAwbfGTjHzph 7VlUY3ECQzt9F9pgoo5yViRn1ubi0d2LS82fpDcezvVtruu48WK9t0Oxm4PEhLpxr2b9Fy ib1W5aZGfeq6DSLY0FOMz0qZTzfkwJo= X-MC-Unique: n0wvxvcKOKmlxW0lfYLqrQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782582; x=1690374582; 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=IEHVZ+NYDXJmtsy9/YWzgVDEZU+rV/o2cIqXz94Rhbo=; b=JNEsPWf2kxYbQmOoX00c956FhzxhRQNS+FGGKr42pPQBR9xsLjmTJt13z7N7Ha3luJ VTbiaJgURuqSS9Zv6nXZyxMpuE2TIQFSlGOtCNxJ2Gg4iLjIAeqzz86yofxVkCNqLY8n K6N9cHbHvXk85/5oHAjTRe5ZMHEDbc/uE4uZOJqfK+lyNkplMO23fpXaE+iYjz0DUopu XX8jjfZmuppjSK/53YVHTLCnyFxykVk7UPgz5HYVmRcBDE/uKKAolhkikgOTR2czPVVg WvUXr+1fjlprBO2dOKEZ/My9veZmebd46yHKoSZkYyTNOpSZ2VX6b+vPK1y7IwZ7fYOn 78FA== X-Gm-Message-State: AC+VfDzw/j/Qm40fIq+Joi8r1wyCljJi64YcGrvM7HJ8rO9PBj95+dUM cgNhXd4BANsK/aD0eLeKqlk/cVD4/GYyGMnVATZmQkVjKQsS0UJUEbZrbsuSYEATQtdI/b+ZnLc KkCkvIC7Y+G1f8Y/SQBWAouooSqWww/Qi1UnkIO22lXBbubB8m0xKIdBga+hPmbhom+ya X-Received: by 2002:a05:600c:2315:b0:3fb:407e:9b30 with SMTP id 21-20020a05600c231500b003fb407e9b30mr515691wmo.13.1687782582561; Mon, 26 Jun 2023 05:29:42 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6KJk9k7ChLfoxdw4mnTg2rip3qIV6K4L/RapyQ+D5ZcGrz2O50mXs6zzsf2DsAUgEhDejyUw== X-Received: by 2002:a05:600c:2315:b0:3fb:407e:9b30 with SMTP id 21-20020a05600c231500b003fb407e9b30mr515679wmo.13.1687782582302; Mon, 26 Jun 2023 05:29:42 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:39 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Hawkins Jiawei , Eugenio =?utf-8?B?UMOpcmV6?= Martin , Lei Yang Subject: [PULL 37/53] include/hw/virtio: make some VirtIODevice const Message-ID: <11e802d37903bd7d2ee52cc2cb785326d603ff00.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783271359100015 From: Hawkins Jiawei The VirtIODevice structure is not modified in virtio_vdev_has_feature(). Therefore, make it const to allow this function to accept const variables. Signed-off-by: Hawkins Jiawei Reviewed-by: Eugenio P=C3=A9rez Martin Message-Id: <16c0561b921310a32c240a4fb6e8cee3ffee16fe.1685704856.git.yin311= 49@gmail.com> Tested-by: Lei Yang Reviewed-by: Eugenio P=C3=A9rez Tested-by: Eugenio P=C3=A9rez Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/virtio.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index af86ed7249..0492d26900 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -402,7 +402,7 @@ static inline bool virtio_has_feature(uint64_t features= , unsigned int fbit) return !!(features & (1ULL << fbit)); } =20 -static inline bool virtio_vdev_has_feature(VirtIODevice *vdev, +static inline bool virtio_vdev_has_feature(const VirtIODevice *vdev, unsigned int fbit) { return virtio_has_feature(vdev->guest_features, fbit); --=20 MST From nobody Sat May 18 18:13:07 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=1687783472; cv=none; d=zohomail.com; s=zohoarc; b=lSKKUNF4WXyuJG8dpC5QBCDbqinpIogW7DYiCAlDFdoTg3UAt/mHWouJt+fOHBsaXa7fzsXro+vh0GNcLUi93FvI99LaDIj1NF6F71eNybltCBMFwBMjVLlCK8gbFx7kSjnNj5AJdq++vL4tdPJqaV3xJ7EAx7rK84GixrKVn8o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783472; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=J650xI4G9TbYj30OOeoyARfbG5oUdRxwp2CGxYRPG7o=; b=fmpNPRPvIS5yyRneEM1thp1PLYNhOIJTaOejHcNoAdK3JY7LJZid0QtC1qUa64JwcytFL9FW67MHYAUC0RgfH//TZ3QcnfjL0DBddsYjk7thSFB+1ESh6yaSW8Y8RvBKPKQWr+AyTGP+r44oDJlqu0ihNObENU8UMAz45oPki/k= 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 1687783472092482.26001569223547; Mon, 26 Jun 2023 05:44:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNY-0006P9-1C; Mon, 26 Jun 2023 08:31: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 1qDlLr-00038t-RQ for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29: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 1qDlLq-00039z-5s for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:51 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-111-vZvDKhLJPriFwCuE-3FG_g-1; Mon, 26 Jun 2023 08:29:47 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-3f41a04a297so15664035e9.3 for ; Mon, 26 Jun 2023 05:29:46 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id e17-20020a05600c219100b003f809461162sm7534131wme.16.2023.06.26.05.29.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782588; 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=J650xI4G9TbYj30OOeoyARfbG5oUdRxwp2CGxYRPG7o=; b=R4rb6wF+8zcpF7fwHc17nwZj5fNqHM0ySWI+B43vGwsLUjN7x0G/Ub1KCWOQ6pQMxmQeTD qaYcnNQk9CN4jzZYdK/zoJmsnUs7mr1QvDM1zb51n9UNleM+O2gpjih0pMpgh6NtS676hC wZUPC2AdYomW56/CBWP7s1hAALxAfVs= X-MC-Unique: vZvDKhLJPriFwCuE-3FG_g-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782585; x=1690374585; 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=J650xI4G9TbYj30OOeoyARfbG5oUdRxwp2CGxYRPG7o=; b=MEpQ+PYiLzXzu200TB5blu93BF6YeS8ba4NFa/2mLdSCNLxlnE2I723HlRw3KiRbEi MH36xCctXbSaUPEcTtboz288hthtX7E5+TYIzNle3TYBURTO7upBuNFiP5vaZd1Ff2Bb 0Iynf79+9u5SasGhUXReiXrc+V6tw/u2ZMtnCdCa2fsweqmsaA4LUguaqEhEPnJ44hR/ UgU/RV7e0HFKZzLuUQDAPiPdV8CZx8o7z0IYD8Z9ImJXPUAmQptF7fqQBhMexQ6uWC76 8QPvbFNUrBSs31YgaleOqAKVhQWjeGVbFVYJRZEe5Tv85J6FWMz/SagRn5TYjKjuWTgb xWJw== X-Gm-Message-State: AC+VfDzkpUOQCBLksO62sTkNE3/zWJrtBcasJ7fxpOfBO8RpbieC8GyX 8R8g+GnvYMIQazKwBfJFyQH9+zzOdwV6aXW9JMYY3voLW1mFND7eLB16APEiK3tqn5l4NId5oS8 qJeGvlmneCZBZ9LCbwuhw4lcAo4pvUn1Hofonu5MpOTfMttO7SjDJG8l2d1aLHkLNYQuK X-Received: by 2002:a7b:c411:0:b0:3f7:ee69:869f with SMTP id k17-20020a7bc411000000b003f7ee69869fmr19500960wmi.5.1687782585488; Mon, 26 Jun 2023 05:29:45 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7M0i38svu/cKxe4E1BdDOXhvDq6vFC+FAnnZIL1VkAl3x2DJdp+VdgKe97HPF0AP03eEtVTw== X-Received: by 2002:a7b:c411:0:b0:3f7:ee69:869f with SMTP id k17-20020a7bc411000000b003f7ee69869fmr19500947wmi.5.1687782585184; Mon, 26 Jun 2023 05:29:45 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:42 -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 38/53] vdpa: reuse virtio_vdev_has_feature() Message-ID: <056827a6f832498b4d5513df51ffbeaafe91a6da.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783473022100001 From: Hawkins Jiawei We can use virtio_vdev_has_feature() instead of manually accessing the features. Signed-off-by: Hawkins Jiawei Acked-by: Eugenio P=C3=A9rez Message-Id: Tested-by: Lei Yang Reviewed-by: Eugenio P=C3=A9rez Tested-by: Eugenio P=C3=A9rez Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 8840ca2ea4..c3ef0139a6 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -629,8 +629,7 @@ static ssize_t vhost_vdpa_net_load_cmd(VhostVDPAState *= s, uint8_t class, =20 static int vhost_vdpa_net_load_mac(VhostVDPAState *s, const VirtIONet *n) { - uint64_t features =3D n->parent_obj.guest_features; - if (features & BIT_ULL(VIRTIO_NET_F_CTRL_MAC_ADDR)) { + if (virtio_vdev_has_feature(&n->parent_obj, VIRTIO_NET_F_CTRL_MAC_ADDR= )) { ssize_t dev_written =3D vhost_vdpa_net_load_cmd(s, VIRTIO_NET_CTRL= _MAC, VIRTIO_NET_CTRL_MAC_ADDR= _SET, n->mac, sizeof(n->mac)); @@ -648,10 +647,9 @@ static int vhost_vdpa_net_load_mq(VhostVDPAState *s, const VirtIONet *n) { struct virtio_net_ctrl_mq mq; - uint64_t features =3D n->parent_obj.guest_features; ssize_t dev_written; =20 - if (!(features & BIT_ULL(VIRTIO_NET_F_MQ))) { + if (!virtio_vdev_has_feature(&n->parent_obj, VIRTIO_NET_F_MQ)) { return 0; } =20 --=20 MST From nobody Sat May 18 18:13:07 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=1687782891; cv=none; d=zohomail.com; s=zohoarc; b=UtOzB+0GMfH5NK3lAPmNopWhw6/fBE0SIguKhFGQd5pijZNIMB0tAgukSbTiU+zM0X1++qIyDnkeBzEBV1DhHWRheAYzovHsRZJiI3LHndmtnBji8QJjV6WLyF01Mzej3MMazaT/4IvpXowzJ+vfleA2z6gixosex0ylX4aYbYg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782891; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=qokYyQAg0rMNcE+CO5M3YxYe0k2Y7hlwpAcrgDVYRLQ=; b=VODdkK28nRHZ+Cb6d4t6V7p3SNEdpJH2rauPz2bBcijspRcly96blJv9pTfQYHvSiyAH2ZIpdHXft5w+DUgClxjOiyOMJmJnBIs1KTuMqL3q+b6fT/+9bsvbRqJR5IBP6Rm9DJN+qF/xNfN8Y9kxQefpQAbGPYNx03gBwsIFtM0= 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 1687782891629403.8667202357086; Mon, 26 Jun 2023 05:34:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNc-0006TQ-Vs; Mon, 26 Jun 2023 08:31:41 -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 1qDlLv-0003Lo-3D for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:55 -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 1qDlLs-0003AV-EA for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:53 -0400 Received: from mail-lf1-f71.google.com (mail-lf1-f71.google.com [209.85.167.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-81-NKhtLvkYOoOQd5EUd8v53w-1; Mon, 26 Jun 2023 08:29:50 -0400 Received: by mail-lf1-f71.google.com with SMTP id 2adb3069b0e04-4ec790b902bso2202726e87.1 for ; Mon, 26 Jun 2023 05:29:50 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id h8-20020a05600c28c800b003f8ec58995fsm7581897wmd.6.2023.06.26.05.29.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782591; 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=qokYyQAg0rMNcE+CO5M3YxYe0k2Y7hlwpAcrgDVYRLQ=; b=CN81W8QT73E0gFBq+Fm/oH8j39Pgi6GU/VpjO4cmKUoiVRXqJG902ZSH2sJ5rQmHa/pUjL SNGHiI3iB34YuGZYJno+DF25UnKm57bG9nGhljQB+lCQRGQYELX8jwpQkd6xHai0IPFhgM MS7MFN9pLlwMeHqSQGDmOODbikPf9aE= X-MC-Unique: NKhtLvkYOoOQd5EUd8v53w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782588; x=1690374588; 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=qokYyQAg0rMNcE+CO5M3YxYe0k2Y7hlwpAcrgDVYRLQ=; b=j4lysOCPZn3niN7Q2KO+hReHvlyAmCLbPM20R1xJff+j+LdS1bU6tKRqmt4tH1eoVy uAZaZBAPx/DllghGBkc80rHJLavbYuhsQDac/OIAUCUknrH+O6dTFFcCTgtzZhz4QuAq 8Z2Eg4o/4jHEDh6ZPnx8RdhmRIOp/MT6wp8rkkT3IJGDAaNLJlrJVdw6a2hBDzg6/byK gh0snNSKwjTX2qZv00heuGCLdUu0qE9IGoby6MDtzkFHUp/olIKUu7JFF8PyDcznXru8 6YpmXrlKsEZzMiBB4doxzDtWaW2mtalIYfvHebOOIwuiUbGSaFqQchiqa+/ZRy6xN2wr Phmg== X-Gm-Message-State: AC+VfDzF2ZWlOi6FIbhWIoMND1Cwjo0+EqlRKvIrtYzpRKueVHIVe484 LrBPpJA+r7Ydp++mnu5HCRULjz1RUpop8eCOisqxNqf9PJStv9kBqV4VSjugBfsyqjH3BNQufYm Ii0oBQukYcb+S0g2Cl/AYXeKHucP/8y0QRPopd49gkBSOKTGgws/eYYIk3JUwkF8QODnU X-Received: by 2002:a19:8c49:0:b0:4f8:6e6e:4100 with SMTP id i9-20020a198c49000000b004f86e6e4100mr13881332lfj.52.1687782588383; Mon, 26 Jun 2023 05:29:48 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4MgwrLbl88tO80u/Ojk3U1gtnWFddzwpgknpnT/sJCXeAnudLiesc5Exg21JiDBH8V8uEd2g== X-Received: by 2002:a19:8c49:0:b0:4f8:6e6e:4100 with SMTP id i9-20020a198c49000000b004f86e6e4100mr13881318lfj.52.1687782588018; Mon, 26 Jun 2023 05:29:48 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:45 -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 39/53] hw/net/virtio-net: make some VirtIONet const 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782893114100001 From: Hawkins Jiawei The VirtIONet structure is not modified in virtio_net_supported_guest_offloads(). Therefore, make it const to allow this function to accept const variables. Signed-off-by: Hawkins Jiawei Reviewed-by: Eugenio P=C3=A9rez Message-Id: <489b09c3998ac09b9135e57a7dd8c56a4be8cdf9.1685704856.git.yin311= 49@gmail.com> Tested-by: Lei Yang Reviewed-by: Eugenio P=C3=A9rez Tested-by: Eugenio P=C3=A9rez Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/net/virtio-net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 6df6b7329d..7b27dad6c4 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -874,7 +874,7 @@ static uint64_t virtio_net_guest_offloads_by_features(u= int32_t features) return guest_offloads_mask & features; } =20 -static inline uint64_t virtio_net_supported_guest_offloads(VirtIONet *n) +static inline uint64_t virtio_net_supported_guest_offloads(const VirtIONet= *n) { VirtIODevice *vdev =3D VIRTIO_DEVICE(n); return virtio_net_guest_offloads_by_features(vdev->guest_features); --=20 MST From nobody Sat May 18 18:13:07 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=1687783302; cv=none; d=zohomail.com; s=zohoarc; b=mA4TmHMyLzx6NpTP//wZba7bTHP37ajewhy8qEZFkZNXgXVxQ/Gul70svVxi/7/ftEEzDH/j1Ld8YQCMPEneB1Bp5rLvw0Tg0QebcUVvlQDpRzVbd7mR76HLLjer1WMQAk+svYWV/l9fxZCbcvYDkVmwMrt1Dv8kkQ2l4L30H1o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783302; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lzBqSnaL1TseZeUKYXPr1J0Ht1sohs9lQERlrrRFx0s=; b=O7IvTprpJN6BSlQ4WpOQ+ymtR6QkT9FzG0u6DFNOIw/p3+a7vkBmmgLaPVjPaF/WrAHeQWDjcFr3MuMfHKHLWSKC40XAlaZBotm6IpwnVisjlhUjfQi8nYGpfrHQObBHSPIa8fprUqVX0ZAyvJMfsEIfqMtY6B0pYicNn5VkyFw= 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 1687783302296122.43152397939036; Mon, 26 Jun 2023 05:41:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNu-0007Hh-Br; Mon, 26 Jun 2023 08:32: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 1qDlLx-0003l5-5K for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:57 -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 1qDlLv-0003Al-9O for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:29:56 -0400 Received: from mail-lf1-f69.google.com (mail-lf1-f69.google.com [209.85.167.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-354-PTtjwPMfO0aS-GvnzhOigQ-1; Mon, 26 Jun 2023 08:29:53 -0400 Received: by mail-lf1-f69.google.com with SMTP id 2adb3069b0e04-4edc7ab63ccso2163036e87.3 for ; Mon, 26 Jun 2023 05:29:52 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id h10-20020a5d504a000000b00313e8dc7facsm5445758wrt.116.2023.06.26.05.29.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782594; 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=lzBqSnaL1TseZeUKYXPr1J0Ht1sohs9lQERlrrRFx0s=; b=gP2I8VMbuYSJrHmjxh2+n5aKg4dornAvO/ar4qGm2Vsdbj5h0RwNnzT9omXU7tz0cY6Zx4 Fgzlx85UIyAywczQubP3fq1u6+8NRy1YC2UhxCguVsExnloNTW2umAp2+JNo30Gfxpex9w F3u36p9ok1E/cSfrYa7BiaaTjvRlnqY= X-MC-Unique: PTtjwPMfO0aS-GvnzhOigQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782591; x=1690374591; 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=lzBqSnaL1TseZeUKYXPr1J0Ht1sohs9lQERlrrRFx0s=; b=edkmLFsns6UNkaxYdf+W9Vm9gxMNFCpxb79FKarC6U1t43Dn0Lw8edjKDBE3oyOpXh hmyzT/4w+TrCWWVs2MbF52d3WUhYg19l4r0gsBqtb1gel5xabXBwjOPD/B4PQD6dTjl1 cInlRSE069A79kocmSda2w6vDU3oTJltWz2x7NjzHZXfw+XYeLI3jaQZ8MkO14ndwMCl EfHaJGWTh7K/dGmvQU/+k3OIEjc/+MWr4uHHfRaVXqMEvatBdsSbTvuVpLG5yWW6SmhX +6CqZFoO7waVbxPBuQKln0ginREAzgR+b4vJVjaXVfr8pa6MlDUIPtUZZRBMAUn91uCT lGRg== X-Gm-Message-State: AC+VfDx8zm89yUCs2eRSB1sVfJUPKYdx5wKiUs1AQaiQmTyeP+1gty49 czb6Re4nJsQyAIprf6BOK3DSRdsls4GYJroyadV0Ttp8vmeHyePKVJiQGJqbioWfnvwH6UNNAQl 4BiQwqPN8XKzvTyf1GBuEA6SxtEyQ6fPuZ7EluhiskGyGKFDLGPAT5rXrgwpqo48e57A0 X-Received: by 2002:a05:6512:214c:b0:4f9:61a2:3592 with SMTP id s12-20020a056512214c00b004f961a23592mr6414650lfr.35.1687782591172; Mon, 26 Jun 2023 05:29:51 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6my+CRhbN7WrZrl+Chzb/BDP67sRz6nn3/r92FcZhY8/dK/P9+kQU8vaZsaVHQTd7T6lz/Cg== X-Received: by 2002:a05:6512:214c:b0:4f9:61a2:3592 with SMTP id s12-20020a056512214c00b004f961a23592mr6414631lfr.35.1687782590920; Mon, 26 Jun 2023 05:29:50 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:48 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Hawkins Jiawei , Lei Yang , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang Subject: [PULL 40/53] virtio-net: expose virtio_net_supported_guest_offloads() Message-ID: <34110c875edb84a2b066683e1d52a554cf95b6c0.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783303527100001 From: Hawkins Jiawei To support restoring offloads state in vdpa, it is necessary to expose the function virtio_net_supported_guest_offloads(). According to VirtIO standard, "Upon feature negotiation corresponding offload gets enabled to preserve backward compatibility.". Therefore, QEMU uses this function to get the device supported offloads. This allows QEMU to know the device's defaults and skip the control message sending if these defaults align with the driver's configuration. Note that the device's defaults can mismatch the driver's configuration only at live migration. Signed-off-by: Hawkins Jiawei Message-Id: <43679506f3f039a7aa2bdd5b49785107b5dfd7d4.1685704856.git.yin311= 49@gmail.com> Tested-by: Lei Yang Reviewed-by: Eugenio P=C3=A9rez Tested-by: Eugenio P=C3=A9rez Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- include/hw/virtio/virtio-net.h | 1 + hw/net/virtio-net.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/hw/virtio/virtio-net.h b/include/hw/virtio/virtio-net.h index ef234ffe7e..5f5dcb4572 100644 --- a/include/hw/virtio/virtio-net.h +++ b/include/hw/virtio/virtio-net.h @@ -227,5 +227,6 @@ size_t virtio_net_handle_ctrl_iov(VirtIODevice *vdev, unsigned out_num); void virtio_net_set_netclient_name(VirtIONet *n, const char *name, const char *type); +uint64_t virtio_net_supported_guest_offloads(const VirtIONet *n); =20 #endif diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 7b27dad6c4..7e8897a8bc 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -874,7 +874,7 @@ static uint64_t virtio_net_guest_offloads_by_features(u= int32_t features) return guest_offloads_mask & features; } =20 -static inline uint64_t virtio_net_supported_guest_offloads(const VirtIONet= *n) +uint64_t virtio_net_supported_guest_offloads(const VirtIONet *n) { VirtIODevice *vdev =3D VIRTIO_DEVICE(n); return virtio_net_guest_offloads_by_features(vdev->guest_features); --=20 MST From nobody Sat May 18 18:13:07 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=1687783274; cv=none; d=zohomail.com; s=zohoarc; b=REVHXvihia1e+CPYF6d5HzaEQ0R5vrjEd7QkTCGPv+ReizEXyBW24S2v6g2lNamx8DjhcNMi8Pec7aUO7T+oP2Fa+V1zarJkGyUttO72pHHwGxdCukaaFtneBsmGmgim6zG8lZU/3ZgKF4VWTx5Nss4lWl9HgpCnVm2krGnVRQc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783274; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0Rnc7xHoIJYK78sghEjyDjdFks1hD1FeSLcyQu3JIt4=; b=igNLYyj2S9+tGUOo0B/IDzLbiup1eM/c9HNyNGAcK6UYZxT8Qy8NG9J4BU48AmKXAGFfrz+Gr/MiWYCpOrvUyejZ8eabYKEyCSoq+/ThOY/ni9btDmACknZw7VF/mjzaXJFSWqR2c1CUQDyTaZNTnK5g/yfYB2SbD2E0ZWLGbrs= 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 1687783274279207.42474080847205; Mon, 26 Jun 2023 05:41:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlMV-0005s9-KZ; Mon, 26 Jun 2023 08:30:32 -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 1qDlM2-0004LR-IA for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30: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 1qDlLz-0003Bb-Lb for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:01 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-335-J_HYQ2TPNTqVY5HnSnXlAQ-1; Mon, 26 Jun 2023 08:29:55 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-3fa96b67ac1so20460775e9.0 for ; Mon, 26 Jun 2023 05:29:55 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id 12-20020a05600c020c00b003f90ab2fff9sm7571794wmi.9.2023.06.26.05.29.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782598; 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=0Rnc7xHoIJYK78sghEjyDjdFks1hD1FeSLcyQu3JIt4=; b=REqqO87xTkrp02syi2eXqxm4jjg6J0v3BoPfQAB/U9uHi/QLrM1GNdnC7V8TuSVDZvMjPC i3vNI/I8Qd3TB8PdmpyryX8dN160k1MKspDOk8s7fjMmuFHh25IKy02R1n3G0YcJBcR4li BrAMP6YG3CUYvjeFuQsD8Ica0g71Z74= X-MC-Unique: J_HYQ2TPNTqVY5HnSnXlAQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782594; x=1690374594; 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=0Rnc7xHoIJYK78sghEjyDjdFks1hD1FeSLcyQu3JIt4=; b=gxvXvsavhLfwEZydUrnS6P5+pK2PjRb+HscJeOvorXzJYhhsQ9f21HXsNj1T/Sqeny 2Hgo8SWBXVa/xl4xkrZE0GJufudSeVjy6s/aBfBkuymq6g3IJAV7KM6yT3JMEeA6Ax7g 1+LEu+HVmQ76ln3e0BCyqGRFTIAny2smo87BBji2+HuJcGnxwnx/kudJUa66cIQPWsKK LNWVjwr2UNKZ+3iGlBZcH8UBZy/3GfuTOhQ3guf+J6KJ/4R1qtdp8fRLyzJPrK4AkWrR PBnvz+2klnUFCDca2H5MMi0z1aGuF6/dZY5uSP3IN0kQiL3IZe84vFeuxG4wUTmNt4fD 5Uhw== X-Gm-Message-State: AC+VfDxV+Cj6wSvDDy+ZUaNh5cIi98KMqgmTawZYR2YzmSv5LqizJN1X vxyz0GjuEwlzyLxhYGmbhZW8Zaq6z5WI1P76yKazx5wjlzDjK0Riip8quFAkaFP5nrFr3TeA4Vw ejTjWIYxb9jdws0cK94XHJilsywF6uzADLs3ye6OxdW5oGQz6+zh44s02EG9Eh8yXxdH+ X-Received: by 2002:a05:600c:22c6:b0:3f9:b244:c294 with SMTP id 6-20020a05600c22c600b003f9b244c294mr25415778wmg.35.1687782594247; Mon, 26 Jun 2023 05:29:54 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7AuRyQX94iFaK4IMfPFyqnrXvfpMkWiZyF1nFy0OOfaAdrErIh7hpPdNec5xKBiJ0WAW5lig== X-Received: by 2002:a05:600c:22c6:b0:3f9:b244:c294 with SMTP id 6-20020a05600c22c600b003f9b244c294mr25415762wmg.35.1687782593982; Mon, 26 Jun 2023 05:29:53 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:51 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Hawkins Jiawei , Lei Yang , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang Subject: [PULL 41/53] vdpa: Add vhost_vdpa_net_load_offloads() 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783275390100003 From: Hawkins Jiawei This patch introduces vhost_vdpa_net_load_offloads() to restore offloads state at device's startup. Signed-off-by: Hawkins Jiawei Message-Id: <7e2b5cad9c48c917df53d80dec27dbfeb513e1a3.1685704856.git.yin311= 49@gmail.com> Tested-by: Lei Yang Reviewed-by: Eugenio P=C3=A9rez Tested-by: Eugenio P=C3=A9rez Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index c3ef0139a6..99d0445d90 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -664,6 +664,44 @@ static int vhost_vdpa_net_load_mq(VhostVDPAState *s, return *s->status !=3D VIRTIO_NET_OK; } =20 +static int vhost_vdpa_net_load_offloads(VhostVDPAState *s, + const VirtIONet *n) +{ + uint64_t offloads; + ssize_t dev_written; + + if (!virtio_vdev_has_feature(&n->parent_obj, + VIRTIO_NET_F_CTRL_GUEST_OFFLOADS)) { + return 0; + } + + if (n->curr_guest_offloads =3D=3D virtio_net_supported_guest_offloads(= n)) { + /* + * According to VirtIO standard, "Upon feature negotiation + * corresponding offload gets enabled to preserve + * backward compatibility.". + * + * Therefore, there is no need to send this CVQ command if the + * driver also enables all supported offloads, which aligns with + * the device's defaults. + * + * Note that the device's defaults can mismatch the driver's + * configuration only at live migration. + */ + return 0; + } + + offloads =3D cpu_to_le64(n->curr_guest_offloads); + dev_written =3D vhost_vdpa_net_load_cmd(s, VIRTIO_NET_CTRL_GUEST_OFFLO= ADS, + VIRTIO_NET_CTRL_GUEST_OFFLOADS_S= ET, + &offloads, sizeof(offloads)); + if (unlikely(dev_written < 0)) { + return dev_written; + } + + return *s->status !=3D VIRTIO_NET_OK; +} + static int vhost_vdpa_net_load(NetClientState *nc) { VhostVDPAState *s =3D DO_UPCAST(VhostVDPAState, nc, nc); @@ -686,6 +724,10 @@ static int vhost_vdpa_net_load(NetClientState *nc) if (unlikely(r)) { return r; } + r =3D vhost_vdpa_net_load_offloads(s, n); + if (unlikely(r)) { + return r; + } =20 return 0; } --=20 MST From nobody Sat May 18 18:13:07 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=1687783177; cv=none; d=zohomail.com; s=zohoarc; b=A7tmtPlfwxOurx8YviahV6Ba2RTbgOHSyTMoPkiXumVRU0qZ8tpNt0Flh3nX5+nbfoV99x0UuFUtH9SPnsXhsNyxIXNBaGFb46nOPa0iNSbVB6vt7o5Vdw4fpLovEUydLyG2AlfzbcCdi1Wi4+oAQrqVAuzBjYWXyZ5XLwFTs8Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783177; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5K8h8NuJsIBhqIKCTOJ4P7gYMHEPEK+cfHdE8tyjHlA=; b=S3pks9C+uIaoGjDlnRIltaLcXVUCW9Qhp47dxPJl/WrsG/8eZJW3/9x94Nbm/KLzBoLU0w4X6UHX527hE9Hq5BhNJ+Zr+16rFK4bt8kFopGxWgMbIjrGgvkqLIfh8+P6zm+OH32nvjI1+vTGRlMo1C0EOQ63TQ/u98RLOaKvIwA= 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 1687783177014373.8097732688783; Mon, 26 Jun 2023 05:39:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNS-0006Ia-RM; Mon, 26 Jun 2023 08:31:30 -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 1qDlM7-0004Wa-I5 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30: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 1qDlM4-0003EA-4v for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:07 -0400 Received: from mail-lf1-f71.google.com (mail-lf1-f71.google.com [209.85.167.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-206-7XFAwCbaN2aDq911qa_SxA-1; Mon, 26 Jun 2023 08:29:58 -0400 Received: by mail-lf1-f71.google.com with SMTP id 2adb3069b0e04-4f8727c7fb6so2241980e87.0 for ; Mon, 26 Jun 2023 05:29:58 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id k37-20020a05600c1ca500b003f9b3829269sm16961699wms.2.2023.06.26.05.29.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782602; 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=5K8h8NuJsIBhqIKCTOJ4P7gYMHEPEK+cfHdE8tyjHlA=; b=Q3RoEjLOmMnF8CGTi97CF/AkJuDBRUVZ9CewsovXe/kBte/PscKdQBlf33uopF+9KwfUom Jh6C9101u/8fdqHEdy9epltyd11EqITaA8jU09qoJe89jlLTJCP2W4W1Q+jxt6llnYorHA l8R/l1z5SD96lzOohdtW47xt0gCoue0= X-MC-Unique: 7XFAwCbaN2aDq911qa_SxA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782597; x=1690374597; 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=5K8h8NuJsIBhqIKCTOJ4P7gYMHEPEK+cfHdE8tyjHlA=; b=LHo1q520Si3VHusRnqoVGbJ0P2TfBmrTXthz8P4wVAtXouxnKSuO1HEv5CeUVDWX1A 8yc6JGOi4ju4V/EfnX2SBvvgJn5Nkdix2iY7fnCwDvvXDoz93wgEMEJM3yTsZqFIl1hk Nzv2tRevltP9PgA4FikqUGlHTlROYkjZhxx1f9ka6eXAFDaeX6YL9nFuPFrNa/2vDoFx HExG2O5IJFvmktwgb/vepiHKPn9wyviIAtIgj5cu4oWLpLicOF+7X8vvKW7MAO9Uq7yg Tb8cxyQ/9/JJV7PW9XZJHiGsSS/Q9iMgJuyuROPECCqUbE6QY+51OaGjCjWTPJ4+aRlw NbrA== X-Gm-Message-State: AC+VfDw7DyLM4QJM5RhPfDobjdYoydwQesF8IptxLhEduPsWC4O4Dfk5 t/Q7hhVUxmhkIr2XMmpMmyH3JjhbuTElRnVqb+T8lzbI6cn/TamWVWSBBOwXL4w/2cdEjoJmode HHNOp3miUw1hVBD1SIBLQnjFm7jQ0dxX6ESmUnbFLANGSen3PRnS+fADyAvYLgBcASfy2 X-Received: by 2002:ac2:4bd0:0:b0:4fb:b11:c99e with SMTP id o16-20020ac24bd0000000b004fb0b11c99emr2159960lfq.56.1687782597178; Mon, 26 Jun 2023 05:29:57 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5E3+DNbZ68UKyDbSk8nLGPaRex0ubDulc6bb7cnPYyjH5jYBa3edP8wdBJePKseswpGOXrwQ== X-Received: by 2002:ac2:4bd0:0:b0:4fb:b11:c99e with SMTP id o16-20020ac24bd0000000b004fb0b11c99emr2159944lfq.56.1687782596945; Mon, 26 Jun 2023 05:29:56 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:54 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Hawkins Jiawei , Jason Wang , Lei Yang , Eugenio =?utf-8?B?UMOpcmV6?= Subject: [PULL 42/53] vdpa: Allow VIRTIO_NET_F_CTRL_GUEST_OFFLOADS in SVQ Message-ID: <5b57ecdebc26e94fb45006f9a69dec853d1d0c72.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783179372100003 From: Hawkins Jiawei Enable SVQ with VIRTIO_NET_F_CTRL_GUEST_OFFLOADS feature. Signed-off-by: Hawkins Jiawei Acked-by: Jason Wang Message-Id: <778d642ecae6deed8a218b0e6232e4d7bb96b439.1685704856.git.yin311= 49@gmail.com> Tested-by: Lei Yang Reviewed-by: Eugenio P=C3=A9rez Tested-by: Eugenio P=C3=A9rez 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 99d0445d90..49221937a1 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -89,6 +89,7 @@ const int vdpa_feature_bits[] =3D { static const uint64_t vdpa_svq_device_features =3D BIT_ULL(VIRTIO_NET_F_CSUM) | BIT_ULL(VIRTIO_NET_F_GUEST_CSUM) | + BIT_ULL(VIRTIO_NET_F_CTRL_GUEST_OFFLOADS) | BIT_ULL(VIRTIO_NET_F_MTU) | BIT_ULL(VIRTIO_NET_F_MAC) | BIT_ULL(VIRTIO_NET_F_GUEST_TSO4) | --=20 MST From nobody Sat May 18 18:13:07 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=1687783851; cv=none; d=zohomail.com; s=zohoarc; b=IRTzC2kaXPXwo7Kl3XOQSRHgiQetzSHVe+tZL89+hVD/kB6fCht7gb7wtoC+2bmjWrJKxa2c/TX/fOgrQ+ek0Hy3n8m9xqA3rFIRMI/80YDqhuyilM4HwEdQ3y4NvYpxeijPgQAABuS4jfgovQCBVjY8+b11m/RMJAh8ifyJFEA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783851; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=AciTnBuftzpXPPCO+R3LnCnQ4nRx1NsyQcNXImLvWes=; b=ZzD7WVZO5s3v+flSVxMsijHqQ6/fZZdBoIPYC/9PFzUUUAOE6d4dNzUqOkhyMqt7eO9hnJqsWQoTLHipJXoBys2ZQQ4X1Dy/Zg5/lcMxdYg26SuwUJHCR8ZFWqfJTKaOcqZu3EO7JQFYy9JUT9wIKfjAjbmCJh1AxqQFgDiJ5MY= 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 1687783851548807.6251436010604; Mon, 26 Jun 2023 05:50:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNO-0006Di-8D; Mon, 26 Jun 2023 08:31:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlM7-0004Wb-Qc for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30: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 1qDlM6-0003JO-0A for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:07 -0400 Received: from mail-lf1-f70.google.com (mail-lf1-f70.google.com [209.85.167.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-180-1FIgXKV_NniU6SkcrKHnIQ-1; Mon, 26 Jun 2023 08:30:03 -0400 Received: by mail-lf1-f70.google.com with SMTP id 2adb3069b0e04-4f3932e595dso2517676e87.1 for ; Mon, 26 Jun 2023 05:30:01 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id 12-20020a05600c020c00b003f90ab2fff9sm7572011wmi.9.2023.06.26.05.29.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:29:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782604; 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=AciTnBuftzpXPPCO+R3LnCnQ4nRx1NsyQcNXImLvWes=; b=QafdhjwRBdmjL3RYVxdmRiM9ckDmCOejBhCCrc8EisRF0JGhAQzUBQZbgXlBOAmFtzWzpt +AdU5If4cRckmRZBZqGs7As5Wyo+cBZA/fGMcRk5R3Cr0FMyd0G/lnOh7IFWA+QsvvWv+k RGHykIDa8V9GmLyG8Teq46qEtjX4pFw= X-MC-Unique: 1FIgXKV_NniU6SkcrKHnIQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782600; x=1690374600; 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=AciTnBuftzpXPPCO+R3LnCnQ4nRx1NsyQcNXImLvWes=; b=Z9LriOfq9YQ3jn6OSiXwDX0dop5dsKal5S34YA3xCH5UITaEfN3k6zqVAQ3cLJ65FU gu59Qj3mIzNnWdGiSsdJK7CGhnn6uMUJfsXpCLBzY9gwhMtBEKQHf6U60Lper/1FMtE3 gL1RcxwsMT/1e5725zju1DvRVQiq5oGvAYDXczK7DjRWB3gFKfVQQX4hn55svhNEWUuU b6TI85WpDl1tsGYb/g09ANskseaw/PFhkx46n5NUhmsavWVCqJoORHFV/8D6hVviRV8S GwZQuLE7SJnPJ7EW8YtKqMMeKMshShAkj5ZHewqqhFvdXWbtKSQy4Tbf7PinD3a/74Mj xLnw== X-Gm-Message-State: AC+VfDwhnLd1In0KAEfil/gJmT4rCYRVBmQEaMQuo6XqFywB7Oauo+Ff mIn+D7fitSeM0lfw5RhY7pOhtpty/eGJP9PrJO5uKX7map6WMO1z18VMbpyZhNvB5Xm3MKaPXPl 8no5e9puQjAYoNhCOlheSFZWd83Kwtexj3tUsLoiYeYflVMlenvTUFtp2ysc8KUP6ks9R X-Received: by 2002:a05:6512:2343:b0:4fa:9817:c1da with SMTP id p3-20020a056512234300b004fa9817c1damr2577166lfu.21.1687782599944; Mon, 26 Jun 2023 05:29:59 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6uycp+gGk9kPuiZbfcML67Gp2i7fGbUMkx6V3rOw0pfOelSUzwn/oLNJsLFq1eZZrayA4MMw== X-Received: by 2002:a05:6512:2343:b0:4fa:9817:c1da with SMTP id p3-20020a056512234300b004fa9817c1damr2577143lfu.21.1687782599594; Mon, 26 Jun 2023 05:29:59 -0700 (PDT) Date: Mon, 26 Jun 2023 08:29:57 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Laurent Vivier , longpeng2@huawei.com, Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Subject: [PULL 43/53] vhost: fix vhost_dev_enable_notifiers() error case 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783852246100003 From: Laurent Vivier in vhost_dev_enable_notifiers(), if virtio_bus_set_host_notifier(true) fails, we call vhost_dev_disable_notifiers() that executes virtio_bus_set_host_notifier(false) on all queues, even on queues that have failed to be initialized. This triggers a core dump in memory_region_del_eventfd(): virtio_bus_set_host_notifier: unable to init event notifier: Too many open= files (-24) vhost VQ 1 notifier binding failed: 24 .../softmmu/memory.c:2611: memory_region_del_eventfd: Assertion `i !=3D mr= ->ioeventfd_nb' failed. Fix the problem by providing to vhost_dev_disable_notifiers() the number of queues to disable. Fixes: 8771589b6f81 ("vhost: simplify vhost_dev_enable_notifiers") Cc: longpeng2@huawei.com Signed-off-by: Laurent Vivier Message-Id: <20230602162735.3670785-1-lvivier@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/virtio/vhost.c | 65 ++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index fb7abc9769..d116c2d6a1 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -1530,6 +1530,40 @@ void vhost_dev_cleanup(struct vhost_dev *hdev) memset(hdev, 0, sizeof(struct vhost_dev)); } =20 +static void vhost_dev_disable_notifiers_nvqs(struct vhost_dev *hdev, + VirtIODevice *vdev, + unsigned int nvqs) +{ + BusState *qbus =3D BUS(qdev_get_parent_bus(DEVICE(vdev))); + int i, r; + + /* + * Batch all the host notifiers in a single transaction to avoid + * quadratic time complexity in address_space_update_ioeventfds(). + */ + memory_region_transaction_begin(); + + for (i =3D 0; i < nvqs; ++i) { + r =3D virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), hdev->vq_inde= x + i, + false); + if (r < 0) { + error_report("vhost VQ %d notifier cleanup failed: %d", i, -r); + } + assert(r >=3D 0); + } + + /* + * The transaction expects the ioeventfds to be open when it + * commits. Do it now, before the cleanup loop. + */ + memory_region_transaction_commit(); + + for (i =3D 0; i < nvqs; ++i) { + virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), hdev->vq_index = + i); + } + virtio_device_release_ioeventfd(vdev); +} + /* Stop processing guest IO notifications in qemu. * Start processing them in vhost in kernel. */ @@ -1559,7 +1593,7 @@ int vhost_dev_enable_notifiers(struct vhost_dev *hdev= , VirtIODevice *vdev) if (r < 0) { error_report("vhost VQ %d notifier binding failed: %d", i, -r); memory_region_transaction_commit(); - vhost_dev_disable_notifiers(hdev, vdev); + vhost_dev_disable_notifiers_nvqs(hdev, vdev, i); return r; } } @@ -1576,34 +1610,7 @@ int vhost_dev_enable_notifiers(struct vhost_dev *hde= v, VirtIODevice *vdev) */ void vhost_dev_disable_notifiers(struct vhost_dev *hdev, VirtIODevice *vde= v) { - BusState *qbus =3D BUS(qdev_get_parent_bus(DEVICE(vdev))); - int i, r; - - /* - * Batch all the host notifiers in a single transaction to avoid - * quadratic time complexity in address_space_update_ioeventfds(). - */ - memory_region_transaction_begin(); - - for (i =3D 0; i < hdev->nvqs; ++i) { - r =3D virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), hdev->vq_inde= x + i, - false); - if (r < 0) { - error_report("vhost VQ %d notifier cleanup failed: %d", i, -r); - } - assert (r >=3D 0); - } - - /* - * The transaction expects the ioeventfds to be open when it - * commits. Do it now, before the cleanup loop. - */ - memory_region_transaction_commit(); - - for (i =3D 0; i < hdev->nvqs; ++i) { - virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), hdev->vq_index = + i); - } - virtio_device_release_ioeventfd(vdev); + vhost_dev_disable_notifiers_nvqs(hdev, vdev, hdev->nvqs); } =20 /* Test and clear event pending status. --=20 MST From nobody Sat May 18 18:13:07 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=1687783032; cv=none; d=zohomail.com; s=zohoarc; b=U4xIRWTs8dURG+hcLNuzAaswsCN58ndXMgWjU2ZIY+kW/ORU06VEd4uE+XCrexSOPWUbGSg7KKlejKZejqzIUyf4Q9nU9AcyckqQ3ewcLSUkh4cqtpxCAxve8ne5Gt0tMH+aBHxM5E9u11FrSvd6d1xYYHOSz7vPJSqJiKVcZvE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783032; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fYcNucAmy67ddGjZ1HVGjT8M/yKQGxtNy1Ul1xPHkms=; b=U90TsUKue3xyyH1rnO/qWmRkG/OqMp2bJ9/qaaDw7/ywTDB1GrxOEJsD9AKUjFPFSxHFY5jWKX2F53f/WN/9LhbrWeFzvqgmpFYo7fLtqUL4j5XsaZ4HSjOWWGNd/8oBuM+RYme1VBKioZIhdgc+cR3dt7upiVzKcPemmahiNiw= 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 1687783032207236.73355069983927; Mon, 26 Jun 2023 05:37:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlO4-0007lx-VX; Mon, 26 Jun 2023 08:32:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlMC-0004aO-Cg for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:15 -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 1qDlMA-0003RF-CL for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:11 -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-173-lMloNVK8OCWD6VYTjjN7Gg-1; Mon, 26 Jun 2023 08:30:04 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-313e557a824so653867f8f.1 for ; Mon, 26 Jun 2023 05:30:03 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id r13-20020adfe68d000000b0030fb4b55c13sm7242434wrm.96.2023.06.26.05.30.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:30:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782609; 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=fYcNucAmy67ddGjZ1HVGjT8M/yKQGxtNy1Ul1xPHkms=; b=VdhuaCiX8Ft/xaRuOJlkM715cihiSaRdrO59rufPiuhTSSws32MhN3Xu2wdhZ0H8dHMNSK QMjXMYWP2SXWCs1FZ0kOELBbsNrZ79o3xiSJzNFvYKcDxZBw+gEOffBnOnsTzZjM9Msus3 oYbiXH7i7W+uuWmuWG9G3HBkBKe6Ue4= X-MC-Unique: lMloNVK8OCWD6VYTjjN7Gg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782602; x=1690374602; 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=fYcNucAmy67ddGjZ1HVGjT8M/yKQGxtNy1Ul1xPHkms=; b=LkWqMSpxwrrdcYI4yllCEosYAnzDUd5751RSI3Y090AweaXIBP7qa1cwzyGrE4MXMz 6Zcky/18/xpHHa4sfp8GfzxRQVS232fU2DdP0E7gA0MxTjAFDiQGHqXjJzHkoBeEQ9gH RYY5VbwnLKPnWjZTZuV6zmlCdOBYQsNcorMm+GUvHw5WsXP3F9ktvno9f5KousA3E7PG v5KIVY/KBL0l5gEBp26kpkIaNPYD+DvO0gbEjjTC7B8brDp0H9GVe8qG+7AOHUZ4k8yc I2qJZqNb/0L41uKVFkrdEPH4lvJTw+KH8McYmIfBxJQsyiW0u83PoFwM2OHCTDGVEPsS wZ0Q== X-Gm-Message-State: AC+VfDwkNaKCGRiPaa8jlGYIDUOzvEr1G6PS9hvzg+CXSvvgTW5+bRUm 1qg0RJzx81lfdMRrTQPF8TRu0A0906CuFdvKpGbMnxRds2ijPi4vaIxvrBKp5ITZsRdGQUpjC6l fCPdE6yVo/OuXQAwzn08bB+aVkcd4+bIe4vWKwTlg1ATGBWpNHXQk2BeOtBxqX6qr+FUh X-Received: by 2002:adf:facc:0:b0:313:f4be:82c0 with SMTP id a12-20020adffacc000000b00313f4be82c0mr1037629wrs.34.1687782602711; Mon, 26 Jun 2023 05:30:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6ERcErLVwS2ect6rJmCxtK4hiEIadh/nyqiL6Stztc8WyEiXYOONBaEpWmC/ZnXlCpYr4ctw== X-Received: by 2002:adf:facc:0:b0:313:f4be:82c0 with SMTP id a12-20020adffacc000000b00313f4be82c0mr1037616wrs.34.1687782602457; Mon, 26 Jun 2023 05:30:02 -0700 (PDT) Date: Mon, 26 Jun 2023 08:30:00 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang , Lei Yang Subject: [PULL 44/53] vdpa: mask _F_CTRL_GUEST_OFFLOADS for vhost vdpa devices Message-ID: <38bcfb9398753cfbff6baa170c0aaeee2525f90c.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783034406100003 From: Eugenio P=C3=A9rez QEMU does not emulate it so it must be disabled as long as the backend does not support it. Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230602173328.1917385-1-eperezma@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Acked-by: Jason Wang Tested-by: Lei Yang --- net/vhost-vdpa.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 49221937a1..75352efa39 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -58,6 +58,7 @@ const int vdpa_feature_bits[] =3D { VIRTIO_F_VERSION_1, VIRTIO_NET_F_CSUM, VIRTIO_NET_F_GUEST_CSUM, + VIRTIO_NET_F_CTRL_GUEST_OFFLOADS, VIRTIO_NET_F_GSO, VIRTIO_NET_F_GUEST_TSO4, VIRTIO_NET_F_GUEST_TSO6, --=20 MST From nobody Sat May 18 18:13:07 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=1687783035; cv=none; d=zohomail.com; s=zohoarc; b=Nmbjk1mu7xGsOaKR8kt7XoCkafRDMYyL1t4DtXnMIht1UUzNPVJvu7e7rzxbM24j0VTYhAII8stpNFGz23JcMrFmb3psiDXeifnN3b7605bMmHbZr/3YRTiMmjXax7PVKyWjjBbupqolVRHMaM+QUI+yZyLRJBi/cgPUK0J90iw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783035; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=x/guoVEX4OEQ4WBRKvv4H2+UF4n2CT9gVTBO3TjC4WE=; b=NeDKu59ZdCQEAnrVqKOQp4ubf2NYFps6n8prSRkfxIUrWorSqGilVlB+SgmV1ZhV1ljxHF9o2vPYSl8PPgo+ZTvDdJuQ7LBQdEu8ynsuvyUqh6wApZSF9LeHpDn/jKSzHAKtfbx9lBaAQMkGFG9Sg5Lw9Og6P5Kr9n1zQTt5aSs= 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 1687783035264318.9533701467369; Mon, 26 Jun 2023 05:37:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNd-0006Tw-7V; Mon, 26 Jun 2023 08:31:41 -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 1qDlMA-0004Zx-IF for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:14 -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 1qDlM8-0003Qv-RS for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:10 -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-461-5DPbn-ryMeKLGkDtMXmH7g-1; Mon, 26 Jun 2023 08:30:06 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-3f5fa06debcso24064755e9.0 for ; Mon, 26 Jun 2023 05:30:06 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id f26-20020a7bc8da000000b003f819dfa0ddsm7590256wml.28.2023.06.26.05.30.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:30:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782608; 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=x/guoVEX4OEQ4WBRKvv4H2+UF4n2CT9gVTBO3TjC4WE=; b=B4mFJ68mBI/J/p0LEmbKLMcODyEWUPq4jLHbeD9E87z/Z1tEfOTVRakDP/gEcSLBvqU80I Sp5IrAAxu/9wEvYKNvUkod0Q8bznXn+c7dQzYbt3MAsKL6r8P8qs4Lfyf0wTym4Aqk6Z1F rCfxJ9iXNJ0ACym2kYcL6Q/cX21K8oA= X-MC-Unique: 5DPbn-ryMeKLGkDtMXmH7g-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782605; x=1690374605; 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=x/guoVEX4OEQ4WBRKvv4H2+UF4n2CT9gVTBO3TjC4WE=; b=ji8iodIwS6BoPFTmixHaP0L4owZ07IES4sT6ljd8oXaRK2w+1LRbPCqQJjf2X3tS0p RgiPyD/PicAUaeLzn2oV1fpJZoQbEbDhTkruF69GRvRcYtHcZAaDPqV+6Q/4NhWW18ND uJzy9caZTOxCXE/ptdiXjiR0YlT9aiq4LSAPEN0sR4n7roD7apPq1S62KZqU51VVeiTM gK49geC3ppBKJkX6XmowCoiStrZPRC/gM4T7ltD5jEUDmaUV0ZZPV6LiN5zZY3rVMerm kKgWi9KCMs3AS/WF9dKcUQFJdnhtcKefxKuIYn5Wps67rOWfHRR6G9zPolOIYYvMRxIL JVAg== X-Gm-Message-State: AC+VfDx7g2AP0TlrGvC48otVqWxD2MvPmtqe14eYxksTHZabIxeZOpHA F1qzXIepM8RfdEOJSNG00vZ9pToqS7al9XCE55IuPQh6QB5yLUYcms2h2+AyIcn7xSTF7zQHvkb T58QkMBU68pgmM5QTwHZgSUx9kunYvjbB49v+021L+xmACkD3OGKjK0R5ZofCPyEpXZva X-Received: by 2002:a7b:c5d7:0:b0:3f8:c70e:7ed1 with SMTP id n23-20020a7bc5d7000000b003f8c70e7ed1mr26006957wmk.20.1687782605254; Mon, 26 Jun 2023 05:30:05 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5bbe9dPsA4QEvoVXT9Tyjm16oa1fjmFc6EaTQqnfYdwBd1KfqoVVWQR6lYEVMRhW8DwivQQQ== X-Received: by 2002:a7b:c5d7:0:b0:3f8:c70e:7ed1 with SMTP id n23-20020a7bc5d7000000b003f8c70e7ed1mr26006944wmk.20.1687782605033; Mon, 26 Jun 2023 05:30:05 -0700 (PDT) Date: Mon, 26 Jun 2023 08:30:02 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Eugenio =?utf-8?B?UMOpcmV6?= , Jason Wang , Lei Yang Subject: [PULL 45/53] vdpa: fix not using CVQ buffer in case of error Message-ID: <4d721661622df08359541a2a7b40e5827f0a1582.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783036266100007 From: Eugenio P=C3=A9rez Bug introducing when refactoring. Otherway, the guest never received the used buffer. Fixes: be4278b65fc1 ("vdpa: extract vhost_vdpa_net_cvq_add from vhost_vdpa_= net_handle_ctrl_avail") Signed-off-by: Eugenio P=C3=A9rez Message-Id: <20230602173451.1917999-1-eperezma@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Acked-by: Jason Wang Tested-by: Lei Yang --- 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 75352efa39..9e92b3558c 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -794,7 +794,7 @@ static int vhost_vdpa_net_handle_ctrl_avail(VhostShadow= Virtqueue *svq, } =20 if (*s->status !=3D VIRTIO_NET_OK) { - return VIRTIO_NET_ERR; + goto out; } =20 status =3D VIRTIO_NET_ERR; --=20 MST From nobody Sat May 18 18:13:07 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=1687783140; cv=none; d=zohomail.com; s=zohoarc; b=mS6gntZq1pUwRK6jJi3wNUKQHD6TKN5zUB4ooHWGnTMWU9j4XoVxaJquulgbYMC36gmwVxXUfCjIp1mB5RVahMwnjP/ze+o66lcSS/NIDD+yH68s+H8Yij69Gp1UBkMptxg2KkDunwGGeRsPas8e6QHRX40etVvmj3h0lT7L9Mc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783140; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XW1yczzSwWWDigtQnZw3yk+r1NAQ2QkzD7hi2j1+cLQ=; b=I/krMzsQngGlOFZkmd5yiHH6dpHWkZYW3i6NMuWqKkNLEOcRStTiohTUFP+g7zMH70NZCL2zsjqBbavCkvlekD4PW5PJfHN4u3DOw6jVd5Fh3QYn11yCWUMHzzgwCbOiVcnyY7euGiwZZzMydpoXwABYboS8/PsjIAJYYU+4wig= 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 16877831402121006.3133284430774; Mon, 26 Jun 2023 05:39:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNd-0006Tb-6L; Mon, 26 Jun 2023 08:31:41 -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 1qDlME-0004ab-6s for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:17 -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 1qDlMC-0003TU-2m for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:13 -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-618-_oQwmYOCO8KnnRMiZ3GEqQ-1; Mon, 26 Jun 2023 08:30:09 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-313f5021d9bso248002f8f.2 for ; Mon, 26 Jun 2023 05:30:09 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id z3-20020a5d4d03000000b0030aec5e020fsm7224686wrt.86.2023.06.26.05.30.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:30:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782611; 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=XW1yczzSwWWDigtQnZw3yk+r1NAQ2QkzD7hi2j1+cLQ=; b=M2VT5yBjKi/VUW0obXBaGqwP4XNIbCihd7NOXedyvUja8findWwiBhgKYmT1cqvfXkqPBG 0pXRuikUuY4eSC3yLjcYH20ax4QZUd8uNNVtpozplBYd9OPzn/+RiASK2IxbpUZ6PysZ5r MCPBH8RCYvmZCnE6OQXMvo7eCTV3gSE= X-MC-Unique: _oQwmYOCO8KnnRMiZ3GEqQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782608; x=1690374608; 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=XW1yczzSwWWDigtQnZw3yk+r1NAQ2QkzD7hi2j1+cLQ=; b=BPiy57+I9rW1GKW+SoiEi7J+VuJrQboOPYf32u+C9XSbexK13ZY1ORGx1RzGmDyfne J049U/TgGmLFZrSnr9CwxRR7CSLjNzP4QoRYThfHlQHthBXJiinaaa2j8Iw7yBsCpxPz ELiRvyxG7kMevGoI7KdrDX9QbvQNLXglGAM7lxqf9dRtO0kFk2I4mgZBrGYFsRkq75Jn Z6FAQZqWnOWofutOfslLVDgtPBX/ulso7v9F6qjMwTTSIY3KAlYesfhjf2zDzh9nHPZ+ QsM/EBWZLgGlTVcS3pTk266oVl5Ehz+cxh4DF8FsU5EjkXZutyUzE64mslS0qQM4hvPZ F+cQ== X-Gm-Message-State: AC+VfDwuQiQfnzd6IBypS34SAPzFVriIG2DXSlkZjWYtH6LTMF/Gubop FXNhFMlzKpLTuLfbti3oISB14Aa3IkIB8CBTV3ZjXzrJc2/+xRZEGPW36+wnrqm/1UViHs6KB/s Fv9EXU+TeACF0NIJySb42h+hdCTgbf0iaQ6qOl1Fo+3wVAl17jhYKW7r1JKIkbItqSSSB X-Received: by 2002:a5d:4e8f:0:b0:30f:bf2e:4b99 with SMTP id e15-20020a5d4e8f000000b0030fbf2e4b99mr19622262wru.49.1687782608199; Mon, 26 Jun 2023 05:30:08 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7RxNIEGTQPzDRapji3CzDC5tYJysZNShIucZQPbUk8fY2ypND2DMAknnwsWZp/Fm4kesVT9Q== X-Received: by 2002:a5d:4e8f:0:b0:30f:bf2e:4b99 with SMTP id e15-20020a5d4e8f000000b0030fbf2e4b99mr19622241wru.49.1687782607890; Mon, 26 Jun 2023 05:30:07 -0700 (PDT) Date: Mon, 26 Jun 2023 08:30:05 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Suravee Suthikulpanit , Igor Mammedov , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 46/53] hw/i386/pc: Clean up pc_machine_initfn 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783141067100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Suravee Suthikulpanit To use the newly introduced PC machine class local variable. Suggested-by: Igor Mammedov Signed-off-by: Suravee Suthikulpanit Message-Id: <20230609164107.23404-1-suravee.suthikulpanit@amd.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/pc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 8d37567e08..f01d7de5ad 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1867,7 +1867,7 @@ static void pc_machine_initfn(Object *obj) pcms->smbios_entry_point_type =3D pcmc->default_smbios_ep_type; =20 /* acpi build is enabled by default if machine supports it */ - pcms->acpi_build_enabled =3D PC_MACHINE_GET_CLASS(pcms)->has_acpi_buil= d; + pcms->acpi_build_enabled =3D pcmc->has_acpi_build; pcms->smbus_enabled =3D true; pcms->sata_enabled =3D true; pcms->i8042_enabled =3D true; --=20 MST From nobody Sat May 18 18:13:07 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=1687783769; cv=none; d=zohomail.com; s=zohoarc; b=I98RUwFeCAad6sjitbFtN/5YhLCKLCajYLNJs5iXIuXwp18VfjJ995ijEx1no2v8550XM1dr4QoPHVzf+Pi7Yf0NHoUW3DVIBwlgfRRrX/UZhNcNZDg7+avJ5E+fVD33Vv5gAroJ120l9u0d17F8LtyOaO1ZteIcCQ54K7ZnTK4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783769; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+JPP6gC2T8mRsPCVFgr5jilK+TVU+Qzv7fnB3Ti8Mg4=; b=NhoRAB9nJ5oO56rmLyVmKqvcSm8ZAN7EdK+YaMhf2rLjHk6MEzvOiRVIyyOBTFi9zbr4DBAqWKoqyW64x2g5OZLkBsmxUambgAX4icikpnfq3j9L2ryDrjbHpORAIuaOi95xOCAuzIkv1LXjciUuZlkd8GC9/+ZTI82OEvQg2f4= 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 16877837697641.3886284776707498; Mon, 26 Jun 2023 05:49:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlP7-0000ef-AE; Mon, 26 Jun 2023 08:33: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 1qDlMH-0004dt-DW for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30: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 1qDlMF-0003UL-IJ for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:17 -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-608-1kzTSnCuO8Sm-6R-Eef4uQ-1; Mon, 26 Jun 2023 08:30:12 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-313e557a824so653944f8f.1 for ; Mon, 26 Jun 2023 05:30:12 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id t5-20020a05600001c500b00313f7b077fesm624178wrx.59.2023.06.26.05.30.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:30:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782613; 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=+JPP6gC2T8mRsPCVFgr5jilK+TVU+Qzv7fnB3Ti8Mg4=; b=NcwNztOVMy83vETlT2b/wtr54srECtFT3LBgw5SVoOechtC7AWiWHpmlpy34kFW8u0d26c oUtwMNRSMbFU81kxjiXVDCQQeAYaybaVY9EO2wECTtUPU6tyysngY6+LQ2SQ6yXTPz5arE oQ0zXRSJwHTSO3PjSm7MNZ7gGyAJpHw= X-MC-Unique: 1kzTSnCuO8Sm-6R-Eef4uQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782611; x=1690374611; 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=+JPP6gC2T8mRsPCVFgr5jilK+TVU+Qzv7fnB3Ti8Mg4=; b=PQIY5pVDjFr7ZoGAoebmOcWhBaq/crlKQfP68TDtcHsqUlicJxKFTGjvToGzy2yucl H8YgGLna/NOF5k+/wSkgXfgnnDumJ5Ti+kKd1PX1RlM9N9MvbvvET21271M566RmpbXL 9R6F38N3/Z1ghamH0XvGVz6tLp+B9YjWK9KcS3/B/RnX/dp3a+SZ6rOG5IP6OHFS1xIp dZEjdUnBBxHDAqcJFuLV4irkADC1KS3vIMorQJSJmrgTgYJ6dr/I/deGEZEGPx2fctGu nHMOl81YMsbV+MK5nmmOiRQPugdsUBOJGONIwd4FqRC3R9dJXWdpBdWvqVfY7D0YQNZ6 9cyA== X-Gm-Message-State: AC+VfDzur3GpRMVRJh3HIOWOOTOoew3e1njJaWQ74gRbsTk2Cmu+KNOG EiUZ2op1Z1FQoMgoeFo0s1ZLbYDt8q/k9TIUNgMH0BaPAzLK32lANxuuIgyOsoQmmN5dSWvZF6s odL/uUSg7BD+7KopBq4SLSVVA13Jz0e8VZ1CD6VgvxrVF3wWJJnuJWX3ZxdHKjEHUo0Y0 X-Received: by 2002:a5d:674b:0:b0:313:ebbf:3696 with SMTP id l11-20020a5d674b000000b00313ebbf3696mr2867397wrw.46.1687782611142; Mon, 26 Jun 2023 05:30:11 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5Q0dyZA4pnYOtQC85OALAlkkgNldInwRPD5pd/rN/6R/XOZmbKSQcUmGe4OMEsJofTRF+5Yw== X-Received: by 2002:a5d:674b:0:b0:313:ebbf:3696 with SMTP id l11-20020a5d674b000000b00313ebbf3696mr2867382wrw.46.1687782610807; Mon, 26 Jun 2023 05:30:10 -0700 (PDT) Date: Mon, 26 Jun 2023 08:30:08 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Stefan Hajnoczi , Jean-Louis Dupond , Paolo Bonzini , Fam Zheng Subject: [PULL 47/53] virtio-scsi: avoid dangling host notifier in ->ioeventfd_stop() 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783770242100001 From: Stefan Hajnoczi virtio_scsi_dataplane_stop() calls blk_drain_all(), which invokes ->drained_begin()/->drained_end() after we've already detached the host notifier. virtio_scsi_drained_end() currently attaches the host notifier again and leaves it dangling after dataplane has stopped. This results in the following assertion failure because virtio_scsi_defer_to_dataplane() is called from the IOThread instead of the main loop thread: qemu-system-x86_64: ../softmmu/memory.c:1111: memory_region_transaction_c= ommit: Assertion `qemu_mutex_iothread_locked()' failed. Buglink:=C2=A0https://gitlab.com/qemu-project/qemu/-/issues/1680 Reported-by: Jean-Louis Dupond Signed-off-by: Stefan Hajnoczi Message-Id: <20230611193924.2444914-1-stefanha@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/scsi/virtio-scsi.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index 9c8ef0aaa6..45b95ea070 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -1125,7 +1125,16 @@ static void virtio_scsi_drained_begin(SCSIBus *bus) uint32_t total_queues =3D VIRTIO_SCSI_VQ_NUM_FIXED + s->parent_obj.conf.num_queues; =20 - if (!s->dataplane_started) { + /* + * Drain is called when stopping dataplane but the host notifier has + * already been detached. Detaching multiple times is a no-op if nothi= ng + * else is using the monitoring same file descriptor, but avoid it jus= t in + * case. + * + * Also, don't detach if dataplane has not even been started yet becau= se + * the host notifier isn't attached. + */ + if (s->dataplane_stopping || !s->dataplane_started) { return; } =20 @@ -1143,7 +1152,14 @@ static void virtio_scsi_drained_end(SCSIBus *bus) uint32_t total_queues =3D VIRTIO_SCSI_VQ_NUM_FIXED + s->parent_obj.conf.num_queues; =20 - if (!s->dataplane_started) { + /* + * Drain is called when stopping dataplane. Keep the host notifier det= ached + * so it's not left dangling after dataplane is stopped. + * + * Also, don't attach if dataplane has not even been started yet. We'r= e not + * ready. + */ + if (s->dataplane_stopping || !s->dataplane_started) { return; } =20 --=20 MST From nobody Sat May 18 18:13:07 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=1687783396; cv=none; d=zohomail.com; s=zohoarc; b=CkG8OnsGXGb2Cl2F4C7IYXPtyPQzqm+y/ZskM35EKpBTA9Np52BDa9bj8hjx+GvwJNV0nq/rqq1iRt25e/x4waWD7URpLTuzzFbfgOIJOUDv0BaUkGd9KTrUieG6+pf9+YOXFZ02ZYJDmPLA726NjoGCSxLNSheP8/KwZ7GUFJI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783396; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NvcHKGZtRsCg9xVfQMjrL0yyTleYbIs/ROTH+Yj3riA=; b=i7PaU1UIcAB3z5bzrlNn1we8dhDoLbVES4SVkT+3ZFQwCXhosKcMNk7e8ZAaK7qprJwTDBCX90FhgfiZMNLAvyyyUpUa3HbkedjvGmxw6uxtzTWWrp7ujZ9OqfNF8CS31etuLTFFxWraWRUFRFNwG33V+68of+pBGo8jwDVMHqE= 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 1687783396301583.2470637648012; Mon, 26 Jun 2023 05:43:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlNP-0006H6-Tl; Mon, 26 Jun 2023 08:31:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlMO-0005BB-Kb for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:24 -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 1qDlML-0003YL-Dv for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:24 -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-231-YGqIxmCyOdiELs0A5NoJlw-1; Mon, 26 Jun 2023 08:30:18 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-3112e243c68so2468344f8f.0 for ; Mon, 26 Jun 2023 05:30:18 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id b3-20020adfe303000000b0030fd03e3d25sm7294493wrj.75.2023.06.26.05.30.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:30:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782620; 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=NvcHKGZtRsCg9xVfQMjrL0yyTleYbIs/ROTH+Yj3riA=; b=Up6CRTnYGUERWJQIiH6IjKMAZVp4+7dryCRgITHfoMn8azVSIDHKeJ/M/baBygJ+H71GT6 lRw5N3oBPD9aDvUjnZHR7XoMtHoQC8oYuAv5ybPJCoDArfygzTIZIsdKnGIGIg80EJNEDc NXBBXUj4hWs8cel4wy79eeTArt150AU= X-MC-Unique: YGqIxmCyOdiELs0A5NoJlw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782615; x=1690374615; 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=NvcHKGZtRsCg9xVfQMjrL0yyTleYbIs/ROTH+Yj3riA=; b=DkoF1RIqoQge8PJBYTNQuS7bhbXlbyQGWo/0X3MI8L4sW8fwoMJbkEC2+UKfD1TfZt 8oF8rYZDIdykDN1+/1XIwCwnRHVaKVk0t3mas8dn4ajL14Ls1qPXoAuHB6UQfRRw3/gS 1vi0y+KRNEuT7vU4EgNDvXU0JLXFsdPlADLPXWXrDZQpUhytEyaZ5RfV9R54xcEGqGcG IyiASY38JS9ug/lMW9ONJXGJKBjVO9c3mKP2hZh1eB2sgIj7er+kfTTNvWNW+Ayf24wI Bt3eFOBG1/ei+Lt3t6xSTnRreggS6VIVCPUo1e4TeVmx1ja0jzPcz61EHFb82EuMNAQM kDrw== X-Gm-Message-State: AC+VfDyFEqHgy5dViyMRYu63O712ZB9k0pFtl9O/I+/cXNbOpXduK8fh VnDtjzRYdEUEMOinXyx6RjEYHYAVblTIEtJcdbUxkA63nmCEgJpRcxbsI781tMuW/tbK89b0m4M YqPuHOK/1gjFLTqgnGNZOcTqsHBXPckbaMh0keA3EXEXFx9Vez9QrGy6qvVpTkQAhw/RQ X-Received: by 2002:a5d:5608:0:b0:30e:3f55:ebc9 with SMTP id l8-20020a5d5608000000b0030e3f55ebc9mr25116319wrv.13.1687782614674; Mon, 26 Jun 2023 05:30:14 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4QfoE8ZVgPS6/o0T4A0wYpdUi3RMy7YijyWQkIMbiAwCn7v227c4l6PuuSLbof5UpzKuY77w== X-Received: by 2002:a5d:5608:0:b0:30e:3f55:ebc9 with SMTP id l8-20020a5d5608000000b0030e3f55ebc9mr25116286wrv.13.1687782614101; Mon, 26 Jun 2023 05:30:14 -0700 (PDT) Date: Mon, 26 Jun 2023 08:30:11 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Manos Pitsidianakis , =?utf-8?Q?Marc-Andr=C3=A9?= Lureau , Coiby Xu , Kevin Wolf , Hanna Reitz , Raphael Norwitz , Gerd Hoffmann , Jason Wang , qemu-block@nongnu.org Subject: [PULL 48/53] vhost-user: fully use new backend/frontend naming Message-ID: <94c16765eb27bddb47640b03d1eaa80074ecb707.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1687783398536100003 From: Manos Pitsidianakis Slave/master nomenclature was replaced with backend/frontend in commit 1fc19b65279a ("vhost-user: Adopt new backend naming") This patch replaces all remaining uses of master and slave in the codebase. Signed-off-by: Emmanouil Pitsidianakis Message-Id: <20230613080849.2115347-1-manos.pitsidianakis@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Marc-Andr=C3=A9 Lureau --- include/hw/virtio/vhost-backend.h | 2 +- subprojects/libvhost-user/libvhost-user.h | 20 +++++---- block/export/vhost-user-blk-server.c | 2 +- contrib/vhost-user-blk/vhost-user-blk.c | 2 +- hw/block/vhost-user-blk.c | 2 +- hw/display/vhost-user-gpu.c | 2 +- hw/input/vhost-user-input.c | 2 +- hw/net/virtio-net.c | 4 +- hw/virtio/vdpa-dev.c | 2 +- hw/virtio/vhost-user.c | 52 +++++++++++----------- hw/virtio/virtio-qmp.c | 2 +- subprojects/libvhost-user/libvhost-user.c | 54 +++++++++++------------ 12 files changed, 74 insertions(+), 72 deletions(-) diff --git a/include/hw/virtio/vhost-backend.h b/include/hw/virtio/vhost-ba= ckend.h index ec3fbae58d..31a251a9f5 100644 --- a/include/hw/virtio/vhost-backend.h +++ b/include/hw/virtio/vhost-backend.h @@ -22,7 +22,7 @@ typedef enum VhostBackendType { } VhostBackendType; =20 typedef enum VhostSetConfigType { - VHOST_SET_CONFIG_TYPE_MASTER =3D 0, + VHOST_SET_CONFIG_TYPE_FRONTEND =3D 0, VHOST_SET_CONFIG_TYPE_MIGRATION =3D 1, } VhostSetConfigType; =20 diff --git a/subprojects/libvhost-user/libvhost-user.h b/subprojects/libvho= st-user/libvhost-user.h index 49208cceaa..708370c5f5 100644 --- a/subprojects/libvhost-user/libvhost-user.h +++ b/subprojects/libvhost-user/libvhost-user.h @@ -39,7 +39,7 @@ #define VHOST_USER_HDR_SIZE offsetof(VhostUserMsg, payload.u64) =20 typedef enum VhostSetConfigType { - VHOST_SET_CONFIG_TYPE_MASTER =3D 0, + VHOST_SET_CONFIG_TYPE_FRONTEND =3D 0, VHOST_SET_CONFIG_TYPE_MIGRATION =3D 1, } VhostSetConfigType; =20 @@ -112,7 +112,7 @@ typedef enum VhostUserRequest { VHOST_USER_MAX } VhostUserRequest; =20 -typedef enum VhostUserSlaveRequest { +typedef enum VhostUserBackendRequest { VHOST_USER_BACKEND_NONE =3D 0, VHOST_USER_BACKEND_IOTLB_MSG =3D 1, VHOST_USER_BACKEND_CONFIG_CHANGE_MSG =3D 2, @@ -120,7 +120,7 @@ typedef enum VhostUserSlaveRequest { VHOST_USER_BACKEND_VRING_CALL =3D 4, VHOST_USER_BACKEND_VRING_ERR =3D 5, VHOST_USER_BACKEND_MAX -} VhostUserSlaveRequest; +} VhostUserBackendRequest; =20 typedef struct VhostUserMemoryRegion { uint64_t guest_phys_addr; @@ -296,8 +296,10 @@ typedef struct VuVirtqInflight { * Zero value indicates a vm reset happened. */ uint16_t version; =20 - /* The size of VuDescStateSplit array. It's equal to the virtqueue - * size. Slave could get it from queue size field of VhostUserInflight= . */ + /* + * The size of VuDescStateSplit array. It's equal to the virtqueue siz= e. + * Backend could get it from queue size field of VhostUserInflight. + */ uint16_t desc_num; =20 /* The head of list that track the last batch of used descriptors. */ @@ -384,9 +386,9 @@ struct VuDev { VuVirtq *vq; VuDevInflightInfo inflight_info; int log_call_fd; - /* Must be held while using slave_fd */ - pthread_mutex_t slave_mutex; - int slave_fd; + /* Must be held while using backend_fd */ + pthread_mutex_t backend_mutex; + int backend_fd; uint64_t log_size; uint8_t *log_table; uint64_t features; @@ -445,7 +447,7 @@ typedef struct VuVirtqElement { * vu_init: * @dev: a VuDev context * @max_queues: maximum number of virtqueues - * @socket: the socket connected to vhost-user master + * @socket: the socket connected to vhost-user frontend * @panic: a panic callback * @set_watch: a set_watch callback * @remove_watch: a remove_watch callback diff --git a/block/export/vhost-user-blk-server.c b/block/export/vhost-user= -blk-server.c index 81b59761e3..f7b5073605 100644 --- a/block/export/vhost-user-blk-server.c +++ b/block/export/vhost-user-blk-server.c @@ -167,7 +167,7 @@ vu_blk_set_config(VuDev *vu_dev, const uint8_t *data, uint8_t wce; =20 /* don't support live migration */ - if (flags !=3D VHOST_SET_CONFIG_TYPE_MASTER) { + if (flags !=3D VHOST_SET_CONFIG_TYPE_FRONTEND) { return -EINVAL; } =20 diff --git a/contrib/vhost-user-blk/vhost-user-blk.c b/contrib/vhost-user-b= lk/vhost-user-blk.c index 7941694e53..89e5f11a64 100644 --- a/contrib/vhost-user-blk/vhost-user-blk.c +++ b/contrib/vhost-user-blk/vhost-user-blk.c @@ -421,7 +421,7 @@ vub_set_config(VuDev *vu_dev, const uint8_t *data, int fd; =20 /* don't support live migration */ - if (flags !=3D VHOST_SET_CONFIG_TYPE_MASTER) { + if (flags !=3D VHOST_SET_CONFIG_TYPE_FRONTEND) { return -1; } =20 diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index aff4d2b8cb..eecf3f7a81 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -81,7 +81,7 @@ static void vhost_user_blk_set_config(VirtIODevice *vdev,= const uint8_t *config) ret =3D vhost_dev_set_config(&s->dev, &blkcfg->wce, offsetof(struct virtio_blk_config, wce), sizeof(blkcfg->wce), - VHOST_SET_CONFIG_TYPE_MASTER); + VHOST_SET_CONFIG_TYPE_FRONTEND); if (ret) { error_report("set device config space failed"); return; diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c index 1386e869e5..15f9d99d09 100644 --- a/hw/display/vhost-user-gpu.c +++ b/hw/display/vhost-user-gpu.c @@ -452,7 +452,7 @@ vhost_user_gpu_set_config(VirtIODevice *vdev, =20 ret =3D vhost_dev_set_config(&g->vhost->dev, config_data, 0, sizeof(struct virtio_gpu_config), - VHOST_SET_CONFIG_TYPE_MASTER); + VHOST_SET_CONFIG_TYPE_FRONTEND); if (ret) { error_report("vhost-user-gpu: set device config space failed"); return; diff --git a/hw/input/vhost-user-input.c b/hw/input/vhost-user-input.c index 1352e372ff..4ee3542106 100644 --- a/hw/input/vhost-user-input.c +++ b/hw/input/vhost-user-input.c @@ -69,7 +69,7 @@ static void vhost_input_set_config(VirtIODevice *vdev, =20 ret =3D vhost_dev_set_config(&vhi->vhost->dev, config_data, 0, sizeof(virtio_input_config), - VHOST_SET_CONFIG_TYPE_MASTER); + VHOST_SET_CONFIG_TYPE_FRONTEND); if (ret) { error_report("vhost-user-input: set device config space failed"); return; diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 7e8897a8bc..aa421a908a 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -211,7 +211,7 @@ static void virtio_net_set_config(VirtIODevice *vdev, c= onst uint8_t *config) if (nc->peer && nc->peer->info->type =3D=3D NET_CLIENT_DRIVER_VHOST_VD= PA) { vhost_net_set_config(get_vhost_net(nc->peer), (uint8_t *)&netcfg, 0, n->config_size, - VHOST_SET_CONFIG_TYPE_MASTER); + VHOST_SET_CONFIG_TYPE_FRONTEND); } } =20 @@ -3733,7 +3733,7 @@ static void virtio_net_device_realize(DeviceState *de= v, Error **errp) struct virtio_net_config netcfg =3D {}; memcpy(&netcfg.mac, &n->nic_conf.macaddr, ETH_ALEN); vhost_net_set_config(get_vhost_net(nc->peer), - (uint8_t *)&netcfg, 0, ETH_ALEN, VHOST_SET_CONFIG_TYPE_MASTER); + (uint8_t *)&netcfg, 0, ETH_ALEN, VHOST_SET_CONFIG_TYPE_FRONTEN= D); } QTAILQ_INIT(&n->rsc_chains); n->qdev =3D dev; diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c index e08e830006..363b625243 100644 --- a/hw/virtio/vdpa-dev.c +++ b/hw/virtio/vdpa-dev.c @@ -203,7 +203,7 @@ vhost_vdpa_device_set_config(VirtIODevice *vdev, const = uint8_t *config) int ret; =20 ret =3D vhost_dev_set_config(&s->dev, s->config, 0, s->config_size, - VHOST_SET_CONFIG_TYPE_MASTER); + VHOST_SET_CONFIG_TYPE_FRONTEND); if (ret) { error_report("set device config space failed"); return; diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index 2ad75a7964..c4e0cbd702 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -124,13 +124,13 @@ typedef enum VhostUserRequest { VHOST_USER_MAX } VhostUserRequest; =20 -typedef enum VhostUserSlaveRequest { +typedef enum VhostUserBackendRequest { VHOST_USER_BACKEND_NONE =3D 0, 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_MAX -} VhostUserSlaveRequest; +} VhostUserBackendRequest; =20 typedef struct VhostUserMemoryRegion { uint64_t guest_phys_addr; @@ -245,8 +245,8 @@ struct vhost_user { struct vhost_dev *dev; /* Shared between vhost devs of the same virtio device */ VhostUserState *user; - QIOChannel *slave_ioc; - GSource *slave_src; + QIOChannel *backend_ioc; + GSource *backend_src; NotifierWithReturn postcopy_notifier; struct PostCopyFD postcopy_fd; uint64_t postcopy_client_bases[VHOST_USER_MAX_RAM_SLOTS]; @@ -1495,7 +1495,7 @@ static int vhost_user_reset_device(struct vhost_dev *= dev) return vhost_user_write(dev, &msg, NULL, 0); } =20 -static int vhost_user_slave_handle_config_change(struct vhost_dev *dev) +static int vhost_user_backend_handle_config_change(struct vhost_dev *dev) { if (!dev->config_ops || !dev->config_ops->vhost_dev_config_notifier) { return -ENOSYS; @@ -1532,7 +1532,7 @@ static VhostUserHostNotifier *fetch_or_create_notifie= r(VhostUserState *u, return n; } =20 -static int vhost_user_slave_handle_vring_host_notifier(struct vhost_dev *d= ev, +static int vhost_user_backend_handle_vring_host_notifier(struct vhost_dev = *dev, VhostUserVringArea = *area, int fd) { @@ -1594,16 +1594,16 @@ static int vhost_user_slave_handle_vring_host_notif= ier(struct vhost_dev *dev, return 0; } =20 -static void close_slave_channel(struct vhost_user *u) +static void close_backend_channel(struct vhost_user *u) { - g_source_destroy(u->slave_src); - g_source_unref(u->slave_src); - u->slave_src =3D NULL; - object_unref(OBJECT(u->slave_ioc)); - u->slave_ioc =3D NULL; + g_source_destroy(u->backend_src); + g_source_unref(u->backend_src); + u->backend_src =3D NULL; + object_unref(OBJECT(u->backend_ioc)); + u->backend_ioc =3D NULL; } =20 -static gboolean slave_read(QIOChannel *ioc, GIOCondition condition, +static gboolean backend_read(QIOChannel *ioc, GIOCondition condition, gpointer opaque) { struct vhost_dev *dev =3D opaque; @@ -1645,10 +1645,10 @@ static gboolean slave_read(QIOChannel *ioc, GIOCond= ition condition, ret =3D vhost_backend_handle_iotlb_msg(dev, &payload.iotlb); break; case VHOST_USER_BACKEND_CONFIG_CHANGE_MSG: - ret =3D vhost_user_slave_handle_config_change(dev); + ret =3D vhost_user_backend_handle_config_change(dev); break; case VHOST_USER_BACKEND_VRING_HOST_NOTIFIER_MSG: - ret =3D vhost_user_slave_handle_vring_host_notifier(dev, &payload.= area, + ret =3D vhost_user_backend_handle_vring_host_notifier(dev, &payloa= d.area, fd ? fd[0] : -1); break; default: @@ -1684,7 +1684,7 @@ static gboolean slave_read(QIOChannel *ioc, GIOCondit= ion condition, goto fdcleanup; =20 err: - close_slave_channel(u); + close_backend_channel(u); rc =3D G_SOURCE_REMOVE; =20 fdcleanup: @@ -1696,7 +1696,7 @@ fdcleanup: return rc; } =20 -static int vhost_setup_slave_channel(struct vhost_dev *dev) +static int vhost_setup_backend_channel(struct vhost_dev *dev) { VhostUserMsg msg =3D { .hdr.request =3D VHOST_USER_SET_BACKEND_REQ_FD, @@ -1725,10 +1725,10 @@ static int vhost_setup_slave_channel(struct vhost_d= ev *dev) error_report_err(local_err); return -ECONNREFUSED; } - u->slave_ioc =3D ioc; - u->slave_src =3D qio_channel_add_watch_source(u->slave_ioc, + u->backend_ioc =3D ioc; + u->backend_src =3D qio_channel_add_watch_source(u->backend_ioc, G_IO_IN | G_IO_HUP, - slave_read, dev, NULL, NUL= L); + backend_read, dev, NULL, N= ULL); =20 if (reply_supported) { msg.hdr.flags |=3D VHOST_USER_NEED_REPLY_MASK; @@ -1746,7 +1746,7 @@ static int vhost_setup_slave_channel(struct vhost_dev= *dev) out: close(sv[1]); if (ret) { - close_slave_channel(u); + close_backend_channel(u); } =20 return ret; @@ -2072,7 +2072,7 @@ static int vhost_user_backend_init(struct vhost_dev *= dev, void *opaque, virtio_has_feature(dev->protocol_features, VHOST_USER_PROTOCOL_F_REPLY_ACK))) { error_setg(errp, "IOMMU support requires reply-ack and " - "slave-req protocol features."); + "backend-req protocol features."); return -EINVAL; } =20 @@ -2108,7 +2108,7 @@ static int vhost_user_backend_init(struct vhost_dev *= dev, void *opaque, } =20 if (dev->vq_index =3D=3D 0) { - err =3D vhost_setup_slave_channel(dev); + err =3D vhost_setup_backend_channel(dev); if (err < 0) { error_setg_errno(errp, EPROTO, "vhost_backend_init failed"); return -EPROTO; @@ -2138,8 +2138,8 @@ static int vhost_user_backend_cleanup(struct vhost_de= v *dev) close(u->postcopy_fd.fd); u->postcopy_fd.handler =3D NULL; } - if (u->slave_ioc) { - close_slave_channel(u); + if (u->backend_ioc) { + close_backend_channel(u); } g_free(u->region_rb); u->region_rb =3D NULL; @@ -2235,7 +2235,7 @@ static int vhost_user_net_set_mtu(struct vhost_dev *d= ev, uint16_t mtu) return ret; } =20 - /* If reply_ack supported, slave has to ack specified MTU is valid */ + /* If reply_ack supported, backend has to ack specified MTU is valid */ if (reply_supported) { return process_message_reply(dev, &msg); } diff --git a/hw/virtio/virtio-qmp.c b/hw/virtio/virtio-qmp.c index 3528fc628d..3d32dbec8d 100644 --- a/hw/virtio/virtio-qmp.c +++ b/hw/virtio/virtio-qmp.c @@ -117,7 +117,7 @@ static const qmp_virtio_feature_map_t vhost_user_protoc= ol_map[] =3D { "VHOST_USER_PROTOCOL_F_CONFIG: Vhost-user messaging for virtio= " "device configuration space supported"), FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_BACKEND_SEND_FD, \ - "VHOST_USER_PROTOCOL_F_BACKEND_SEND_FD: Slave fd communication= " + "VHOST_USER_PROTOCOL_F_BACKEND_SEND_FD: Backend fd communicati= on " "channel supported"), FEATURE_ENTRY(VHOST_USER_PROTOCOL_F_HOST_NOTIFIER, \ "VHOST_USER_PROTOCOL_F_HOST_NOTIFIER: Host notifiers for speci= fied " diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvho= st-user/libvhost-user.c index 8fb61e2df2..0469a50101 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -421,8 +421,8 @@ vu_send_reply(VuDev *dev, int conn_fd, VhostUserMsg *vm= sg) } =20 /* - * Processes a reply on the slave channel. - * Entered with slave_mutex held and releases it before exit. + * Processes a reply on the backend channel. + * Entered with backend_mutex held and releases it before exit. * Returns true on success. */ static bool @@ -436,7 +436,7 @@ vu_process_message_reply(VuDev *dev, const VhostUserMsg= *vmsg) goto out; } =20 - if (!vu_message_read_default(dev, dev->slave_fd, &msg_reply)) { + if (!vu_message_read_default(dev, dev->backend_fd, &msg_reply)) { goto out; } =20 @@ -449,7 +449,7 @@ vu_process_message_reply(VuDev *dev, const VhostUserMsg= *vmsg) result =3D msg_reply.payload.u64 =3D=3D 0; =20 out: - pthread_mutex_unlock(&dev->slave_mutex); + pthread_mutex_unlock(&dev->backend_mutex); return result; } =20 @@ -1393,13 +1393,13 @@ bool vu_set_queue_host_notifier(VuDev *dev, VuVirtq= *vq, int fd, return false; } =20 - pthread_mutex_lock(&dev->slave_mutex); - if (!vu_message_write(dev, dev->slave_fd, &vmsg)) { - pthread_mutex_unlock(&dev->slave_mutex); + pthread_mutex_lock(&dev->backend_mutex); + if (!vu_message_write(dev, dev->backend_fd, &vmsg)) { + pthread_mutex_unlock(&dev->backend_mutex); return false; } =20 - /* Also unlocks the slave_mutex */ + /* Also unlocks the backend_mutex */ return vu_process_message_reply(dev, &vmsg); } =20 @@ -1463,7 +1463,7 @@ vu_get_protocol_features_exec(VuDev *dev, VhostUserMs= g *vmsg) * a device implementation can return it in its callback * (get_protocol_features) if it wants to use this for * simulation, but it is otherwise not desirable (if even - * implemented by the master.) + * implemented by the frontend.) */ uint64_t features =3D 1ULL << VHOST_USER_PROTOCOL_F_MQ | 1ULL << VHOST_USER_PROTOCOL_F_LOG_SHMFD | @@ -1508,7 +1508,7 @@ vu_set_protocol_features_exec(VuDev *dev, VhostUserMs= g *vmsg) * of the other features are required. * Theoretically, one could use only kick messages, or do them wit= hout * having F_REPLY_ACK, but too many (possibly pending) messages on= the - * socket will eventually cause the master to hang, to avoid this = in + * socket will eventually cause the frontend to hang, to avoid thi= s in * scenarios where not desired enforce that the settings are in a = way * that actually enables the simulation case. */ @@ -1550,18 +1550,18 @@ vu_set_vring_enable_exec(VuDev *dev, VhostUserMsg *= vmsg) } =20 static bool -vu_set_slave_req_fd(VuDev *dev, VhostUserMsg *vmsg) +vu_set_backend_req_fd(VuDev *dev, VhostUserMsg *vmsg) { if (vmsg->fd_num !=3D 1) { - vu_panic(dev, "Invalid slave_req_fd message (%d fd's)", vmsg->fd_n= um); + vu_panic(dev, "Invalid backend_req_fd message (%d fd's)", vmsg->fd= _num); return false; } =20 - if (dev->slave_fd !=3D -1) { - close(dev->slave_fd); + if (dev->backend_fd !=3D -1) { + close(dev->backend_fd); } - dev->slave_fd =3D vmsg->fds[0]; - DPRINT("Got slave_fd: %d\n", vmsg->fds[0]); + dev->backend_fd =3D vmsg->fds[0]; + DPRINT("Got backend_fd: %d\n", vmsg->fds[0]); =20 return false; } @@ -1577,7 +1577,7 @@ vu_get_config(VuDev *dev, VhostUserMsg *vmsg) } =20 if (ret) { - /* resize to zero to indicate an error to master */ + /* resize to zero to indicate an error to frontend */ vmsg->size =3D 0; } =20 @@ -1917,7 +1917,7 @@ vu_process_message(VuDev *dev, VhostUserMsg *vmsg) case VHOST_USER_SET_VRING_ENABLE: return vu_set_vring_enable_exec(dev, vmsg); case VHOST_USER_SET_BACKEND_REQ_FD: - return vu_set_slave_req_fd(dev, vmsg); + return vu_set_backend_req_fd(dev, vmsg); case VHOST_USER_GET_CONFIG: return vu_get_config(dev, vmsg); case VHOST_USER_SET_CONFIG: @@ -2038,11 +2038,11 @@ vu_deinit(VuDev *dev) } =20 vu_close_log(dev); - if (dev->slave_fd !=3D -1) { - close(dev->slave_fd); - dev->slave_fd =3D -1; + if (dev->backend_fd !=3D -1) { + close(dev->backend_fd); + dev->backend_fd =3D -1; } - pthread_mutex_destroy(&dev->slave_mutex); + pthread_mutex_destroy(&dev->backend_mutex); =20 if (dev->sock !=3D -1) { close(dev->sock); @@ -2080,8 +2080,8 @@ vu_init(VuDev *dev, dev->remove_watch =3D remove_watch; dev->iface =3D iface; dev->log_call_fd =3D -1; - pthread_mutex_init(&dev->slave_mutex, NULL); - dev->slave_fd =3D -1; + pthread_mutex_init(&dev->backend_mutex, NULL); + dev->backend_fd =3D -1; dev->max_queues =3D max_queues; =20 dev->vq =3D malloc(max_queues * sizeof(dev->vq[0])); @@ -2439,9 +2439,9 @@ static void _vu_queue_notify(VuDev *dev, VuVirtq *vq,= bool sync) vmsg.flags |=3D VHOST_USER_NEED_REPLY_MASK; } =20 - vu_message_write(dev, dev->slave_fd, &vmsg); + vu_message_write(dev, dev->backend_fd, &vmsg); if (ack) { - vu_message_read_default(dev, dev->slave_fd, &vmsg); + vu_message_read_default(dev, dev->backend_fd, &vmsg); } return; } @@ -2468,7 +2468,7 @@ void vu_config_change_msg(VuDev *dev) .flags =3D VHOST_USER_VERSION, }; =20 - vu_message_write(dev, dev->slave_fd, &vmsg); + vu_message_write(dev, dev->backend_fd, &vmsg); } =20 static inline void --=20 MST From nobody Sat May 18 18:13:07 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=1687783390; cv=none; d=zohomail.com; s=zohoarc; b=jgM8WJEPkG+6PRtxodIImj7ROObsnD/UL1eZkuDy7pNtb1uNvK6u9DwsEbrKYezxfpUxqTwdDm+L1RFhrlMetTXa4cFseOFEkTrLVtCIA/qD8lPhIGWcbhG+CP1hCJmtLrlYMdPYFTgfw3pP1JYrTUa50vqgU553+WfMjwg8ptw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783390; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+soq26ZepC8faaYCkqmuSnarz0mIzjpYMkOIqTdrGHs=; b=YIxsO+4dEywvBMDwG4pkSCZ8T/dMEORpiI/vp8iVLC0NAh0Oh9E79j4s8pCA6iCxWNDiBg5+0SAdEM4ZprFZSzcQlmlVUiiqexRzIkxgEkCYMwEfmOV/wpCL3PCla+s/w3cAbu9mSRIKpkFZJVWy0G+gVYMhiu+dySG85EEz3fY= 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 168778339033289.20260875725273; Mon, 26 Jun 2023 05: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 1qDlNY-0006Qy-1H; Mon, 26 Jun 2023 08:31: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 1qDlMO-0005CN-OB for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30: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 1qDlML-0003Yb-S5 for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:24 -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-194-u9HwtRNAMVy9wwCi3LYC1w-1; Mon, 26 Jun 2023 08:30:19 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-3112808cd0cso2052279f8f.0 for ; Mon, 26 Jun 2023 05:30:19 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id s8-20020adff808000000b00313e23edbd5sm6840751wrp.102.2023.06.26.05.30.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:30:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782620; 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=+soq26ZepC8faaYCkqmuSnarz0mIzjpYMkOIqTdrGHs=; b=MLWPQQupHnpgofXPRcYMZfkELirAh76M4+dQ3Y8CNEPhnQMmdzzbkEHFW/nIQs8Px8pCQG ddY9wJFu6NERlSM/teQrdbmDGGxM4pv9/LlbAFYGxL2Xni5Ls2mE5/FFIJOMZ4kwwCBglG Io1mfBJ7YUgYdwFfmEMxANa/B4Jur1o= X-MC-Unique: u9HwtRNAMVy9wwCi3LYC1w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782618; x=1690374618; 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=+soq26ZepC8faaYCkqmuSnarz0mIzjpYMkOIqTdrGHs=; b=MffPbTVIacVx4uynFwWSsOmT7gbDbU/TDcObYXJiYuOWvCj1fI/JrIRkSA2D1w/EMP u7UgfB7Ti2OJ+L+++RnjmdEGY4zkwqGtakpzpYkEDjI/Ko/A/Wgo9hVzzYVs3vxdy/X7 w1sjhpFlbe855TnXVVBvmsP+OFZ/P/KTzk92ASVzgkwDRh0nLL6IZLQgGy1bkjejvhwt VLo2pXsuOx1h4dapqZmZkNwI2ZrTz7pV+zoOwUcEpF3L0FwKL8I/pFu5kdmwqqesPrF1 3QYsuncoldrvlgXpBDZeU/ulL1xrpg36dlcEqfL6oUiWpuFLGnsisoqYudh8I4n/U6XQ HZYQ== X-Gm-Message-State: AC+VfDyoV9fS6PFd7zSGb3p19B9i/3FVoRPftX914GwzG2M/h04MvfpN wXHHu2VN1dKzlXG8PSk96OqcbeQ6zOSBkYo61i/u7k/GH18UcmoHkfx77dKf1jbxFEEzwhVhqvm 7CrrpKP8aZ85qX88NDy0moWGlYcJrv6fzKKFF7iXf9u6lQwgNH5ln9cDUjq024hUocZMi X-Received: by 2002:adf:e74f:0:b0:313:f7a1:3d8d with SMTP id c15-20020adfe74f000000b00313f7a13d8dmr455873wrn.63.1687782618092; Mon, 26 Jun 2023 05:30:18 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6zSsOySa/hgu19pzZuqG+orkFzEXYHtK7AewnxoMA2dBMyNU3vUNii4lWoH1KPhmWezESXEA== X-Received: by 2002:adf:e74f:0:b0:313:f7a1:3d8d with SMTP id c15-20020adfe74f000000b00313f7a13d8dmr455843wrn.63.1687782617631; Mon, 26 Jun 2023 05:30:17 -0700 (PDT) Date: Mon, 26 Jun 2023 08:30:14 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Zhenzhong Duan , Peter Xu , Jason Wang , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 49/53] intel_iommu: Fix a potential issue in VFIO dirty page sync 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783392567100002 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhenzhong Duan Peter Xu found a potential issue: "The other thing is when I am looking at the new code I found that we actually extended the replay() to be used also in dirty tracking of vfio, in vfio_sync_dirty_bitmap(). For that maybe it's already broken if unmap_all() because afaiu log_sync() can be called in migration thread anytime during DMA so I think it means the device is prone to DMA with the IOMMU pgtable quickly erased and rebuilt here, which means the DMA could fail unexpectedly. Copy Alex, Kirti and Neo." Fix it by replacing the unmap_all() to only evacuate the iova tree (keeping all host mappings untouched, IOW, don't notify UNMAP), and do a full resync in page walk which will notify all existing mappings as MAP. This way we don't interrupt with any existing mapping if there is (e.g. for the dirty sync case), meanwhile we keep sync too to latest (for moving a vfio device into an existing iommu group). Suggested-by: Peter Xu Signed-off-by: Zhenzhong Duan Reviewed-by: Peter Xu Message-Id: <20230615032626.314476-2-zhenzhong.duan@intel.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/intel_iommu.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 94d52f4205..34af12f392 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -3825,13 +3825,10 @@ static void vtd_iommu_replay(IOMMUMemoryRegion *iom= mu_mr, IOMMUNotifier *n) IntelIOMMUState *s =3D vtd_as->iommu_state; uint8_t bus_n =3D pci_bus_num(vtd_as->bus); VTDContextEntry ce; + DMAMap map =3D { .iova =3D 0, .size =3D HWADDR_MAX }; =20 - /* - * The replay can be triggered by either a invalidation or a newly - * created entry. No matter what, we release existing mappings - * (it means flushing caches for UNMAP-only registers). - */ - vtd_address_space_unmap(vtd_as, n); + /* replay is protected by BQL, page walk will re-setup it safely */ + iova_tree_remove(vtd_as->iova_tree, map); =20 if (vtd_dev_to_context_entry(s, bus_n, vtd_as->devfn, &ce) =3D=3D 0) { trace_vtd_replay_ce_valid(s->root_scalable ? "scalable mode" : --=20 MST From nobody Sat May 18 18:13:07 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=1687783267; cv=none; d=zohomail.com; s=zohoarc; b=XlCmjDXGZG4NEifVHNzkGvT5rZgc6hz/AZqgRTmDHXx589q+jsQtHCqoWCfEjAf8ZdZPKD05HOTm8ntVo/Nrhd31Ig37DFsyWN4B41/gFyNJk18z9OnMSAn1PUbBLePvV3StBoeBoLEjkpXFBnJ9bg9HjDFsFS2T917d4mhZrDc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783267; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MJ9botFGkaoWh8PWyeQFOSjPZov2yyt/c15HeORAvds=; b=Yk2ITB2B2nYgoFUGDpBeH/+dH/qdTIdMXqzgdELubIt2sxxKYhZLsyOporlzvDweg21OczvaSK4lUKnjdj+s8FKQfboMpNLqzHopZuTKOQfJrJhPc3SIFVGFnor72yVRy/sZOK2UZow9Ep7gVVdhzHoU/X3smzHiF+B7tgup6z0= 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 1687783267696591.1182555509289; Mon, 26 Jun 2023 05:41:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlO2-0007fe-Ne; Mon, 26 Jun 2023 08:32:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlMQ-0005Q7-MM for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:26 -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 1qDlMO-0003Zm-Tf for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:26 -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-360-Vi8nS49hN3aND3Xma93hGA-1; Mon, 26 Jun 2023 08:30:22 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-3f9bd5c7fdfso18612115e9.1 for ; Mon, 26 Jun 2023 05:30:22 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id z24-20020a05600c221800b003fa96fe2bd9sm2651949wml.22.2023.06.26.05.30.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:30:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782624; 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=MJ9botFGkaoWh8PWyeQFOSjPZov2yyt/c15HeORAvds=; b=Kwve6T+S1R6WzEHsdLpleiZrokJVVAXLWfFcPuU1PDLvDTTy1+jBG2MUSWUrj2mZU9xYq0 FU6CBV/Zk+066JWKgIIdxle9+jf/n80U0Uqe7Rdyjz66u04BMB1YFaaTJI6GA/JN8QxX+G 0X6a4JZHCJ+FdbDRRzBsdFQ+8PUFMMg= X-MC-Unique: Vi8nS49hN3aND3Xma93hGA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782621; x=1690374621; 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=MJ9botFGkaoWh8PWyeQFOSjPZov2yyt/c15HeORAvds=; b=GyHSBJDHUqpH3BxFbKoYIZbV9MdZcyP8FMWeNuP/ec3bV+XPGZMYmU7MvQt48k+l4D NYDPxqdneklBUpsAb1K9kgdciov7Dod2741NFzFdNvzbfJ2Wr/pdjRQequlb8BGxQ+js 7T1K58dFnEQPHPj4cVbXPg8SALn/nklIC2F9R6zVasuFp/TM8KNhGnBvFfZpeXPcAel0 4YgqtQiCiJGf80j+0OapltDpy/oUkkJunv7bhyFyP8cAU3rTsQioXJzw7H0BmdGGd6K0 rquHsPn+JoyMSB9ZYrBqOhVl5GG/GTLfEetS1a6E3ng9GQ3Oq8IyLuwOqhfHWMglbI0o kg3w== X-Gm-Message-State: AC+VfDwjZKrcAKVophRFCvKLwBdni9fKcQlT0OLz4hpbKIpfZc2ZTAM/ ZLSwTNXMynoba7KWiYxg6oQgzWKT/L8xRyuYC2XytqDK7NpIgQB59tkxOk93XaP1/8E+BRbLdQT nngfOe8dZ+wj3Coy4jfKD/EQMa/4YRls4tOavZvBmJRpb/SqIf5hZqsfemkFOwwz6cunL X-Received: by 2002:a1c:f603:0:b0:3f8:f80e:7b45 with SMTP id w3-20020a1cf603000000b003f8f80e7b45mr22022474wmc.7.1687782621097; Mon, 26 Jun 2023 05:30:21 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5Ih30cCXNPPKlyYgSpGkv31POYM5uIHSsSNrKGP28p6SmlJkRLS+XRCypx/4oLiDIYhQl2CQ== X-Received: by 2002:a1c:f603:0:b0:3f8:f80e:7b45 with SMTP id w3-20020a1cf603000000b003f8f80e7b45mr22022447wmc.7.1687782620756; Mon, 26 Jun 2023 05:30:20 -0700 (PDT) Date: Mon, 26 Jun 2023 08:30:17 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Zhenzhong Duan , Peter Xu , Jason Wang , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum Subject: [PULL 50/53] intel_iommu: Fix flag check in replay 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783269423100009 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhenzhong Duan Replay doesn't notify registered notifiers but the one passed to it. So it's meaningless to check the registered notifier's synthetic flag. There is no issue currently as all replay use cases have MAP flag set, but let's be robust. Signed-off-by: Zhenzhong Duan Reviewed-by: Peter Xu Message-Id: <20230615032626.314476-3-zhenzhong.duan@intel.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/intel_iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 34af12f392..f046f85913 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -3837,7 +3837,7 @@ static void vtd_iommu_replay(IOMMUMemoryRegion *iommu= _mr, IOMMUNotifier *n) PCI_FUNC(vtd_as->devfn), vtd_get_domain_id(s, &ce, vtd_as->pasid), ce.hi, ce.lo); - if (vtd_as_has_map_notifier(vtd_as)) { + if (n->notifier_flags & IOMMU_NOTIFIER_MAP) { /* This is required only for MAP typed notifiers */ vtd_page_walk_info info =3D { .hook_fn =3D vtd_replay_hook, --=20 MST From nobody Sat May 18 18:13:07 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=1687783279; cv=none; d=zohomail.com; s=zohoarc; b=WCi6jl0XcHCBEQJiUieqvu1MkUTwHwl/eGXyeGr2eYHOtNZ5BicKFikCQJx1XnEQNfAWTdDMwLk5QDH6pbvMxsjBI045g+OWSz7KUFKZ05UaTEI/lGeHKdDq8GfzPBHirbr+kB9QjrBQs0oOU6uATyhh+OR7/Vp8mkHArHbgqFg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783279; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Y/mhZ4QWgJNUg3jo6CnB3dDNtW+V95gDB4rMrHURtvQ=; b=ly1EtcXMOW58Sk3IRY86i6FG0WwHhyqozUIudbnvbMvfb74EGQiWpoQjc/H5Ou+LoLRwvhzImdiaII8kefQ8mywpVbML1ustL/FOv6AfPVggNX5V9Fo/uZI7bONUZeSvVE3FwjskgzQbAn4aYLbTom5Z3e8lpOt/R6r15qVHmXI= 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 1687783279756655.397754016689; Mon, 26 Jun 2023 05:41:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlO2-0007fC-H1; Mon, 26 Jun 2023 08:32:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qDlMT-0005iA-Cn for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30: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 1qDlMR-0003aG-Bw for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:28 -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-474-R4e_EnHsOrGjaCmaOi417g-1; Mon, 26 Jun 2023 08:30:25 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-3128319d532so2450596f8f.2 for ; Mon, 26 Jun 2023 05:30:25 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id u14-20020adfdb8e000000b003112ab916cdsm7357579wri.73.2023.06.26.05.30.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:30:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782626; 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=Y/mhZ4QWgJNUg3jo6CnB3dDNtW+V95gDB4rMrHURtvQ=; b=PWA2nQHqAO0QEIPLm20seSTmZlzfipmZWHHh0WIkoMlkeF04K7isBEFoojS3GsZeXY61c8 aG1eU2U8N5obBeTYU3seb83gbtNu5Yzrk9grIE/XyBEM8MjTeHXjF3amT8j5opluMxgIQE cWJXIssIx3BmnpMZIpHbAQOJ5BR928w= X-MC-Unique: R4e_EnHsOrGjaCmaOi417g-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782624; x=1690374624; 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=Y/mhZ4QWgJNUg3jo6CnB3dDNtW+V95gDB4rMrHURtvQ=; b=D7tYjBX6W7AMBgMwk4ntjakZC7Um1QMS+z3uVwpiitGQJE5mBdwvOUR4EfOZDo8MBw ZCeG9oTOdBKtgZ8OGP+J1N7DI3lq8Tt87N+yEeZACHOsvgRiyn4OFfnbmcL/WsVvzUcp Aor8A5jHwxd3dY3YOx2VPqYQaQnS3216rJzAi/nutmPP9j9Ky8Gpnt5jgZjWRAeVIFN4 wL8sTt6mROIpd2ZUdUDXjMgqmPCv7+1hSc0kh/5GoxIdhsTuqI+aiiZozoCGR35tPXi1 pwMnuoTeCzR3mPkKzC3BMJxzpeNvImU6uTElZg1cmEMl/Hpd/GGNlViT7U7gPPhVNusJ VZ+g== X-Gm-Message-State: AC+VfDy9lesbFiohoZXjvzYVb/CBPeIxlQBGpqgLjg0x4s1eQmmdwVm0 9yXTqSj18ANzXkJT6vh2kk4sAdkQ8krfMBk4RSMPhkaziUL/kbG7ozFUyV3Fzo7fOQ1tk763L6n +9zrtq1IvpQb/9bNhSZdSpTQOV49gyo07+zWzKFeNKG8/C2xJKBF1nCqaEhviea/PHaWS X-Received: by 2002:a05:6000:42:b0:313:e2c4:7bd1 with SMTP id k2-20020a056000004200b00313e2c47bd1mr5649805wrx.42.1687782623974; Mon, 26 Jun 2023 05:30:23 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7TV1EBgns2sFka4Z9o4Hklnhp5jXOiTWmJori+94UHuWt1NGhCKQNiCQ7dz3MQqqZ7zRit2g== X-Received: by 2002:a05:6000:42:b0:313:e2c4:7bd1 with SMTP id k2-20020a056000004200b00313e2c47bd1mr5649787wrx.42.1687782623652; Mon, 26 Jun 2023 05:30:23 -0700 (PDT) Date: Mon, 26 Jun 2023 08:30:20 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Zhenzhong Duan , Peter Xu , Jason Wang , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson , Eduardo Habkost Subject: [PULL 51/53] intel_iommu: Fix address space unmap Message-ID: <0dd5bcd98d5a89f833c7d06b28ad92965874bc72.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783281469100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhenzhong Duan During address space unmap, corresponding IOVA tree entries are also removed. But DMAMap is set beyond notifier's scope by 1, so in theory there is possibility to remove a continuous entry above the notifier's scope but falling in adjacent notifier's scope. There is no issue currently as no use cases allocate notifiers continuously, but let's be robust. Signed-off-by: Zhenzhong Duan Reviewed-by: Peter Xu Message-Id: <20230615032626.314476-4-zhenzhong.duan@intel.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/intel_iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index f046f85913..dcc334060c 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -3791,7 +3791,7 @@ static void vtd_address_space_unmap(VTDAddressSpace *= as, IOMMUNotifier *n) n->start, size); =20 map.iova =3D n->start; - map.size =3D size; + map.size =3D size - 1; /* Inclusive */ iova_tree_remove(as->iova_tree, map); } =20 --=20 MST From nobody Sat May 18 18:13:07 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=1687782802; cv=none; d=zohomail.com; s=zohoarc; b=Gn/Qh6DWVlsuccb/2SPL7FWVbA9jIEuMkqv+i8/WIC2/1xCcUzA7kO2naeRB7hbnJvJF4mLf5iAQiUCJDRGF0TWSVNIaa4L8qecE1QVyOkQL/en+gb4XeiAnB9ipY/rkvhq5hpA1BOJL+Dwpk+SLesXOLdr1nYpYIWXr3s30c4E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687782802; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=am5myhsqD+fEwFvcZjXyQzYIV9qRjvKXNDjfcB6tC8s=; b=hT9y76eP+w8N1eOYm9BwNjH1bNh8o2OL85kzcSNeRTVLKvZVhBevcY34y1m5Jkyb0tBT1yBZzn4p81Y7gYmfQ5p/fmbqW39JqT7/Gcuzxt2EWV9EwQINsEE/Yaxa//dtw3HmHFReB/Ii2VYz15CkePVcGiNNoNy+e/D055fe6pQ= 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 16877828024401012.7823884831096; Mon, 26 Jun 2023 05:33:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlP1-0000Mc-OU; Mon, 26 Jun 2023 08:33: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 1qDlN5-00063z-3a for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:31: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 1qDlMj-0003iZ-SZ for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:47 -0400 Received: from mail-lj1-f197.google.com (mail-lj1-f197.google.com [209.85.208.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-38-8gHaMsGkO2-kvvryVi0INw-1; Mon, 26 Jun 2023 08:30:43 -0400 Received: by mail-lj1-f197.google.com with SMTP id 38308e7fff4ca-2b479d12b31so23025071fa.3 for ; Mon, 26 Jun 2023 05:30:43 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id g17-20020a7bc4d1000000b003f9b1131a90sm7615633wmk.23.2023.06.26.05.30.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:30:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782645; 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=am5myhsqD+fEwFvcZjXyQzYIV9qRjvKXNDjfcB6tC8s=; b=Yvqp5kDlm+FXp6V5X/0BnZ9AAxlrb8xD2yXqyUiJXAi4offze1CfpKgc/OpagvG2pj51+X 52DbxTjFvfLSBUzUmco0awozSMdLdyuTKOynCFGZqQsOMZK/rXgaADieDbpCsDE/Go/w47 KivWnJMugxCBPz2H8wtrvFqlcGU42K0= X-MC-Unique: 8gHaMsGkO2-kvvryVi0INw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782627; x=1690374627; 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=am5myhsqD+fEwFvcZjXyQzYIV9qRjvKXNDjfcB6tC8s=; b=jC5Fl/SgoeFMbCUznEpZStykOLvLGizdfVRLg/zolILP26Sn0Xh4G+IjrueJ0n24Vm UMtNCqVHMD7USxapS4eA2WLqe+sGa4tZRon8/+r48P8Vx/7uRpuK4oPly2nez2+d6gaN IWYEJwcZoSa0pTVVzN9N4cPxDt0SDBDUWjmT5oWjVSjfyGeKuj41RzQB3FC3skZei0gv W3U6YjgM4dcipGWNdBMtwvT+Ff6TYyxHKWETxXOu3KU+jZW8svipAtnQ7L1c+Icj/vB3 8V0EheqNeYr9aMvQzh32AvZ8+yBXFsYaLFAU09+HmvQTM1oRpwru4+X5O6azMi20r7Li d36w== X-Gm-Message-State: AC+VfDxuISz58SgIKYzETSorN9q41VJt7acgmMOPKcpIgrLxOcAlIcn3 XOI5a2eX2eTIwggeX3jvvZ1nsUwdiSSpHv8oYLZ8Hm7MPBfIkPS9EGl6ZUNfL6/1SjMhxfns0B0 EalcW6lRLdJAd4kPEg8IvBeDQAn67zSyhDMTHwD/VO4d5ZDRk7nq0NOn/pksKcqeYIjuD X-Received: by 2002:a05:6512:b86:b0:4fb:7666:3bc0 with SMTP id b6-20020a0565120b8600b004fb76663bc0mr1260130lfv.47.1687782626865; Mon, 26 Jun 2023 05:30:26 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4Dbpbz+kRgmg53qnrJxccE80t/Qeb83yDoU/q2OEhUg1IMwd+/nfxVfNlbnvncuUtwvHS2ow== X-Received: by 2002:a05:6512:b86:b0:4fb:7666:3bc0 with SMTP id b6-20020a0565120b8600b004fb76663bc0mr1260109lfv.47.1687782626472; Mon, 26 Jun 2023 05:30:26 -0700 (PDT) Date: Mon, 26 Jun 2023 08:30:24 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ani Sinha , Laurent Vivier , Jason Wang Subject: [PULL 52/53] vhost_net: add an assertion for TAP client backends Message-ID: <0af710813dcde638379e3bece8f9b1bde31af2f6.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687782803260100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ani Sinha An assertion was missing for tap vhost backends that enforces a non-null reference from get_vhost_net(). Both vhost-net-user and vhost-net-vdpa enforces this. Enforce the same for tap. Unit tests pass with this change. Signed-off-by: Ani Sinha Message-Id: <20230619041501.111655-1-anisinha@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Laurent Vivier --- hw/net/vhost_net.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index c4eecc6f36..6db23ca323 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -507,6 +507,7 @@ VHostNetState *get_vhost_net(NetClientState *nc) switch (nc->info->type) { case NET_CLIENT_DRIVER_TAP: vhost_net =3D tap_get_vhost_net(nc); + assert(vhost_net); break; #ifdef CONFIG_VHOST_NET_USER case NET_CLIENT_DRIVER_VHOST_USER: --=20 MST From nobody Sat May 18 18:13:07 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=1687783136; cv=none; d=zohomail.com; s=zohoarc; b=hdW0GEyJWe2Cp4HcQn7owpb3flj9LYPFrrnivTKw99xCF3wsXaIZp4EVuuqfXdQC6lldWDzakRmztl82/xpfuxH23yfH/Lh7z4qsdEPJWAhFIeKIxPVq3WFHTwp93TtdyH73hGp4TuWMwc/vrKEE7HAregjlGBvhC/p0MH7i00U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1687783136; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MfTq664tRB0XDVL6rfL33AvwxgaTAAG2vIPXXYsJwuY=; b=OFR3HBx5+JqTNAXI+N/FROUZCeLJUJbmEn9Hj6a/7tQvuRKHiJhmyUZStwnGb0jV53nE04M2np9pexqWMo33X+ggyCPEJP8GqNC/Poe/taaNjR/7bY1Gw62aSzbGaYzzSA0JVX29aFZASFcgesnZmSkW+XwKCo2cszEHCLo0WiU= 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 1687783136592769.445926049219; Mon, 26 Jun 2023 05:38:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDlOZ-00086i-EE; Mon, 26 Jun 2023 08:32:47 -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 1qDlN7-00063d-3p for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:31:09 -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 1qDlMX-0003eo-Fr for qemu-devel@nongnu.org; Mon, 26 Jun 2023 08:30:35 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-359-et-ELGxhOtG4l6PVzi19bw-1; Mon, 26 Jun 2023 08:30:31 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-3f9b8c230f5so13106525e9.1 for ; Mon, 26 Jun 2023 05:30:31 -0700 (PDT) Received: from redhat.com ([2.52.156.102]) by smtp.gmail.com with ESMTPSA id m19-20020a7bce13000000b003f41bb52834sm10466606wmc.38.2023.06.26.05.30.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jun 2023 05:30:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687782632; 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=MfTq664tRB0XDVL6rfL33AvwxgaTAAG2vIPXXYsJwuY=; b=iB7XZWaxfpCIC20YmqucYb3xirafvqQfCPcjYxQzqpniGt1xmLoywSXSPW1wIvg8DpQWM2 k+UMmM1SsMpLH+OmL3PUjptmnAnIPJDHNM7OR6mcnHUYddZMEZRKFfiqQZGs/bGWVhU8lZ Mq7vSxnEO2eJzYflWdsdWkgzzhyyUVA= X-MC-Unique: et-ELGxhOtG4l6PVzi19bw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687782630; x=1690374630; 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=MfTq664tRB0XDVL6rfL33AvwxgaTAAG2vIPXXYsJwuY=; b=LANqjrLp0cGOEUc9wha4hXPIqTB4XClITnhDReOwe3xp+O8emHxX2LWDlMhHNPeHFb TB4YdMQ1yHgbD8qNYoN3bZheOhqEKXq9euwRoCStYIikhDJIMppBBkWMVcGMLj6c2WQ6 qAWbYbmBh+ta0Z4B+UsdkCcEewdNi5Yii4LjpN22xNs54Zm9wNP0YhwIp1XHbbJbxs8T cao5/KGbIN9bnIF9+seoN9DrtYixhTS6OpB6Z+W7vr9x1N7ETf6PmPrykUyUP7WHZUOq M18HXrs152M6xEnuw6E78+0UGnY+t4/T1VZOpsFh04OO6bjbSlW7jhYEgbiRVV7roawr RCMA== X-Gm-Message-State: AC+VfDyQ6l9+WPVnjAOnlfnYkYt6leuARl9mFbCF8hBWQHTOlnxyE/KB /JTlBxj0QDrH4u2UKBPfUq1hGY702wf2GfSEhhkQyS6OITTikP3IoVEs11Cror7AYKOiZ9f6Z+M oJggGFAo+JnYFWgRRmW8jQbt3BYzsa0C0LiH/9LmlRTHwjhUzDiiJpw0JFQ8lGszwR1ML X-Received: by 2002:a05:600c:2054:b0:3fb:973:fdba with SMTP id p20-20020a05600c205400b003fb0973fdbamr832632wmg.31.1687782629886; Mon, 26 Jun 2023 05:30:29 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7zlzT7rY2Ldb/qpiQYWXjDADGuVI508JSgE89n+Who07mFzNZyaRQCqbsd/+Ne0nduWb1JpQ== X-Received: by 2002:a05:600c:2054:b0:3fb:973:fdba with SMTP id p20-20020a05600c205400b003fb0973fdbamr832616wmg.31.1687782629590; Mon, 26 Jun 2023 05:30:29 -0700 (PDT) Date: Mon, 26 Jun 2023 08:30:26 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Cc: Peter Maydell , Ani Sinha , imammedo@redhat.com, jusual@redhat.com, mst@redhat.com, Jason Wang Subject: [PULL 53/53] vhost-vdpa: do not cleanup the vdpa/vhost-net structures if peer nic is present Message-ID: <3d90d47995b83bd1edf6e756c00e74fd5ec16aee.1687782442.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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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: 1687783136965100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ani Sinha When a peer nic is still attached to the vdpa backend, it is too early to f= ree up the vhost-net and vdpa structures. If these structures are freed here, t= hen QEMU crashes when the guest is being shut down. The following call chain would result in an assertion failure since the pointer returned from vhost_vdpa_get_vhost_net() would be NULL: do_vm_stop() -> vm_state_notify() -> virtio_set_status() -> virtio_net_vhost_status() -> get_vhost_net(). Therefore, we defer freeing up the structures until at guest shutdown time when qemu_cleanup() calls net_cleanup() which then calls qemu_del_net_client() which would eventually call vhost_vdpa_cleanup() again to free up the structures. This time, the loop in net_cleanup() ensures that vhost_vdpa_cleanup() will be called one last time when all the peer nics are detached and freed. All unit tests pass with this change. CC: imammedo@redhat.com CC: jusual@redhat.com CC: mst@redhat.com Fixes: CVE-2023-3301 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=3D2128929 Signed-off-by: Ani Sinha Message-Id: <20230619065209.442185-1-anisinha@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- net/vhost-vdpa.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 9e92b3558c..e19ab063fa 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -207,6 +207,14 @@ static void vhost_vdpa_cleanup(NetClientState *nc) { VhostVDPAState *s =3D DO_UPCAST(VhostVDPAState, nc, nc); =20 + /* + * If a peer NIC is attached, do not cleanup anything. + * Cleanup will happen as a part of qemu_cleanup() -> net_cleanup() + * when the guest is shutting down. + */ + if (nc->peer && nc->peer->info->type =3D=3D NET_CLIENT_DRIVER_NIC) { + return; + } munmap(s->cvq_cmd_out_buffer, vhost_vdpa_net_cvq_cmd_page_len()); munmap(s->status, vhost_vdpa_net_cvq_cmd_page_len()); if (s->vhost_net) { --=20 MST