From: Shahaf Shuler <shahafs@mellanox.com> To: Jason Wang <jasowang@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com> Cc: Jason Gunthorpe <jgg@mellanox.com>, Rob Miller <rob.miller@broadcom.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, "virtualization@lists.linux-foundation.org" <virtualization@lists.linux-foundation.org>, Netdev <netdev@vger.kernel.org>, "Bie, Tiwei" <tiwei.bie@intel.com>, "maxime.coquelin@redhat.com" <maxime.coquelin@redhat.com>, "Liang, Cunming" <cunming.liang@intel.com>, "Wang, Zhihong" <zhihong.wang@intel.com>, "Wang, Xiao W" <xiao.w.wang@intel.com>, "haotian.wang@sifive.com" <haotian.wang@sifive.com>, "Zhu, Lingshan" <lingshan.zhu@intel.com>, "eperezma@redhat.com" <eperezma@redhat.com>, "lulu@redhat.com" <lulu@redhat.com>, Parav Pandit <parav@mellanox.com>, "Tian, Kevin" <kevin.tian@intel.com>, "stefanha@redhat.com" <stefanha@redhat.com>, "rdunlap@infradead.org" <rdunlap@infradead.org>, "hch@infradead.org" <hch@infradead.org>, Ariel Adam <aadam@redhat.com>, Jiri Pirko <jiri@mellanox.com>, "hanand@xilinx.com" <hanand@xilinx.com>, "mhabets@solarflare.com" <mhabets@solarflare.com> Subject: RE: [PATCH 3/5] vDPA: introduce vDPA bus Date: Tue, 21 Jan 2020 11:09:38 +0000 Message-ID: <AM0PR0502MB37956A8D6690B190EEA713A5C30D0@AM0PR0502MB3795.eurprd05.prod.outlook.com> (raw) In-Reply-To: <028ed448-a948-79d9-f224-c325029b17ab@redhat.com> Tuesday, January 21, 2020 10:35 AM, Jason Wang: > Subject: Re: [PATCH 3/5] vDPA: introduce vDPA bus > > > On 2020/1/21 下午4:15, Michael S. Tsirkin wrote: > > On Tue, Jan 21, 2020 at 04:00:38PM +0800, Jason Wang wrote: > >> On 2020/1/21 下午1:47, Michael S. Tsirkin wrote: > >>> On Tue, Jan 21, 2020 at 12:00:57PM +0800, Jason Wang wrote: > >>>> On 2020/1/21 上午1:49, Jason Gunthorpe wrote: > >>>>> On Mon, Jan 20, 2020 at 04:43:53PM +0800, Jason Wang wrote: > >>>>>> This is similar to the design of platform IOMMU part of > >>>>>> vhost-vdpa. We decide to send diffs to platform IOMMU there. If > >>>>>> it's ok to do that in driver, we can replace set_map with incremental > API like map()/unmap(). > >>>>>> > >>>>>> Then driver need to maintain rbtree itself. > >>>>> I think we really need to see two modes, one where there is a > >>>>> fixed translation without dynamic vIOMMU driven changes and one > >>>>> that supports vIOMMU. > >>>> I think in this case, you meant the method proposed by Shahaf that > >>>> sends diffs of "fixed translation" to device? > >>>> > >>>> It would be kind of tricky to deal with the following case for example: > >>>> > >>>> old map [4G, 16G) new map [4G, 8G) > >>>> > >>>> If we do > >>>> > >>>> 1) flush [4G, 16G) > >>>> 2) add [4G, 8G) > >>>> > >>>> There could be a window between 1) and 2). > >>>> > >>>> It requires the IOMMU that can do > >>>> > >>>> 1) remove [8G, 16G) > >>>> 2) flush [8G, 16G) > >>>> 3) change [4G, 8G) > >>>> > >>>> .... > >>> Basically what I had in mind is something like qemu memory api > >>> > >>> 0. begin > >>> 1. remove [8G, 16G) > >>> 2. add [4G, 8G) > >>> 3. commit > >> > >> This sounds more flexible e.g driver may choose to implement static > >> mapping one through commit. But a question here, it looks to me this > >> still requires the DMA to be synced with at least commit here. > >> Otherwise device may get DMA fault? Or device is expected to be paused > DMA during begin? > >> > >> Thanks > > For example, commit might switch one set of tables for another, > > without need to pause DMA. > > > Yes, I think that works but need confirmation from Shahaf or Jason. From my side, as I wrote, I would like to see the suggested function prototype along w/ the definition of the expectation from driver upon calling those. It is not 100% clear to me what should be the outcome of remove/flush/change/commit > > Thanks > > > > > > >>> Anyway, I'm fine with a one-shot API for now, we can improve it > >>> later. > >>> > >>>>> There are different optimization goals in the drivers for these > >>>>> two configurations. > >>>>> > >>>>>>> If the first one, then I think memory hotplug is a heavy flow > >>>>>>> regardless. Do you think the extra cycles for the tree traverse > >>>>>>> will be visible in any way? > >>>>>> I think if the driver can pause the DMA during the time for > >>>>>> setting up new mapping, it should be fine. > >>>>> This is very tricky for any driver if the mapping change hits the > >>>>> virtio rings. :( > >>>>> > >>>>> Even a IOMMU using driver is going to have problems with that.. > >>>>> > >>>>> Jason > >>>> Or I wonder whether ATS/PRI can help here. E.g during I/O page > >>>> fault, driver/device can wait for the new mapping to be set and > >>>> then replay the DMA. > >>>> > >>>> Thanks > >>>>
next prev parent reply index Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-16 12:42 [PATCH 0/5] vDPA support Jason Wang 2020-01-16 12:42 ` [PATCH 1/5] vhost: factor out IOTLB Jason Wang 2020-01-17 4:14 ` Randy Dunlap 2020-01-17 9:34 ` Jason Wang 2020-01-18 0:01 ` kbuild test robot 2020-01-18 0:40 ` kbuild test robot 2020-01-16 12:42 ` [PATCH 2/5] vringh: IOTLB support Jason Wang 2020-01-17 21:54 ` kbuild test robot 2020-01-17 22:33 ` kbuild test robot 2020-01-16 12:42 ` [PATCH 3/5] vDPA: introduce vDPA bus Jason Wang 2020-01-16 15:22 ` Jason Gunthorpe 2020-01-17 3:03 ` Jason Wang 2020-01-17 13:54 ` Jason Gunthorpe 2020-01-20 7:50 ` Jason Wang 2020-01-20 12:17 ` Michael S. Tsirkin 2020-01-20 17:50 ` Jason Gunthorpe 2020-01-20 21:56 ` Michael S. Tsirkin 2020-01-21 14:12 ` Jason Gunthorpe 2020-01-21 14:15 ` Michael S. Tsirkin 2020-01-21 14:16 ` Jason Gunthorpe 2020-01-21 8:40 ` Tian, Kevin 2020-01-21 9:41 ` Jason Wang 2020-01-17 4:16 ` Randy Dunlap 2020-01-17 9:34 ` Jason Wang 2020-01-17 12:13 ` Michael S. Tsirkin 2020-01-17 13:52 ` Jason Wang [not found] ` <CAJPjb1+fG9L3=iKbV4Vn13VwaeDZZdcfBPvarogF_Nzhk+FnKg@mail.gmail.com> 2020-01-19 9:07 ` Shahaf Shuler 2020-01-19 9:59 ` Michael S. Tsirkin 2020-01-20 8:44 ` Jason Wang 2020-01-20 12:09 ` Michael S. Tsirkin 2020-01-21 3:32 ` Jason Wang 2020-01-20 8:43 ` Jason Wang 2020-01-20 17:49 ` Jason Gunthorpe 2020-01-20 20:51 ` Shahaf Shuler 2020-01-20 21:25 ` Michael S. Tsirkin 2020-01-20 21:47 ` Shahaf Shuler 2020-01-20 21:59 ` Michael S. Tsirkin 2020-01-21 6:01 ` Shahaf Shuler 2020-01-21 7:57 ` Jason Wang 2020-01-21 14:07 ` Jason Gunthorpe 2020-01-21 14:16 ` Michael S. Tsirkin 2020-01-20 21:48 ` Michael S. Tsirkin 2020-01-21 4:00 ` Jason Wang 2020-01-21 5:47 ` Michael S. Tsirkin 2020-01-21 8:00 ` Jason Wang 2020-01-21 8:15 ` Michael S. Tsirkin 2020-01-21 8:35 ` Jason Wang 2020-01-21 11:09 ` Shahaf Shuler [this message] 2020-01-22 6:36 ` Jason Wang 2020-01-21 14:05 ` Jason Gunthorpe 2020-01-21 14:17 ` Michael S. Tsirkin 2020-01-22 6:18 ` Jason Wang 2020-01-20 8:19 ` Jason Wang 2020-01-16 12:42 ` [PATCH 4/5] virtio: introduce a vDPA based transport Jason Wang 2020-01-16 15:38 ` Jason Gunthorpe 2020-01-17 9:32 ` Jason Wang 2020-01-17 14:00 ` Jason Gunthorpe 2020-01-20 7:52 ` Jason Wang 2020-01-17 4:10 ` Randy Dunlap 2020-01-16 12:42 ` [PATCH 5/5] vdpasim: vDPA device simulator Jason Wang 2020-01-16 15:47 ` Jason Gunthorpe 2020-01-17 9:32 ` Jason Wang 2020-01-17 14:10 ` Jason Gunthorpe 2020-01-20 8:01 ` Jason Wang 2020-02-04 4:19 ` Jason Wang 2020-01-17 4:12 ` Randy Dunlap 2020-01-17 9:35 ` Jason Wang 2020-01-18 18:18 ` kbuild test robot 2020-01-28 3:32 ` Dan Carpenter 2020-02-04 4:07 ` Jason Wang 2020-02-04 8:21 ` Zhu Lingshan 2020-02-04 8:28 ` Jason Wang 2020-02-04 12:52 ` Jason Gunthorpe 2020-02-05 3:14 ` Jason Wang 2020-01-21 8:44 ` [PATCH 0/5] vDPA support Tian, Kevin 2020-01-21 9:39 ` Jason Wang
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=AM0PR0502MB37956A8D6690B190EEA713A5C30D0@AM0PR0502MB3795.eurprd05.prod.outlook.com \ --to=shahafs@mellanox.com \ --cc=aadam@redhat.com \ --cc=cunming.liang@intel.com \ --cc=eperezma@redhat.com \ --cc=hanand@xilinx.com \ --cc=haotian.wang@sifive.com \ --cc=hch@infradead.org \ --cc=jasowang@redhat.com \ --cc=jgg@mellanox.com \ --cc=jiri@mellanox.com \ --cc=kevin.tian@intel.com \ --cc=kvm@vger.kernel.org \ --cc=lingshan.zhu@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=lulu@redhat.com \ --cc=maxime.coquelin@redhat.com \ --cc=mhabets@solarflare.com \ --cc=mst@redhat.com \ --cc=netdev@vger.kernel.org \ --cc=parav@mellanox.com \ --cc=rdunlap@infradead.org \ --cc=rob.miller@broadcom.com \ --cc=stefanha@redhat.com \ --cc=tiwei.bie@intel.com \ --cc=virtualization@lists.linux-foundation.org \ --cc=xiao.w.wang@intel.com \ --cc=zhihong.wang@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
KVM Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/kvm/0 kvm/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 kvm kvm/ https://lore.kernel.org/kvm \ kvm@vger.kernel.org public-inbox-index kvm Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.kvm AGPL code for this site: git clone https://public-inbox.org/public-inbox.git