Re: kexec + ACPI in 2.6.19 (was: Re: kexec + USB storage in 2.6.19)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dan Aloni <[email protected]> writes:

> On Fri, Jan 12, 2007 at 06:43:40PM +0200, Dan Aloni wrote:
>> On Fri, Jan 12, 2007 at 06:28:00PM +0200, Dan Aloni wrote:
>> > On Fri, Jan 12, 2007 at 06:02:43PM +0200, Dan Aloni wrote:
>> > > On Fri, Jan 12, 2007 at 08:26:03AM -0700, Eric W. Biederman wrote:
>> > > > Dan Aloni <[email protected]> writes:
>> > > > 
>> > > > > I'm attaching the full logs.
>> > > > 
>> > > > Thanks.
>> > > > 
>> > > > > [ 8656.272980] ACPI Error (tbxfroot-0512): Could not map memory at
> 0000040E for length 2 [20060707]
>> > > > 
>> > > > Ok. This looks like the first sign of trouble.
>> > > > Normally I would suspect a memory map issue but your e820 memory map
> looks fine,
>> > > > although a little different between the two kernels.
>> > > > 
>> > > > Is this enough of a hint for you to dig more deeply?
>> > > 
>> > > Reverting just the ACPI code (everything under drivers/acpi/*) 
>> > > back to the version of 2.6.18.3 doesn't fix the problem, so it 
>> > > must be something else.
>> > 
>> > Just occured to me that I didn't revert the relevant code under 
>> > arch/x86_64 so it might still be related somehow..
>> 
>> After adding a few prints inside __ioremap() it appears the function
>> exits for phys_addr==0x40e because (!PageReserved(page)).
>> 
>> Isn't page 0 supposed to be reserved? I clearly see that it is
>> being reserved under setup_arch(). 
>> 
>> Odd, I must say...
>
> In __ioremap() I added this under if(!PageReserved(page)) {...}:
>
> 		if (phys_addr == 0x40e) {
> 			printk("PAGE %p (pfn=%ld): flags=%lx, count=%d\n",
> 			       page,
> 			       page_to_pfn(page),
> 			       page->flags,
> 			       atomic_read(&page->_count));
> 		}
>
> And I get:
>
> [ 1013.864201] PAGE ffff810001000000 (pfn=0): flags=0, count=0
>
> So at least no one is using that page. Still it is not clear why it
> doesn't have the reserve flag turned on.

My hunch is that it might have something to do with the difference
in the e820 map.  The original map reports that whole page as
being usable while in the kexec case the memory from 0x100 is
reported as being usable.  Perhaps someone has a rounding error?

Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux