On Wed, 2024-04-24 at 16:16 +0800, Xuan Zhuo wrote:
> Actually, for the virtio drivers, we can enable premapped mode whatever
> the value of use_dma_api. Because we provide the virtio dma apis.
> So the driver can enable premapped mode unconditionally.
> 
> This patch set makes the big mode of virtio-net to support premapped mode.
> And enable premapped mode for rx by default.
> 
> Based on the following points, we do not use page pool to manage these
>     pages:
> 
>     1. virtio-net uses the DMA APIs wrapped by virtio core. Therefore,
>        we can only prevent the page pool from performing DMA operations, and
>        let the driver perform DMA operations on the allocated pages.
>     2. But when the page pool releases the page, we have no chance to
>        execute dma unmap.
>     3. A solution to #2 is to execute dma unmap every time before putting
>        the page back to the page pool. (This is actually a waste, we don't
>        execute unmap so frequently.)
>     4. But there is another problem, we still need to use page.dma_addr to
>        save the dma address. Using page.dma_addr while using page pool is
>        unsafe behavior.
>     5. And we need space the chain the pages submitted once to virtio core.
> 
>     More:
>         
> https://lore.kernel.org/all/CACGkMEu=Aok9z2imB_c5qVuujSh=vjj1kx12fy9n7hqyi+m...@mail.gmail.com/
> 
> Why we do not use the page space to store the dma?
>     
> http://lore.kernel.org/all/CACGkMEuyeJ9mMgYnnB42=hw6umNuo=agn7VBqBqYPd7GN=+3...@mail.gmail.com
> 
> Please review.
> 
> v3:
>     1. big mode still use the mode that virtio core does the dma map/unmap
> 
> v2:
>     1. make gcc happy in page_chain_get_dma()
>         http://lore.kernel.org/all/202404221325.sx5chrgp-...@intel.com
> 
> v1:
>     1. discussed for using page pool
>     2. use dma sync to replace the unmap for the first page

Judging by the subj prefix, this is targeting the vhost tree, right? 

There are a few patches landing on virtio_net on net-next, I guess
there will be some conflict while pushing to Linux (but I haven't
double check yet!)

Perhaps you could provide a stable git branch so that both vhost and
netdev could pull this set?

Thanks!

Paolo


Reply via email to