Re: [PATCH v5 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-04-02 Thread Jia He
On 4/2/2018 3:00 PM, Ard Biesheuvel Wrote: How much does it improve the performance? And in which cases? I guess it improves boot time on systems with physical address spaces that are sparsely populated with DRAM, but you really have to quantify this if you want other people to care. Yes, I

Re: [PATCH v5 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-04-02 Thread Jia He
On 4/2/2018 3:00 PM, Ard Biesheuvel Wrote: How much does it improve the performance? And in which cases? I guess it improves boot time on systems with physical address spaces that are sparsely populated with DRAM, but you really have to quantify this if you want other people to care. Yes, I

Re: [PATCH v5 1/5] mm: page_alloc: remain memblock_next_valid_pfn() on arm and arm64

2018-04-02 Thread Jia He
On 4/2/2018 2:55 PM, Ard Biesheuvel Wrote: On 2 April 2018 at 04:30, Jia He <hejia...@gmail.com> wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") optimized the loop in memmap_init_zone(). But it causes possible panic bug. So Danie

Re: [PATCH v5 1/5] mm: page_alloc: remain memblock_next_valid_pfn() on arm and arm64

2018-04-02 Thread Jia He
On 4/2/2018 2:55 PM, Ard Biesheuvel Wrote: On 2 April 2018 at 04:30, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") optimized the loop in memmap_init_zone(). But it causes possible panic bug. So Daniel Vacek reverte

[PATCH v5 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-04-01 Thread Jia He
d memblock region index and check check pfn++ is still in the same region. Currently it only improve the performance on arm64 and will have no impact on other arches. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/mmzone.h | 7 ++- 1 file changed, 6 insertions(+), 1 d

[PATCH v5 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-04-01 Thread Jia He
d memblock region index and check check pfn++ is still in the same region. Currently it only improve the performance on arm64 and will have no impact on other arches. Signed-off-by: Jia He --- include/linux/mmzone.h | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/inc

[PATCH v5 4/5] arm64: introduce pfn_valid_region()

2018-04-01 Thread Jia He
This is the preparation for further optimizing in early_pfn_valid on arm and arm64. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/arm/include/asm/page.h | 3 ++- arch/arm/mm/init.c| 24 arch/arm64/include/asm/page.h | 3 ++- arch/ar

[PATCH v5 4/5] arm64: introduce pfn_valid_region()

2018-04-01 Thread Jia He
This is the preparation for further optimizing in early_pfn_valid on arm and arm64. Signed-off-by: Jia He --- arch/arm/include/asm/page.h | 3 ++- arch/arm/mm/init.c| 24 arch/arm64/include/asm/page.h | 3 ++- arch/arm64/mm/init.c | 24

[PATCH v5 3/5] mm/memblock: introduce memblock_search_pfn_regions()

2018-04-01 Thread Jia He
This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/memblock.h | 2 ++ mm/memblock.c| 9 + 2 files changed, 11 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memb

[PATCH v5 3/5] mm/memblock: introduce memblock_search_pfn_regions()

2018-04-01 Thread Jia He
This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He --- include/linux/memblock.h | 2 ++ mm/memblock.c| 9 + 2 files changed, 11 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memblock.h index 0257aee..a0127b3 100644

[PATCH v5 0/5] optimize memblock_next_valid_pfn and early_pfn_valid on arm and arm64

2018-04-01 Thread Jia He
t_valid_pfn on arm64 - refine memblock_search_pfn_regions and pfn_valid_region Jia He (5): mm: page_alloc: remain memblock_next_valid_pfn() on arm and arm64 arm: arm64: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn() mm/memblock: introduce memblock_search_pfn_re

[PATCH v5 2/5] arm: arm64: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-04-01 Thread Jia He
ary search in memblock_next_valid_pfn. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/arm/include/asm/page.h | 1 + arch/arm/mm/init.c| 28 ++-- arch/arm64/include/asm/page.h | 1 + arch/arm64/mm/init.c | 28 ++-- 4 f

[PATCH v5 1/5] mm: page_alloc: remain memblock_next_valid_pfn() on arm and arm64

2018-04-01 Thread Jia He
Vacek <ne...@redhat.com> Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/arm/include/asm/page.h | 2 ++ arch/arm/mm/init.c| 31 ++- arch/arm64/include/asm/page.h | 2 ++ arch/arm64/mm/init.c | 31 ++-

[PATCH v5 0/5] optimize memblock_next_valid_pfn and early_pfn_valid on arm and arm64

2018-04-01 Thread Jia He
t_valid_pfn on arm64 - refine memblock_search_pfn_regions and pfn_valid_region Jia He (5): mm: page_alloc: remain memblock_next_valid_pfn() on arm and arm64 arm: arm64: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn() mm/memblock: introduce memblock_search_pfn_re

[PATCH v5 2/5] arm: arm64: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-04-01 Thread Jia He
ary search in memblock_next_valid_pfn. Signed-off-by: Jia He --- arch/arm/include/asm/page.h | 1 + arch/arm/mm/init.c| 28 ++-- arch/arm64/include/asm/page.h | 1 + arch/arm64/mm/init.c | 28 ++-- 4 files changed, 46 insertions(+), 12

[PATCH v5 1/5] mm: page_alloc: remain memblock_next_valid_pfn() on arm and arm64

2018-04-01 Thread Jia He
Signed-off-by: Jia He --- arch/arm/include/asm/page.h | 2 ++ arch/arm/mm/init.c| 31 ++- arch/arm64/include/asm/page.h | 2 ++ arch/arm64/mm/init.c | 31 ++- include/linux/mmzone.h| 1 + mm/page_alloc.c

[PATCH v4 4/5] arm64: introduce pfn_valid_region()

2018-03-30 Thread Jia He
This is the preparation for further optimizing in early_pfn_valid on arm and arm64. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/arm/include/asm/page.h | 3 ++- arch/arm/mm/init.c| 23 +++ arch/arm64/include/asm/page.h | 3 ++- arch/arm64/mm/

[PATCH v4 4/5] arm64: introduce pfn_valid_region()

2018-03-30 Thread Jia He
This is the preparation for further optimizing in early_pfn_valid on arm and arm64. Signed-off-by: Jia He --- arch/arm/include/asm/page.h | 3 ++- arch/arm/mm/init.c| 23 +++ arch/arm64/include/asm/page.h | 3 ++- arch/arm64/mm/init.c | 23

[PATCH v4 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-03-30 Thread Jia He
d memblock region index and check check pfn++ is still in the same region. Currently it only improve the performance on arm64 and will have no impact on other arches. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/mmzone.h | 7 ++- 1 file changed, 6 insertions(+), 1 d

[PATCH v4 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-03-30 Thread Jia He
d memblock region index and check check pfn++ is still in the same region. Currently it only improve the performance on arm64 and will have no impact on other arches. Signed-off-by: Jia He --- include/linux/mmzone.h | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/inc

[PATCH v4 2/5] arm: arm64: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-30 Thread Jia He
ary search in memblock_next_valid_pfn. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/arm/include/asm/page.h | 1 + arch/arm/mm/init.c| 31 --- arch/arm64/include/asm/page.h | 1 + arch/arm64/mm/init.c | 31 ---

[PATCH v4 3/5] mm/memblock: introduce memblock_search_pfn_regions()

2018-03-30 Thread Jia He
This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/memblock.h | 2 ++ mm/memblock.c| 9 + 2 files changed, 11 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memb

[PATCH v4 2/5] arm: arm64: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-30 Thread Jia He
ary search in memblock_next_valid_pfn. Signed-off-by: Jia He --- arch/arm/include/asm/page.h | 1 + arch/arm/mm/init.c| 31 --- arch/arm64/include/asm/page.h | 1 + arch/arm64/mm/init.c | 31 --- mm/page_alloc.c

[PATCH v4 3/5] mm/memblock: introduce memblock_search_pfn_regions()

2018-03-30 Thread Jia He
This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He --- include/linux/memblock.h | 2 ++ mm/memblock.c| 9 + 2 files changed, 11 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memblock.h index 0257aee..a0127b3 100644

[PATCH v4 0/5] optimize memblock_next_valid_pfn and early_pfn_valid

2018-03-30 Thread Jia He
- refine patches as suggested by Danial Vacek and Wei Yang - optimized on arm besides arm64 V3: - fix 2 issues reported by kbuild test robot V2: - rebase to mmotm latest - remain memblock_next_valid_pfn on arm64 - refine memblock_search_pfn_regions and pfn_valid_region Jia He (5)

[PATCH v4 0/5] optimize memblock_next_valid_pfn and early_pfn_valid

2018-03-30 Thread Jia He
- refine patches as suggested by Danial Vacek and Wei Yang - optimized on arm besides arm64 V3: - fix 2 issues reported by kbuild test robot V2: - rebase to mmotm latest - remain memblock_next_valid_pfn on arm64 - refine memblock_search_pfn_regions and pfn_valid_region Jia He (5)

[PATCH v4 1/5] mm: page_alloc: remain memblock_next_valid_pfn() on arm and arm64

2018-03-30 Thread Jia He
Vacek <ne...@redhat.com> Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/arm/mm/init.c | 31 ++- arch/arm64/mm/init.c | 31 ++- mm/page_alloc.c | 13 - 3 files changed, 72 insertions(+), 3 deletions(-) diff --git

[PATCH v4 1/5] mm: page_alloc: remain memblock_next_valid_pfn() on arm and arm64

2018-03-30 Thread Jia He
Signed-off-by: Jia He --- arch/arm/mm/init.c | 31 ++- arch/arm64/mm/init.c | 31 ++- mm/page_alloc.c | 13 - 3 files changed, 72 insertions(+), 3 deletions(-) diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index a1f11a

Re: [PATCH v3 2/5] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-29 Thread Jia He
On 3/30/2018 9:43 AM, Wei Yang Wrote: On Thu, Mar 29, 2018 at 04:06:38PM +0800, Jia He wrote: On 3/28/2018 5:26 PM, Wei Yang Wrote: On Sun, Mar 25, 2018 at 08:02:16PM -0700, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible")

Re: [PATCH v3 2/5] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-29 Thread Jia He
On 3/30/2018 9:43 AM, Wei Yang Wrote: On Thu, Mar 29, 2018 at 04:06:38PM +0800, Jia He wrote: On 3/28/2018 5:26 PM, Wei Yang Wrote: On Sun, Mar 25, 2018 at 08:02:16PM -0700, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible")

Re: [PATCH v3 2/5] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-29 Thread Jia He
On 3/28/2018 5:26 PM, Wei Yang Wrote: On Sun, Mar 25, 2018 at 08:02:16PM -0700, Jia He wrote: 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. if pfn

Re: [PATCH v3 2/5] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-29 Thread Jia He
On 3/28/2018 5:26 PM, Wei Yang Wrote: On Sun, Mar 25, 2018 at 08:02:16PM -0700, Jia He wrote: 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. if pfn

Re: [PATCH v3 1/5] mm: page_alloc: remain memblock_next_valid_pfn() when CONFIG_HAVE_ARCH_PFN_VALID is enable

2018-03-28 Thread Jia He
On 3/28/2018 5:18 PM, Wei Yang Wrote: Oops, I should reply this thread. Forget about the reply on another thread. On Sun, Mar 25, 2018 at 08:02:15PM -0700, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") optimize

Re: [PATCH v3 1/5] mm: page_alloc: remain memblock_next_valid_pfn() when CONFIG_HAVE_ARCH_PFN_VALID is enable

2018-03-28 Thread Jia He
On 3/28/2018 5:18 PM, Wei Yang Wrote: Oops, I should reply this thread. Forget about the reply on another thread. On Sun, Mar 25, 2018 at 08:02:15PM -0700, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") optimize

Re: [PATCH v2 1/5] mm: page_alloc: remain memblock_next_valid_pfn() when CONFIG_HAVE_ARCH_PFN_VALID is enable

2018-03-28 Thread Jia He
On 3/28/2018 12:52 AM, Daniel Vacek Wrote: On Sat, Mar 24, 2018 at 1:24 PM, Jia He <hejia...@gmail.com> wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") optimized the loop in memmap_init_zone(). But it causes possible panic bug.

Re: [PATCH v2 1/5] mm: page_alloc: remain memblock_next_valid_pfn() when CONFIG_HAVE_ARCH_PFN_VALID is enable

2018-03-28 Thread Jia He
On 3/28/2018 12:52 AM, Daniel Vacek Wrote: On Sat, Mar 24, 2018 at 1:24 PM, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") optimized the loop in memmap_init_zone(). But it causes possible panic bug. So Daniel Vacek reverte

Re: [PATCH v3 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-03-27 Thread Jia He
On 3/28/2018 1:51 AM, Daniel Vacek Wrote: On Mon, Mar 26, 2018 at 5:02 AM, Jia He <hejia...@gmail.com> wrote: 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

Re: [PATCH v3 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-03-27 Thread Jia He
On 3/28/2018 1:51 AM, Daniel Vacek Wrote: On Mon, Mar 26, 2018 at 5:02 AM, Jia He wrote: 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

Re: [PATCH v3 2/5] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-27 Thread Jia He
On 3/28/2018 1:17 AM, Daniel Vacek Wrote: On Mon, Mar 26, 2018 at 5:02 AM, Jia He <hejia...@gmail.com> wrote: 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

Re: [PATCH v3 2/5] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-27 Thread Jia He
On 3/28/2018 1:17 AM, Daniel Vacek Wrote: On Mon, Mar 26, 2018 at 5:02 AM, Jia He wrote: 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. if pfn

Re: [PATCH v2 1/5] mm: page_alloc: remain memblock_next_valid_pfn() when CONFIG_HAVE_ARCH_PFN_VALID is enable

2018-03-27 Thread Jia He
On 3/28/2018 12:52 AM, Daniel Vacek Wrote: On Sat, Mar 24, 2018 at 1:24 PM, Jia He <hejia...@gmail.com> wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") optimized the loop in memmap_init_zone(). But it causes possible panic bug.

Re: [PATCH v2 1/5] mm: page_alloc: remain memblock_next_valid_pfn() when CONFIG_HAVE_ARCH_PFN_VALID is enable

2018-03-27 Thread Jia He
On 3/28/2018 12:52 AM, Daniel Vacek Wrote: On Sat, Mar 24, 2018 at 1:24 PM, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") optimized the loop in memmap_init_zone(). But it causes possible panic bug. So Daniel Vacek reverte

Re: [PATCH v3 0/5] optimize memblock_next_valid_pfn and early_pfn_valid

2018-03-27 Thread Jia He
On 3/28/2018 8:30 AM, Wei Yang Wrote: On Tue, Mar 27, 2018 at 03:15:08PM +0800, Jia He wrote: On 3/27/2018 9:02 AM, Wei Yang Wrote: On Sun, Mar 25, 2018 at 08:02:14PM -0700, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible&qu

Re: [PATCH v3 0/5] optimize memblock_next_valid_pfn and early_pfn_valid

2018-03-27 Thread Jia He
On 3/28/2018 8:30 AM, Wei Yang Wrote: On Tue, Mar 27, 2018 at 03:15:08PM +0800, Jia He wrote: On 3/27/2018 9:02 AM, Wei Yang Wrote: On Sun, Mar 25, 2018 at 08:02:14PM -0700, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible&qu

Re: [PATCH v3 0/5] optimize memblock_next_valid_pfn and early_pfn_valid

2018-03-27 Thread Jia He
On 3/27/2018 9:02 AM, Wei Yang Wrote: On Sun, Mar 25, 2018 at 08:02:14PM -0700, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") tried to optimize the loop in memmap_init_zone(). But there is still some room for improvement

Re: [PATCH v3 0/5] optimize memblock_next_valid_pfn and early_pfn_valid

2018-03-27 Thread Jia He
On 3/27/2018 9:02 AM, Wei Yang Wrote: On Sun, Mar 25, 2018 at 08:02:14PM -0700, Jia He wrote: Commit b92df1de5d28 ("mm: page_alloc: skip over regions of invalid pfns where possible") tried to optimize the loop in memmap_init_zone(). But there is still some room for improvement

[PATCH v3 4/5] arm64: introduce pfn_valid_region()

2018-03-25 Thread Jia He
This is the preparation for further optimizing in early_pfn_valid on arm64. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/arm64/include/asm/page.h | 3 ++- arch/arm64/mm/init.c | 25 - 2 files changed, 26 insertions(+), 2 deletions(-) diff

[PATCH v3 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-03-25 Thread Jia He
d memblock region index and check check pfn++ is still in the same region. Currently it only improve the performance on arm64 and will have no impact on other arches. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/x86/include/asm/mmzone_32.h | 2 +- include/linux/mmzone.

[PATCH v3 3/5] mm/memblock: introduce memblock_search_pfn_regions()

2018-03-25 Thread Jia He
This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/memblock.h | 2 ++ mm/memblock.c| 9 + 2 files changed, 11 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memb

[PATCH v3 4/5] arm64: introduce pfn_valid_region()

2018-03-25 Thread Jia He
This is the preparation for further optimizing in early_pfn_valid on arm64. Signed-off-by: Jia He --- arch/arm64/include/asm/page.h | 3 ++- arch/arm64/mm/init.c | 25 - 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm

[PATCH v3 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-03-25 Thread Jia He
d memblock region index and check check pfn++ is still in the same region. Currently it only improve the performance on arm64 and will have no impact on other arches. Signed-off-by: Jia He --- arch/x86/include/asm/mmzone_32.h | 2 +- include/linux/mmzone.h | 12 +--- mm/pa

[PATCH v3 3/5] mm/memblock: introduce memblock_search_pfn_regions()

2018-03-25 Thread Jia He
This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He --- include/linux/memblock.h | 2 ++ mm/memblock.c| 9 + 2 files changed, 11 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memblock.h index a8fb2ab..104bca6 100644

[PATCH v3 2/5] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-25 Thread Jia He
ary search in memblock_next_valid_pfn. This patch only works when CONFIG_HAVE_ARCH_PFN_VALID is enable. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/memblock.h | 2 +- mm/memblock.c| 73 +--- mm/page_alloc.c | 3 +-

[PATCH v3 1/5] mm: page_alloc: remain memblock_next_valid_pfn() when CONFIG_HAVE_ARCH_PFN_VALID is enable

2018-03-25 Thread Jia He
s verified by Eugeniu Rosca, arm can benifit from this commit. So remain the memblock_next_valid_pfn. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/memblock.h | 4 mm/memblock.c| 29 + mm/page_alloc.c | 11 ++-

[PATCH v3 2/5] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-25 Thread Jia He
ary search in memblock_next_valid_pfn. This patch only works when CONFIG_HAVE_ARCH_PFN_VALID is enable. Signed-off-by: Jia He --- include/linux/memblock.h | 2 +- mm/memblock.c| 73 +--- mm/page_alloc.c | 3 +- 3 files changed, 47 inserti

[PATCH v3 1/5] mm: page_alloc: remain memblock_next_valid_pfn() when CONFIG_HAVE_ARCH_PFN_VALID is enable

2018-03-25 Thread Jia He
s verified by Eugeniu Rosca, arm can benifit from this commit. So remain the memblock_next_valid_pfn. Signed-off-by: Jia He --- include/linux/memblock.h | 4 mm/memblock.c| 29 + mm/page_alloc.c | 11 ++- 3 files changed, 43 insert

[PATCH v3 0/5] optimize memblock_next_valid_pfn and early_pfn_valid

2018-03-25 Thread Jia He
[ 87.233160] after memmap_init >>> memmap_init takes 3249 us >>> totally takes 24345 us Changelog: V3: - fix 2 issues reported by kbuild test robot V2: - rebase to mmotm latest - remain memblock_next_valid_pfn on arm64 - refine memblock_search_pfn_regions and pfn

[PATCH v3 0/5] optimize memblock_next_valid_pfn and early_pfn_valid

2018-03-25 Thread Jia He
[ 87.233160] after memmap_init >>> memmap_init takes 3249 us >>> totally takes 24345 us Changelog: V3: - fix 2 issues reported by kbuild test robot V2: - rebase to mmotm latest - remain memblock_next_valid_pfn on arm64 - refine memblock_search_pfn_regions and pfn

[PATCH v2 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-03-24 Thread Jia He
d memblock region index and check if pfn++ is still in the same region. Currently it only improve the performance on arm64 and will have no impact on other arches. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/x86/include/asm/mmzone_32.h | 2 +- include/linux/mmzone.

[PATCH v2 5/5] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-03-24 Thread Jia He
d memblock region index and check if pfn++ is still in the same region. Currently it only improve the performance on arm64 and will have no impact on other arches. Signed-off-by: Jia He --- arch/x86/include/asm/mmzone_32.h | 2 +- include/linux/mmzone.h | 12 +--- mm/pa

[PATCH v2 4/5] arm64: introduce pfn_valid_region()

2018-03-24 Thread Jia He
This is the preparation for further optimizing in early_pfn_valid on arm64. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/arm64/include/asm/page.h | 3 ++- arch/arm64/mm/init.c | 25 - 2 files changed, 26 insertions(+), 2 deletions(-) diff

[PATCH v2 4/5] arm64: introduce pfn_valid_region()

2018-03-24 Thread Jia He
This is the preparation for further optimizing in early_pfn_valid on arm64. Signed-off-by: Jia He --- arch/arm64/include/asm/page.h | 3 ++- arch/arm64/mm/init.c | 25 - 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm

[PATCH v2 2/5] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-24 Thread Jia He
ary search in memblock_next_valid_pfn. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/memblock.h | 2 +- mm/memblock.c| 73 +--- mm/page_alloc.c | 3 +- 3 files changed, 47 insertions(+), 31 deletions(-) diff --git

[PATCH v2 2/5] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-24 Thread Jia He
ary search in memblock_next_valid_pfn. Signed-off-by: Jia He --- include/linux/memblock.h | 2 +- mm/memblock.c| 73 +--- mm/page_alloc.c | 3 +- 3 files changed, 47 insertions(+), 31 deletions(-) diff --git a/include/linux/memblock.h b/inc

[PATCH v2 0/5] optimize memblock_next_valid_pfn() and early_pfn_valid()

2018-03-24 Thread Jia He
60] after memmap_init >>> memmap_init takes 3249 us >>> totally takes 24345 us Changelog: V2: - rebase to mmotm latest - remain memblock_next_valid_pfn on arm64 - refine memblock_search_pfn_regions and pfn_valid_region Jia He (5): mm: page_alloc: remain memblock_next_

[PATCH v2 0/5] optimize memblock_next_valid_pfn() and early_pfn_valid()

2018-03-24 Thread Jia He
60] after memmap_init >>> memmap_init takes 3249 us >>> totally takes 24345 us Changelog: V2: - rebase to mmotm latest - remain memblock_next_valid_pfn on arm64 - refine memblock_search_pfn_regions and pfn_valid_region Jia He (5): mm: page_alloc: remain memblock_next_

[PATCH v2 3/5] mm/memblock: introduce memblock_search_pfn_regions()

2018-03-24 Thread Jia He
This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/memblock.h | 2 ++ mm/memblock.c| 9 + 2 files changed, 11 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memb

[PATCH v2 3/5] mm/memblock: introduce memblock_search_pfn_regions()

2018-03-24 Thread Jia He
This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He --- include/linux/memblock.h | 2 ++ mm/memblock.c| 9 + 2 files changed, 11 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memblock.h index a8fb2ab..104bca6 100644

[PATCH v2 1/5] mm: page_alloc: remain memblock_next_valid_pfn() when CONFIG_HAVE_ARCH_PFN_VALID is enable

2018-03-24 Thread Jia He
s verified by Eugeniu Rosca, arm can benifit from this commit. So remain the memblock_next_valid_pfn. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/memblock.h | 4 mm/memblock.c| 29 + mm/page_alloc.c | 11 ++-

[PATCH v2 1/5] mm: page_alloc: remain memblock_next_valid_pfn() when CONFIG_HAVE_ARCH_PFN_VALID is enable

2018-03-24 Thread Jia He
s verified by Eugeniu Rosca, arm can benifit from this commit. So remain the memblock_next_valid_pfn. Signed-off-by: Jia He --- include/linux/memblock.h | 4 mm/memblock.c| 29 + mm/page_alloc.c | 11 ++- 3 files changed, 43 insert

Re: [PATCH 1/4] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-21 Thread Jia He
On 3/21/2018 6:14 PM, Daniel Vacek Wrote: On Wed, Mar 21, 2018 at 9:09 AM, Jia He <hejia...@gmail.com> wrote: 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

Re: [PATCH 1/4] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-21 Thread Jia He
On 3/21/2018 6:14 PM, Daniel Vacek Wrote: On Wed, Mar 21, 2018 at 9:09 AM, Jia He wrote: 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. if pfn

Re: [PATCH 2/4] mm/memblock: introduce memblock_search_pfn_regions()

2018-03-21 Thread Jia He
Hi Daniel Thanks for the review On 3/21/2018 6:14 PM, Daniel Vacek Wrote: On Wed, Mar 21, 2018 at 9:09 AM, Jia He <hejia...@gmail.com> wrote: This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linu

Re: [PATCH 2/4] mm/memblock: introduce memblock_search_pfn_regions()

2018-03-21 Thread Jia He
Hi Daniel Thanks for the review On 3/21/2018 6:14 PM, Daniel Vacek Wrote: On Wed, Mar 21, 2018 at 9:09 AM, Jia He wrote: This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He --- include/linux/memblock.h | 2 ++ mm/memblock.c| 12

[PATCH 4/4] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-03-21 Thread Jia He
+ is still in the same region. Currently it only improves the performance on arm64 and has no impact on other arches. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/x86/include/asm/mmzone_32.h | 2 +- include/linux/mmzone.h | 12 +--- mm/page_alloc.c

[PATCH 4/4] mm: page_alloc: reduce unnecessary binary search in early_pfn_valid()

2018-03-21 Thread Jia He
+ is still in the same region. Currently it only improves the performance on arm64 and has no impact on other arches. Signed-off-by: Jia He --- arch/x86/include/asm/mmzone_32.h | 2 +- include/linux/mmzone.h | 12 +--- mm/page_alloc.c | 2 +- 3 files changed, 11 insert

[PATCH 3/4] arm64: introduce pfn_valid_region()

2018-03-21 Thread Jia He
This is the preparation for further optimizing in early_pfn_valid on arm64. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- arch/arm64/include/asm/page.h | 3 ++- arch/arm64/mm/init.c | 19 ++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git

[PATCH 3/4] arm64: introduce pfn_valid_region()

2018-03-21 Thread Jia He
This is the preparation for further optimizing in early_pfn_valid on arm64. Signed-off-by: Jia He --- arch/arm64/include/asm/page.h | 3 ++- arch/arm64/mm/init.c | 19 ++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm/page.h b

[PATCH 1/4] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-21 Thread Jia He
ary search in memblock_next_valid_pfn. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/memblock.h | 3 +-- mm/memblock.c| 23 +++ mm/page_alloc.c | 3 ++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/include/linux/memblock.h

[PATCH RFC 0/4] optimize memblock_next_valid_pfn() and early_pfn_valid()

2018-03-21 Thread Jia He
after memmap_init >>> memmap_init takes 3850 us [ 87.209416] before memmap_init [ 87.226662] after memmap_init >>> memmap_init takes 17246 us [ 87.229911] before memmap_init [ 87.233160] after memmap_init >>> memmap_init takes 3249 us >>> tota

[PATCH 1/4] mm: page_alloc: reduce unnecessary binary search in memblock_next_valid_pfn()

2018-03-21 Thread Jia He
ary search in memblock_next_valid_pfn. Signed-off-by: Jia He --- include/linux/memblock.h | 3 +-- mm/memblock.c| 23 +++ mm/page_alloc.c | 3 ++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/include/linux/memblock.h b/include/linux/memblock.h ind

[PATCH RFC 0/4] optimize memblock_next_valid_pfn() and early_pfn_valid()

2018-03-21 Thread Jia He
after memmap_init >>> memmap_init takes 3850 us [ 87.209416] before memmap_init [ 87.226662] after memmap_init >>> memmap_init takes 17246 us [ 87.229911] before memmap_init [ 87.233160] after memmap_init >>> memmap_init takes 3249 us >>> tota

[PATCH 2/4] mm/memblock: introduce memblock_search_pfn_regions()

2018-03-21 Thread Jia He
This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He <jia...@hxt-semitech.com> --- include/linux/memblock.h | 2 ++ mm/memblock.c| 12 2 files changed, 14 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memb

[PATCH 2/4] mm/memblock: introduce memblock_search_pfn_regions()

2018-03-21 Thread Jia He
This api is the preparation for further optimizing early_pfn_valid Signed-off-by: Jia He --- include/linux/memblock.h | 2 ++ mm/memblock.c| 12 2 files changed, 14 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memblock.h index 9471db4..5f46956

Re: [PATCH] Revert "mm/memblock.c: hardcode the end_pfn being -1"

2018-03-16 Thread Jia He
On 3/16/2018 5:06 PM, Michal Hocko Wrote: On Thu 15-03-18 19:56:06, Jia He wrote: This reverts commit 379b03b7fa05f7db521b7732a52692448a3c34fe. Commit 864b75f9d6b0 ("mm/page_alloc: fix memmap_init_zone pageblock alignment") introduced boot hang issues in arm/arm64 machines, so Ard

Re: [PATCH] Revert "mm/memblock.c: hardcode the end_pfn being -1"

2018-03-16 Thread Jia He
On 3/16/2018 5:06 PM, Michal Hocko Wrote: On Thu 15-03-18 19:56:06, Jia He wrote: This reverts commit 379b03b7fa05f7db521b7732a52692448a3c34fe. Commit 864b75f9d6b0 ("mm/page_alloc: fix memmap_init_zone pageblock alignment") introduced boot hang issues in arm/arm64 machines, so Ard

[PATCH] Revert "mm/memblock.c: hardcode the end_pfn being -1"

2018-03-15 Thread Jia He
for commit 864b75f9d6b0. So just revert it for the sake of caution. Signed-off-by: Jia He <jia...@hxt-semitech.com> --- mm/memblock.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mm/memblock.c b/mm/memblock.c index b6ba6b7..5a9ca2a 100644 --- a/mm/memblock.c +++

[PATCH] Revert "mm/memblock.c: hardcode the end_pfn being -1"

2018-03-15 Thread Jia He
for commit 864b75f9d6b0. So just revert it for the sake of caution. Signed-off-by: Jia He --- mm/memblock.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mm/memblock.c b/mm/memblock.c index b6ba6b7..5a9ca2a 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -1107,7 +1107,7 @

Re: [PATCH] mm/page_alloc: fix boot hang in memmap_init_zone

2018-03-15 Thread Jia He
On 3/15/2018 11:39 PM, Daniel Vacek Wrote: On Thu, Mar 15, 2018 at 3:08 PM, Jia He <hejia...@gmail.com> wrote: Hi Daniel On 3/14/2018 6:42 AM, Daniel Vacek Wrote: On some architectures (reported on arm64) commit 864b75f9d6b01 ("mm/page_alloc: fix memmap_init_zone pagebloc

Re: [PATCH] mm/page_alloc: fix boot hang in memmap_init_zone

2018-03-15 Thread Jia He
On 3/15/2018 11:39 PM, Daniel Vacek Wrote: On Thu, Mar 15, 2018 at 3:08 PM, Jia He wrote: Hi Daniel On 3/14/2018 6:42 AM, Daniel Vacek Wrote: On some architectures (reported on arm64) commit 864b75f9d6b01 ("mm/page_alloc: fix memmap_init_zone pageblock alignment") causes a

Re: [PATCH] mm/page_alloc: fix boot hang in memmap_init_zone

2018-03-15 Thread Jia He
n will be (unsigned long)-1 and be larger than pfn. So still there is an infinite loop here. Cheers, Jia He #endif continue; } -- Cheers, Jia

Re: [PATCH] mm/page_alloc: fix boot hang in memmap_init_zone

2018-03-15 Thread Jia He
hus, next_pfn will be (unsigned long)-1 and be larger than pfn. So still there is an infinite loop here. Cheers, Jia He #endif continue; } -- Cheers, Jia

Re: [PATCH] ACPI/IORT: Remove linker section for IORT entries again

2018-02-07 Thread Jia He
On 2/7/2018 7:41 PM, Lorenzo Pieralisi Wrote: On Tue, Feb 06, 2018 at 08:11:34PM -0800, Jia He wrote: In commit 316ca8804ea8 ("ACPI/IORT: Remove linker section for IORT entries probing"), iort entries was removed in vmlinux.lds.h. But in commit 2fcc112af37f ("clocksource/

Re: [PATCH] ACPI/IORT: Remove linker section for IORT entries again

2018-02-07 Thread Jia He
On 2/7/2018 7:41 PM, Lorenzo Pieralisi Wrote: On Tue, Feb 06, 2018 at 08:11:34PM -0800, Jia He wrote: In commit 316ca8804ea8 ("ACPI/IORT: Remove linker section for IORT entries probing"), iort entries was removed in vmlinux.lds.h. But in commit 2fcc112af37f ("clocksource/

[PATCH] ACPI/IORT: Remove linker section for IORT entries again

2018-02-06 Thread Jia He
some useless symbols, so fix it. Signed-off-by: Jia He <hejia...@gmail.com> --- include/asm-generic/vmlinux.lds.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 1ab0e52..58b1dab 100644 --- a/include/asm-g

[PATCH] ACPI/IORT: Remove linker section for IORT entries again

2018-02-06 Thread Jia He
some useless symbols, so fix it. Signed-off-by: Jia He --- include/asm-generic/vmlinux.lds.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 1ab0e52..58b1dab 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b

Re: [PATCH] KVM: arm/arm64: don't set vtimer->cnt_ctl in kvm_arch_timer_handler

2017-12-21 Thread Jia He
Hi Christoffer Sorry for the late, I ever thought you would send out v2 with isb(). It seems not. On 12/15/2017 6:04 PM, Christoffer Dall Wrote: On Fri, Dec 15, 2017 at 10:27:02AM +0800, Jia He wrote: [...] [...] Meanwhile, I think I thought of a cleaner way to do this. Could you test

Re: [PATCH] KVM: arm/arm64: don't set vtimer->cnt_ctl in kvm_arch_timer_handler

2017-12-21 Thread Jia He
Hi Christoffer Sorry for the late, I ever thought you would send out v2 with isb(). It seems not. On 12/15/2017 6:04 PM, Christoffer Dall Wrote: On Fri, Dec 15, 2017 at 10:27:02AM +0800, Jia He wrote: [...] [...] Meanwhile, I think I thought of a cleaner way to do this. Could you test

Re: [PATCH] KVM: arm/arm64: don't set vtimer->cnt_ctl in kvm_arch_timer_handler

2017-12-14 Thread Jia He
On 12/14/2017 11:45 PM, Christoffer Dall Wrote: On Thu, Dec 14, 2017 at 11:28:04PM +0800, Jia He wrote: On 12/14/2017 9:09 PM, Christoffer Dall Wrote: On Thu, Dec 14, 2017 at 12:57:54PM +0800, Jia He wrote: Hi Jia, I have tried your newer level-mapped-v7 branch, but bug is still

Re: [PATCH] KVM: arm/arm64: don't set vtimer->cnt_ctl in kvm_arch_timer_handler

2017-12-14 Thread Jia He
On 12/14/2017 11:45 PM, Christoffer Dall Wrote: On Thu, Dec 14, 2017 at 11:28:04PM +0800, Jia He wrote: On 12/14/2017 9:09 PM, Christoffer Dall Wrote: On Thu, Dec 14, 2017 at 12:57:54PM +0800, Jia He wrote: Hi Jia, I have tried your newer level-mapped-v7 branch, but bug is still

<    1   2   3   4   5   6   7   >