[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH early-RFC 4/5] xen/arm: mm: Rework switch_ttbr()
On Tue, 15 Mar 2022, Julien Grall wrote: > On 14/03/2022 23:48, Stefano Stabellini wrote: > > > > - we save the current mapping > > > > - update it with the Xen 1:1 > > > > - switch_ttbr > > > > - remove Xen 1:1 > > > > - restore mapping > > > > > > > > It should work, right? Basically, a mapping conflict shouldn't be an > > > > issue given that the mapping has only to live long enough to call > > > > switch_ttbr_id. > > > > > > Today switch_ttbr() is called before we initialized most of the memory > > > layout. > > > So clashing with the VMAP and frametable is not a problem. > > > > > > However, the identity mapping may also clash with the region used to map > > > Xen. > > > That said, technically, we are not able to handle Xen when its start > > > address > > > is in region 2MB + 4K to 4MB (Xen is loaded at a 4KB aligned address). > > > > > > The trouble is some features (e.g. UBSAN, GCOV) can generate Xen image > > > over > > > 2MB. IOW, the range where Xen cannot be loaded will increase. > > > > > > This is an issue because AFAIK, there is no away to tell GRUB "You can't > > > load > > > Xen at this region". But even if there were one, I feel this restriction > > > is > > > sort of random. > > > > > > I already wrote a patch to get rid of the restriction. The code is not too > > > bad > > > (we only need an extra indirection). But I haven't sent it yet because it > > > is > > > less critical with the re-shuffling of the memory layout. > > > > Interesting! I am curious: how did you manage to do it? > > When the identity mapping is clashing with Xen runtime address, I am creating > a temporary mapping for Xen at a different fixed address. > > Once the MMU is turned on, we can jump to the temporary mapping. After that we > are safe to remove the identity mapping and create the runtime Xen mapping. > The last step is to jump on the runtime mapping and then remove the temporary > mapping. Cool! I was guessing something along those lines.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |