2008-06-20 18:14:22

by Alok Kataria

[permalink] [raw]
Subject: Is e820_setup_gap broken ??

I am looking at the e820_setup_gap function in tip/master tree.

For i386 if we don't find a big enough gap in e820 map, we keep the
gapstart value to "0x10000000". Don't print any warning messages for the
user that we were unable to find gap in the 32bit address range.

Now this address 0x10000000 can actually be used by the system ram or
may have been reserved for some reason. Wouldn't the system break if the
PCI devices started using this gap in such a case ?

Also note that this is not just a problem with the tip/master tree in
the current mainline tree too we do similar stuff for i386 kernel.

Thanks,
Alok


2008-06-20 18:26:08

by Alok Kataria

[permalink] [raw]
Subject: Re: Is e820_setup_gap broken ??

On Fri, 2008-06-20 at 11:14 -0700, Alok Kataria wrote:
> I am looking at the e820_setup_gap function in tip/master tree.
>
> For i386 if we don't find a big enough gap in e820 map, we keep the
> gapstart value to "0x10000000". Don't print any warning messages for the
> user that we were unable to find gap in the 32bit address range.
>
> Now this address 0x10000000 can actually be used by the system ram or
> may have been reserved for some reason. Wouldn't the system break if the
> PCI devices started using this gap in such a case ?

Ok I take this back.
In the PCI code path when we actually use this gap start address for
allocating the resource...allocate_resource will shout about the memory
address being already in use. And the pci device won't be allocated
which is the right thing to do.


> Also note that this is not just a problem with the tip/master tree in
> the current mainline tree too we do similar stuff for i386 kernel.
>
> Thanks,
> Alok