lkml.org 
[lkml]   [2023]   [May]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: Re: [PATCH net-next v3] octeontx2-pf: Add support for page pool
Date

> -----Original Message-----
> From: Simon Horman <simon.horman@corigine.com>
> Sent: Friday, May 19, 2023 3:33 PM
> To: Ratheesh Kannoth <rkannoth@marvell.com>
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Sunil Kovvuri
> Goutham <sgoutham@marvell.com>; davem@davemloft.net;
> edumazet@google.com; kuba@kernel.org; pabeni@redhat.com;
> linyunsheng@huawei.com; Subbaraya Sundeep Bhatta
> <sbhatta@marvell.com>; Geethasowjanya Akula <gakula@marvell.com>;
> Srujana Challa <schalla@marvell.com>; Hariprasad Kelam
> <hkelam@marvell.com>
> Subject: [EXT] Re: [PATCH net-next v3] octeontx2-pf: Add support for page
> pool
>
> External Email
>
> ----------------------------------------------------------------------
> On Fri, May 19, 2023 at 12:43:52PM +0530, Ratheesh Kannoth wrote:
> > Page pool for each rx queue enhance rx side performance by reclaiming
> > buffers back to each queue specific pool. DMA mapping is done only for
> > first allocation of buffers.
> > As subsequent buffers allocation avoid DMA mapping, it results in
> > performance improvement.
> >
> > Image | Performance
> > ------------ | ------------
> > Vannila | 3Mpps
> > |
> > with this | 42Mpps
> > change |
> > ---------------------------
> >
> > Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
>
> ...
>
> > @@ -1205,10 +1226,28 @@ void otx2_sq_free_sqbs(struct otx2_nic *pfvf)
> > }
> > }
> >
> > +void otx2_free_bufs(struct otx2_nic *pfvf, struct otx2_pool *pool,
> > + u64 iova, int size)
> > +{
> > + u64 pa = otx2_iova_to_phys(pfvf->iommu_domain, iova);
> > + struct page *page = virt_to_head_page(phys_to_virt(pa));
>
> nit: please arrange local variables in networking code in reverse xmas tree
> order - longest line to shortest.
Variable "pa" is used in second line. Are you suggesting to defer assignment later; and only declare variables here in reverse xmas tree style ?


>
> u64 pa = otx2_iova_to_phys(pfvf->iommu_domain, iova);
> struct page *page;
>
> page = virt_to_head_page(phys_to_virt(pa));
>
> The following tool can check this:
>
> https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__github.com_ecree-
> 2Dsolarflare_xmastree&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=aekcsy
> BCH00_LewrEDcQBzsRw8KCpUR0vZb_auTHk4M&m=EAM7f8UtMNRC57jfDp
> gqNsIClttVw6HHyCL7XecFBync-LgDwxIm9_45n-w-
> WvjY&s=x_0EQ5wG1cZv01ySk_vzRX3kc8Bd2OALcpI8NgxYXTI&e=
>
> ...
>
> > @@ -1186,11 +1185,13 @@ bool otx2_sq_append_skb(struct net_device
> > *netdev, struct otx2_snd_queue *sq, }
> > EXPORT_SYMBOL(otx2_sq_append_skb);
> >
> > -void otx2_cleanup_rx_cqes(struct otx2_nic *pfvf, struct otx2_cq_queue
> > *cq)
> > +void otx2_cleanup_rx_cqes(struct otx2_nic *pfvf, struct otx2_cq_queue
> > +*cq, int qidx)
> > {
> > struct nix_cqe_rx_s *cqe;
> > int processed_cqe = 0;
> > - u64 iova, pa;
> > + struct otx2_pool *pool;
> > + u16 pool_id;
> > + u64 iova;
>
> Likewise here.
Okay
>
> >
> > if (pfvf->xdp_prog)
> > xdp_rxq_info_unreg(&cq->xdp_rxq);
>

-Ratheesh

\
 
 \ /
  Last update: 2023-05-19 12:23    [W:0.290 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site