[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <571FC658.3030206@suse.cz>
Date: Tue, 26 Apr 2016 21:49:44 +0200
From: Vlastimil Babka <vbabka@...e.cz>
To: Mel Gorman <mgorman@...hsingularity.net>,
Andrew Morton <akpm@...ux-foundation.org>
Cc: Jesper Dangaard Brouer <brouer@...hat.com>,
Linux-MM <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>,
Zefan Li <lizefan@...wei.com>
Subject: Re: [PATCH 26/28] cpuset: use static key better and convert to new
API
On 04/15/2016 11:07 AM, Mel Gorman wrote:
> From: Vlastimil Babka <vbabka@...e.cz>
>
> An important function for cpusets is cpuset_node_allowed(), which optimizes on
> the fact if there's a single root CPU set, it must be trivially allowed. But
> the check "nr_cpusets() <= 1" doesn't use the cpusets_enabled_key static key
> the right way where static keys eliminate branching overhead with jump labels.
>
> This patch converts it so that static key is used properly. It's also switched
> to the new static key API and the checking functions are converted to return
> bool instead of int. We also provide a new variant __cpuset_zone_allowed()
> which expects that the static key check was already done and they key was
> enabled. This is needed for get_page_from_freelist() where we want to also
> avoid the relatively slower check when ALLOC_CPUSET is not set in alloc_flags.
>
> The impact on the page allocator microbenchmark is less than expected but the
> cleanup in itself is worthwhile.
>
> 4.6.0-rc2 4.6.0-rc2
> multcheck-v1r20 cpuset-v1r20
> Min alloc-odr0-1 348.00 ( 0.00%) 348.00 ( 0.00%)
> Min alloc-odr0-2 254.00 ( 0.00%) 254.00 ( 0.00%)
> Min alloc-odr0-4 213.00 ( 0.00%) 213.00 ( 0.00%)
> Min alloc-odr0-8 186.00 ( 0.00%) 183.00 ( 1.61%)
> Min alloc-odr0-16 173.00 ( 0.00%) 171.00 ( 1.16%)
> Min alloc-odr0-32 166.00 ( 0.00%) 163.00 ( 1.81%)
> Min alloc-odr0-64 162.00 ( 0.00%) 159.00 ( 1.85%)
> Min alloc-odr0-128 160.00 ( 0.00%) 157.00 ( 1.88%)
> Min alloc-odr0-256 169.00 ( 0.00%) 166.00 ( 1.78%)
> Min alloc-odr0-512 180.00 ( 0.00%) 180.00 ( 0.00%)
> Min alloc-odr0-1024 188.00 ( 0.00%) 187.00 ( 0.53%)
> Min alloc-odr0-2048 194.00 ( 0.00%) 193.00 ( 0.52%)
> Min alloc-odr0-4096 199.00 ( 0.00%) 198.00 ( 0.50%)
> Min alloc-odr0-8192 202.00 ( 0.00%) 201.00 ( 0.50%)
> Min alloc-odr0-16384 203.00 ( 0.00%) 202.00 ( 0.49%)
>
> Signed-off-by: Vlastimil Babka <vbabka@...e.cz>
> Signed-off-by: Mel Gorman <mgorman@...hsingularity.net>
Acked-by: Vl... ah, no, I actually wrote this one.
But since the cpuset maintainer acked [1] my earlier posting only after Mel
included it in this series, I think it's worth transferring it here:
Acked-by: Zefan Li <lizefan@...wei.com>
[1] http://marc.info/?l=linux-mm&m=146062276216574&w=2
Powered by blists - more mailing lists