[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] xen/arm: p2m: configure stage-2 page table to support upto 42-bit PA systems



commit 896ebdfa3a85f083c93bec8ae80a535c0e50f47e
Author:     Vishnu Pajjuri OS <vishnu@xxxxxxxxxxxxxxxxxxxxxx>
AuthorDate: Thu May 30 07:59:46 2019 +0000
Commit:     Julien Grall <julien.grall@xxxxxxx>
CommitDate: Thu Jun 6 16:48:13 2019 +0100

    xen/arm: p2m: configure stage-2 page table to support upto 42-bit PA systems
    
    At the moment, on platform supporting 42-bit PA, Xen will only expose
    40-bit worth of IPA to all domains.
    
    The limitation was to prevent allocating too much memory for the root
    page tables as those platforms only support 3-levels page-tables. At the
    time, this was deemed acceptable because none of the platforms had
    address wired above 40-bits.
    
    However, newer platforms take advantage of the full address space. This
    will result to break Dom0 boot as it can't access anything above 40-bit.
    
    The only way to support 42-bit IPA is to allocate 8 pages for the root
    page-tables. This is a bit a waste of memory as Xen does not offer
    per-guest stage-2 configuration. But it is considered acceptable as
    current platforms support 42-bit PA have a lot of memory.
    
    In the future, we may want to consider per-guest stage-2 configuration
    to reduce the waste.
    
    Signed-off-by: Feng Kan <fengkan@xxxxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Vishnu <vishnu@xxxxxxxxxxxxxxxxxxxxxx>
    [julien: rework commit message]
    Acked-by: Julien Grall <julien.grall@xxxxxxx>
---
 xen/arch/arm/p2m.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
index 92c2413f20..7712991f3b 100644
--- a/xen/arch/arm/p2m.c
+++ b/xen/arch/arm/p2m.c
@@ -1995,7 +1995,7 @@ void __init setup_virt_paging(void)
         [0] = { 32,      32/*32*/,  0,          1 },
         [1] = { 36,      28/*28*/,  0,          1 },
         [2] = { 40,      24/*24*/,  1,          1 },
-        [3] = { 42,      24/*22*/,  1,          1 },
+        [3] = { 42,      22/*22*/,  3,          1 },
         [4] = { 44,      20/*20*/,  0,          2 },
         [5] = { 48,      16/*16*/,  0,          2 },
         [6] = { 0 }, /* Invalid */
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.