Thread (21 messages) flat view 21 messages, 5 authors, 2016-06-07

[RFC v2 1/4] ARM: mm: add early page table attribute modification ability

From: William Mills <hidden>
Date: 2016-06-06 12:32:34
Also in: lkml


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:
quoted
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help