2007-09-07 20:38:18

by Keshavamurthy, Anil S

[permalink] [raw]
Subject: [patch] Fix BIOS-e820 end address

Subject: [patch] Fix BIOS-e820 end address

--snip of boot message--
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000007fe8cc00 (usable)
----end snip---

As you see from above the address 0000000000100000 is both
shown as reserved and usable which is confusing.

This patch fixes the BIOS-e820 end address.

Signed-off-by: Anil S Keshavamurthy <[email protected]>

---
arch/i386/kernel/e820.c | 2 +-
arch/x86_64/kernel/e820.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

Index: work/arch/i386/kernel/e820.c
===================================================================
--- work.orig/arch/i386/kernel/e820.c 2007-09-08 12:00:33.000000000 -0700
+++ work/arch/i386/kernel/e820.c 2007-09-08 13:39:12.000000000 -0700
@@ -753,7 +753,7 @@
for (i = 0; i < e820.nr_map; i++) {
printk(" %s: %016Lx - %016Lx ", who,
e820.map[i].addr,
- e820.map[i].addr + e820.map[i].size);
+ e820.map[i].addr + e820.map[i].size - 1);
switch (e820.map[i].type) {
case E820_RAM: printk("(usable)\n");
break;
Index: work/arch/x86_64/kernel/e820.c
===================================================================
--- work.orig/arch/x86_64/kernel/e820.c 2007-09-08 12:00:46.000000000 -0700
+++ work/arch/x86_64/kernel/e820.c 2007-09-08 13:38:57.000000000 -0700
@@ -368,7 +368,7 @@
for (i = 0; i < e820.nr_map; i++) {
printk(KERN_INFO " %s: %016Lx - %016Lx ", who,
(unsigned long long) e820.map[i].addr,
- (unsigned long long) (e820.map[i].addr + e820.map[i].size));
+ (unsigned long long) (e820.map[i].addr + e820.map[i].size - 1));
switch (e820.map[i].type) {
case E820_RAM: printk("(usable)\n");
break;


2007-09-08 07:05:30

by Jan Engelhardt

[permalink] [raw]
Subject: Re: [patch] Fix BIOS-e820 end address


On Sep 8 2007 13:50, Keshavamurthy, Anil S wrote:
>--snip of boot message--
>BIOS-provided physical RAM map:
> BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> BIOS-e820: 0000000000100000 - 000000007fe8cc00 (usable)
>----end snip---
>
>As you see from above the address 0000000000100000 is both
>shown as reserved and usable which is confusing.
>
>This patch fixes the BIOS-e820 end address.

If a segment should have size 0 (even possible?), your
patch makes it even more confusing.


Jan
--

2007-09-14 21:00:21

by Jeremy Fitzhardinge

[permalink] [raw]
Subject: Re: [patch] Fix BIOS-e820 end address

Keshavamurthy, Anil S wrote:
> Subject: [patch] Fix BIOS-e820 end address
>
> --snip of boot message--
> BIOS-provided physical RAM map:
> BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> BIOS-e820: 0000000000100000 - 000000007fe8cc00 (usable)
> ----end snip---
>
> As you see from above the address 0000000000100000 is both
> shown as reserved and usable which is confusing.
>

I think this is consistent with many other kernel interfaces (such as
/proc/X/maps) where the end address is taken to be exclusive: [0xf0000,
0x100000).

J

2007-09-14 21:32:17

by Suresh Siddha

[permalink] [raw]
Subject: Re: [patch] Fix BIOS-e820 end address

On Fri, Sep 14, 2007 at 02:00:02PM -0700, Jeremy Fitzhardinge wrote:
> Keshavamurthy, Anil S wrote:
> > Subject: [patch] Fix BIOS-e820 end address
> >
> > --snip of boot message--
> > BIOS-provided physical RAM map:
> > BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
> > BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> > BIOS-e820: 0000000000100000 - 000000007fe8cc00 (usable)
> > ----end snip---
> >
> > As you see from above the address 0000000000100000 is both
> > shown as reserved and usable which is confusing.
> >
>
> I think this is consistent with many other kernel interfaces (such as
> /proc/X/maps) where the end address is taken to be exclusive: [0xf0000,
> 0x100000).

Andrew, Please disregard this patch. As Jermy, Jan pointed out, this
will cause more confusions. Thanks.

2007-09-14 21:33:38

by Keshavamurthy, Anil S

[permalink] [raw]
Subject: Re: [patch] Fix BIOS-e820 end address

On Fri, Sep 14, 2007 at 02:31:59PM -0700, Siddha, Suresh B wrote:
> On Fri, Sep 14, 2007 at 02:00:02PM -0700, Jeremy Fitzhardinge wrote:
> > Keshavamurthy, Anil S wrote:
> > > Subject: [patch] Fix BIOS-e820 end address
> > >
> > > --snip of boot message--
> > > BIOS-provided physical RAM map:
> > > BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
> > > BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> > > BIOS-e820: 0000000000100000 - 000000007fe8cc00 (usable)
> > > ----end snip---
> > >
> > > As you see from above the address 0000000000100000 is both
> > > shown as reserved and usable which is confusing.
> > >
> >
> > I think this is consistent with many other kernel interfaces (such as
> > /proc/X/maps) where the end address is taken to be exclusive: [0xf0000,
> > 0x100000).
>
> Andrew, Please disregard this patch. As Jermy, Jan pointed out, this
> will cause more confusions. Thanks.
I agree, we can discard my patch.

-Anil