Message ID | 20190514123125.29086-1-julien.grall@arm.com (mailing list archive) |
---|---|
Headers | show |
Series | xen/arm: Provide a generic function to update Xen PT | expand |
Hi, Gentle ping... Cheers, On 14/05/2019 13:31, Julien Grall wrote: > Hi all, > > This is the third part of the boot/memory rework for Xen on Arm. At the > moment, the update to Xen PT is scattered all around mm.c. This makes > difficult to rework Xen memory layout or even ensuring we are following the > Arm Arm properly (and we are not so far!). > > This part contains code to provide a generic function to update Xen PT. > While I could have started from scratch, I decided to base the new function > on create_xen_entries() (now renamed xen_pt_update()). This makes slightly > easier to follow the changes. > > In this series, the new generic function will only support 3rd-level update > and cannot be used in early boot (i.e because xenheap is not initialized). > This will be extended in follow-up series to allow more use within mm.c. > > There are probably some optimization possible around the TLBs flush. I haven't > looked at it so far. > > The last two patches of this series is to show how existing callers can be > converted. There are more conversion to come in follow-up series. > > This series is based on the first two parts sent separately (see [1] and [2]). > > For convenience, I provided a branch with all the patches applied based on > staging: > > git://xenbits.xen.org/people/julieng/xen-unstable.git branch mm/part3/v2 > > Cheers, > > [1] https://lists.xenproject.org/archives/html/xen-devel/2019-05/msg01109.html > [2] https://lists.xenproject.org/archives/html/xen-devel/2019-05/msg01149.html > > Julien Grall (12): > xen/arm: lpae: Add a macro to generate offsets from an address > xen/arm: mm: Rename create_xen_entries() to xen_pt_update() > xen/arm: mm: Move out of xen_pt_update() the logic to update an entry > xen/arm: mm: Only increment mfn when valid in xen_pt_update > xen/arm: mm: Introduce _PAGE_PRESENT and _PAGE_POPULATE > xen/arm: mm: Sanity check any update of Xen page tables > xen/arm: mm: Rework xen_pt_update_entry to avoid use xenmap_operation > xen/arm: mm: Remove enum xenmap_operation > xen/arm: mm: Use {, un}map_domain_page() to map/unmap Xen page-tables > xen/arm: mm: Rework Xen page-tables walk during update > xen/arm: mm: Don't open-code Xen PT update in {set, clear}_fixmap() > xen/arm: mm: Remove set_pte_flags_on_range() > > xen/arch/arm/mm.c | 421 ++++++++++++++++++++++++++++++--------------- > xen/arch/arm/p2m.c | 23 +-- > xen/include/asm-arm/lpae.h | 9 + > xen/include/asm-arm/page.h | 9 +- > 4 files changed, 305 insertions(+), 157 deletions(-) >
(+ Committers) Ping again... I have some upcoming patches that are blocked on this work... Cheers, On 29/05/2019 18:23, Julien Grall wrote: > Hi, > > Gentle ping... > > Cheers, > > On 14/05/2019 13:31, Julien Grall wrote: >> Hi all, >> >> This is the third part of the boot/memory rework for Xen on Arm. At the >> moment, the update to Xen PT is scattered all around mm.c. This makes >> difficult to rework Xen memory layout or even ensuring we are following the >> Arm Arm properly (and we are not so far!). >> >> This part contains code to provide a generic function to update Xen PT. >> While I could have started from scratch, I decided to base the new function >> on create_xen_entries() (now renamed xen_pt_update()). This makes slightly >> easier to follow the changes. >> >> In this series, the new generic function will only support 3rd-level update >> and cannot be used in early boot (i.e because xenheap is not initialized). >> This will be extended in follow-up series to allow more use within mm.c. >> >> There are probably some optimization possible around the TLBs flush. I haven't >> looked at it so far. >> >> The last two patches of this series is to show how existing callers can be >> converted. There are more conversion to come in follow-up series. >> >> This series is based on the first two parts sent separately (see [1] and [2]). >> >> For convenience, I provided a branch with all the patches applied based on >> staging: >> >> git://xenbits.xen.org/people/julieng/xen-unstable.git branch mm/part3/v2 >> >> Cheers, >> >> [1] https://lists.xenproject.org/archives/html/xen-devel/2019-05/msg01109.html >> [2] https://lists.xenproject.org/archives/html/xen-devel/2019-05/msg01149.html >> >> Julien Grall (12): >> xen/arm: lpae: Add a macro to generate offsets from an address >> xen/arm: mm: Rename create_xen_entries() to xen_pt_update() >> xen/arm: mm: Move out of xen_pt_update() the logic to update an entry >> xen/arm: mm: Only increment mfn when valid in xen_pt_update >> xen/arm: mm: Introduce _PAGE_PRESENT and _PAGE_POPULATE >> xen/arm: mm: Sanity check any update of Xen page tables >> xen/arm: mm: Rework xen_pt_update_entry to avoid use xenmap_operation >> xen/arm: mm: Remove enum xenmap_operation >> xen/arm: mm: Use {, un}map_domain_page() to map/unmap Xen page-tables >> xen/arm: mm: Rework Xen page-tables walk during update >> xen/arm: mm: Don't open-code Xen PT update in {set, clear}_fixmap() >> xen/arm: mm: Remove set_pte_flags_on_range() >> >> xen/arch/arm/mm.c | 421 ++++++++++++++++++++++++++++++--------------- >> xen/arch/arm/p2m.c | 23 +-- >> xen/include/asm-arm/lpae.h | 9 + >> xen/include/asm-arm/page.h | 9 +- >> 4 files changed, 305 insertions(+), 157 deletions(-) >> >