From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6875C433E6 for ; Wed, 23 Dec 2020 11:06:40 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 024C9222F9 for ; Wed, 23 Dec 2020 11:06:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 024C9222F9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bytedance.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 28A2B8D0024; Wed, 23 Dec 2020 06:06:39 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2128F8D0001; Wed, 23 Dec 2020 06:06:39 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 08D078D0024; Wed, 23 Dec 2020 06:06:39 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0046.hostedemail.com [216.40.44.46]) by kanga.kvack.org (Postfix) with ESMTP id DA0BA8D0001 for ; Wed, 23 Dec 2020 06:06:38 -0500 (EST) Received: from smtpin01.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id A4B071DE0 for ; Wed, 23 Dec 2020 11:06:38 +0000 (UTC) X-FDA: 77624268876.01.plot16_0d0394127468 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin01.hostedemail.com (Postfix) with ESMTP id 869441004FEA9 for ; Wed, 23 Dec 2020 11:06:38 +0000 (UTC) X-HE-Tag: plot16_0d0394127468 X-Filterd-Recvd-Size: 6499 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) by imf06.hostedemail.com (Postfix) with ESMTP for ; Wed, 23 Dec 2020 11:06:37 +0000 (UTC) Received: by mail-ed1-f42.google.com with SMTP id dk8so15886022edb.1 for ; Wed, 23 Dec 2020 03:06:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=8r9lkR1ewmktO6f8Rf77A8AbHLVrP1WsFddPoMLwGkw=; b=bMkg1xZT185KrHJXJFsW/EwmINi0UDjOk+dHKWE4lvYcn4hImVnrFp92fISdt0aYa5 b2+nuINy3rNZkuQYVBtbBj72q6+GigRtLd96X1RKIN9f2mmdmo1nMIzkT9bn6jY8qop2 0hKrf3owwfznx4wOfzMah97m1pCEhsyYCgLzEcjQ7dJ192Rt6+tdfusLkUdW4kS94HRA Y59W/khhqjC9Q9epm1emX7cVly6JUlIBpszp891dJYSR9ciybbrHN/Z5FO3mAiFKlIcr Pc7S+KrculE7i0JM+aucUbcORBSuH8QIfILEDRVyLkTn4mBGLY83ZsKvxafNn9r1GJRV TyJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=8r9lkR1ewmktO6f8Rf77A8AbHLVrP1WsFddPoMLwGkw=; b=nEbCLe9k/rJPgpYZeiTnQx/0+UdSYL1C8wCgJsXzPMfheQWVlh3SR+aDZg/ddWIsAB vmJ/sie7MSuPh+RDdNlhhJsZe49j9fgithn7rtNXlwPm7nmvdFaSiqnPODomOiNjwlna 4KQVbh8dMsInjgHfuwJrr36ZTNPCIcUwMrTj6Ii1KmlvVY8JoGhB4Uxbe0Gs2miLrp+3 6ojAXrxUPBKAhLIHs1jXxEc/daIigSoUX3aQ1BZe9Geaj4a7pyHlCYj+bD/kDm34FPS8 dQ7j/P7+nFIbh8z+GCsjYSK83SIgtmuEZVxYevJbalDCLIW2SH5mSmQraUCuI1PrStG9 bc3Q== X-Gm-Message-State: AOAM533r+zRghPRBVvNoGW7sfod5MtoL8/TJlaEN6aF0wAIJxWdS/n8o kgGuhK+YG/znHOKBiUxsliFcJ/q07rnsxG6WrfJ6 X-Google-Smtp-Source: ABdhPJyG19aAoEETogPYctEYJMED3IJISC+VgMuC0/oXotW9zb5O3R9AOF2iGjGgp5V5nFuNWEulpmdJHswyJmZvyJ4= X-Received: by 2002:a05:6402:407:: with SMTP id q7mr24171337edv.312.1608721596404; Wed, 23 Dec 2020 03:06:36 -0800 (PST) MIME-Version: 1.0 References: <20201222145221.711-1-xieyongji@bytedance.com> <20201222145221.711-9-xieyongji@bytedance.com> <5b36bc51-1e19-2b59-6287-66aed435c8ed@redhat.com> In-Reply-To: <5b36bc51-1e19-2b59-6287-66aed435c8ed@redhat.com> From: Yongji Xie Date: Wed, 23 Dec 2020 19:06:25 +0800 Message-ID: Subject: Re: [RFC v2 08/13] vdpa: Introduce process_iotlb_msg() in vdpa_config_ops To: Jason Wang Cc: "Michael S. Tsirkin" , Stefan Hajnoczi , sgarzare@redhat.com, Parav Pandit , akpm@linux-foundation.org, Randy Dunlap , Matthew Wilcox , viro@zeniv.linux.org.uk, axboe@kernel.dk, bcrl@kvack.org, corbet@lwn.net, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, kvm@vger.kernel.org, linux-aio@kvack.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Dec 23, 2020 at 4:37 PM Jason Wang wrote: > > > On 2020/12/22 =E4=B8=8B=E5=8D=8810:52, Xie Yongji wrote: > > This patch introduces a new method in the vdpa_config_ops to > > support processing the raw vhost memory mapping message in the > > vDPA device driver. > > > > Signed-off-by: Xie Yongji > > --- > > drivers/vhost/vdpa.c | 5 ++++- > > include/linux/vdpa.h | 7 +++++++ > > 2 files changed, 11 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > > index 448be7875b6d..ccbb391e38be 100644 > > --- a/drivers/vhost/vdpa.c > > +++ b/drivers/vhost/vdpa.c > > @@ -728,6 +728,9 @@ static int vhost_vdpa_process_iotlb_msg(struct vhos= t_dev *dev, > > if (r) > > return r; > > > > + if (ops->process_iotlb_msg) > > + return ops->process_iotlb_msg(vdpa, msg); > > + > > switch (msg->type) { > > case VHOST_IOTLB_UPDATE: > > r =3D vhost_vdpa_process_iotlb_update(v, msg); > > @@ -770,7 +773,7 @@ static int vhost_vdpa_alloc_domain(struct vhost_vdp= a *v) > > int ret; > > > > /* Device want to do DMA by itself */ > > - if (ops->set_map || ops->dma_map) > > + if (ops->set_map || ops->dma_map || ops->process_iotlb_msg) > > return 0; > > > > bus =3D dma_dev->bus; > > diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h > > index 656fe264234e..7bccedf22f4b 100644 > > --- a/include/linux/vdpa.h > > +++ b/include/linux/vdpa.h > > @@ -5,6 +5,7 @@ > > #include > > #include > > #include > > +#include > > #include > > #include > > > > @@ -172,6 +173,10 @@ struct vdpa_iova_range { > > * @vdev: vdpa device > > * Returns the iova range supported by > > * the device. > > + * @process_iotlb_msg: Process vhost memory mapping mess= age (optional) > > + * Only used for VDUSE device now > > + * @vdev: vdpa device > > + * @msg: vhost memory mapping message > > * @set_map: Set device memory mapping (option= al) > > * Needed for device that using device > > * specific DMA translation (on-chip IOMMU) > > @@ -240,6 +245,8 @@ struct vdpa_config_ops { > > struct vdpa_iova_range (*get_iova_range)(struct vdpa_device *vdev= ); > > > > /* DMA ops */ > > + int (*process_iotlb_msg)(struct vdpa_device *vdev, > > + struct vhost_iotlb_msg *msg); > > int (*set_map)(struct vdpa_device *vdev, struct vhost_iotlb *iotl= b); > > int (*dma_map)(struct vdpa_device *vdev, u64 iova, u64 size, > > u64 pa, u32 perm); > > > Is there any reason that it can't be done via dma_map/dma_unmap or set_ma= p? > To get the shmfd, we need the vma rather than physical address. And it's not necessary to pin the user pages in VDUSE case. Thanks, Yongji