[RFC v2 1/4] ARM: mm: add early page table attribute modification ability
William Mills
wmills at ti.com
Mon Jun 6 05:31:53 PDT 2016
On 06/06/2016 08:18 AM, Russell King - ARM Linux wrote:
> On Sun, Jun 05, 2016 at 11:20:26PM -0400, Bill Mills wrote:
>> Allow early-init to specify modifications to be made to the boot time page
>> table. Any modifications specified will be done with MMU off at the same
>> time that any Phy<->Virt fixup is done.
>
> I think this is rather over-engineered - do we need to support multiple
> different fixups to the page tables like this?
Yes I was expecting this comment but thought I would give you the choice. :)
>
> Given how this has grown, I think it would be better to duplicate the
> existing swapper_pg_dir, modify the new copy, and then have the
> pv-fixup-asm code merely copy the new to the old with the MMU off.
> That way, the only two things that the assembly code has to do is to
> deal with the page table update, and updating the TTBR registers.
> Most of the complexity can then be kept in the C code.
>
I really like this. I can just do the outer shared fixup and not worry
about a generalized mechanism. *If* someone needs to do another fixup
they can just code it in C.
The new patch #1 will just rework the PV_FIXUP for the new asm/C split.
You want the off-line table to copy over the early table in place w/ MMU
off, correct? (Not update the HW to point to a new spot.)
> I think we also need to modify the TTBCR to match the sharability of
> memory - currently, TTB walks will be inner sharable, but my
> understanding is that if we switch memory to be outer sharable, we
> also need to update the TTB walks to match.
>
Good point, Thanks. I don't think our internal hack has been doing that.
More information about the linux-arm-kernel
mailing list