Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp4865153rdb; Tue, 12 Dec 2023 11:22:11 -0800 (PST) X-Google-Smtp-Source: AGHT+IG9dsrJp1f5G/Z4rzSebJr9HjUMZl5sjTcUoLE1g8dgzyMjchrQMhJVPJdbhc6I3WBNT8SW X-Received: by 2002:a05:6a20:3ca5:b0:190:3fd8:45c0 with SMTP id b37-20020a056a203ca500b001903fd845c0mr3828549pzj.39.1702408931274; Tue, 12 Dec 2023 11:22:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702408931; cv=none; d=google.com; s=arc-20160816; b=0fS45glGqRgLUmPXAfILN4XVAa0jFJf8pvdTju+tHoP+zjWpdSDz+Ew/nqCEkqrOGM yODQeG2BHsXBaRlRgfjyLbciR3LoDpctRjhi84HuCYOpStqK7q1iVwrMFgEfXhpidLJc A+d7Fcr/qJ05QzccWKzsRNOZ0rbZTJCWEBbygi5II3Jb4/Pd2FMbTKnPLBesk5FMnHoK YMLFgh04jkcxGOUbCreuMYLNxgKakBdCOoBYd9aRLw5YFq1LrMyOfroaKQo1GdDt1zLr fmMXxTugdlB6DW6BsSuprCSa/YJZl5eEHvD7KDsrgkohbchQh3n1fV7gkbOYbpF9WDVk mIbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=HurXK5gBPsoHICW5D8Za3/oNGdjuLwbQTQMZFCsDbks=; fh=JVMv++1TGV2U7ZGRb6hqMDQwKKn1pHeGD1L2S1EXDQE=; b=BuS60rE0zPMT1uAIZT4Sa8BLrDG1a7dwEInDxH5ESAJOvPYn62Xx13v2FaY47/Ed62 dFYoW7K8xO266yWj1dSob7IN4qnKiDjhSxXNqfpHxigPVpfzWfde6NnV2mUoga1EUzBT 7xWhNrI8liQROZ3unZE+h7EohS2DzD5nfWcY6qEmCfme+y24DGUrCpvRvyemz+JfGRUD 7F1SM6w2V3CKtlsWzKAg7OEIE1zi/zCdK9fDIhTQWgMKbThdq+MjCDI3q1ochtNSf5uE EFqZA58Hm+l6lRGD3o5XKrw/sMpJepTmcp3qi0VTxL+e3eWPmyk3EI8Hw5yuHADEdZuM wLJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=MwMEHkIQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id z5-20020aa78885000000b006cb4d47cfa9si8112786pfe.270.2023.12.12.11.22.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Dec 2023 11:22:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=MwMEHkIQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id C0DAE805D5EF; Tue, 12 Dec 2023 11:22:08 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235223AbjLLTVz (ORCPT + 99 others); Tue, 12 Dec 2023 14:21:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55632 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235227AbjLLTVw (ORCPT ); Tue, 12 Dec 2023 14:21:52 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 206DDF2 for ; Tue, 12 Dec 2023 11:21:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1702408914; 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=HurXK5gBPsoHICW5D8Za3/oNGdjuLwbQTQMZFCsDbks=; b=MwMEHkIQ4EM/tziK4rThMM7kn97zve2u5YFwzlkqur07n7+Xs6D2iTNZnE14qAdJzANXUX PJ4J9Tl4//PDP3NrH/CbJYqISU/78HiAUM5HXDQ5pRvEJCnH0E02xeahup+mtODtVpQkDl 433Y3KF+3eHjNPbRiZ+JjcrC0L22Kk4= Received: from mail-yw1-f198.google.com (mail-yw1-f198.google.com [209.85.128.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-507-EYR7dgF-Nb-Q8ZnqF5bmog-1; Tue, 12 Dec 2023 14:21:51 -0500 X-MC-Unique: EYR7dgF-Nb-Q8ZnqF5bmog-1 Received: by mail-yw1-f198.google.com with SMTP id 00721157ae682-5de8e375768so54888227b3.3 for ; Tue, 12 Dec 2023 11:21:51 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702408911; x=1703013711; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HurXK5gBPsoHICW5D8Za3/oNGdjuLwbQTQMZFCsDbks=; b=S5pJ3O3ijUPaYYHnSzKht7Jz/B1yZ0RkHwUXgbE0e/szjIMGDDlxYYsIvVzM/L36ET ax/sw4mKE+8D/QexV6n9gOFOau7iRQDdpctp+H79/ySksBKag3f6RyZTlkn6VGFwHeUa FH0tRxgq4GCVarM+Zq5jDlT0U0Lof/AWQeidUlmuCwOAveNcnUgmELsRR0eGZNaI7agc Bw715+ZskzDrPgcc2j1MnSjmv+UHyeyzWZt4b8e6SwxXNkZq86HhG9tcwyJ+C40GdVjh gm+P39NgAm8+i6iYmdBl268MxDRc/dweo1rNt2TW7m/yRxvlXkWyd7XKU90xSru7Xh3e jNzg== X-Gm-Message-State: AOJu0YzBpaYrWkLbQlbZxmoR+S0flg3Ti9Qag1DeiWzCLOTSLU65ruO+ gA8noVrspfOTs/AmNEgvohY1NW0iN7MgKai5Ah8MBSW7BPugSKoBv+9gf0EgUAFBGUt0yFLU9rm iKZbrmNtM2BBZhlX7VHcyYyHLZQwExBQMkYgjQ8R/ X-Received: by 2002:a25:6084:0:b0:dbc:cbb7:1396 with SMTP id u126-20020a256084000000b00dbccbb71396mr42505ybb.79.1702408911414; Tue, 12 Dec 2023 11:21:51 -0800 (PST) X-Received: by 2002:a25:6084:0:b0:dbc:cbb7:1396 with SMTP id u126-20020a256084000000b00dbccbb71396mr42489ybb.79.1702408911135; Tue, 12 Dec 2023 11:21:51 -0800 (PST) MIME-Version: 1.0 References: <20231205104609.876194-1-dtatulea@nvidia.com> <20231205104609.876194-5-dtatulea@nvidia.com> In-Reply-To: <20231205104609.876194-5-dtatulea@nvidia.com> From: Eugenio Perez Martin Date: Tue, 12 Dec 2023 20:21:14 +0100 Message-ID: Subject: Re: [PATCH vhost v2 4/8] vdpa/mlx5: Mark vq addrs for modification in hw vq To: Dragos Tatulea Cc: "Michael S . Tsirkin" , Jason Wang , Si-Wei Liu , Saeed Mahameed , Leon Romanovsky , virtualization@lists.linux-foundation.org, Gal Pressman , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Parav Pandit , Xuan Zhuo Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 12 Dec 2023 11:22:08 -0800 (PST) On Tue, Dec 5, 2023 at 11:46=E2=80=AFAM Dragos Tatulea wrote: > > Addresses get set by .set_vq_address. hw vq addresses will be updated on > next modify_virtqueue. > > Signed-off-by: Dragos Tatulea > Reviewed-by: Gal Pressman > Acked-by: Eugenio P=C3=A9rez I'm kind of ok with this patch and the next one about state, but I didn't ack them in the previous series. My main concern is that it is not valid to change the vq address after DRIVER_OK in VirtIO, which vDPA follows. Only memory maps are ok to change at this moment. I'm not sure about vq state in vDPA, but vhost forbids changing it with an active backend. Suspend is not defined in VirtIO at this moment though, so maybe it is ok to decide that all of these parameters may change during suspend. Maybe the best thing is to protect this with a vDPA feature flag. Jason, what do you think? Thanks! > --- > drivers/vdpa/mlx5/net/mlx5_vnet.c | 9 +++++++++ > include/linux/mlx5/mlx5_ifc_vdpa.h | 1 + > 2 files changed, 10 insertions(+) > > diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/ml= x5_vnet.c > index f8f088cced50..80e066de0866 100644 > --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c > +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c > @@ -1209,6 +1209,7 @@ static int modify_virtqueue(struct mlx5_vdpa_net *n= dev, > bool state_change =3D false; > void *obj_context; > void *cmd_hdr; > + void *vq_ctx; > void *in; > int err; > > @@ -1230,6 +1231,7 @@ static int modify_virtqueue(struct mlx5_vdpa_net *n= dev, > MLX5_SET(general_obj_in_cmd_hdr, cmd_hdr, uid, ndev->mvdev.res.ui= d); > > obj_context =3D MLX5_ADDR_OF(modify_virtio_net_q_in, in, obj_cont= ext); > + vq_ctx =3D MLX5_ADDR_OF(virtio_net_q_object, obj_context, virtio_= q_context); > > if (mvq->modified_fields & MLX5_VIRTQ_MODIFY_MASK_STATE) { > if (!is_valid_state_change(mvq->fw_state, state, is_resum= able(ndev))) { > @@ -1241,6 +1243,12 @@ static int modify_virtqueue(struct mlx5_vdpa_net *= ndev, > state_change =3D true; > } > > + if (mvq->modified_fields & MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_ADDRS)= { > + MLX5_SET64(virtio_q, vq_ctx, desc_addr, mvq->desc_addr); > + MLX5_SET64(virtio_q, vq_ctx, used_addr, mvq->device_addr)= ; > + MLX5_SET64(virtio_q, vq_ctx, available_addr, mvq->driver_= addr); > + } > + > MLX5_SET64(virtio_net_q_object, obj_context, modify_field_select,= mvq->modified_fields); > err =3D mlx5_cmd_exec(ndev->mvdev.mdev, in, inlen, out, sizeof(ou= t)); > if (err) > @@ -2202,6 +2210,7 @@ static int mlx5_vdpa_set_vq_address(struct vdpa_dev= ice *vdev, u16 idx, u64 desc_ > mvq->desc_addr =3D desc_area; > mvq->device_addr =3D device_area; > mvq->driver_addr =3D driver_area; > + mvq->modified_fields |=3D MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_ADDRS; > return 0; > } > > diff --git a/include/linux/mlx5/mlx5_ifc_vdpa.h b/include/linux/mlx5/mlx5= _ifc_vdpa.h > index b86d51a855f6..9594ac405740 100644 > --- a/include/linux/mlx5/mlx5_ifc_vdpa.h > +++ b/include/linux/mlx5/mlx5_ifc_vdpa.h > @@ -145,6 +145,7 @@ enum { > MLX5_VIRTQ_MODIFY_MASK_STATE =3D (u64)1 << 0, > MLX5_VIRTQ_MODIFY_MASK_DIRTY_BITMAP_PARAMS =3D (u64)1 << 3, > MLX5_VIRTQ_MODIFY_MASK_DIRTY_BITMAP_DUMP_ENABLE =3D (u64)1 << 4, > + MLX5_VIRTQ_MODIFY_MASK_VIRTIO_Q_ADDRS =3D (u64)1 << 6, > MLX5_VIRTQ_MODIFY_MASK_DESC_GROUP_MKEY =3D (u64)1 << 14, > }; > > -- > 2.42.0 >