From: Jakub Kicinski <kuba@kernel.org>
To: Sunil Kovvuri <sunil.kovvuri@gmail.com>
Cc: Linux Netdev List <netdev@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Michal Kubecek <mkubecek@suse.cz>,
Sunil Goutham <sgoutham@marvell.com>,
Geetha sowjanya <gakula@marvell.com>
Subject: Re: [PATCH v4 04/17] octeontx2-pf: Initialize and config queues
Date: Thu, 23 Jan 2020 06:20:17 -0800 [thread overview]
Message-ID: <20200123062017.3cbefe70@cakuba> (raw)
In-Reply-To: <CA+sq2CenEgQ31St1kGgvWfxgyjv2fhT=Xmpt+QZZrtN3faPAqw@mail.gmail.com>
On Thu, 23 Jan 2020 00:59:54 +0530, Sunil Kovvuri wrote:
> On Tue, Jan 21, 2020 at 9:31 PM Jakub Kicinski <kuba@kernel.org> wrote:
> > On Tue, 21 Jan 2020 18:51:38 +0530, sunil.kovvuri@gmail.com wrote:
> > > +dma_addr_t otx2_alloc_rbuf(struct otx2_nic *pfvf, struct otx2_pool *pool,
> > > + gfp_t gfp)
> > > +{
> > > + dma_addr_t iova;
> > > +
> > > + /* Check if request can be accommodated in previous allocated page */
> > > + if (pool->page &&
> > > + ((pool->page_offset + pool->rbsize) <= PAGE_SIZE)) {
You use straight PAGE_SIZE here
> > > + pool->pageref++;
> > > + goto ret;
> > > + }
> > > +
> > > + otx2_get_page(pool);
> > > +
> > > + /* Allocate a new page */
> > > + pool->page = alloc_pages(gfp | __GFP_COMP | __GFP_NOWARN,
> > > + pool->rbpage_order);
but allocate with order
> > > + if (unlikely(!pool->page))
> > > + return -ENOMEM;
> > > +
> > > + pool->page_offset = 0;
> > > +ret:
> > > + iova = (u64)otx2_dma_map_page(pfvf, pool->page, pool->page_offset,
> > > + pool->rbsize, DMA_FROM_DEVICE);
> > > + if (!iova) {
> > > + if (!pool->page_offset)
> > > + __free_pages(pool->page, pool->rbpage_order);
> > > + pool->page = NULL;
> > > + return -ENOMEM;
> > > + }
> > > + pool->page_offset += pool->rbsize;
> > > + return iova;
> > > +}
> >
> > You don't seem to be doing any page recycling if I'm reading this right.
> > Can't you use the standard in-kernel page frag allocator
> > (netdev_alloc_frag/napi_alloc_frag)?
>
> netdev_alloc_frag() is costly.
> eg: it does updates to page's refcount per frag allocation.
It would be nice to see it improve rather than have drivers implement
a slight variation of the scheme :/
next prev parent reply other threads:[~2020-01-23 14:20 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-21 13:21 [PATCH v4 00/17] octeontx2-pf: Add network driver for physical function sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 01/17] octeontx2-pf: Add Marvell OcteonTX2 NIC driver sunil.kovvuri
2020-01-21 16:00 ` Jakub Kicinski
2020-01-21 13:21 ` [PATCH v4 02/17] octeontx2-pf: Mailbox communication with AF sunil.kovvuri
2020-01-21 16:00 ` Jakub Kicinski
2020-01-22 19:27 ` Sunil Kovvuri
2020-01-23 14:14 ` Jakub Kicinski
2020-01-24 8:33 ` Maciej Fijalkowski
2020-01-24 17:15 ` Sunil Kovvuri
2020-01-21 13:21 ` [PATCH v4 03/17] octeontx2-pf: Attach NIX and NPA block LFs sunil.kovvuri
2020-01-21 16:00 ` Jakub Kicinski
2020-01-22 19:27 ` Sunil Kovvuri
2020-01-21 13:21 ` [PATCH v4 04/17] octeontx2-pf: Initialize and config queues sunil.kovvuri
2020-01-21 16:00 ` Jakub Kicinski
2020-01-22 19:29 ` Sunil Kovvuri
2020-01-23 14:20 ` Jakub Kicinski [this message]
2020-01-24 11:21 ` Sunil Kovvuri
2020-01-21 13:21 ` [PATCH v4 05/17] octeontx2-pf: Setup interrupts and NAPI handler sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 06/17] octeontx2-pf: Receive packet handling support sunil.kovvuri
2020-01-21 16:33 ` Jakub Kicinski
2020-01-22 19:34 ` Sunil Kovvuri
2020-01-24 10:14 ` Maciej Fijalkowski
2020-01-21 13:21 ` [PATCH v4 07/17] octeontx2-pf: Add packet transmission support sunil.kovvuri
2020-01-21 16:54 ` Jakub Kicinski
2020-01-22 19:50 ` Sunil Kovvuri
2020-01-23 14:24 ` Jakub Kicinski
2020-01-21 13:21 ` [PATCH v4 08/17] octeontx2-pf: Register and handle link notifications sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 09/17] octeontx2-pf: MTU, MAC and RX mode config support sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 10/17] octeontx2-pf: Error handling support sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 11/17] octeontx2-pf: Receive side scaling support sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 12/17] octeontx2-pf: TCP segmentation offload support sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 13/17] octeontx2-pf: Add ndo_get_stats64 sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 14/17] octeontx2-pf: Add basic ethtool support sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 15/17] octeontx2-pf: ethtool RSS config support sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 16/17] Documentation: net: octeontx2: Add RVU HW and drivers overview sunil.kovvuri
2020-01-21 13:21 ` [PATCH v4 17/17] MAINTAINERS: Add entry for Marvell OcteonTX2 Physical Function driver sunil.kovvuri
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200123062017.3cbefe70@cakuba \
--to=kuba@kernel.org \
--cc=davem@davemloft.net \
--cc=gakula@marvell.com \
--cc=mkubecek@suse.cz \
--cc=netdev@vger.kernel.org \
--cc=sgoutham@marvell.com \
--cc=sunil.kovvuri@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.