[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v6 06/13] xen/arm: Split page table related code to mmu/pt.c
Hi Julien, > On Sep 26, 2023, at 02:57, Julien Grall <julien@xxxxxxx> wrote: > > Hi Henry, > > I haven't checked that the code movement is just a code movement. For now, I > am mainly looking at the split. No problem, thank you. I will rebase v6 and use text comparison tools to check if the code movement is just code movement before sending v7 to make sure I won’t make the same mistake again. You can double check the final version. > > On 28/08/2023 02:32, Henry Wang wrote: >> The extraction of MMU related code is the basis of MPU support. >> This commit starts this work by firstly splitting the page table >> related code to mmu/pt.c, so that we will not end up with again >> massive mm.c files. >> Introduce a mmu specific directory and setup the Makefiles for it. >> Move the page table related functions and macros from arch/arm/mm.c >> to arch/arm/mmu/pt.c. Expose the previously static global variable >> "phys_offset". > > I don't much like the idea to expose phys_offset everywhere. Looking at the > code there are two users: > * pte_of_xenaddr(): I realize you suggested to add it in pt.c and I agreed. > However, looking at the split, this function is exclusively used for boot > (and you confirmed below). So I think it would be preferable to move it in > mmu/setup.c. Sounds good, I will fix this in v7. > * prepare_secondary_mm(): I think we could switch to virt_to_mfn(). Actually I found the third use of phys_offset in setup_pagetables(), but it looks like the usage is similar as the usage here, so probably these two are the same case. Also, please correct me if I am wrong, by suggesting the “switch”, do you mean using virt_to_mfn() on xen_pgtable to change it to min, then change the mfn to PA and delete the phys_offset? If so, why not use virt_to_maddr()? > > I can understand if you don't want to make the second change. So I would at > least request to ... > >> While moving, mark pte_of_xenaddr() as __init to make clear that >> this helper is only intended to be used during early boot. >> Take the opportunity to fix the in-code comment coding styles when >> possible, and drop the unnecessary #include headers in the original >> arch/arm/mm.c. >> Signed-off-by: Henry Wang <Henry.Wang@xxxxxxx> >> Signed-off-by: Penny Zheng <penny.zheng@xxxxxxx> >> --- >> v6: >> - Rework the original patch "[v5,07/13] xen/arm: Extract MMU-specific >> code", only split the page table related code out in this patch. >> --- >> xen/arch/arm/Makefile | 1 + >> xen/arch/arm/include/asm/mm.h | 2 + > > ... declare phys_offset in asm/mmu/mm.h because this variable doesn't make a > lot of sense when the MPU is used (it will always be equal to 0). > > The rest of the split looks good to me. Thanks for confirming, I will see what the above discussion ends and then do the change accordingly. > > > [...] > >> -lpae_t pte_of_xenaddr(vaddr_t va) >> -{ >> - paddr_t ma = va + phys_offset; >> - >> - return mfn_to_xen_entry(maddr_to_mfn(ma), MT_NORMAL); >> -} >> - > > See above. I think this should stay here for now and the be moved to setup.c > in a follow-up patch. Sure. Kind regards, Henry > > Cheers, > > -- > Julien Grall
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |