mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: [PATCH] Increase number of e820 entries hard limit from 32 to 128
  2005-04-23  1:14 [PATCH] Increase number of e820 entries hard limit from 32 to 128 Venkatesh Pallipadi
@ 2005-04-22 23:52 ` jmerkey
  2005-04-23  1:51 ` Linus Torvalds
  1 sibling, 0 replies; 7+ messages in thread
From: jmerkey @ 2005-04-22 23:52 UTC (permalink / raw)
  To: Venkatesh Pallipadi
  Cc: Linus Torvalds, Andrew Morton, linux-kernel, Rohit Seth, Andi Kleen


This is a very good idea.

Jeff

Venkatesh Pallipadi wrote:

>The specifications that talk about E820 map doesn't have an upper limit
>on the number of E820 entries. But, today's kernel has a hard limit of 32.
>With increase in memory size, we are seeing the number of E820 entries
>reaching close to 32. Patch below bumps the number upto 128. 
>
>Patch does it for both i386 and x86-64.
>
>Side-effect: 
>bss increases by ~ 2K and init.data increases by ~7.5K
>on all systems, due to increase in size of static arrays.
>
>Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
>
>diff -purN  linux-2.6.11/Documentation/i386/zero-page.txt.orig linux-2.6.11/Documentation/i386/zero-page.txt
>--- linux-2.6.11/Documentation/i386/zero-page.txt.orig	2005-04-21 17:09:08.059184904 -0700
>+++ linux-2.6.11/Documentation/i386/zero-page.txt	2005-04-21 17:09:14.955136560 -0700
>@@ -79,6 +79,6 @@ Offset	Type		Description
> 0x22c   unsigned long	ramdisk_max
> 0x230   16 bytes 	trampoline
> 0x290 - 0x2cf		EDD_MBR_SIG_BUFFER (edd.S)
>-0x2d0 - 0x600		E820MAP
>-0x600 - 0x7ff		EDDBUF (edd.S) for disk signature read sector
>-0x600 - 0x7eb		EDDBUF (edd.S) for edd data
>+0x2d0 - 0xd00		E820MAP
>+0xd00 - 0xeff		EDDBUF (edd.S) for disk signature read sector
>+0xd00 - 0xeeb		EDDBUF (edd.S) for edd data
>diff -purN  linux-2.6.11/include/linux/edd.h.orig linux-2.6.11/include/linux/edd.h
>--- linux-2.6.11/include/linux/edd.h.orig	2005-04-21 17:09:08.059184904 -0700
>+++ linux-2.6.11/include/linux/edd.h	2005-04-21 17:09:14.956136408 -0700
>@@ -32,7 +32,7 @@
> 
> #define EDDNR 0x1e9		/* addr of number of edd_info structs at EDDBUF
> 				   in boot_params - treat this as 1 byte  */
>-#define EDDBUF	0x600		/* addr of edd_info structs in boot_params */
>+#define EDDBUF	0xd00		/* addr of edd_info structs in boot_params */
> #define EDDMAXNR 6		/* number of edd_info structs starting at EDDBUF  */
> #define EDDEXTSIZE 8		/* change these if you muck with the structures */
> #define EDDPARMSIZE 74
>diff -purN  linux-2.6.11/include/asm-i386/e820.h.orig linux-2.6.11/include/asm-i386/e820.h
>--- linux-2.6.11/include/asm-i386/e820.h.orig	2005-04-21 17:09:08.060184752 -0700
>+++ linux-2.6.11/include/asm-i386/e820.h	2005-04-21 17:09:14.956136408 -0700
>@@ -13,7 +13,7 @@
> #define __E820_HEADER
> 
> #define E820MAP	0x2d0		/* our map */
>-#define E820MAX	32		/* number of entries in E820MAP */
>+#define E820MAX	128		/* number of entries in E820MAP */
> #define E820NR	0x1e8		/* # entries in E820MAP */
> 
> #define E820_RAM	1
>diff -purN  linux-2.6.11/include/asm-i386/setup.h.orig linux-2.6.11/include/asm-i386/setup.h
>--- linux-2.6.11/include/asm-i386/setup.h.orig	2005-04-21 17:09:08.060184752 -0700
>+++ linux-2.6.11/include/asm-i386/setup.h	2005-04-21 17:09:14.957136256 -0700
>@@ -16,7 +16,7 @@
> #define MAXMEM_PFN	PFN_DOWN(MAXMEM)
> #define MAX_NONPAE_PFN	(1 << 20)
> 
>-#define PARAM_SIZE 2048
>+#define PARAM_SIZE 4096
> #define COMMAND_LINE_SIZE 256
> 
> #define OLD_CL_MAGIC_ADDR	0x90020
>diff -purN  linux-2.6.11/arch/i386/boot/setup.S.orig linux-2.6.11/arch/i386/boot/setup.S
>--- linux-2.6.11/arch/i386/boot/setup.S.orig	2005-04-21 17:09:08.061184600 -0700
>+++ linux-2.6.11/arch/i386/boot/setup.S	2005-04-21 17:09:14.957136256 -0700
>@@ -164,7 +164,7 @@ ramdisk_max:	.long (-__PAGE_OFFSET-(512 
> trampoline:	call	start_of_setup
> 		.align 16
> 					# The offset at this point is 0x240
>-		.space	(0x7ff-0x240+1) # E820 & EDD space (ending at 0x7ff)
>+		.space	(0xeff-0x240+1) # E820 & EDD space (ending at 0xeff)
> # End of setup header #####################################################
> 
> start_of_setup:
>@@ -333,9 +333,9 @@ jmpe820:
> 	# sizeof(e820rec).
> 	#
> good820:
>-	movb	(E820NR), %al			# up to 32 entries
>+	movb	(E820NR), %al			# up to 128 entries
> 	cmpb	$E820MAX, %al
>-	jnl	bail820
>+	jae	bail820
> 
> 	incb	(E820NR)
> 	movw	%di, %ax
>diff -purN  linux-2.6.11/include/asm-x86_64/e820.h.orig linux-2.6.11/include/asm-x86_64/e820.h
>--- linux-2.6.11/include/asm-x86_64/e820.h.orig	2005-04-21 17:09:08.061184600 -0700
>+++ linux-2.6.11/include/asm-x86_64/e820.h	2005-04-21 17:09:14.958136104 -0700
>@@ -14,7 +14,7 @@
> #include <linux/mmzone.h>
> 
> #define E820MAP	0x2d0		/* our map */
>-#define E820MAX	32		/* number of entries in E820MAP */
>+#define E820MAX	128		/* number of entries in E820MAP */
> #define E820NR	0x1e8		/* # entries in E820MAP */
> 
> #define E820_RAM	1
>diff -purN  linux-2.6.11/include/asm-x86_64/bootsetup.h.orig linux-2.6.11/include/asm-x86_64/bootsetup.h
>--- linux-2.6.11/include/asm-x86_64/bootsetup.h.orig	2005-04-21 17:09:08.061184600 -0700
>+++ linux-2.6.11/include/asm-x86_64/bootsetup.h	2005-04-22 14:38:39.793893360 -0700
>@@ -2,7 +2,8 @@
> #ifndef _X86_64_BOOTSETUP_H
> #define _X86_64_BOOTSETUP_H 1
> 
>-extern char x86_boot_params[2048];
>+#define BOOT_PARAM_SIZE		4096
>+extern char x86_boot_params[BOOT_PARAM_SIZE];
> 
> /*
>  * This is set up by the setup-routine at boot-time
>diff -purN  linux-2.6.11/arch/x86_64/boot/setup.S.orig linux-2.6.11/arch/x86_64/boot/setup.S
>--- linux-2.6.11/arch/x86_64/boot/setup.S.orig	2005-04-21 17:09:08.062184448 -0700
>+++ linux-2.6.11/arch/x86_64/boot/setup.S	2005-04-22 15:32:57.074711408 -0700
>@@ -160,7 +160,7 @@ ramdisk_max:	.long 0xffffffff
> trampoline:	call	start_of_setup
> 		.align 16
> 					# The offset at this point is 0x240
>-		.space  (0x7ff-0x240+1)	# E820 & EDD space (ending at 0x7ff)
>+		.space  (0xeff-0x240+1)	# E820 & EDD space (ending at 0xeff)
> # End of setup header #####################################################
> 
> start_of_setup:
>@@ -412,9 +412,9 @@ jmpe820:
> 	# sizeof(e820rec).
> 	#
> good820:
>-	movb	(E820NR), %al			# up to 32 entries
>+	movb	(E820NR), %al			# up to 128 entries
> 	cmpb	$E820MAX, %al
>-	jnl	bail820
>+	jae	bail820
> 
> 	incb	(E820NR)
> 	movw	%di, %ax
>diff -purN  linux-2.6.11/arch/x86_64/kernel/setup64.c.orig linux-2.6.11/arch/x86_64/kernel/setup64.c
>--- linux-2.6.11/arch/x86_64/kernel/setup64.c.orig	2005-04-22 15:29:38.304929008 -0700
>+++ linux-2.6.11/arch/x86_64/kernel/setup64.c	2005-04-21 17:12:15.529685056 -0700
>@@ -12,6 +12,7 @@
> #include <linux/string.h>
> #include <linux/bootmem.h>
> #include <linux/bitops.h>
>+#include <asm/bootsetup.h>
> #include <asm/pda.h>
> #include <asm/pgtable.h>
> #include <asm/processor.h>
>@@ -26,7 +27,7 @@
> #include <asm/mman.h>
> #include <asm/numa.h>
> 
>-char x86_boot_params[2048] __initdata = {0,};
>+char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,};
> 
> cpumask_t cpu_initialized __initdata = CPU_MASK_NONE;
> 
>diff -purN  linux-2.6.11/arch/x86_64/kernel/head64.c.orig linux-2.6.11/arch/x86_64/kernel/head64.c
>--- linux-2.6.11/arch/x86_64/kernel/head64.c.orig	2005-04-22 15:29:22.004407064 -0700
>+++ linux-2.6.11/arch/x86_64/kernel/head64.c	2005-04-22 15:32:37.295718272 -0700
>@@ -29,8 +29,6 @@ static void __init clear_bss(void)
> 	       (unsigned long) __bss_end - (unsigned long) __bss_start);
> }
> 
>-extern char x86_boot_params[2048];
>-
> #define NEW_CL_POINTER		0x228	/* Relative to real mode data */
> #define OLD_CL_MAGIC_ADDR	0x90020
> #define OLD_CL_MAGIC            0xA33F
>@@ -44,7 +42,7 @@ static void __init copy_bootdata(char *r
> 	int new_data;
> 	char * command_line;
> 
>-	memcpy(x86_boot_params, real_mode_data, 2048); 
>+	memcpy(x86_boot_params, real_mode_data, BOOT_PARAM_SIZE); 
> 	new_data = *(int *) (x86_boot_params + NEW_CL_POINTER);
> 	if (!new_data) {
> 		if (OLD_CL_MAGIC != * (u16 *) OLD_CL_MAGIC_ADDR) {
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at  http://www.tux.org/lkml/
>
>  
>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] Increase number of e820 entries hard limit from 32 to 128
@ 2005-04-23  1:14 Venkatesh Pallipadi
  2005-04-22 23:52 ` jmerkey
  2005-04-23  1:51 ` Linus Torvalds
  0 siblings, 2 replies; 7+ messages in thread
From: Venkatesh Pallipadi @ 2005-04-23  1:14 UTC (permalink / raw)
  To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, Rohit Seth, Andi Kleen



The specifications that talk about E820 map doesn't have an upper limit
on the number of E820 entries. But, today's kernel has a hard limit of 32.
With increase in memory size, we are seeing the number of E820 entries
reaching close to 32. Patch below bumps the number upto 128. 

Patch does it for both i386 and x86-64.

Side-effect: 
bss increases by ~ 2K and init.data increases by ~7.5K
on all systems, due to increase in size of static arrays.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>

diff -purN  linux-2.6.11/Documentation/i386/zero-page.txt.orig linux-2.6.11/Documentation/i386/zero-page.txt
--- linux-2.6.11/Documentation/i386/zero-page.txt.orig	2005-04-21 17:09:08.059184904 -0700
+++ linux-2.6.11/Documentation/i386/zero-page.txt	2005-04-21 17:09:14.955136560 -0700
@@ -79,6 +79,6 @@ Offset	Type		Description
 0x22c   unsigned long	ramdisk_max
 0x230   16 bytes 	trampoline
 0x290 - 0x2cf		EDD_MBR_SIG_BUFFER (edd.S)
-0x2d0 - 0x600		E820MAP
-0x600 - 0x7ff		EDDBUF (edd.S) for disk signature read sector
-0x600 - 0x7eb		EDDBUF (edd.S) for edd data
+0x2d0 - 0xd00		E820MAP
+0xd00 - 0xeff		EDDBUF (edd.S) for disk signature read sector
+0xd00 - 0xeeb		EDDBUF (edd.S) for edd data
diff -purN  linux-2.6.11/include/linux/edd.h.orig linux-2.6.11/include/linux/edd.h
--- linux-2.6.11/include/linux/edd.h.orig	2005-04-21 17:09:08.059184904 -0700
+++ linux-2.6.11/include/linux/edd.h	2005-04-21 17:09:14.956136408 -0700
@@ -32,7 +32,7 @@
 
 #define EDDNR 0x1e9		/* addr of number of edd_info structs at EDDBUF
 				   in boot_params - treat this as 1 byte  */
-#define EDDBUF	0x600		/* addr of edd_info structs in boot_params */
+#define EDDBUF	0xd00		/* addr of edd_info structs in boot_params */
 #define EDDMAXNR 6		/* number of edd_info structs starting at EDDBUF  */
 #define EDDEXTSIZE 8		/* change these if you muck with the structures */
 #define EDDPARMSIZE 74
diff -purN  linux-2.6.11/include/asm-i386/e820.h.orig linux-2.6.11/include/asm-i386/e820.h
--- linux-2.6.11/include/asm-i386/e820.h.orig	2005-04-21 17:09:08.060184752 -0700
+++ linux-2.6.11/include/asm-i386/e820.h	2005-04-21 17:09:14.956136408 -0700
@@ -13,7 +13,7 @@
 #define __E820_HEADER
 
 #define E820MAP	0x2d0		/* our map */
-#define E820MAX	32		/* number of entries in E820MAP */
+#define E820MAX	128		/* number of entries in E820MAP */
 #define E820NR	0x1e8		/* # entries in E820MAP */
 
 #define E820_RAM	1
diff -purN  linux-2.6.11/include/asm-i386/setup.h.orig linux-2.6.11/include/asm-i386/setup.h
--- linux-2.6.11/include/asm-i386/setup.h.orig	2005-04-21 17:09:08.060184752 -0700
+++ linux-2.6.11/include/asm-i386/setup.h	2005-04-21 17:09:14.957136256 -0700
@@ -16,7 +16,7 @@
 #define MAXMEM_PFN	PFN_DOWN(MAXMEM)
 #define MAX_NONPAE_PFN	(1 << 20)
 
-#define PARAM_SIZE 2048
+#define PARAM_SIZE 4096
 #define COMMAND_LINE_SIZE 256
 
 #define OLD_CL_MAGIC_ADDR	0x90020
diff -purN  linux-2.6.11/arch/i386/boot/setup.S.orig linux-2.6.11/arch/i386/boot/setup.S
--- linux-2.6.11/arch/i386/boot/setup.S.orig	2005-04-21 17:09:08.061184600 -0700
+++ linux-2.6.11/arch/i386/boot/setup.S	2005-04-21 17:09:14.957136256 -0700
@@ -164,7 +164,7 @@ ramdisk_max:	.long (-__PAGE_OFFSET-(512 
 trampoline:	call	start_of_setup
 		.align 16
 					# The offset at this point is 0x240
-		.space	(0x7ff-0x240+1) # E820 & EDD space (ending at 0x7ff)
+		.space	(0xeff-0x240+1) # E820 & EDD space (ending at 0xeff)
 # End of setup header #####################################################
 
 start_of_setup:
@@ -333,9 +333,9 @@ jmpe820:
 	# sizeof(e820rec).
 	#
 good820:
-	movb	(E820NR), %al			# up to 32 entries
+	movb	(E820NR), %al			# up to 128 entries
 	cmpb	$E820MAX, %al
-	jnl	bail820
+	jae	bail820
 
 	incb	(E820NR)
 	movw	%di, %ax
diff -purN  linux-2.6.11/include/asm-x86_64/e820.h.orig linux-2.6.11/include/asm-x86_64/e820.h
--- linux-2.6.11/include/asm-x86_64/e820.h.orig	2005-04-21 17:09:08.061184600 -0700
+++ linux-2.6.11/include/asm-x86_64/e820.h	2005-04-21 17:09:14.958136104 -0700
@@ -14,7 +14,7 @@
 #include <linux/mmzone.h>
 
 #define E820MAP	0x2d0		/* our map */
-#define E820MAX	32		/* number of entries in E820MAP */
+#define E820MAX	128		/* number of entries in E820MAP */
 #define E820NR	0x1e8		/* # entries in E820MAP */
 
 #define E820_RAM	1
diff -purN  linux-2.6.11/include/asm-x86_64/bootsetup.h.orig linux-2.6.11/include/asm-x86_64/bootsetup.h
--- linux-2.6.11/include/asm-x86_64/bootsetup.h.orig	2005-04-21 17:09:08.061184600 -0700
+++ linux-2.6.11/include/asm-x86_64/bootsetup.h	2005-04-22 14:38:39.793893360 -0700
@@ -2,7 +2,8 @@
 #ifndef _X86_64_BOOTSETUP_H
 #define _X86_64_BOOTSETUP_H 1
 
-extern char x86_boot_params[2048];
+#define BOOT_PARAM_SIZE		4096
+extern char x86_boot_params[BOOT_PARAM_SIZE];
 
 /*
  * This is set up by the setup-routine at boot-time
diff -purN  linux-2.6.11/arch/x86_64/boot/setup.S.orig linux-2.6.11/arch/x86_64/boot/setup.S
--- linux-2.6.11/arch/x86_64/boot/setup.S.orig	2005-04-21 17:09:08.062184448 -0700
+++ linux-2.6.11/arch/x86_64/boot/setup.S	2005-04-22 15:32:57.074711408 -0700
@@ -160,7 +160,7 @@ ramdisk_max:	.long 0xffffffff
 trampoline:	call	start_of_setup
 		.align 16
 					# The offset at this point is 0x240
-		.space  (0x7ff-0x240+1)	# E820 & EDD space (ending at 0x7ff)
+		.space  (0xeff-0x240+1)	# E820 & EDD space (ending at 0xeff)
 # End of setup header #####################################################
 
 start_of_setup:
@@ -412,9 +412,9 @@ jmpe820:
 	# sizeof(e820rec).
 	#
 good820:
-	movb	(E820NR), %al			# up to 32 entries
+	movb	(E820NR), %al			# up to 128 entries
 	cmpb	$E820MAX, %al
-	jnl	bail820
+	jae	bail820
 
 	incb	(E820NR)
 	movw	%di, %ax
diff -purN  linux-2.6.11/arch/x86_64/kernel/setup64.c.orig linux-2.6.11/arch/x86_64/kernel/setup64.c
--- linux-2.6.11/arch/x86_64/kernel/setup64.c.orig	2005-04-22 15:29:38.304929008 -0700
+++ linux-2.6.11/arch/x86_64/kernel/setup64.c	2005-04-21 17:12:15.529685056 -0700
@@ -12,6 +12,7 @@
 #include <linux/string.h>
 #include <linux/bootmem.h>
 #include <linux/bitops.h>
+#include <asm/bootsetup.h>
 #include <asm/pda.h>
 #include <asm/pgtable.h>
 #include <asm/processor.h>
@@ -26,7 +27,7 @@
 #include <asm/mman.h>
 #include <asm/numa.h>
 
-char x86_boot_params[2048] __initdata = {0,};
+char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,};
 
 cpumask_t cpu_initialized __initdata = CPU_MASK_NONE;
 
diff -purN  linux-2.6.11/arch/x86_64/kernel/head64.c.orig linux-2.6.11/arch/x86_64/kernel/head64.c
--- linux-2.6.11/arch/x86_64/kernel/head64.c.orig	2005-04-22 15:29:22.004407064 -0700
+++ linux-2.6.11/arch/x86_64/kernel/head64.c	2005-04-22 15:32:37.295718272 -0700
@@ -29,8 +29,6 @@ static void __init clear_bss(void)
 	       (unsigned long) __bss_end - (unsigned long) __bss_start);
 }
 
-extern char x86_boot_params[2048];
-
 #define NEW_CL_POINTER		0x228	/* Relative to real mode data */
 #define OLD_CL_MAGIC_ADDR	0x90020
 #define OLD_CL_MAGIC            0xA33F
@@ -44,7 +42,7 @@ static void __init copy_bootdata(char *r
 	int new_data;
 	char * command_line;
 
-	memcpy(x86_boot_params, real_mode_data, 2048); 
+	memcpy(x86_boot_params, real_mode_data, BOOT_PARAM_SIZE); 
 	new_data = *(int *) (x86_boot_params + NEW_CL_POINTER);
 	if (!new_data) {
 		if (OLD_CL_MAGIC != * (u16 *) OLD_CL_MAGIC_ADDR) {

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Increase number of e820 entries hard limit from 32 to 128
  2005-04-23  1:14 [PATCH] Increase number of e820 entries hard limit from 32 to 128 Venkatesh Pallipadi
  2005-04-22 23:52 ` jmerkey
@ 2005-04-23  1:51 ` Linus Torvalds
  2005-04-23  2:32   ` Venkatesh Pallipadi
  1 sibling, 1 reply; 7+ messages in thread
From: Linus Torvalds @ 2005-04-23  1:51 UTC (permalink / raw)
  To: Venkatesh Pallipadi; +Cc: Andrew Morton, linux-kernel, Rohit Seth, Andi Kleen



On Fri, 22 Apr 2005, Venkatesh Pallipadi wrote:
> 
> The specifications that talk about E820 map doesn't have an upper limit
> on the number of E820 entries. But, today's kernel has a hard limit of 32.
> With increase in memory size, we are seeing the number of E820 entries
> reaching close to 32. Patch below bumps the number upto 128. 

Hmm. Anything that changes setup.S tends to have bootloader dependencies. 
I worry whether this one does too..

		Linus

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Increase number of e820 entries hard limit from 32 to 128
  2005-04-23  1:51 ` Linus Torvalds
@ 2005-04-23  2:32   ` Venkatesh Pallipadi
  2005-04-23 15:10     ` Andi Kleen
  0 siblings, 1 reply; 7+ messages in thread
From: Venkatesh Pallipadi @ 2005-04-23  2:32 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Venkatesh Pallipadi, Andrew Morton, linux-kernel, Rohit Seth, Andi Kleen

On Fri, Apr 22, 2005 at 06:51:59PM -0700, Linus Torvalds wrote:
> On Fri, 22 Apr 2005, Venkatesh Pallipadi wrote:
> > The specifications that talk about E820 map doesn't have an upper limit
> > on the number of E820 entries. But, today's kernel has a hard limit of 32.
> > With increase in memory size, we are seeing the number of E820 entries
> > reaching close to 32. Patch below bumps the number upto 128. 
> 
> Hmm. Anything that changes setup.S tends to have bootloader dependencies. 
> I worry whether this one does too..
> 

The setup.S change in this patch should be OK. As it is adding to the 
existing zero-page and keeping it within one page. I tested it on systems 
with grub, adding some dummy E820 entries and it worked fine.

However, there is another place that needs to be changed. Boot loaders
also calls E820 while booting directly with vmlinux (instead of usual 
bzImage - which is handled by this patch) and that needs to change to 
incorporate more E820 entries. But, there we may need more changes, to 
the boot protocol version and the like. On a side note, looking at the 
grub source, it seems to have a limit of 50 entries today, which doesn't 
agree with current 32 entry limit in the kernel. Not sure why grub has 
this different limit though.

Thanks,
Venki 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Increase number of e820 entries hard limit from 32 to 128
  2005-04-23  2:32   ` Venkatesh Pallipadi
@ 2005-04-23 15:10     ` Andi Kleen
  2005-04-27  0:40       ` Venkatesh Pallipadi
  2005-06-06 10:45       ` Boot problems & zero page Was: " David Balažic
  0 siblings, 2 replies; 7+ messages in thread
From: Andi Kleen @ 2005-04-23 15:10 UTC (permalink / raw)
  To: Venkatesh Pallipadi
  Cc: Linus Torvalds, Andrew Morton, linux-kernel, Rohit Seth, Andi Kleen

On Fri, Apr 22, 2005 at 07:32:50PM -0700, Venkatesh Pallipadi wrote:
> On Fri, Apr 22, 2005 at 06:51:59PM -0700, Linus Torvalds wrote:
> > On Fri, 22 Apr 2005, Venkatesh Pallipadi wrote:
> > > The specifications that talk about E820 map doesn't have an upper limit
> > > on the number of E820 entries. But, today's kernel has a hard limit of 32.
> > > With increase in memory size, we are seeing the number of E820 entries
> > > reaching close to 32. Patch below bumps the number upto 128. 
> > 
> > Hmm. Anything that changes setup.S tends to have bootloader dependencies. 
> > I worry whether this one does too..
> > 
> 
> The setup.S change in this patch should be OK. As it is adding to the 
> existing zero-page and keeping it within one page. I tested it on systems 
> with grub, adding some dummy E820 entries and it worked fine.

The last time I tried to extend the zero page (with a longer command line)
it broke lilo on systems with EDID support and CONFIG_EDID enabled.
Make sure you test that case.

-Andi


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Increase number of e820 entries hard limit from 32 to 128
  2005-04-23 15:10     ` Andi Kleen
@ 2005-04-27  0:40       ` Venkatesh Pallipadi
  2005-06-06 10:45       ` Boot problems & zero page Was: " David Balažic
  1 sibling, 0 replies; 7+ messages in thread
From: Venkatesh Pallipadi @ 2005-04-27  0:40 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Venkatesh Pallipadi, Linus Torvalds, Andrew Morton, linux-kernel,
	Rohit Seth, mark.gross

On Sat, Apr 23, 2005 at 05:10:48PM +0200, Andi Kleen wrote:
> On Fri, Apr 22, 2005 at 07:32:50PM -0700, Venkatesh Pallipadi wrote:
> > On Fri, Apr 22, 2005 at 06:51:59PM -0700, Linus Torvalds wrote:
> > > On Fri, 22 Apr 2005, Venkatesh Pallipadi wrote:
> > > > The specifications that talk about E820 map doesn't have an upper limit
> > > > on the number of E820 entries. But, today's kernel has a hard limit of 32.
> > > > With increase in memory size, we are seeing the number of E820 entries
> > > > reaching close to 32. Patch below bumps the number upto 128. 
> > > 
> > > Hmm. Anything that changes setup.S tends to have bootloader dependencies. 
> > > I worry whether this one does too..
> > > 
> > 
> > The setup.S change in this patch should be OK. As it is adding to the 
> > existing zero-page and keeping it within one page. I tested it on systems 
> > with grub, adding some dummy E820 entries and it worked fine.
> 
> The last time I tried to extend the zero page (with a longer command line)
> it broke lilo on systems with EDID support and CONFIG_EDID enabled.
> Make sure you test that case.
> 

Tested this patch with some more configuration and I did not see any breakage.
- LILO with EDID enabled
- pxeboot

And in the current zero-page, EDID info is at a lower address (before E820MAP).
So, there should not be any issues with EDID info. Only field (other than E820) 
that is changing in zero page is EDDBUF (that comes after E820MAP). 
The patch changes the reference to EDDBUF inside kernel to new position in 
zero page. And I don't see EDDBUF being used by boot loader anywhere. So, we 
should be OK with that change.

Thanks,
Venki


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Boot  problems & zero page Was: [PATCH] Increase number of e820 entries hard limit from 32 to 128
  2005-04-23 15:10     ` Andi Kleen
  2005-04-27  0:40       ` Venkatesh Pallipadi
@ 2005-06-06 10:45       ` David Balažic
  1 sibling, 0 replies; 7+ messages in thread
From: David Balažic @ 2005-06-06 10:45 UTC (permalink / raw)
  To: linux-kernel

Andi Kleen <ak <at> suse.de> writes:

> The last time I tried to extend the zero page (with a longer command line)
> it broke lilo on systems with EDID support and CONFIG_EDID enabled.
> Make sure you test that case.

Hi!

I (and other) had problems, that may be related to this. Can you look into it ?

What happened was :
linux boot had a delay of 10..30..90..infinite seconds, depending on command
line length and certain disk related BIOS settings.
GRUB was the loader. The delay went away after disabling CONFIG_EDD.
It was also "fixed" by downgrading the BIOS version.

It would be really cool if you could inject some wisdom in the issue ;-)

For details, see the LKML archives :

"EDD code causes long boot delay"
<http://marc.theaimsgroup.com/?t=108788699100001&r=1&w=2>

"[PATCH 2.6.9-rc3-mm2] EDD: use EXTENDED READ command, add CONFIG_EDD_SKIP_MBR"
<http://lkml.org/lkml/2004/10/4/239>

"[PATCH 2.6] EDD: add edd=off and edd=skipmbr options"
<http://lkml.org/lkml/2004/11/23/293>

Kind regards,
David Balazic


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2005-06-06 10:51 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-23  1:14 [PATCH] Increase number of e820 entries hard limit from 32 to 128 Venkatesh Pallipadi
2005-04-22 23:52 ` jmerkey
2005-04-23  1:51 ` Linus Torvalds
2005-04-23  2:32   ` Venkatesh Pallipadi
2005-04-23 15:10     ` Andi Kleen
2005-04-27  0:40       ` Venkatesh Pallipadi
2005-06-06 10:45       ` Boot problems & zero page Was: " David Balažic

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®