Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp1512181rdb; Thu, 7 Dec 2023 00:46:59 -0800 (PST) X-Google-Smtp-Source: AGHT+IFFDaVgJ+bJUqYgz+b5NINBaU9RHpmV4m6n+sIYzOEMjpi6MrIwTqk5yCvcTdwhXV4jYDaD X-Received: by 2002:a05:6a20:9146:b0:18f:97c:975f with SMTP id x6-20020a056a20914600b0018f097c975fmr2811197pzc.71.1701938819431; Thu, 07 Dec 2023 00:46:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701938819; cv=none; d=google.com; s=arc-20160816; b=eP03b0Mt0uyzZXPFeuQi8929vDg7XNrAd2S2LmZT4M1s584tpfUVY3tlnNzy7rEmop V6sQiyI/DqEmspbhqFwf0uJf4YVSoFM8+64I1Uns9gI6Xx3gAjfIHbF+QH4I2lXlj0I5 WzHMiOswR04LiYdKy97fGTGCjbmC6YmnGUaRfqL8oJZPvU7nJOUVMm3TuSlHKykcWKg0 rzO/jzoXsHlGqqv+HllJFfGJDNmfhtrfqEVZ2AJ8YXPGwTnpTtrmbb32xTKx/0jrF5aM BgqvAHCkN8MKH/aRFkmWDV0g7RUnVUzgLbH9QDqrtspL3AGR6B4OpAVoAhNWtS07Wzt+ WUZw== 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=S45mCIVP8tXMlQy/LkNkOy2M4lsUi2H4wMiVuvDZzy8=; fh=ir7cOO3TfsXjq7Y5DnAiuq3+k2gzyaCCb4HcXAX8/h4=; b=t1UDq2U9NwhMtWyDVo4xbmb1tFQqO5L9HkMqQnkGNLWoL5LW5xoBY+1CBqmOXmylhb E7dVn431R/4OS+aJ10PRboh85d7GpyUVkcgjSkfdoi3alS29Xhv9gsLoln602M3utVJk QcopcyasdLEjkq0Intg/rwXYu5ZyAu3SrHkVZCSIX5HMgmr6wcgUVms00Fec47Jwc/bb mpgsBane5MUxPfD9T3mu0rCx2iIniUDCZB3lmHFjASRPxi8jk5oB8FCfpDOq6L8mf94Y kNpj2qjUBfb/z5UBjAem7+TP7LYpKwsZRe/BaTgccG2qjwWCgl7R0x+NN9TvjUwkQPBW HDlg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=gVf9iER0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 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 morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id x3-20020a1709027c0300b001d0c6fd3167si735261pll.555.2023.12.07.00.46.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Dec 2023 00:46:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=gVf9iER0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 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 morse.vger.email (Postfix) with ESMTP id B3CEF82A516F; Thu, 7 Dec 2023 00:46:56 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230137AbjLGIq2 (ORCPT + 99 others); Thu, 7 Dec 2023 03:46:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33676 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230300AbjLGIqY (ORCPT ); Thu, 7 Dec 2023 03:46:24 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64728C6 for ; Thu, 7 Dec 2023 00:46:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1701938789; 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=S45mCIVP8tXMlQy/LkNkOy2M4lsUi2H4wMiVuvDZzy8=; b=gVf9iER0wo79+lpOHwPbhqseHEn1I214cXKoVJOoPViB8iDeL7oDpmAcVq8gcITwhfsMgQ u0FPvbH70sBs0FQGYJReloJWCNjzmQ9lH6UtENcn+1vhJX0Cnj/LA2o1TmUkpOMXV/FLlc sg8OoIkrJy0K/RreEe+peGHyVpRxb0M= Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-612-oq-Y9kW1MgGKeKgrNEahvQ-1; Thu, 07 Dec 2023 03:46:27 -0500 X-MC-Unique: oq-Y9kW1MgGKeKgrNEahvQ-1 Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-286e0d3e04dso774491a91.1 for ; Thu, 07 Dec 2023 00:46:27 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701938787; x=1702543587; 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=S45mCIVP8tXMlQy/LkNkOy2M4lsUi2H4wMiVuvDZzy8=; b=rylcgwMTvgcG6o+oUKeMVR21DsK1y/JfQosYHjrzheU/RakK/mUvh/LTATWjJJGFaR lpIe9mG40nhhhSmRdLZO0nSgrIyzU6wKyDobhGLIp4lHRU2zAD0cF4yTGCIHS6KQihvL gmBW9ZOutV1sh295ss7ISpc3y+ZDXqWiYDg0U1xnEupwlVKqPashlKeNebZMjX1OBjjk 5MrGfSmFAj+cpXA3LeyM5kVZ/v64bMzB2IU+tIvdEW/ZPQSrDE/wk1g08CqYeaD9A+j3 13Niik5JSfD5CoZmCzo2KEZU+fL/kjQvEWxAyRJ9FoGGt4WSGLtS9iO3ay/bgQ+tZn+M KGnA== X-Gm-Message-State: AOJu0YwlsjABavYs5jtZpTVzFN3wm1VEg9VwXOrQiK6vMVXYl15Ps+l1 BAWb+Kt4KDauRKzTlz8nx1DoTA613xOywZf2YJIBu60tD/Mj5odQ1HwseVsK09Pm63EJgXiN2Vf Ph20zyOj0vPNklDA2Tlay24HzeD8c8wsPeQnTOlLK X-Received: by 2002:a17:90b:234a:b0:288:9282:7c17 with SMTP id ms10-20020a17090b234a00b0028892827c17mr886719pjb.80.1701938786897; Thu, 07 Dec 2023 00:46:26 -0800 (PST) X-Received: by 2002:a17:90b:234a:b0:288:9282:7c17 with SMTP id ms10-20020a17090b234a00b0028892827c17mr886708pjb.80.1701938786629; Thu, 07 Dec 2023 00:46:26 -0800 (PST) MIME-Version: 1.0 References: <20231205083444.3029239-1-lulu@redhat.com> <20231205083444.3029239-7-lulu@redhat.com> In-Reply-To: <20231205083444.3029239-7-lulu@redhat.com> From: Jason Wang Date: Thu, 7 Dec 2023 16:46:15 +0800 Message-ID: Subject: Re: [PATCH v3 6/7] vduse: Update the vq_info in ioctl VDUSE_VQ_GET_INFO To: Cindy Lu Cc: mst@redhat.com, xieyongji@bytedance.com, linux-kernel@vger.kernel.org, maxime.coquelin@redhat.com 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 morse.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 (morse.vger.email [0.0.0.0]); Thu, 07 Dec 2023 00:46:56 -0800 (PST) On Tue, Dec 5, 2023 at 4:35=E2=80=AFPM Cindy Lu wrote: > > Once the reconnect memory pages are mapped to userspace, the userspace > application will update the "reconnected" bit in the > "struct vduse_dev_reconnect_data". > The kernel will then check this bit. If it is not set to > "VDUSE_NOT_RECONNECT", it means that the application has been > reconnected, and the kernel will synchronize the vq information. Can you explain why we need such a flag? > > Signed-off-by: Cindy Lu > --- > drivers/vdpa/vdpa_user/vduse_dev.c | 24 +++++++++++++++++++++++- > 1 file changed, 23 insertions(+), 1 deletion(-) > > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/= vduse_dev.c > index f55f415629de..422f1aedebac 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -1193,6 +1193,9 @@ static long vduse_dev_ioctl(struct file *file, unsi= gned int cmd, > struct vduse_vq_info vq_info; > struct vduse_virtqueue *vq; > u32 index; > + unsigned long vaddr; > + struct vduse_vq_state *vq_reconnect; > + struct vduse_dev_reconnect_data *dev_reconnect; > > ret =3D -EFAULT; > if (copy_from_user(&vq_info, argp, sizeof(vq_info))) > @@ -1209,6 +1212,12 @@ static long vduse_dev_ioctl(struct file *file, uns= igned int cmd, > vq_info.device_addr =3D vq->device_addr; > vq_info.num =3D vq->num; > > + vaddr =3D dev->vdpa_reconnect_vaddr; > + dev_reconnect =3D (struct vduse_dev_reconnect_data *)vadd= r; > + > + vaddr =3D vq->vdpa_reconnect_vaddr; > + vq_reconnect =3D (struct vduse_vq_state *)vaddr; > + > if (dev->driver_features & BIT_ULL(VIRTIO_F_RING_PACKED))= { > vq_info.packed.last_avail_counter =3D > vq->state.packed.last_avail_counter; > @@ -1218,9 +1227,22 @@ static long vduse_dev_ioctl(struct file *file, uns= igned int cmd, > vq->state.packed.last_used_counter; > vq_info.packed.last_used_idx =3D > vq->state.packed.last_used_idx; > - } else > + /*check if the vq is reconnect, if yes then updat= e the info*/ > + if (dev_reconnect->reconnected !=3D VDUSE_NOT_REC= ONNECT) { So the dev_reconnect is shared, how to synchronize between them? > + vq_info.packed.last_avail_idx =3D > + vq_reconnect->packed.last_avail_i= dx; > + vq_info.packed.last_avail_counter =3D > + vq_reconnect->packed.last_avail_c= ounter; > + } > + } else { > vq_info.split.avail_index =3D > vq->state.split.avail_index; > + /*check if the vq is reconnect, if yes then updat= e the info*/ > + if (dev_reconnect->reconnected !=3D VDUSE_NOT_REC= ONNECT) { If this only check is !=3D, I'd define it as VDUSE_RECONNECT to ease the code logic. > + vq_info.split.avail_index =3D > + vq_reconnect->split.avail_index; > + } > + } It looks like I miss something here If I read the code correctly, vq_reconnect is written by userspace, so userspace query it again via the get_vq_info()? If this is true, userspace can just ignore the index via GET_VQ_INFO() or is it just for consistency? Thanks > > vq_info.ready =3D vq->ready; > > -- > 2.34.3 >