Jason Wang
2020-Dec-24 02:24 UTC
[RFC v2 00/13] Introduce VDUSE - vDPA Device in Userspace
On 2020/12/23 ??6:59, Yongji Xie wrote:> On Wed, Dec 23, 2020 at 2:38 PM Jason Wang <jasowang at redhat.com> wrote: >> >> On 2020/12/22 ??10:52, Xie Yongji wrote: >>> This series introduces a framework, which can be used to implement >>> vDPA Devices in a userspace program. The work consist of two parts: >>> control path forwarding and data path offloading. >>> >>> In the control path, the VDUSE driver will make use of message >>> mechnism to forward the config operation from vdpa bus driver >>> to userspace. Userspace can use read()/write() to receive/reply >>> those control messages. >>> >>> In the data path, the core is mapping dma buffer into VDUSE >>> daemon's address space, which can be implemented in different ways >>> depending on the vdpa bus to which the vDPA device is attached. >>> >>> In virtio-vdpa case, we implements a MMU-based on-chip IOMMU driver with >>> bounce-buffering mechanism to achieve that. >> >> Rethink about the bounce buffer stuffs. I wonder instead of using kernel >> pages with mmap(), how about just use userspace pages like what vhost did? >> >> It means we need a worker to do bouncing but we don't need to care about >> annoying stuffs like page reclaiming? >> > Now the I/O bouncing is done in the streaming DMA mapping routines > which can be called from interrupt context. If we put this into a > kworker, that means we need to synchronize with a kworker in an > interrupt context. I think it can't work.We just need to make sure the buffer is ready before the user is trying to access them. But I admit it would be tricky (require shadow virtqueue etc) which is probably not a good idea. Thanks> > Thanks, > Yongji >