All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Yinghai Lu <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org,
	yinghai@kernel.org, tangchen@cn.fujitsu.com, tglx@linutronix.de,
	hpa@linux.intel.com
Subject: [tip:x86/mm] x86, mm: Add comments for step_size shift
Date: Fri, 14 Jun 2013 14:33:43 -0700	[thread overview]
Message-ID: <tip-7d5a256fc953dd80a4eb9a1870607ec991d23ec2@git.kernel.org> (raw)
In-Reply-To: <1371128589-8953-21-git-send-email-tangchen@cn.fujitsu.com>

Commit-ID:  7d5a256fc953dd80a4eb9a1870607ec991d23ec2
Gitweb:     http://git.kernel.org/tip/7d5a256fc953dd80a4eb9a1870607ec991d23ec2
Author:     Yinghai Lu <yinghai@kernel.org>
AuthorDate: Thu, 13 Jun 2013 21:03:07 +0800
Committer:  H. Peter Anvin <hpa@linux.intel.com>
CommitDate: Fri, 14 Jun 2013 14:05:32 -0700

x86, mm: Add comments for step_size shift

As requested by hpa, add comments for why we choose 5 to be
the step size shift.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Link: http://lkml.kernel.org/r/1371128589-8953-21-git-send-email-tangchen@cn.fujitsu.com
Reviewed-by: Tang Chen <tangchen@cn.fujitsu.com>
Tested-by: Tang Chen <tangchen@cn.fujitsu.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
---
 arch/x86/mm/init.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index 3c21f16..5f38e72 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -395,8 +395,23 @@ static unsigned long __init init_range_memory_mapping(
 	return mapped_ram_size;
 }
 
-/* (PUD_SHIFT-PMD_SHIFT)/2 */
-#define STEP_SIZE_SHIFT 5
+static unsigned long __init get_new_step_size(unsigned long step_size)
+{
+	/*
+	 * initial mapped size is PMD_SIZE, aka 2M.
+	 * We can not set step_size to be PUD_SIZE aka 1G yet.
+	 * In worse case, when 1G is cross the 1G boundary, and
+	 * PG_LEVEL_2M is not set, we will need 1+1+512 pages (aka 2M + 8k)
+	 * to map 1G range with PTE. Use 5 as shift for now.
+	 */
+	unsigned long new_step_size = step_size << 5;
+
+	if (new_step_size > step_size)
+		step_size = new_step_size;
+
+	return  step_size;
+}
+
 void __init init_mem_mapping(void)
 {
 	unsigned long end, real_end, start, last_start;
@@ -445,7 +460,7 @@ void __init init_mem_mapping(void)
 		min_pfn_mapped = last_start >> PAGE_SHIFT;
 		/* only increase step_size after big range get mapped */
 		if (new_mapped_ram_size > mapped_ram_size)
-			step_size <<= STEP_SIZE_SHIFT;
+			step_size = get_new_step_size(step_size);
 		mapped_ram_size += new_mapped_ram_size;
 	}
 

  reply	other threads:[~2013-06-14 21:33 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-13 13:02 [Part1 PATCH v5 00/22] x86, ACPI, numa: Parse numa info earlier Tang Chen
2013-06-13 13:02 ` Tang Chen
2013-06-13 13:02 ` [Part1 PATCH v5 01/22] x86: Change get_ramdisk_{image|size}() to global Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:30   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-13 13:02 ` [Part1 PATCH v5 02/22] x86, microcode: Use common get_ramdisk_{image|size}() Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:31   ` [tip:x86/mm] x86, microcode: Use common get_ramdisk_{image|size}( ) tip-bot for Yinghai Lu
2013-06-13 13:02 ` [Part1 PATCH v5 03/22] x86, ACPI, mm: Kill max_low_pfn_mapped Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:31   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-17 21:04   ` [Part1 PATCH v5 03/22] " Tejun Heo
2013-06-17 21:04     ` Tejun Heo
2013-06-17 21:13     ` Yinghai Lu
2013-06-17 21:13       ` Yinghai Lu
2013-06-17 21:13       ` Yinghai Lu
2013-06-17 23:08       ` Tejun Heo
2013-06-17 23:08         ` Tejun Heo
2013-06-17 23:08         ` Tejun Heo
2013-06-13 13:02 ` [Part1 PATCH v5 04/22] x86, ACPI: Search buffer above 4GB in a second try for acpi initrd table override Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:31   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-17 21:06   ` [Part1 PATCH v5 04/22] " Tejun Heo
2013-06-17 21:06     ` Tejun Heo
2013-06-13 13:02 ` [Part1 PATCH v5 05/22] x86, ACPI: Increase acpi initrd override tables number limit Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:31   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-13 13:02 ` [Part1 PATCH v5 06/22] x86, ACPI: Split acpi_initrd_override() into find/copy two steps Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:31   ` [tip:x86/mm] x86, ACPI: Split acpi_initrd_override() into find/ copy " tip-bot for Yinghai Lu
2013-06-13 13:02 ` [Part1 PATCH v5 07/22] x86, ACPI: Store override acpi tables phys addr in cpio files info array Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:31   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-17 23:38   ` [Part1 PATCH v5 07/22] " Tejun Heo
2013-06-17 23:38     ` Tejun Heo
2013-06-17 23:40     ` Yinghai Lu
2013-06-17 23:40       ` Yinghai Lu
2013-06-17 23:40       ` Yinghai Lu
2013-06-17 23:52   ` Tejun Heo
2013-06-17 23:52     ` Tejun Heo
2013-06-13 13:02 ` [Part1 PATCH v5 08/22] x86, ACPI: Make acpi_initrd_override_find work with 32bit flat mode Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:31   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-18  0:07   ` [Part1 PATCH v5 08/22] " Tejun Heo
2013-06-18  0:07     ` Tejun Heo
2013-06-13 13:02 ` [Part1 PATCH v5 09/22] x86, ACPI: Find acpi tables in initrd early from head_32.S/head64.c Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:32   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-18  0:33   ` [Part1 PATCH v5 09/22] " Tejun Heo
2013-06-18  0:33     ` Tejun Heo
2013-06-13 13:02 ` [Part1 PATCH v5 10/22] x86, mm, numa: Move two functions calling on successful path later Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:32   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-18  0:53   ` [Part1 PATCH v5 10/22] " Tejun Heo
2013-06-18  0:53     ` Tejun Heo
2013-06-13 13:02 ` [Part1 PATCH v5 11/22] x86, mm, numa: Call numa_meminfo_cover_memory() checking early Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:32   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-18  1:05   ` [Part1 PATCH v5 11/22] " Tejun Heo
2013-06-18  1:05     ` Tejun Heo
2013-06-13 13:02 ` [Part1 PATCH v5 12/22] x86, mm, numa: Move node_map_pfn_alignment() to x86 Tang Chen
2013-06-13 13:02   ` Tang Chen
2013-06-14 21:32   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-18  1:08   ` [Part1 PATCH v5 12/22] " Tejun Heo
2013-06-18  1:08     ` Tejun Heo
2013-06-13 13:03 ` [Part1 PATCH v5 13/22] x86, mm, numa: Use numa_meminfo to check node_map_pfn alignment Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-14 21:32   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-18  1:40   ` [Part1 PATCH v5 13/22] " Tejun Heo
2013-06-18  1:40     ` Tejun Heo
2013-06-13 13:03 ` [Part1 PATCH v5 14/22] x86, mm, numa: Set memblock nid later Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-14 21:32   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-18  1:45   ` [Part1 PATCH v5 14/22] " Tejun Heo
2013-06-18  1:45     ` Tejun Heo
2013-06-13 13:03 ` [Part1 PATCH v5 15/22] x86, mm, numa: Move node_possible_map setting later Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-14 21:32   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-13 13:03 ` [Part1 PATCH v5 16/22] x86, mm, numa: Move numa emulation handling down Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-14 21:33   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-18  1:58   ` [Part1 PATCH v5 16/22] " Tejun Heo
2013-06-18  1:58     ` Tejun Heo
2013-06-18  6:22     ` Yinghai Lu
2013-06-18  6:22       ` Yinghai Lu
2013-06-18  7:13       ` Yinghai Lu
2013-06-18  7:13         ` Yinghai Lu
2013-06-19 21:25       ` Yinghai Lu
2013-06-19 21:25         ` Yinghai Lu
2013-06-13 13:03 ` [Part1 PATCH v5 17/22] x86, ACPI, numa, ia64: split SLIT handling out Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-14 21:33   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-13 13:03 ` [Part1 PATCH v5 18/22] x86, mm, numa: Add early_initmem_init() stub Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-14 21:33   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-13 13:03 ` [Part1 PATCH v5 19/22] x86, mm: Parse numa info earlier Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-14 21:33   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-13 13:03 ` [Part1 PATCH v5 20/22] x86, mm: Add comments for step_size shift Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-14 21:33   ` tip-bot for Yinghai Lu [this message]
2013-06-13 13:03 ` [Part1 PATCH v5 21/22] x86, mm: Make init_mem_mapping be able to be called several times Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-13 18:35   ` Konrad Rzeszutek Wilk
2013-06-13 18:35     ` Konrad Rzeszutek Wilk
2013-06-13 22:47     ` Yinghai Lu
2013-06-13 22:47       ` Yinghai Lu
2013-06-14  5:08       ` Tang Chen
2013-06-14  5:08         ` Tang Chen
2013-06-14 21:33   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-13 13:03 ` [Part1 PATCH v5 22/22] x86, mm, numa: Put pagetable on local node ram for 64bit Tang Chen
2013-06-13 13:03   ` Tang Chen
2013-06-14 21:34   ` [tip:x86/mm] " tip-bot for Yinghai Lu
2013-06-18  2:03 ` [Part1 PATCH v5 00/22] x86, ACPI, numa: Parse numa info earlier Tejun Heo
2013-06-18  2:03   ` Tejun Heo
2013-06-18  5:47   ` Tang Chen
2013-06-18  5:47     ` Tang Chen
2013-06-18 17:21     ` Tejun Heo
2013-06-18 17:21       ` Tejun Heo
2013-06-20  5:52       ` Tang Chen
2013-06-20  5:52         ` Tang Chen
2013-06-20  6:17         ` Tejun Heo
2013-06-20  6:17           ` Tejun Heo
2013-06-21  9:19           ` Tang Chen
2013-06-21  9:19             ` Tang Chen
2013-06-21 18:25             ` Tejun Heo
2013-06-21 18:25               ` Tejun Heo
2013-06-24  3:51               ` Tang Chen
2013-06-24  3:51                 ` Tang Chen
2013-06-24  7:26                 ` Tang Chen
2013-06-24  7:26                   ` Tang Chen
2013-06-24 19:59                   ` Tejun Heo
2013-06-24 19:59                     ` Tejun Heo
2013-06-18 17:10 ` Vasilis Liaskovitis
2013-06-18 17:10   ` Vasilis Liaskovitis
2013-06-18 20:19   ` Yinghai Lu
2013-06-18 20:19     ` Yinghai Lu
2013-06-19 10:05     ` Vasilis Liaskovitis
2013-06-19 10:05       ` Vasilis Liaskovitis
2013-06-20 18:42       ` Yinghai Lu
2013-06-20 18:42         ` Yinghai Lu
2013-06-24  9:40   ` Gu Zheng
2013-06-24  9:40     ` Gu Zheng
2013-06-21  5:19 ` H. Peter Anvin
2013-06-21  5:19   ` H. Peter Anvin
2013-06-21  6:06   ` Tang Chen
2013-06-21  6:06     ` Tang Chen
2013-06-21  6:10     ` H. Peter Anvin
2013-06-21  6:10       ` H. Peter Anvin
2013-06-21  6:20       ` Tang Chen
2013-06-21  6:20         ` Tang Chen
2013-06-21  6:26         ` Tejun Heo
2013-06-21  6:26           ` Tejun Heo
2013-06-21 20:18   ` Yinghai Lu
2013-06-21 20:18     ` Yinghai Lu

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=tip-7d5a256fc953dd80a4eb9a1870607ec991d23ec2@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=hpa@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=tangchen@cn.fujitsu.com \
    --cc=tglx@linutronix.de \
    --cc=yinghai@kernel.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.