From: Mel Gorman <mgorman@techsingularity.net>
To: Jesper Dangaard Brouer <brouer@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Vlastimil Babka <vbabka@suse.cz>,
Chuck Lever <chuck.lever@oracle.com>,
Christoph Hellwig <hch@infradead.org>,
Alexander Duyck <alexander.duyck@gmail.com>,
Matthew Wilcox <willy@infradead.org>,
LKML <linux-kernel@vger.kernel.org>,
Linux-Net <netdev@vger.kernel.org>, Linux-MM <linux-mm@kvack.org>,
Linux-NFS <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH 2/3] mm/page_alloc: Add a bulk page allocator
Date: Tue, 23 Mar 2021 18:43:05 +0000 [thread overview]
Message-ID: <20210323184305.GN3697@techsingularity.net> (raw)
In-Reply-To: <20210323170008.5d0732be@carbon>
On Tue, Mar 23, 2021 at 05:00:08PM +0100, Jesper Dangaard Brouer wrote:
> > + /*
> > + * If there are no allowed local zones that meets the watermarks then
> > + * try to allocate a single page and reclaim if necessary.
> > + */
> > + if (!zone)
> > + goto failed;
> > +
> > + /* Attempt the batch allocation */
> > + local_irq_save(flags);
> > + pcp = &this_cpu_ptr(zone->pageset)->pcp;
> > + pcp_list = &pcp->lists[ac.migratetype];
> > +
> > + while (allocated < nr_pages) {
> > + page = __rmqueue_pcplist(zone, ac.migratetype, alloc_flags,
> > + pcp, pcp_list);
>
> The function __rmqueue_pcplist() is now used two places, this cause the
> compiler to uninline the static function.
>
This was expected. It was not something I was particularly happy with
but avoiding it was problematic without major refactoring.
> My tests show you should inline __rmqueue_pcplist(). See patch I'm
> using below signature, which also have some benchmark notes. (Please
> squash it into your patch and drop these notes).
>
The cycle savings per element is very marginal at just 4 cycles. I
expect just the silly stat updates are way more costly but the series
that addresses that is likely to be controversial. As I know the cycle
budget for processing a packet is tight, I've applied the patch but am
keeping it separate to preserve the data in case someone points out that
is a big function to inline and "fixes" it.
--
Mel Gorman
SUSE Labs
next prev parent reply other threads:[~2021-03-23 18:44 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-22 9:18 [PATCH 0/3 v5] Introduce a bulk order-0 page allocator Mel Gorman
2021-03-22 9:18 ` [PATCH 1/3] mm/page_alloc: Rename alloced to allocated Mel Gorman
2021-03-22 9:18 ` [PATCH 2/3] mm/page_alloc: Add a bulk page allocator Mel Gorman
2021-03-23 16:00 ` Jesper Dangaard Brouer
2021-03-23 18:43 ` Mel Gorman [this message]
2021-03-22 9:18 ` [PATCH 3/3] mm/page_alloc: Add an array-based interface to the " Mel Gorman
2021-03-22 12:04 ` [PATCH 0/3 v5] Introduce a bulk order-0 " Jesper Dangaard Brouer
2021-03-22 16:44 ` Mel Gorman
2021-03-22 18:25 ` Chuck Lever III
2021-03-22 19:49 ` Mel Gorman
2021-03-22 20:32 ` Chuck Lever III
2021-03-22 20:58 ` Mel Gorman
2021-03-23 11:08 ` Jesper Dangaard Brouer
2021-03-23 14:45 ` Mel Gorman
2021-03-23 18:52 ` Chuck Lever III
2021-03-23 11:13 ` Matthew Wilcox
2021-03-23 10:44 ` Mel Gorman
2021-03-23 15:08 ` Jesper Dangaard Brouer
2021-03-23 16:29 ` Mel Gorman
2021-03-23 17:06 ` Jesper Dangaard Brouer
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=20210323184305.GN3697@techsingularity.net \
--to=mgorman@techsingularity.net \
--cc=akpm@linux-foundation.org \
--cc=alexander.duyck@gmail.com \
--cc=brouer@redhat.com \
--cc=chuck.lever@oracle.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nfs@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=vbabka@suse.cz \
--cc=willy@infradead.org \
/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.