LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Jia He <hejianet@gmail.com> To: Russell King <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, Mark Rutland <mark.rutland@arm.com>, Ard Biesheuvel <ard.biesheuvel@linaro.org>, Andrew Morton <akpm@linux-foundation.org>, Michal Hocko <mhocko@suse.com> Cc: Wei Yang <richard.weiyang@gmail.com>, Kees Cook <keescook@chromium.org>, Laura Abbott <labbott@redhat.com>, Vladimir Murzin <vladimir.murzin@arm.com>, Philip Derrin <philip@cog.systems>, AKASHI Takahiro <takahiro.akashi@linaro.org>, James Morse <james.morse@arm.com>, Steve Capper <steve.capper@arm.com>, Pavel Tatashin <pasha.tatashin@oracle.com>, Gioh Kim <gi-oh.kim@profitbricks.com>, Vlastimil Babka <vbabka@suse.cz>, Mel Gorman <mgorman@suse.de>, Johannes Weiner <hannes@cmpxchg.org>, Kemi Wang <kemi.wang@intel.com>, Petr Tesarik <ptesarik@suse.com>, YASUAKI ISHIMATSU <yasu.isimatu@gmail.com>, Andrey Ryabinin <aryabinin@virtuozzo.com>, Nikolay Borisov <nborisov@suse.com>, Daniel Jordan <daniel.m.jordan@oracle.com>, Daniel Vacek <neelx@redhat.com>, Eugeniu Rosca <erosca@de.adit-jv.com>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Jia He <hejianet@gmail.com>, Jia He <jia.he@hxt-semitech.com> Subject: [PATCH v7 4/5] arm: arm64: introduce pfn_valid_region() Date: Thu, 5 Apr 2018 01:04:37 -0700 [thread overview] Message-ID: <1522915478-5044-5-git-send-email-hejianet@gmail.com> (raw) In-Reply-To: <1522915478-5044-1-git-send-email-hejianet@gmail.com> Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") optimized the loop in memmap_init_zone(). But there is still some room for improvement. E.g. in early_pfn_valid(), we can record the last returned memblock region. If current pfn and last pfn are in the same memory region, we needn't do the unnecessary binary searches because memblock_is_nomap is the same result for whole memory region. Signed-off-by: Jia He <jia.he@hxt-semitech.com> --- include/linux/arm96_common.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/include/linux/arm96_common.h b/include/linux/arm96_common.h index 2f4dea4..bb86bd3 100644 --- a/include/linux/arm96_common.h +++ b/include/linux/arm96_common.h @@ -48,5 +48,29 @@ ulong __init_memblock memblock_next_valid_pfn(ulong pfn) return PHYS_PFN(regions[early_region_idx].base); } EXPORT_SYMBOL(memblock_next_valid_pfn); + +int pfn_valid_region(ulong pfn) +{ + ulong start_pfn, end_pfn; + struct memblock_type *type = &memblock.memory; + struct memblock_region *regions = type->regions; + + if (early_region_idx != -1) { + start_pfn = PFN_DOWN(regions[early_region_idx].base); + end_pfn = PFN_DOWN(regions[early_region_idx].base + + regions[early_region_idx].size); + + if (pfn >= start_pfn && pfn < end_pfn) + return !memblock_is_nomap( + ®ions[early_region_idx]); + } + + early_region_idx = memblock_search_pfn_regions(pfn); + if (early_region_idx == -1) + return false; + + return !memblock_is_nomap(®ions[early_region_idx]); +} +EXPORT_SYMBOL(pfn_valid_region); #endif /*CONFIG_HAVE_ARCH_PFN_VALID*/ #endif /*__ARM96_COMMON_H*/ -- 2.7.4
next prev parent reply other threads:[~2018-04-05 8:05 UTC|newest] Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-05 8:04 [PATCH v7 0/5] optimize memblock_next_valid_pfn and early_pfn_valid on arm and arm64 Jia He 2018-04-05 8:04 ` [PATCH v7 1/5] mm: page_alloc: remain memblock_next_valid_pfn() " Jia He 2018-04-05 11:23 ` Matthew Wilcox 2018-04-05 12:29 ` Jia He 2018-04-05 8:04 ` [PATCH v7 2/5] arm: arm64: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn() Jia He 2018-04-05 11:34 ` Matthew Wilcox 2018-04-05 12:44 ` Jia He 2018-04-05 12:50 ` Matthew Wilcox 2018-04-06 9:09 ` Russell King - ARM Linux 2018-04-06 10:23 ` Daniel Vacek 2018-04-08 2:05 ` Jia He 2018-04-05 8:04 ` [PATCH v7 3/5] mm/memblock: introduce memblock_search_pfn_regions() Jia He 2018-04-05 8:04 ` Jia He [this message] 2018-04-05 8:04 ` [PATCH v7 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid() Jia He
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=1522915478-5044-5-git-send-email-hejianet@gmail.com \ --to=hejianet@gmail.com \ --cc=akpm@linux-foundation.org \ --cc=ard.biesheuvel@linaro.org \ --cc=aryabinin@virtuozzo.com \ --cc=catalin.marinas@arm.com \ --cc=daniel.m.jordan@oracle.com \ --cc=erosca@de.adit-jv.com \ --cc=gi-oh.kim@profitbricks.com \ --cc=hannes@cmpxchg.org \ --cc=james.morse@arm.com \ --cc=jia.he@hxt-semitech.com \ --cc=keescook@chromium.org \ --cc=kemi.wang@intel.com \ --cc=labbott@redhat.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux@armlinux.org.uk \ --cc=mark.rutland@arm.com \ --cc=mgorman@suse.de \ --cc=mhocko@suse.com \ --cc=nborisov@suse.com \ --cc=neelx@redhat.com \ --cc=pasha.tatashin@oracle.com \ --cc=philip@cog.systems \ --cc=ptesarik@suse.com \ --cc=richard.weiyang@gmail.com \ --cc=steve.capper@arm.com \ --cc=takahiro.akashi@linaro.org \ --cc=vbabka@suse.cz \ --cc=vladimir.murzin@arm.com \ --cc=will.deacon@arm.com \ --cc=yasu.isimatu@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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).