[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45002f120a57ec362459868a67af1627a22274d1.camel@redhat.com>
Date: Fri, 26 Apr 2024 13:00:08 +0200
From: Paolo Abeni <pabeni@...hat.com>
To: Xuan Zhuo <xuanzhuo@...ux.alibaba.com>, virtualization@...ts.linux.dev
Cc: "Michael S. Tsirkin" <mst@...hat.com>, Jason Wang <jasowang@...hat.com>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet
<edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
netdev@...r.kernel.org
Subject: Re: [PATCH vhost v3 0/4] virtio_net: rx enable premapped mode by
default
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+M5Ow@mail.gmail.com/
>
> Why we do not use the page space to store the dma?
> http://lore.kernel.org/all/CACGkMEuyeJ9mMgYnnB42=hw6umNuo=agn7VBqBqYPd7GN=+39Q@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-lkp@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
Powered by blists - more mailing lists