[Xen-devel] Physical memory start contraints in the Linux kernel (Was: Re: Xen osstest on Calxeda midway progress (Was: Re: [xen-unstable test] 21486: tolerable FAIL - PUSHED))

Ian Campbell Ian.Campbell at citrix.com
Tue Nov 12 10:32:37 EST 2013


On Tue, 2013-11-12 at 15:24 +0000, Julien Grall wrote:
> 
> On 11/12/2013 02:57 PM, Ian Campbell wrote:
> > On Tue, 2013-11-12 at 14:52 +0000, Julien Grall wrote:
> >>
> >> On 11/12/2013 02:41 PM, Russell King - ARM Linux wrote:
> >>> On Tue, Nov 12, 2013 at 02:35:10PM +0000, Julien Grall wrote:
> >>>> During some debugging on the Arndale and Midway, I found another
> >>>> constraint with CONFIG_ARM_PATCH_PHYS_VIRT.
> >>>> I have noticed that all the kernel physical addresses must be lower than
> >>>> the corresponding virtual addresses. So the delta offset compute in
> >>>> __fixup_pv_table (arch/arm/kernel/head.S) must always be negative.
> >>>> If this assertion is not validated, when the kernel will browse the
> >>>> memory bank (sanity_check_info in arch/arm/mm/mmu.c), __phys(...) will
> >>>> compute a wrong address and will result to consider all memory bank as
> >>>> highmem.
> >>>>
> >>>> After digging in the code, it seems it's due to some optimization during
> >>>> opcode fixup in __fixup_a_pvtable. Is it a wanted constraint?
> >>>
> >>> Are you talking about the code in v3.12 or the code in -next ?
> >>
> >> I was talking about 3.12. I have just checked -next and my issue seems
> >> to be fixed by the commit f52bb722547f43caeaecbcc62db9f3c3b80ead9b.
> >> I should have checked earlier, thanks.
> >
> > Should we revert your Xen side fix^Wworkaround then:
> 
> For now it's only in -next. I would wait until this commit is at least 
> in Linux master, otherwise we will likely break vanilla/distro kernel 
> for Xen 4.4.

OK. Can you keep an eye on it and let me know if/when the time comes to
revert?

Is the fix a candidate for stable? Seems like a bit of a big exciting
fix for what was an quite recently an obscure corner case...

Ian.





More information about the linux-arm-kernel mailing list