diff mbox series

[net-next,1/2] xsk: Remove non-zero 'dma_page' check in xp_assign_dev

Message ID 1706089058-1364-1-git-send-email-wangyunjian@huawei.com (mailing list archive)
State New, archived
Headers show
Series tun: AF_XDP Rx zero-copy support | expand

Commit Message

wangyunjian Jan. 24, 2024, 9:37 a.m. UTC
Now dma mappings are used by the physical NICs. However the vNIC
maybe do not need them. So remove non-zero 'dma_page' check in
xp_assign_dev.

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
---
 net/xdp/xsk_buff_pool.c | 7 -------
 1 file changed, 7 deletions(-)

Comments

Xuan Zhuo Feb. 21, 2024, 9:52 a.m. UTC | #1
On Wed, 24 Jan 2024 17:37:38 +0800, Yunjian Wang <wangyunjian@huawei.com> wrote:
> Now dma mappings are used by the physical NICs. However the vNIC
> maybe do not need them. So remove non-zero 'dma_page' check in
> xp_assign_dev.

Could you tell me which one nic can work with AF_XDP without DMA?

Thanks.


>
> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> ---
>  net/xdp/xsk_buff_pool.c | 7 -------
>  1 file changed, 7 deletions(-)
>
> diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c
> index 28711cc44ced..939b6e7b59ff 100644
> --- a/net/xdp/xsk_buff_pool.c
> +++ b/net/xdp/xsk_buff_pool.c
> @@ -219,16 +219,9 @@ int xp_assign_dev(struct xsk_buff_pool *pool,
>  	if (err)
>  		goto err_unreg_pool;
>
> -	if (!pool->dma_pages) {
> -		WARN(1, "Driver did not DMA map zero-copy buffers");
> -		err = -EINVAL;
> -		goto err_unreg_xsk;
> -	}
>  	pool->umem->zc = true;
>  	return 0;
>
> -err_unreg_xsk:
> -	xp_disable_drv_zc(pool);
>  err_unreg_pool:
>  	if (!force_zc)
>  		err = 0; /* fallback to copy mode */
> --
> 2.33.0
>
>
wangyunjian Feb. 21, 2024, 11:37 a.m. UTC | #2
> -----Original Message-----
> From: Xuan Zhuo [mailto:xuanzhuo@linux.alibaba.com]
> Sent: Wednesday, February 21, 2024 5:53 PM
> To: wangyunjian <wangyunjian@huawei.com>
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org;
> kvm@vger.kernel.org; virtualization@lists.linux.dev; xudingke
> <xudingke@huawei.com>; wangyunjian <wangyunjian@huawei.com>;
> mst@redhat.com; willemdebruijn.kernel@gmail.com; jasowang@redhat.com;
> kuba@kernel.org; davem@davemloft.net; magnus.karlsson@intel.com
> Subject: Re: [PATCH net-next 1/2] xsk: Remove non-zero 'dma_page' check in
> xp_assign_dev
> 
> On Wed, 24 Jan 2024 17:37:38 +0800, Yunjian Wang
> <wangyunjian@huawei.com> wrote:
> > Now dma mappings are used by the physical NICs. However the vNIC maybe
> > do not need them. So remove non-zero 'dma_page' check in
> > xp_assign_dev.
> 
> Could you tell me which one nic can work with AF_XDP without DMA?

TUN will support AF_XDP Tx zero-copy, which does not require DMA mappings.

Thanks

> 
> Thanks.
> 
> 
> >
> > Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> > ---
> >  net/xdp/xsk_buff_pool.c | 7 -------
> >  1 file changed, 7 deletions(-)
> >
> > diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c index
> > 28711cc44ced..939b6e7b59ff 100644
> > --- a/net/xdp/xsk_buff_pool.c
> > +++ b/net/xdp/xsk_buff_pool.c
> > @@ -219,16 +219,9 @@ int xp_assign_dev(struct xsk_buff_pool *pool,
> >  	if (err)
> >  		goto err_unreg_pool;
> >
> > -	if (!pool->dma_pages) {
> > -		WARN(1, "Driver did not DMA map zero-copy buffers");
> > -		err = -EINVAL;
> > -		goto err_unreg_xsk;
> > -	}
> >  	pool->umem->zc = true;
> >  	return 0;
> >
> > -err_unreg_xsk:
> > -	xp_disable_drv_zc(pool);
> >  err_unreg_pool:
> >  	if (!force_zc)
> >  		err = 0; /* fallback to copy mode */
> > --
> > 2.33.0
> >
> >
Xuan Zhuo Feb. 21, 2024, 11:39 a.m. UTC | #3
On Wed, 21 Feb 2024 11:37:22 +0000, wangyunjian <wangyunjian@huawei.com> wrote:
> > -----Original Message-----
> > From: Xuan Zhuo [mailto:xuanzhuo@linux.alibaba.com]
> > Sent: Wednesday, February 21, 2024 5:53 PM
> > To: wangyunjian <wangyunjian@huawei.com>
> > Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org;
> > kvm@vger.kernel.org; virtualization@lists.linux.dev; xudingke
> > <xudingke@huawei.com>; wangyunjian <wangyunjian@huawei.com>;
> > mst@redhat.com; willemdebruijn.kernel@gmail.com; jasowang@redhat.com;
> > kuba@kernel.org; davem@davemloft.net; magnus.karlsson@intel.com
> > Subject: Re: [PATCH net-next 1/2] xsk: Remove non-zero 'dma_page' check in
> > xp_assign_dev
> >
> > On Wed, 24 Jan 2024 17:37:38 +0800, Yunjian Wang
> > <wangyunjian@huawei.com> wrote:
> > > Now dma mappings are used by the physical NICs. However the vNIC maybe
> > > do not need them. So remove non-zero 'dma_page' check in
> > > xp_assign_dev.
> >
> > Could you tell me which one nic can work with AF_XDP without DMA?
>
> TUN will support AF_XDP Tx zero-copy, which does not require DMA mappings.


Great. Though I do not know how it works, but I think a new option or feature
is better.

Thanks.


>
> Thanks
>
> >
> > Thanks.
> >
> >
> > >
> > > Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> > > ---
> > >  net/xdp/xsk_buff_pool.c | 7 -------
> > >  1 file changed, 7 deletions(-)
> > >
> > > diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c index
> > > 28711cc44ced..939b6e7b59ff 100644
> > > --- a/net/xdp/xsk_buff_pool.c
> > > +++ b/net/xdp/xsk_buff_pool.c
> > > @@ -219,16 +219,9 @@ int xp_assign_dev(struct xsk_buff_pool *pool,
> > >  	if (err)
> > >  		goto err_unreg_pool;
> > >
> > > -	if (!pool->dma_pages) {
> > > -		WARN(1, "Driver did not DMA map zero-copy buffers");
> > > -		err = -EINVAL;
> > > -		goto err_unreg_xsk;
> > > -	}
> > >  	pool->umem->zc = true;
> > >  	return 0;
> > >
> > > -err_unreg_xsk:
> > > -	xp_disable_drv_zc(pool);
> > >  err_unreg_pool:
> > >  	if (!force_zc)
> > >  		err = 0; /* fallback to copy mode */
> > > --
> > > 2.33.0
> > >
> > >
diff mbox series

Patch

diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c
index 28711cc44ced..939b6e7b59ff 100644
--- a/net/xdp/xsk_buff_pool.c
+++ b/net/xdp/xsk_buff_pool.c
@@ -219,16 +219,9 @@  int xp_assign_dev(struct xsk_buff_pool *pool,
 	if (err)
 		goto err_unreg_pool;
 
-	if (!pool->dma_pages) {
-		WARN(1, "Driver did not DMA map zero-copy buffers");
-		err = -EINVAL;
-		goto err_unreg_xsk;
-	}
 	pool->umem->zc = true;
 	return 0;
 
-err_unreg_xsk:
-	xp_disable_drv_zc(pool);
 err_unreg_pool:
 	if (!force_zc)
 		err = 0; /* fallback to copy mode */