All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@kernel.org>, Baoquan He <bhe@redhat.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christoph Hellwig <hch@lst.de>, Daniel Axtens <dja@axtens.net>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Emil Renner Berthing <kernel@esmil.dk>,
	Ingo Molnar <mingo@redhat.com>,
	Hari Bathini <hbathini@linux.ibm.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Simek <monstr@monstr.eu>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Mike Rapoport <rppt@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Russell King <linux@armlinux.org.uk>,
	Stafford Horne <shorne@gmail.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Will Deacon <will@kernel.org>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	clang-built-linux@googlegroups.com,
	iommu@lists.linux-foundation.org, linux-arch@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-c6x-dev@linux-c6x.org, linux-kernel@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-mm@kvack.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, linux-xtensa@linux-xtensa.org,
	linuxppc-dev@lists.ozlabs.org, openrisc@lists.librecores.org,
	sparclinux@vger.kernel.org,
	uclinux-h8-devel@lists.sourceforge.jp, x86@kernel.org
Subject: [PATCH v3 01/17] KVM: PPC: Book3S HV: simplify kvm_cma_reserve()
Date: Tue, 18 Aug 2020 15:16:18 +0000	[thread overview]
Message-ID: <20200818151634.14343-2-rppt@kernel.org> (raw)
In-Reply-To: <20200818151634.14343-1-rppt@kernel.org>

From: Mike Rapoport <rppt@linux.ibm.com>

The memory size calculation in kvm_cma_reserve() traverses memblock.memory
rather than simply call memblock_phys_mem_size(). The comment in that
function suggests that at some point there should have been call to
memblock_analyze() before memblock_phys_mem_size() could be used.
As of now, there is no memblock_analyze() at all and
memblock_phys_mem_size() can be used as soon as cold-plug memory is
registerd with memblock.

Replace loop over memblock.memory with a call to memblock_phys_mem_size().

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
 arch/powerpc/kvm/book3s_hv_builtin.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_hv_builtin.c b/arch/powerpc/kvm/book3s_hv_builtin.c
index 073617ce83e0..8f58dd20b362 100644
--- a/arch/powerpc/kvm/book3s_hv_builtin.c
+++ b/arch/powerpc/kvm/book3s_hv_builtin.c
@@ -95,23 +95,15 @@ EXPORT_SYMBOL_GPL(kvm_free_hpt_cma);
 void __init kvm_cma_reserve(void)
 {
 	unsigned long align_size;
-	struct memblock_region *reg;
-	phys_addr_t selected_size = 0;
+	phys_addr_t selected_size;
 
 	/*
 	 * We need CMA reservation only when we are in HV mode
 	 */
 	if (!cpu_has_feature(CPU_FTR_HVMODE))
 		return;
-	/*
-	 * We cannot use memblock_phys_mem_size() here, because
-	 * memblock_analyze() has not been called yet.
-	 */
-	for_each_memblock(memory, reg)
-		selected_size += memblock_region_memory_end_pfn(reg) -
-				 memblock_region_memory_base_pfn(reg);
 
-	selected_size = (selected_size * kvm_cma_resv_ratio / 100) << PAGE_SHIFT;
+	selected_size = PAGE_ALIGN(memblock_phys_mem_size() * kvm_cma_resv_ratio / 100);
 	if (selected_size) {
 		pr_info("%s: reserving %ld MiB for global area\n", __func__,
 			 (unsigned long)selected_size / SZ_1M);
-- 
2.26.2

WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@kernel.org>, Baoquan He <bhe@redhat.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christoph Hellwig <hch@lst.de>, Daniel Axtens <dja@axtens.net>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Emil Renner Berthing <kernel@esmil.dk>,
	Ingo Molnar <mingo@redhat.com>,
	Hari Bathini <hbathini@linux.ibm.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Simek <monstr@monstr.eu>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Mike Rapoport <rppt@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Paul Mackerras <paulus@samba.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Russell King <linux@armlinux.org.uk>,
	Stafford Horne <shorne@gmail.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Will Deacon <will@kernel.org>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	clang-built-linux@googlegroups.com,
	iommu@lists.linux-foundation.org, linux-arch@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-c6x-dev@linux-c6x.org, linux-kernel@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-mm@kvack.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, linux-xtensa@linux-xtensa.org,
	linuxppc-dev@lists.ozlabs.org, openrisc@lists.librecores.org,
	sparclinux@vger.kernel.org,
	uclinux-h8-devel@lists.sourceforge.jp, x86@kernel.org
Subject: [PATCH v3 01/17] KVM: PPC: Book3S HV: simplify kvm_cma_reserve()
Date: Tue, 18 Aug 2020 18:16:18 +0300	[thread overview]
Message-ID: <20200818151634.14343-2-rppt@kernel.org> (raw)
In-Reply-To: <20200818151634.14343-1-rppt@kernel.org>

From: Mike Rapoport <rppt@linux.ibm.com>

The memory size calculation in kvm_cma_reserve() traverses memblock.memory
rather than simply call memblock_phys_mem_size(). The comment in that
function suggests that at some point there should have been call to
memblock_analyze() before memblock_phys_mem_size() could be used.
As of now, there is no memblock_analyze() at all and
memblock_phys_mem_size() can be used as soon as cold-plug memory is
registerd with memblock.

Replace loop over memblock.memory with a call to memblock_phys_mem_size().

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
 arch/powerpc/kvm/book3s_hv_builtin.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_hv_builtin.c b/arch/powerpc/kvm/book3s_hv_builtin.c
index 073617ce83e0..8f58dd20b362 100644
--- a/arch/powerpc/kvm/book3s_hv_builtin.c
+++ b/arch/powerpc/kvm/book3s_hv_builtin.c
@@ -95,23 +95,15 @@ EXPORT_SYMBOL_GPL(kvm_free_hpt_cma);
 void __init kvm_cma_reserve(void)
 {
 	unsigned long align_size;
-	struct memblock_region *reg;
-	phys_addr_t selected_size = 0;
+	phys_addr_t selected_size;
 
 	/*
 	 * We need CMA reservation only when we are in HV mode
 	 */
 	if (!cpu_has_feature(CPU_FTR_HVMODE))
 		return;
-	/*
-	 * We cannot use memblock_phys_mem_size() here, because
-	 * memblock_analyze() has not been called yet.
-	 */
-	for_each_memblock(memory, reg)
-		selected_size += memblock_region_memory_end_pfn(reg) -
-				 memblock_region_memory_base_pfn(reg);
 
-	selected_size = (selected_size * kvm_cma_resv_ratio / 100) << PAGE_SHIFT;
+	selected_size = PAGE_ALIGN(memblock_phys_mem_size() * kvm_cma_resv_ratio / 100);
 	if (selected_size) {
 		pr_info("%s: reserving %ld MiB for global area\n", __func__,
 			 (unsigned long)selected_size / SZ_1M);
-- 
2.26.2


WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Emil Renner Berthing <kernel@esmil.dk>,
	linux-sh@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	linux-mips@vger.kernel.org, Max Filippov <jcmvbkbc@gmail.com>,
	Paul Mackerras <paulus@samba.org>,
	sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org,
	Will Deacon <will@kernel.org>, Christoph Hellwig <hch@lst.de>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-c6x-dev@linux-c6x.org, Baoquan He <bhe@redhat.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	x86@kernel.org, Russell King <linux@armlinux.org.uk>,
	Mike Rapoport <rppt@linux.ibm.com>,
	clang-built-linux@googlegroups.com,
	Ingo Molnar <mingo@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	uclinux-h8-devel@lists.sourceforge.jp,
	linux-xtensa@linux-xtensa.org, openrisc@lists.librecores.org,
	Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Stafford Horne <shorne@gmail.com>,
	Hari Bathini <hbathini@linux.ibm.com>,
	Daniel Axtens <dja@axtens.net>, Michal Simek <monstr@monstr.eu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	iommu@lists.linux-foundation.org,
	Palmer Dabbelt <palmer@dabbelt.com>,
	linuxppc-dev@lists.ozlabs.org, Mike Rapoport <rppt@kernel.org>
Subject: [PATCH v3 01/17] KVM: PPC: Book3S HV: simplify kvm_cma_reserve()
Date: Tue, 18 Aug 2020 18:16:18 +0300	[thread overview]
Message-ID: <20200818151634.14343-2-rppt@kernel.org> (raw)
In-Reply-To: <20200818151634.14343-1-rppt@kernel.org>

From: Mike Rapoport <rppt@linux.ibm.com>

The memory size calculation in kvm_cma_reserve() traverses memblock.memory
rather than simply call memblock_phys_mem_size(). The comment in that
function suggests that at some point there should have been call to
memblock_analyze() before memblock_phys_mem_size() could be used.
As of now, there is no memblock_analyze() at all and
memblock_phys_mem_size() can be used as soon as cold-plug memory is
registerd with memblock.

Replace loop over memblock.memory with a call to memblock_phys_mem_size().

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
 arch/powerpc/kvm/book3s_hv_builtin.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_hv_builtin.c b/arch/powerpc/kvm/book3s_hv_builtin.c
index 073617ce83e0..8f58dd20b362 100644
--- a/arch/powerpc/kvm/book3s_hv_builtin.c
+++ b/arch/powerpc/kvm/book3s_hv_builtin.c
@@ -95,23 +95,15 @@ EXPORT_SYMBOL_GPL(kvm_free_hpt_cma);
 void __init kvm_cma_reserve(void)
 {
 	unsigned long align_size;
-	struct memblock_region *reg;
-	phys_addr_t selected_size = 0;
+	phys_addr_t selected_size;
 
 	/*
 	 * We need CMA reservation only when we are in HV mode
 	 */
 	if (!cpu_has_feature(CPU_FTR_HVMODE))
 		return;
-	/*
-	 * We cannot use memblock_phys_mem_size() here, because
-	 * memblock_analyze() has not been called yet.
-	 */
-	for_each_memblock(memory, reg)
-		selected_size += memblock_region_memory_end_pfn(reg) -
-				 memblock_region_memory_base_pfn(reg);
 
-	selected_size = (selected_size * kvm_cma_resv_ratio / 100) << PAGE_SHIFT;
+	selected_size = PAGE_ALIGN(memblock_phys_mem_size() * kvm_cma_resv_ratio / 100);
 	if (selected_size) {
 		pr_info("%s: reserving %ld MiB for global area\n", __func__,
 			 (unsigned long)selected_size / SZ_1M);
-- 
2.26.2


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Emil Renner Berthing <kernel@esmil.dk>,
	linux-sh@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	linux-mips@vger.kernel.org, Max Filippov <jcmvbkbc@gmail.com>,
	Paul Mackerras <paulus@samba.org>,
	sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org,
	Will Deacon <will@kernel.org>, Christoph Hellwig <hch@lst.de>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-c6x-dev@linux-c6x.org, Baoquan He <bhe@redhat.com>,
	x86@kernel.org, Russell King <linux@armlinux.org.uk>,
	Mike Rapoport <rppt@linux.ibm.com>,
	clang-built-linux@googlegroups.com,
	Ingo Molnar <mingo@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	uclinux-h8-devel@lists.sourceforge.jp,
	linux-xtensa@linux-xtensa.org, openrisc@lists.librecores.org,
	Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Stafford Horne <shorne@gmail.com>,
	Hari Bathini <hbathini@linux.ibm.com>,
	Daniel Axtens <dja@axtens.net>, Michal Simek <monstr@monstr.eu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	iommu@lists.linux-foundation.org,
	Palmer Dabbelt <palmer@dabbelt.com>,
	linuxppc-dev@lists.ozlabs.org, Mike Rapoport <rppt@kernel.org>
Subject: [PATCH v3 01/17] KVM: PPC: Book3S HV: simplify kvm_cma_reserve()
Date: Tue, 18 Aug 2020 18:16:18 +0300	[thread overview]
Message-ID: <20200818151634.14343-2-rppt@kernel.org> (raw)
In-Reply-To: <20200818151634.14343-1-rppt@kernel.org>

From: Mike Rapoport <rppt@linux.ibm.com>

The memory size calculation in kvm_cma_reserve() traverses memblock.memory
rather than simply call memblock_phys_mem_size(). The comment in that
function suggests that at some point there should have been call to
memblock_analyze() before memblock_phys_mem_size() could be used.
As of now, there is no memblock_analyze() at all and
memblock_phys_mem_size() can be used as soon as cold-plug memory is
registerd with memblock.

Replace loop over memblock.memory with a call to memblock_phys_mem_size().

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
 arch/powerpc/kvm/book3s_hv_builtin.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_hv_builtin.c b/arch/powerpc/kvm/book3s_hv_builtin.c
index 073617ce83e0..8f58dd20b362 100644
--- a/arch/powerpc/kvm/book3s_hv_builtin.c
+++ b/arch/powerpc/kvm/book3s_hv_builtin.c
@@ -95,23 +95,15 @@ EXPORT_SYMBOL_GPL(kvm_free_hpt_cma);
 void __init kvm_cma_reserve(void)
 {
 	unsigned long align_size;
-	struct memblock_region *reg;
-	phys_addr_t selected_size = 0;
+	phys_addr_t selected_size;
 
 	/*
 	 * We need CMA reservation only when we are in HV mode
 	 */
 	if (!cpu_has_feature(CPU_FTR_HVMODE))
 		return;
-	/*
-	 * We cannot use memblock_phys_mem_size() here, because
-	 * memblock_analyze() has not been called yet.
-	 */
-	for_each_memblock(memory, reg)
-		selected_size += memblock_region_memory_end_pfn(reg) -
-				 memblock_region_memory_base_pfn(reg);
 
-	selected_size = (selected_size * kvm_cma_resv_ratio / 100) << PAGE_SHIFT;
+	selected_size = PAGE_ALIGN(memblock_phys_mem_size() * kvm_cma_resv_ratio / 100);
 	if (selected_size) {
 		pr_info("%s: reserving %ld MiB for global area\n", __func__,
 			 (unsigned long)selected_size / SZ_1M);
-- 
2.26.2


WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Emil Renner Berthing <kernel@esmil.dk>,
	linux-sh@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	linux-mips@vger.kernel.org, Max Filippov <jcmvbkbc@gmail.com>,
	Paul Mackerras <paulus@samba.org>,
	sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org,
	Will Deacon <will@kernel.org>, Christoph Hellwig <hch@lst.de>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-c6x-dev@linux-c6x.org,
	Michael Ellerman <mpe@ellerman.id.au>,
	x86@kernel.org, Russell King <linux@armlinux.org.uk>,
	Mike Rapoport <rppt@linux.ibm.com>,
	clang-built-linux@googlegroups.com,
	Ingo Molnar <mingo@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	uclinux-h8-devel@lists.sourceforge.jp,
	linux-xtensa@linux-xtensa.org, openrisc@lists.librecores.org,
	Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Stafford Horne <shorne@gmail.com>,
	Hari Bathini <hbathini@linux.ibm.com>,
	Daniel Axtens <dja@axtens.net>, Michal Simek <monstr@monstr.eu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	iommu@lists.linux-foundation.org,
	Palmer Dabbelt <palmer@dabbelt.com>,
	linuxppc-dev@lists.ozlabs.org, Mike Rapoport <rppt@kernel.org>
Subject: [PATCH v3 01/17] KVM: PPC: Book3S HV: simplify kvm_cma_reserve()
Date: Tue, 18 Aug 2020 18:16:18 +0300	[thread overview]
Message-ID: <20200818151634.14343-2-rppt@kernel.org> (raw)
In-Reply-To: <20200818151634.14343-1-rppt@kernel.org>

From: Mike Rapoport <rppt@linux.ibm.com>

The memory size calculation in kvm_cma_reserve() traverses memblock.memory
rather than simply call memblock_phys_mem_size(). The comment in that
function suggests that at some point there should have been call to
memblock_analyze() before memblock_phys_mem_size() could be used.
As of now, there is no memblock_analyze() at all and
memblock_phys_mem_size() can be used as soon as cold-plug memory is
registerd with memblock.

Replace loop over memblock.memory with a call to memblock_phys_mem_size().

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
 arch/powerpc/kvm/book3s_hv_builtin.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_hv_builtin.c b/arch/powerpc/kvm/book3s_hv_builtin.c
index 073617ce83e0..8f58dd20b362 100644
--- a/arch/powerpc/kvm/book3s_hv_builtin.c
+++ b/arch/powerpc/kvm/book3s_hv_builtin.c
@@ -95,23 +95,15 @@ EXPORT_SYMBOL_GPL(kvm_free_hpt_cma);
 void __init kvm_cma_reserve(void)
 {
 	unsigned long align_size;
-	struct memblock_region *reg;
-	phys_addr_t selected_size = 0;
+	phys_addr_t selected_size;
 
 	/*
 	 * We need CMA reservation only when we are in HV mode
 	 */
 	if (!cpu_has_feature(CPU_FTR_HVMODE))
 		return;
-	/*
-	 * We cannot use memblock_phys_mem_size() here, because
-	 * memblock_analyze() has not been called yet.
-	 */
-	for_each_memblock(memory, reg)
-		selected_size += memblock_region_memory_end_pfn(reg) -
-				 memblock_region_memory_base_pfn(reg);
 
-	selected_size = (selected_size * kvm_cma_resv_ratio / 100) << PAGE_SHIFT;
+	selected_size = PAGE_ALIGN(memblock_phys_mem_size() * kvm_cma_resv_ratio / 100);
 	if (selected_size) {
 		pr_info("%s: reserving %ld MiB for global area\n", __func__,
 			 (unsigned long)selected_size / SZ_1M);
-- 
2.26.2

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Emil Renner Berthing <kernel@esmil.dk>,
	linux-sh@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	linux-mips@vger.kernel.org, Max Filippov <jcmvbkbc@gmail.com>,
	Paul Mackerras <paulus@samba.org>,
	sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org,
	Will Deacon <will@kernel.org>, Christoph Hellwig <hch@lst.de>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-c6x-dev@linux-c6x.org, Baoquan He <bhe@redhat.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	x86@kernel.org, Russell King <linux@armlinux.org.uk>,
	Mike Rapoport <rppt@linux.ibm.com>,
	clang-built-linux@googlegroups.com,
	Ingo Molnar <mingo@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	uclinux-h8-devel@lists.sourceforge.jp,
	linux-xtensa@linux-xtensa.org, openrisc@lists.librecores.org,
	Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Stafford Horne <shorne@gmail.com>,
	Hari Bathini <hbathini@linux.ibm.com>,
	Daniel Axtens <dja@axtens.net>, Michal Simek <monstr@monstr.eu>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	iommu@lists.linux-foundation.org,
	Palmer Dabbelt <palmer@dabbelt.com>,
	linuxppc-dev@lists.ozlabs.org, Mike Rapoport <rppt@kernel.org>
Subject: [PATCH v3 01/17] KVM: PPC: Book3S HV: simplify kvm_cma_reserve()
Date: Tue, 18 Aug 2020 18:16:18 +0300	[thread overview]
Message-ID: <20200818151634.14343-2-rppt@kernel.org> (raw)
In-Reply-To: <20200818151634.14343-1-rppt@kernel.org>

From: Mike Rapoport <rppt@linux.ibm.com>

The memory size calculation in kvm_cma_reserve() traverses memblock.memory
rather than simply call memblock_phys_mem_size(). The comment in that
function suggests that at some point there should have been call to
memblock_analyze() before memblock_phys_mem_size() could be used.
As of now, there is no memblock_analyze() at all and
memblock_phys_mem_size() can be used as soon as cold-plug memory is
registerd with memblock.

Replace loop over memblock.memory with a call to memblock_phys_mem_size().

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
 arch/powerpc/kvm/book3s_hv_builtin.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_hv_builtin.c b/arch/powerpc/kvm/book3s_hv_builtin.c
index 073617ce83e0..8f58dd20b362 100644
--- a/arch/powerpc/kvm/book3s_hv_builtin.c
+++ b/arch/powerpc/kvm/book3s_hv_builtin.c
@@ -95,23 +95,15 @@ EXPORT_SYMBOL_GPL(kvm_free_hpt_cma);
 void __init kvm_cma_reserve(void)
 {
 	unsigned long align_size;
-	struct memblock_region *reg;
-	phys_addr_t selected_size = 0;
+	phys_addr_t selected_size;
 
 	/*
 	 * We need CMA reservation only when we are in HV mode
 	 */
 	if (!cpu_has_feature(CPU_FTR_HVMODE))
 		return;
-	/*
-	 * We cannot use memblock_phys_mem_size() here, because
-	 * memblock_analyze() has not been called yet.
-	 */
-	for_each_memblock(memory, reg)
-		selected_size += memblock_region_memory_end_pfn(reg) -
-				 memblock_region_memory_base_pfn(reg);
 
-	selected_size = (selected_size * kvm_cma_resv_ratio / 100) << PAGE_SHIFT;
+	selected_size = PAGE_ALIGN(memblock_phys_mem_size() * kvm_cma_resv_ratio / 100);
 	if (selected_size) {
 		pr_info("%s: reserving %ld MiB for global area\n", __func__,
 			 (unsigned long)selected_size / SZ_1M);
-- 
2.26.2


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: openrisc@lists.librecores.org
Subject: [OpenRISC] [PATCH v3 01/17] KVM: PPC: Book3S HV: simplify kvm_cma_reserve()
Date: Tue, 18 Aug 2020 18:16:18 +0300	[thread overview]
Message-ID: <20200818151634.14343-2-rppt@kernel.org> (raw)
In-Reply-To: <20200818151634.14343-1-rppt@kernel.org>

From: Mike Rapoport <rppt@linux.ibm.com>

The memory size calculation in kvm_cma_reserve() traverses memblock.memory
rather than simply call memblock_phys_mem_size(). The comment in that
function suggests that at some point there should have been call to
memblock_analyze() before memblock_phys_mem_size() could be used.
As of now, there is no memblock_analyze() at all and
memblock_phys_mem_size() can be used as soon as cold-plug memory is
registerd with memblock.

Replace loop over memblock.memory with a call to memblock_phys_mem_size().

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---
 arch/powerpc/kvm/book3s_hv_builtin.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_hv_builtin.c b/arch/powerpc/kvm/book3s_hv_builtin.c
index 073617ce83e0..8f58dd20b362 100644
--- a/arch/powerpc/kvm/book3s_hv_builtin.c
+++ b/arch/powerpc/kvm/book3s_hv_builtin.c
@@ -95,23 +95,15 @@ EXPORT_SYMBOL_GPL(kvm_free_hpt_cma);
 void __init kvm_cma_reserve(void)
 {
 	unsigned long align_size;
-	struct memblock_region *reg;
-	phys_addr_t selected_size = 0;
+	phys_addr_t selected_size;
 
 	/*
 	 * We need CMA reservation only when we are in HV mode
 	 */
 	if (!cpu_has_feature(CPU_FTR_HVMODE))
 		return;
-	/*
-	 * We cannot use memblock_phys_mem_size() here, because
-	 * memblock_analyze() has not been called yet.
-	 */
-	for_each_memblock(memory, reg)
-		selected_size += memblock_region_memory_end_pfn(reg) -
-				 memblock_region_memory_base_pfn(reg);
 
-	selected_size = (selected_size * kvm_cma_resv_ratio / 100) << PAGE_SHIFT;
+	selected_size = PAGE_ALIGN(memblock_phys_mem_size() * kvm_cma_resv_ratio / 100);
 	if (selected_size) {
 		pr_info("%s: reserving %ld MiB for global area\n", __func__,
 			 (unsigned long)selected_size / SZ_1M);
-- 
2.26.2


  reply	other threads:[~2020-08-18 15:16 UTC|newest]

Thread overview: 148+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-18 15:16 [PATCH v3 00/17] memblock: seasonal cleaning^w cleanup Mike Rapoport
2020-08-18 15:16 ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16 ` Mike Rapoport
2020-08-18 15:16 ` Mike Rapoport
2020-08-18 15:16 ` Mike Rapoport
2020-08-18 15:16 ` Mike Rapoport
2020-08-18 15:16 ` Mike Rapoport
2020-08-18 15:16 ` Mike Rapoport [this message]
2020-08-18 15:16   ` [OpenRISC] [PATCH v3 01/17] KVM: PPC: Book3S HV: simplify kvm_cma_reserve() Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 02/17] dma-contiguous: simplify cma_early_percent_memory() Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 03/17] arm, xtensa: simplify initialization of high memory pages Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 04/17] arm64: numa: simplify dummy_numa_init() Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 05/17] h8300, nds32, openrisc: simplify detection of memory extents Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 06/17] riscv: drop unneeded node initialization Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 07/17] mircoblaze: drop unneeded NUMA and sparsemem initializations Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 08/17] memblock: make for_each_memblock_type() iterator private Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 09/17] memblock: make memblock_debug and related functionality private Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-19 19:24   ` Andrew Morton
2020-08-19 19:24     ` [OpenRISC] " Andrew Morton
2020-08-19 19:24     ` Andrew Morton
2020-08-19 19:24     ` Andrew Morton
2020-08-19 19:24     ` Andrew Morton
2020-08-19 19:24     ` Andrew Morton
2020-08-19 19:24     ` Andrew Morton
2020-08-19 20:48     ` Mike Rapoport
2020-08-19 20:48       ` [OpenRISC] " Mike Rapoport
2020-08-19 20:48       ` Mike Rapoport
2020-08-19 20:48       ` Mike Rapoport
2020-08-19 20:48       ` Mike Rapoport
2020-08-19 20:48       ` Mike Rapoport
2020-08-19 20:48       ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 10/17] memblock: reduce number of parameters in for_each_mem_range() Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 22:18   ` Miguel Ojeda
2020-08-18 22:18     ` [OpenRISC] " Miguel Ojeda
2020-08-18 22:18     ` Miguel Ojeda
2020-08-18 22:18     ` Miguel Ojeda
2020-08-18 22:18     ` Miguel Ojeda
2020-08-18 22:18     ` Miguel Ojeda
2020-08-18 22:18     ` Miguel Ojeda
2020-08-18 22:18     ` Miguel Ojeda
2020-08-18 15:16 ` [PATCH v3 11/17] arch, mm: replace for_each_memblock() with for_each_mem_pfn_range() Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 12/17] arch, drivers: replace for_each_membock() with for_each_mem_range() Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 13/17] x86/setup: simplify initrd relocation and reservation Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 14/17] x86/setup: simplify reserve_crashkernel() Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 15/17] memblock: remove unused memblock_mem_size() Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 16/17] memblock: implement for_each_reserved_mem_region() using __next_mem_region() Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16 ` [PATCH v3 17/17] memblock: use separate iterators for memory and reserved regions Mike Rapoport
2020-08-18 15:16   ` [OpenRISC] " Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport
2020-08-18 15:16   ` Mike Rapoport

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=20200818151634.14343-2-rppt@kernel.org \
    --to=rppt@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=benh@kernel.crashing.org \
    --cc=bhe@redhat.com \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=dja@axtens.net \
    --cc=hbathini@linux.ibm.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jcmvbkbc@gmail.com \
    --cc=kernel@esmil.dk \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-c6x-dev@linux-c6x.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-xtensa@linux-xtensa.org \
    --cc=linux@armlinux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=luto@kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=mingo@redhat.com \
    --cc=monstr@monstr.eu \
    --cc=mpe@ellerman.id.au \
    --cc=openrisc@lists.librecores.org \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=rppt@linux.ibm.com \
    --cc=shorne@gmail.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=uclinux-h8-devel@lists.sourceforge.jp \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    --cc=ysato@users.sourceforge.jp \
    /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.