All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] convert more Xen page table code to the new API
@ 2020-04-17  9:52 Hongyan Xia
  2020-04-17  9:52 ` [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table Hongyan Xia
                   ` (6 more replies)
  0 siblings, 7 replies; 33+ messages in thread
From: Hongyan Xia @ 2020-04-17  9:52 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, julien, Wei Liu, Jan Beulich, Roger Pau Monné

From: Hongyan Xia <hongyxia@amazon.com>

Basically just rewriting functions using the new API to map and unmap
PTEs. Each patch is independent.

Apart from mapping and unmapping page tables, no other functional change
intended.

Wei Liu (6):
  x86_64/mm: map and unmap page tables in cleanup_frame_table
  x86_64/mm: map and unmap page tables in subarch_init_memory
  x86_64/mm: map and unmap page tables in subarch_memory_op
  x86/smpboot: map and unmap page tables in cleanup_cpu_root_pgt
  x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  x86/pv: map and unmap page table in dom0_construct_pv

 xen/arch/x86/pv/dom0_build.c | 38 ++++++++++++++++++++++++------------
 xen/arch/x86/smpboot.c       | 25 ++++++++++++++++--------
 xen/arch/x86/x86_64/mm.c     | 32 +++++++++++++++---------------
 3 files changed, 58 insertions(+), 37 deletions(-)

-- 
2.24.1.AMZN



^ permalink raw reply	[flat|nested] 33+ messages in thread

* [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table
  2020-04-17  9:52 [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia
@ 2020-04-17  9:52 ` Hongyan Xia
  2020-04-24  8:58   ` Julien Grall
                     ` (2 more replies)
  2020-04-17  9:52 ` [PATCH 2/6] x86_64/mm: map and unmap page tables in subarch_init_memory Hongyan Xia
                   ` (5 subsequent siblings)
  6 siblings, 3 replies; 33+ messages in thread
From: Hongyan Xia @ 2020-04-17  9:52 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, julien, Wei Liu, Jan Beulich, Roger Pau Monné

From: Wei Liu <wei.liu2@citrix.com>

Also fix a weird indentation.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
---
 xen/arch/x86/x86_64/mm.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index e85ef449f3..18210405f4 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -737,8 +737,8 @@ static void cleanup_frame_table(struct mem_hotadd_info *info)
 
     while (sva < eva)
     {
-        l3e = l4e_to_l3e(idle_pg_table[l4_table_offset(sva)])[
-          l3_table_offset(sva)];
+        l3e = l3e_from_l4e(idle_pg_table[l4_table_offset(sva)],
+                           l3_table_offset(sva));
         if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) ||
              (l3e_get_flags(l3e) & _PAGE_PSE) )
         {
@@ -747,7 +747,7 @@ static void cleanup_frame_table(struct mem_hotadd_info *info)
             continue;
         }
 
-        l2e = l3e_to_l2e(l3e)[l2_table_offset(sva)];
+        l2e = l2e_from_l3e(l3e, l2_table_offset(sva));
         ASSERT(l2e_get_flags(l2e) & _PAGE_PRESENT);
 
         if ( (l2e_get_flags(l2e) & (_PAGE_PRESENT | _PAGE_PSE)) ==
@@ -763,10 +763,10 @@ static void cleanup_frame_table(struct mem_hotadd_info *info)
             continue;
         }
 
-        ASSERT(l1e_get_flags(l2e_to_l1e(l2e)[l1_table_offset(sva)]) &
-                _PAGE_PRESENT);
-         sva = (sva & ~((1UL << PAGE_SHIFT) - 1)) +
-                    (1UL << PAGE_SHIFT);
+        ASSERT(l1e_get_flags(l1e_from_l2e(l2e, l1_table_offset(sva))) &
+               _PAGE_PRESENT);
+
+        sva = (sva & ~((1UL << PAGE_SHIFT) - 1)) + (1UL << PAGE_SHIFT);
     }
 
     /* Brute-Force flush all TLB */
-- 
2.24.1.AMZN



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 2/6] x86_64/mm: map and unmap page tables in subarch_init_memory
  2020-04-17  9:52 [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia
  2020-04-17  9:52 ` [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table Hongyan Xia
@ 2020-04-17  9:52 ` Hongyan Xia
  2020-04-24  9:04   ` Julien Grall
  2020-04-17  9:52 ` [PATCH 3/6] x86_64/mm: map and unmap page tables in subarch_memory_op Hongyan Xia
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 33+ messages in thread
From: Hongyan Xia @ 2020-04-17  9:52 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, julien, Wei Liu, Jan Beulich, Roger Pau Monné

From: Wei Liu <wei.liu2@citrix.com>

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
---
 xen/arch/x86/x86_64/mm.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index 18210405f4..5714e5ba62 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -852,14 +852,14 @@ void __init subarch_init_memory(void)
           v += n << PAGE_SHIFT )
     {
         n = L2_PAGETABLE_ENTRIES * L1_PAGETABLE_ENTRIES;
-        l3e = l4e_to_l3e(idle_pg_table[l4_table_offset(v)])[
-            l3_table_offset(v)];
+        l3e = l3e_from_l4e(idle_pg_table[l4_table_offset(v)],
+                           l3_table_offset(v));
         if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) )
             continue;
         if ( !(l3e_get_flags(l3e) & _PAGE_PSE) )
         {
             n = L1_PAGETABLE_ENTRIES;
-            l2e = l3e_to_l2e(l3e)[l2_table_offset(v)];
+            l2e = l2e_from_l3e(l3e, l2_table_offset(v));
             if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) )
                 continue;
             m2p_start_mfn = l2e_get_pfn(l2e);
@@ -878,11 +878,11 @@ void __init subarch_init_memory(void)
           v != RDWR_COMPAT_MPT_VIRT_END;
           v += 1 << L2_PAGETABLE_SHIFT )
     {
-        l3e = l4e_to_l3e(idle_pg_table[l4_table_offset(v)])[
-            l3_table_offset(v)];
+        l3e = l3e_from_l4e(idle_pg_table[l4_table_offset(v)],
+                           l3_table_offset(v));
         if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) )
             continue;
-        l2e = l3e_to_l2e(l3e)[l2_table_offset(v)];
+        l2e = l2e_from_l3e(l3e, l2_table_offset(v));
         if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) )
             continue;
         m2p_start_mfn = l2e_get_pfn(l2e);
-- 
2.24.1.AMZN



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 3/6] x86_64/mm: map and unmap page tables in subarch_memory_op
  2020-04-17  9:52 [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia
  2020-04-17  9:52 ` [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table Hongyan Xia
  2020-04-17  9:52 ` [PATCH 2/6] x86_64/mm: map and unmap page tables in subarch_init_memory Hongyan Xia
@ 2020-04-17  9:52 ` Hongyan Xia
  2020-04-24  9:06   ` Julien Grall
  2020-04-17  9:52 ` [PATCH 4/6] x86/smpboot: map and unmap page tables in cleanup_cpu_root_pgt Hongyan Xia
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 33+ messages in thread
From: Hongyan Xia @ 2020-04-17  9:52 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, julien, Wei Liu, Jan Beulich, Roger Pau Monné

From: Wei Liu <wei.liu2@citrix.com>

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
---
 xen/arch/x86/x86_64/mm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index 5714e5ba62..6d52183559 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -932,13 +932,13 @@ long subarch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
               (v < (unsigned long)(machine_to_phys_mapping + max_page));
               i++, v += 1UL << L2_PAGETABLE_SHIFT )
         {
-            l3e = l4e_to_l3e(idle_pg_table[l4_table_offset(v)])[
-                l3_table_offset(v)];
+            l3e = l3e_from_l4e(idle_pg_table[l4_table_offset(v)],
+                               l3_table_offset(v));
             if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) )
                 mfn = last_mfn;
             else if ( !(l3e_get_flags(l3e) & _PAGE_PSE) )
             {
-                l2e = l3e_to_l2e(l3e)[l2_table_offset(v)];
+                l2e = l2e_from_l3e(l3e, l2_table_offset(v));
                 if ( l2e_get_flags(l2e) & _PAGE_PRESENT )
                     mfn = l2e_get_pfn(l2e);
                 else
-- 
2.24.1.AMZN



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 4/6] x86/smpboot: map and unmap page tables in cleanup_cpu_root_pgt
  2020-04-17  9:52 [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia
                   ` (2 preceding siblings ...)
  2020-04-17  9:52 ` [PATCH 3/6] x86_64/mm: map and unmap page tables in subarch_memory_op Hongyan Xia
@ 2020-04-17  9:52 ` Hongyan Xia
  2020-04-24  9:13   ` Julien Grall
  2020-04-17  9:52 ` [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly Hongyan Xia
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 33+ messages in thread
From: Hongyan Xia @ 2020-04-17  9:52 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, julien, Wei Liu, Jan Beulich, Roger Pau Monné

From: Wei Liu <wei.liu2@citrix.com>

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
---
 xen/arch/x86/smpboot.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 09264b02d1..275ce7661d 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -858,23 +858,27 @@ static void cleanup_cpu_root_pgt(unsigned int cpu)
           r < root_table_offset(HYPERVISOR_VIRT_END); ++r )
     {
         l3_pgentry_t *l3t;
+        mfn_t l3mfn;
         unsigned int i3;
 
         if ( !(root_get_flags(rpt[r]) & _PAGE_PRESENT) )
             continue;
 
-        l3t = l4e_to_l3e(rpt[r]);
+        l3mfn = l4e_get_mfn(rpt[r]);
+        l3t = map_domain_page(l3mfn);
 
         for ( i3 = 0; i3 < L3_PAGETABLE_ENTRIES; ++i3 )
         {
             l2_pgentry_t *l2t;
+            mfn_t l2mfn;
             unsigned int i2;
 
             if ( !(l3e_get_flags(l3t[i3]) & _PAGE_PRESENT) )
                 continue;
 
             ASSERT(!(l3e_get_flags(l3t[i3]) & _PAGE_PSE));
-            l2t = l3e_to_l2e(l3t[i3]);
+            l2mfn = l3e_get_mfn(l3t[i3]);
+            l2t = map_domain_page(l2mfn);
 
             for ( i2 = 0; i2 < L2_PAGETABLE_ENTRIES; ++i2 )
             {
@@ -882,13 +886,15 @@ static void cleanup_cpu_root_pgt(unsigned int cpu)
                     continue;
 
                 ASSERT(!(l2e_get_flags(l2t[i2]) & _PAGE_PSE));
-                free_xen_pagetable(l2e_to_l1e(l2t[i2]));
+                free_xen_pagetable_new(l2e_get_mfn(l2t[i2]));
             }
 
-            free_xen_pagetable(l2t);
+            unmap_domain_page(l2t);
+            free_xen_pagetable_new(l2mfn);
         }
 
-        free_xen_pagetable(l3t);
+        unmap_domain_page(l3t);
+        free_xen_pagetable_new(l3mfn);
     }
 
     free_xen_pagetable(rpt);
@@ -896,11 +902,14 @@ static void cleanup_cpu_root_pgt(unsigned int cpu)
     /* Also zap the stub mapping for this CPU. */
     if ( stub_linear )
     {
-        l3_pgentry_t *l3t = l4e_to_l3e(common_pgt);
-        l2_pgentry_t *l2t = l3e_to_l2e(l3t[l3_table_offset(stub_linear)]);
-        l1_pgentry_t *l1t = l2e_to_l1e(l2t[l2_table_offset(stub_linear)]);
+        l3_pgentry_t l3e = l3e_from_l4e(common_pgt,
+                                        l3_table_offset(stub_linear));
+        l2_pgentry_t l2e = l2e_from_l3e(l3e, l2_table_offset(stub_linear));
+        l1_pgentry_t *l1t = map_l1t_from_l2e(l2e);
 
         l1t[l1_table_offset(stub_linear)] = l1e_empty();
+
+        unmap_domain_page(l1t);
     }
 }
 
-- 
2.24.1.AMZN



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  2020-04-17  9:52 [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia
                   ` (3 preceding siblings ...)
  2020-04-17  9:52 ` [PATCH 4/6] x86/smpboot: map and unmap page tables in cleanup_cpu_root_pgt Hongyan Xia
@ 2020-04-17  9:52 ` Hongyan Xia
  2020-04-24  9:16   ` Julien Grall
  2020-04-28 15:33   ` Jan Beulich
  2020-04-17  9:52 ` [PATCH 6/6] x86/pv: map and unmap page table in dom0_construct_pv Hongyan Xia
  2020-04-24  8:07 ` [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia
  6 siblings, 2 replies; 33+ messages in thread
From: Hongyan Xia @ 2020-04-17  9:52 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, julien, Wei Liu, Jan Beulich, Roger Pau Monné

From: Wei Liu <wei.liu2@citrix.com>

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
---
 xen/arch/x86/pv/dom0_build.c | 32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 5678da782d..28a939b68a 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -50,17 +50,17 @@ static __init void mark_pv_pt_pages_rdonly(struct domain *d,
     unsigned long count;
     struct page_info *page;
     l4_pgentry_t *pl4e;
-    l3_pgentry_t *pl3e;
-    l2_pgentry_t *pl2e;
-    l1_pgentry_t *pl1e;
+    l3_pgentry_t *pl3e, *l3t;
+    l2_pgentry_t *pl2e, *l2t;
+    l1_pgentry_t *pl1e, *l1t;
 
     pl4e = l4start + l4_table_offset(vpt_start);
-    pl3e = l4e_to_l3e(*pl4e);
-    pl3e += l3_table_offset(vpt_start);
-    pl2e = l3e_to_l2e(*pl3e);
-    pl2e += l2_table_offset(vpt_start);
-    pl1e = l2e_to_l1e(*pl2e);
-    pl1e += l1_table_offset(vpt_start);
+    l3t = map_l3t_from_l4e(*pl4e);
+    pl3e = l3t + l3_table_offset(vpt_start);
+    l2t = map_l2t_from_l3e(*pl3e);
+    pl2e = l2t + l2_table_offset(vpt_start);
+    l1t = map_l1t_from_l2e(*pl2e);
+    pl1e = l1t + l1_table_offset(vpt_start);
     for ( count = 0; count < nr_pt_pages; count++ )
     {
         l1e_remove_flags(*pl1e, _PAGE_RW);
@@ -85,12 +85,20 @@ static __init void mark_pv_pt_pages_rdonly(struct domain *d,
             if ( !((unsigned long)++pl2e & (PAGE_SIZE - 1)) )
             {
                 if ( !((unsigned long)++pl3e & (PAGE_SIZE - 1)) )
-                    pl3e = l4e_to_l3e(*++pl4e);
-                pl2e = l3e_to_l2e(*pl3e);
+                {
+                    unmap_domain_page(l3t);
+                    pl3e = l3t = map_l3t_from_l4e(*++pl4e);
+                }
+                unmap_domain_page(l2t);
+                pl2e = l2t = map_l2t_from_l3e(*pl3e);
             }
-            pl1e = l2e_to_l1e(*pl2e);
+            unmap_domain_page(l1t);
+            pl1e = l1t = map_l1t_from_l2e(*pl2e);
         }
     }
+    unmap_domain_page(l1t);
+    unmap_domain_page(l2t);
+    unmap_domain_page(l3t);
 }
 
 static __init void setup_pv_physmap(struct domain *d, unsigned long pgtbl_pfn,
-- 
2.24.1.AMZN



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* [PATCH 6/6] x86/pv: map and unmap page table in dom0_construct_pv
  2020-04-17  9:52 [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia
                   ` (4 preceding siblings ...)
  2020-04-17  9:52 ` [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly Hongyan Xia
@ 2020-04-17  9:52 ` Hongyan Xia
  2020-04-24  9:18   ` Julien Grall
  2020-04-24  8:07 ` [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia
  6 siblings, 1 reply; 33+ messages in thread
From: Hongyan Xia @ 2020-04-17  9:52 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, julien, Wei Liu, Jan Beulich, Roger Pau Monné

From: Wei Liu <wei.liu2@citrix.com>

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
---
 xen/arch/x86/pv/dom0_build.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 28a939b68a..a03f0501ab 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -677,6 +677,8 @@ int __init dom0_construct_pv(struct domain *d,
 
     if ( is_pv_32bit_domain(d) )
     {
+        l2_pgentry_t *l2t;
+
         /* Ensure the first four L3 entries are all populated. */
         for ( i = 0, l3tab = l3start; i < 4; ++i, ++l3tab )
         {
@@ -691,7 +693,9 @@ int __init dom0_construct_pv(struct domain *d,
                 l3e_get_page(*l3tab)->u.inuse.type_info |= PGT_pae_xen_l2;
         }
 
-        init_xen_pae_l2_slots(l3e_to_l2e(l3start[3]), d);
+        l2t = map_l2t_from_l3e(l3start[3]);
+        init_xen_pae_l2_slots(l2t, d);
+        unmap_domain_page(l2t);
     }
 
     /* Pages that are part of page tables must be read only. */
-- 
2.24.1.AMZN



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* Re: [PATCH 0/6] convert more Xen page table code to the new API
  2020-04-17  9:52 [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia
                   ` (5 preceding siblings ...)
  2020-04-17  9:52 ` [PATCH 6/6] x86/pv: map and unmap page table in dom0_construct_pv Hongyan Xia
@ 2020-04-24  8:07 ` Hongyan Xia
  6 siblings, 0 replies; 33+ messages in thread
From: Hongyan Xia @ 2020-04-24  8:07 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, julien, Jan Beulich, Wei Liu, Roger Pau Monné

A gentle ping.

On Fri, 2020-04-17 at 10:52 +0100, Hongyan Xia wrote:
> From: Hongyan Xia <hongyxia@amazon.com>
> 
> Basically just rewriting functions using the new API to map and unmap
> PTEs. Each patch is independent.
> 
> Apart from mapping and unmapping page tables, no other functional
> change
> intended.
> 
> Wei Liu (6):
>   x86_64/mm: map and unmap page tables in cleanup_frame_table
>   x86_64/mm: map and unmap page tables in subarch_init_memory
>   x86_64/mm: map and unmap page tables in subarch_memory_op
>   x86/smpboot: map and unmap page tables in cleanup_cpu_root_pgt
>   x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
>   x86/pv: map and unmap page table in dom0_construct_pv
> 
>  xen/arch/x86/pv/dom0_build.c | 38 ++++++++++++++++++++++++--------
> ----
>  xen/arch/x86/smpboot.c       | 25 ++++++++++++++++--------
>  xen/arch/x86/x86_64/mm.c     | 32 +++++++++++++++---------------
>  3 files changed, 58 insertions(+), 37 deletions(-)
> 



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table
  2020-04-17  9:52 ` [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table Hongyan Xia
@ 2020-04-24  8:58   ` Julien Grall
  2020-04-24  8:59     ` Julien Grall
  2020-04-24  8:59   ` Julien Grall
  2020-04-24  9:02   ` Julien Grall
  2 siblings, 1 reply; 33+ messages in thread
From: Julien Grall @ 2020-04-24  8:58 UTC (permalink / raw)
  To: Hongyan Xia, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

Hi,

On 17/04/2020 10:52, Hongyan Xia wrote:> diff --git 
a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c> index 
e85ef449f3..18210405f4 100644> --- a/xen/arch/x86/x86_64/mm.c> +++ 
b/xen/arch/x86/x86_64/mm.c> @@ -737,8 +737,8 @@ static void 
cleanup_frame_table(struct mem_hotadd_info *info)>   >       while (sva 
< eva)>       {> -        l3e = 
l4e_to_l3e(idle_pg_table[l4_table_offset(sva)])[> - 
l3_table_offset(sva)];> +        l3e = 
l3e_from_l4e(idle_pg_table[l4_table_offset(sva)],> + 
       l3_table_offset(sva));
This macro doesn't exist yet in the tree. It would be good to spell out 
the dependencies in the cover letter so this doesn't get merged before 
the dependency is merged.

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table
  2020-04-24  8:58   ` Julien Grall
@ 2020-04-24  8:59     ` Julien Grall
  0 siblings, 0 replies; 33+ messages in thread
From: Julien Grall @ 2020-04-24  8:59 UTC (permalink / raw)
  To: Hongyan Xia, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

On 24/04/2020 09:58, Julien Grall wrote:
> Hi,
> 
> On 17/04/2020 10:52, Hongyan Xia wrote:> diff --git 
> a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c> index 
> e85ef449f3..18210405f4 100644> --- a/xen/arch/x86/x86_64/mm.c> +++ 
> b/xen/arch/x86/x86_64/mm.c> @@ -737,8 +737,8 @@ static void 
> cleanup_frame_table(struct mem_hotadd_info *info)>   >       while (sva 
> < eva)>       {> -        l3e = 
> l4e_to_l3e(idle_pg_table[l4_table_offset(sva)])[> - 
> l3_table_offset(sva)];> +        l3e = 
> l3e_from_l4e(idle_pg_table[l4_table_offset(sva)],> +       
> l3_table_offset(sva));
> This macro doesn't exist yet in the tree. It would be good to spell out 
> the dependencies in the cover letter so this doesn't get merged before 
> the dependency is merged.
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Argh, I screwed the reply. Sorry for that. I will resend it.

-- 
Julien Grall


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table
  2020-04-17  9:52 ` [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table Hongyan Xia
  2020-04-24  8:58   ` Julien Grall
@ 2020-04-24  8:59   ` Julien Grall
  2020-04-24  9:21     ` Hongyan Xia
  2020-04-24  9:02   ` Julien Grall
  2 siblings, 1 reply; 33+ messages in thread
From: Julien Grall @ 2020-04-24  8:59 UTC (permalink / raw)
  To: Hongyan Xia, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

(resending)

On 17/04/2020 10:52, Hongyan Xia wrote:
> From: Wei Liu <wei.liu2@citrix.com>
> 
> Also fix a weird indentation.
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> ---
>   xen/arch/x86/x86_64/mm.c | 14 +++++++-------
>   1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
> index e85ef449f3..18210405f4 100644
> --- a/xen/arch/x86/x86_64/mm.c
> +++ b/xen/arch/x86/x86_64/mm.c
> @@ -737,8 +737,8 @@ static void cleanup_frame_table(struct mem_hotadd_info *info)
>   
>       while (sva < eva)
>       {
> -        l3e = l4e_to_l3e(idle_pg_table[l4_table_offset(sva)])[
> -          l3_table_offset(sva)];
> +        l3e = l3e_from_l4e(idle_pg_table[l4_table_offset(sva)],
> +                           l3_table_offset(sva));

This macro doesn't exist yet in the tree. It would be good to spell out 
the dependencies in the cover letter so this doesn't get merged before 
the dependency is merged.

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table
  2020-04-17  9:52 ` [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table Hongyan Xia
  2020-04-24  8:58   ` Julien Grall
  2020-04-24  8:59   ` Julien Grall
@ 2020-04-24  9:02   ` Julien Grall
  2020-04-24 11:12     ` Jan Beulich
  2020-04-28 15:11     ` Jan Beulich
  2 siblings, 2 replies; 33+ messages in thread
From: Julien Grall @ 2020-04-24  9:02 UTC (permalink / raw)
  To: Hongyan Xia, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné



On 17/04/2020 10:52, Hongyan Xia wrote:
> From: Wei Liu <wei.liu2@citrix.com>
> 
> Also fix a weird indentation.
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> ---
>   xen/arch/x86/x86_64/mm.c | 14 +++++++-------
>   1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
> index e85ef449f3..18210405f4 100644
> --- a/xen/arch/x86/x86_64/mm.c
> +++ b/xen/arch/x86/x86_64/mm.c
> @@ -737,8 +737,8 @@ static void cleanup_frame_table(struct mem_hotadd_info *info)
>   
>       while (sva < eva)
>       {
> -        l3e = l4e_to_l3e(idle_pg_table[l4_table_offset(sva)])[
> -          l3_table_offset(sva)];
> +        l3e = l3e_from_l4e(idle_pg_table[l4_table_offset(sva)],
> +                           l3_table_offset(sva));
>           if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) ||
>                (l3e_get_flags(l3e) & _PAGE_PSE) )
>           {
> @@ -747,7 +747,7 @@ static void cleanup_frame_table(struct mem_hotadd_info *info)
>               continue;
>           }
>   
> -        l2e = l3e_to_l2e(l3e)[l2_table_offset(sva)];
> +        l2e = l2e_from_l3e(l3e, l2_table_offset(sva));
>           ASSERT(l2e_get_flags(l2e) & _PAGE_PRESENT);
>   
>           if ( (l2e_get_flags(l2e) & (_PAGE_PRESENT | _PAGE_PSE)) ==
> @@ -763,10 +763,10 @@ static void cleanup_frame_table(struct mem_hotadd_info *info)
>               continue;
>           }
>   
> -        ASSERT(l1e_get_flags(l2e_to_l1e(l2e)[l1_table_offset(sva)]) &
> -                _PAGE_PRESENT);
> -         sva = (sva & ~((1UL << PAGE_SHIFT) - 1)) +
> -                    (1UL << PAGE_SHIFT);
> +        ASSERT(l1e_get_flags(l1e_from_l2e(l2e, l1_table_offset(sva))) &
> +               _PAGE_PRESENT);
> +
> +        sva = (sva & ~((1UL << PAGE_SHIFT) - 1)) + (1UL << PAGE_SHIFT);

NIT: While you are modifying the indentation. Couldn't we use PAGE_MASK 
and PAGE_SIZE here?

Cheers,

-- 
Julien Grall


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 2/6] x86_64/mm: map and unmap page tables in subarch_init_memory
  2020-04-17  9:52 ` [PATCH 2/6] x86_64/mm: map and unmap page tables in subarch_init_memory Hongyan Xia
@ 2020-04-24  9:04   ` Julien Grall
  2020-04-28 15:12     ` Jan Beulich
  0 siblings, 1 reply; 33+ messages in thread
From: Julien Grall @ 2020-04-24  9:04 UTC (permalink / raw)
  To: Hongyan Xia, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

Hi,

On 17/04/2020 10:52, Hongyan Xia wrote:
> From: Wei Liu <wei.liu2@citrix.com>
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 3/6] x86_64/mm: map and unmap page tables in subarch_memory_op
  2020-04-17  9:52 ` [PATCH 3/6] x86_64/mm: map and unmap page tables in subarch_memory_op Hongyan Xia
@ 2020-04-24  9:06   ` Julien Grall
  2020-04-28 15:23     ` Jan Beulich
  0 siblings, 1 reply; 33+ messages in thread
From: Julien Grall @ 2020-04-24  9:06 UTC (permalink / raw)
  To: Hongyan Xia, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

Hi Hongyan,

On 17/04/2020 10:52, Hongyan Xia wrote:
> From: Wei Liu <wei.liu2@citrix.com>
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 4/6] x86/smpboot: map and unmap page tables in cleanup_cpu_root_pgt
  2020-04-17  9:52 ` [PATCH 4/6] x86/smpboot: map and unmap page tables in cleanup_cpu_root_pgt Hongyan Xia
@ 2020-04-24  9:13   ` Julien Grall
  2020-04-28 15:26     ` Jan Beulich
  0 siblings, 1 reply; 33+ messages in thread
From: Julien Grall @ 2020-04-24  9:13 UTC (permalink / raw)
  To: Hongyan Xia, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

Hi,

On 17/04/2020 10:52, Hongyan Xia wrote:
> From: Wei Liu <wei.liu2@citrix.com>
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>

Reviewed-by: Julien Grall <jgrall@amazon.com>

> ---
>   xen/arch/x86/smpboot.c | 25 +++++++++++++++++--------
>   1 file changed, 17 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
> index 09264b02d1..275ce7661d 100644
> --- a/xen/arch/x86/smpboot.c
> +++ b/xen/arch/x86/smpboot.c
> @@ -858,23 +858,27 @@ static void cleanup_cpu_root_pgt(unsigned int cpu)
>             r < root_table_offset(HYPERVISOR_VIRT_END); ++r )
>       {
>           l3_pgentry_t *l3t;
> +        mfn_t l3mfn;
>           unsigned int i3;
>   
>           if ( !(root_get_flags(rpt[r]) & _PAGE_PRESENT) )
>               continue;
>   
> -        l3t = l4e_to_l3e(rpt[r]);
> +        l3mfn = l4e_get_mfn(rpt[r]);
> +        l3t = map_domain_page(l3mfn);
>   
>           for ( i3 = 0; i3 < L3_PAGETABLE_ENTRIES; ++i3 )
>           {
>               l2_pgentry_t *l2t;
> +            mfn_t l2mfn;
>               unsigned int i2;
>   
>               if ( !(l3e_get_flags(l3t[i3]) & _PAGE_PRESENT) )
>                   continue;
>   
>               ASSERT(!(l3e_get_flags(l3t[i3]) & _PAGE_PSE));
> -            l2t = l3e_to_l2e(l3t[i3]);
> +            l2mfn = l3e_get_mfn(l3t[i3]);
> +            l2t = map_domain_page(l2mfn);
>   
>               for ( i2 = 0; i2 < L2_PAGETABLE_ENTRIES; ++i2 )
>               {
> @@ -882,13 +886,15 @@ static void cleanup_cpu_root_pgt(unsigned int cpu)
>                       continue;
>   
>                   ASSERT(!(l2e_get_flags(l2t[i2]) & _PAGE_PSE));
> -                free_xen_pagetable(l2e_to_l1e(l2t[i2]));
> +                free_xen_pagetable_new(l2e_get_mfn(l2t[i2]));
>               }
>   
> -            free_xen_pagetable(l2t);
> +            unmap_domain_page(l2t);
> +            free_xen_pagetable_new(l2mfn);
>           }
>   
> -        free_xen_pagetable(l3t);
> +        unmap_domain_page(l3t);
> +        free_xen_pagetable_new(l3mfn);
>       }
>   
>       free_xen_pagetable(rpt);
> @@ -896,11 +902,14 @@ static void cleanup_cpu_root_pgt(unsigned int cpu)
>       /* Also zap the stub mapping for this CPU. */
>       if ( stub_linear )
>       {
> -        l3_pgentry_t *l3t = l4e_to_l3e(common_pgt);
> -        l2_pgentry_t *l2t = l3e_to_l2e(l3t[l3_table_offset(stub_linear)]);
> -        l1_pgentry_t *l1t = l2e_to_l1e(l2t[l2_table_offset(stub_linear)]);
> +        l3_pgentry_t l3e = l3e_from_l4e(common_pgt,
> +                                        l3_table_offset(stub_linear));
> +        l2_pgentry_t l2e = l2e_from_l3e(l3e, l2_table_offset(stub_linear));
> +        l1_pgentry_t *l1t = map_l1t_from_l2e(l2e);
>   
>           l1t[l1_table_offset(stub_linear)] = l1e_empty();
> +
> +        unmap_domain_page(l1t);
>       }
>   }
>   
> 

Cheers,

-- 
Julien Grall


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  2020-04-17  9:52 ` [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly Hongyan Xia
@ 2020-04-24  9:16   ` Julien Grall
  2020-04-28 15:33   ` Jan Beulich
  1 sibling, 0 replies; 33+ messages in thread
From: Julien Grall @ 2020-04-24  9:16 UTC (permalink / raw)
  To: Hongyan Xia, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

Hi,

On 17/04/2020 10:52, Hongyan Xia wrote:
> From: Wei Liu <wei.liu2@citrix.com>
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 6/6] x86/pv: map and unmap page table in dom0_construct_pv
  2020-04-17  9:52 ` [PATCH 6/6] x86/pv: map and unmap page table in dom0_construct_pv Hongyan Xia
@ 2020-04-24  9:18   ` Julien Grall
  2020-04-28 15:34     ` Jan Beulich
  0 siblings, 1 reply; 33+ messages in thread
From: Julien Grall @ 2020-04-24  9:18 UTC (permalink / raw)
  To: Hongyan Xia, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

Hi,

On 17/04/2020 10:52, Hongyan Xia wrote:
> From: Wei Liu <wei.liu2@citrix.com>
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table
  2020-04-24  8:59   ` Julien Grall
@ 2020-04-24  9:21     ` Hongyan Xia
  2020-04-24  9:24       ` Julien Grall
  0 siblings, 1 reply; 33+ messages in thread
From: Hongyan Xia @ 2020-04-24  9:21 UTC (permalink / raw)
  To: Julien Grall, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné

Hi Julien,

On Fri, 2020-04-24 at 09:59 +0100, Julien Grall wrote:
> (resending)
> 
> On 17/04/2020 10:52, Hongyan Xia wrote:
> > From: Wei Liu <wei.liu2@citrix.com>
> > 
> > Also fix a weird indentation.
> > 
> > Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> > Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> > ---
> >   xen/arch/x86/x86_64/mm.c | 14 +++++++-------
> >   1 file changed, 7 insertions(+), 7 deletions(-)
> > 
> > diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
> > index e85ef449f3..18210405f4 100644
> > --- a/xen/arch/x86/x86_64/mm.c
> > +++ b/xen/arch/x86/x86_64/mm.c
> > @@ -737,8 +737,8 @@ static void cleanup_frame_table(struct
> > mem_hotadd_info *info)
> >   
> >       while (sva < eva)
> >       {
> > -        l3e = l4e_to_l3e(idle_pg_table[l4_table_offset(sva)])[
> > -          l3_table_offset(sva)];
> > +        l3e = l3e_from_l4e(idle_pg_table[l4_table_offset(sva)],
> > +                           l3_table_offset(sva));
> 
> This macro doesn't exist yet in the tree. It would be good to spell
> out 
> the dependencies in the cover letter so this doesn't get merged
> before 
> the dependency is merged.

I believe the introduction of the new macros has been merged in staging
as 6c8afe5aadb33761431b24157d99b25eac15fc7e.

> Reviewed-by: Julien Grall <jgrall@amazon.com>

Thanks!

Hongyan



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table
  2020-04-24  9:21     ` Hongyan Xia
@ 2020-04-24  9:24       ` Julien Grall
  0 siblings, 0 replies; 33+ messages in thread
From: Julien Grall @ 2020-04-24  9:24 UTC (permalink / raw)
  To: Hongyan Xia, xen-devel
  Cc: Andrew Cooper, Wei Liu, Jan Beulich, Roger Pau Monné



On 24/04/2020 10:21, Hongyan Xia wrote:
> Hi Julien,
> 
> On Fri, 2020-04-24 at 09:59 +0100, Julien Grall wrote:
>> (resending)
>>
>> On 17/04/2020 10:52, Hongyan Xia wrote:
>>> From: Wei Liu <wei.liu2@citrix.com>
>>>
>>> Also fix a weird indentation.
>>>
>>> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
>>> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
>>> ---
>>>    xen/arch/x86/x86_64/mm.c | 14 +++++++-------
>>>    1 file changed, 7 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
>>> index e85ef449f3..18210405f4 100644
>>> --- a/xen/arch/x86/x86_64/mm.c
>>> +++ b/xen/arch/x86/x86_64/mm.c
>>> @@ -737,8 +737,8 @@ static void cleanup_frame_table(struct
>>> mem_hotadd_info *info)
>>>    
>>>        while (sva < eva)
>>>        {
>>> -        l3e = l4e_to_l3e(idle_pg_table[l4_table_offset(sva)])[
>>> -          l3_table_offset(sva)];
>>> +        l3e = l3e_from_l4e(idle_pg_table[l4_table_offset(sva)],
>>> +                           l3_table_offset(sva));
>>
>> This macro doesn't exist yet in the tree. It would be good to spell
>> out
>> the dependencies in the cover letter so this doesn't get merged
>> before
>> the dependency is merged.
> 
> I believe the introduction of the new macros has been merged in staging
> as 6c8afe5aadb33761431b24157d99b25eac15fc7e.

Hmmmm you are right. I must have been blind. Sorry for the noise.

Cheers,

-- 
Julien Grall


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table
  2020-04-24  9:02   ` Julien Grall
@ 2020-04-24 11:12     ` Jan Beulich
  2020-04-28 15:11     ` Jan Beulich
  1 sibling, 0 replies; 33+ messages in thread
From: Jan Beulich @ 2020-04-24 11:12 UTC (permalink / raw)
  To: Julien Grall, Hongyan Xia
  Cc: xen-devel, Roger Pau Monné, Wei Liu, Andrew Cooper

On 24.04.2020 11:02, Julien Grall wrote:
> On 17/04/2020 10:52, Hongyan Xia wrote:
>> @@ -763,10 +763,10 @@ static void cleanup_frame_table(struct mem_hotadd_info *info)
>>               continue;
>>           }
>>   -        ASSERT(l1e_get_flags(l2e_to_l1e(l2e)[l1_table_offset(sva)]) &
>> -                _PAGE_PRESENT);
>> -         sva = (sva & ~((1UL << PAGE_SHIFT) - 1)) +
>> -                    (1UL << PAGE_SHIFT);
>> +        ASSERT(l1e_get_flags(l1e_from_l2e(l2e, l1_table_offset(sva))) &
>> +               _PAGE_PRESENT);
>> +
>> +        sva = (sva & ~((1UL << PAGE_SHIFT) - 1)) + (1UL << PAGE_SHIFT);
> 
> NIT: While you are modifying the indentation. Couldn't we use PAGE_MASK and PAGE_SIZE here?

Oh, yes, this would be nice.

Jan


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table
  2020-04-24  9:02   ` Julien Grall
  2020-04-24 11:12     ` Jan Beulich
@ 2020-04-28 15:11     ` Jan Beulich
  1 sibling, 0 replies; 33+ messages in thread
From: Jan Beulich @ 2020-04-28 15:11 UTC (permalink / raw)
  To: Hongyan Xia
  Cc: xen-devel, Roger Pau Monné, Julien Grall, Wei Liu, Andrew Cooper

On 24.04.2020 11:02, Julien Grall wrote:
> On 17/04/2020 10:52, Hongyan Xia wrote:
>> @@ -763,10 +763,10 @@ static void cleanup_frame_table(struct mem_hotadd_info *info)
>>               continue;
>>           }
>>   -        ASSERT(l1e_get_flags(l2e_to_l1e(l2e)[l1_table_offset(sva)]) &
>> -                _PAGE_PRESENT);
>> -         sva = (sva & ~((1UL << PAGE_SHIFT) - 1)) +
>> -                    (1UL << PAGE_SHIFT);
>> +        ASSERT(l1e_get_flags(l1e_from_l2e(l2e, l1_table_offset(sva))) &
>> +               _PAGE_PRESENT);
>> +
>> +        sva = (sva & ~((1UL << PAGE_SHIFT) - 1)) + (1UL << PAGE_SHIFT);
> 
> NIT: While you are modifying the indentation. Couldn't we use PAGE_MASK and PAGE_SIZE here?

And with this (which I think can be done while committing)
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 2/6] x86_64/mm: map and unmap page tables in subarch_init_memory
  2020-04-24  9:04   ` Julien Grall
@ 2020-04-28 15:12     ` Jan Beulich
  0 siblings, 0 replies; 33+ messages in thread
From: Jan Beulich @ 2020-04-28 15:12 UTC (permalink / raw)
  To: Hongyan Xia
  Cc: xen-devel, Roger Pau Monné, Julien Grall, Wei Liu, Andrew Cooper

On 24.04.2020 11:04, Julien Grall wrote:
> On 17/04/2020 10:52, Hongyan Xia wrote:
>> From: Wei Liu <wei.liu2@citrix.com>
>>
>> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
>> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 3/6] x86_64/mm: map and unmap page tables in subarch_memory_op
  2020-04-24  9:06   ` Julien Grall
@ 2020-04-28 15:23     ` Jan Beulich
  0 siblings, 0 replies; 33+ messages in thread
From: Jan Beulich @ 2020-04-28 15:23 UTC (permalink / raw)
  To: Hongyan Xia
  Cc: xen-devel, Roger Pau Monné, Julien Grall, Wei Liu, Andrew Cooper

On 24.04.2020 11:06, Julien Grall wrote:
> On 17/04/2020 10:52, Hongyan Xia wrote:
>> From: Wei Liu <wei.liu2@citrix.com>
>>
>> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
>> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 4/6] x86/smpboot: map and unmap page tables in cleanup_cpu_root_pgt
  2020-04-24  9:13   ` Julien Grall
@ 2020-04-28 15:26     ` Jan Beulich
  0 siblings, 0 replies; 33+ messages in thread
From: Jan Beulich @ 2020-04-28 15:26 UTC (permalink / raw)
  To: Hongyan Xia
  Cc: xen-devel, Roger Pau Monné, Julien Grall, Wei Liu, Andrew Cooper

On 24.04.2020 11:13, Julien Grall wrote:
> On 17/04/2020 10:52, Hongyan Xia wrote:
>> From: Wei Liu <wei.liu2@citrix.com>
>>
>> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
>> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  2020-04-17  9:52 ` [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly Hongyan Xia
  2020-04-24  9:16   ` Julien Grall
@ 2020-04-28 15:33   ` Jan Beulich
  2020-04-28 15:49     ` Wei Liu
  2020-04-28 15:55     ` Hongyan Xia
  1 sibling, 2 replies; 33+ messages in thread
From: Jan Beulich @ 2020-04-28 15:33 UTC (permalink / raw)
  To: Hongyan Xia, Wei Liu
  Cc: xen-devel, Roger Pau Monné, julien, Andrew Cooper

On 17.04.2020 11:52, Hongyan Xia wrote:
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -50,17 +50,17 @@ static __init void mark_pv_pt_pages_rdonly(struct domain *d,
>      unsigned long count;
>      struct page_info *page;
>      l4_pgentry_t *pl4e;
> -    l3_pgentry_t *pl3e;
> -    l2_pgentry_t *pl2e;
> -    l1_pgentry_t *pl1e;
> +    l3_pgentry_t *pl3e, *l3t;
> +    l2_pgentry_t *pl2e, *l2t;
> +    l1_pgentry_t *pl1e, *l1t;

I don't quite see why the new local variables get introduced:
unmap_domain_page(), iirc, is quite fine with a non-page-
aligned argument.

Jan


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 6/6] x86/pv: map and unmap page table in dom0_construct_pv
  2020-04-24  9:18   ` Julien Grall
@ 2020-04-28 15:34     ` Jan Beulich
  0 siblings, 0 replies; 33+ messages in thread
From: Jan Beulich @ 2020-04-28 15:34 UTC (permalink / raw)
  To: Hongyan Xia
  Cc: xen-devel, Roger Pau Monné, Julien Grall, Wei Liu, Andrew Cooper

On 24.04.2020 11:18, Julien Grall wrote:
> On 17/04/2020 10:52, Hongyan Xia wrote:
>> From: Wei Liu <wei.liu2@citrix.com>
>>
>> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
>> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Acked-by: Jan Beulich <jbeulich@suse.com>



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  2020-04-28 15:33   ` Jan Beulich
@ 2020-04-28 15:49     ` Wei Liu
  2020-04-28 15:55     ` Hongyan Xia
  1 sibling, 0 replies; 33+ messages in thread
From: Wei Liu @ 2020-04-28 15:49 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Hongyan Xia, julien, Wei Liu, Andrew Cooper, xen-devel,
	Roger Pau Monné

On Tue, Apr 28, 2020 at 05:33:29PM +0200, Jan Beulich wrote:
> On 17.04.2020 11:52, Hongyan Xia wrote:
> > --- a/xen/arch/x86/pv/dom0_build.c
> > +++ b/xen/arch/x86/pv/dom0_build.c
> > @@ -50,17 +50,17 @@ static __init void mark_pv_pt_pages_rdonly(struct domain *d,
> >      unsigned long count;
> >      struct page_info *page;
> >      l4_pgentry_t *pl4e;
> > -    l3_pgentry_t *pl3e;
> > -    l2_pgentry_t *pl2e;
> > -    l1_pgentry_t *pl1e;
> > +    l3_pgentry_t *pl3e, *l3t;
> > +    l2_pgentry_t *pl2e, *l2t;
> > +    l1_pgentry_t *pl1e, *l1t;
> 
> I don't quite see why the new local variables get introduced:
> unmap_domain_page(), iirc, is quite fine with a non-page-
> aligned argument.

(Assuming this is actually written by me)

I wanted to make things abundantly clear: plXe points to an entry while
lXt points to the start of a page table.

In a long function the distinction could be helpful; in a short function
(like this one?) not so much.

Wei.

> 
> Jan


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  2020-04-28 15:33   ` Jan Beulich
  2020-04-28 15:49     ` Wei Liu
@ 2020-04-28 15:55     ` Hongyan Xia
  2020-04-28 15:59       ` Hongyan Xia
  1 sibling, 1 reply; 33+ messages in thread
From: Hongyan Xia @ 2020-04-28 15:55 UTC (permalink / raw)
  To: Jan Beulich, Wei Liu
  Cc: xen-devel, Roger Pau Monné, julien, Andrew Cooper

On Tue, 2020-04-28 at 17:33 +0200, Jan Beulich wrote:
> On 17.04.2020 11:52, Hongyan Xia wrote:
> > --- a/xen/arch/x86/pv/dom0_build.c
> > +++ b/xen/arch/x86/pv/dom0_build.c
> > @@ -50,17 +50,17 @@ static __init void
> > mark_pv_pt_pages_rdonly(struct domain *d,
> >      unsigned long count;
> >      struct page_info *page;
> >      l4_pgentry_t *pl4e;
> > -    l3_pgentry_t *pl3e;
> > -    l2_pgentry_t *pl2e;
> > -    l1_pgentry_t *pl1e;
> > +    l3_pgentry_t *pl3e, *l3t;
> > +    l2_pgentry_t *pl2e, *l2t;
> > +    l1_pgentry_t *pl1e, *l1t;
> 
> I don't quite see why the new local variables get introduced:
> unmap_domain_page(), iirc, is quite fine with a non-page-
> aligned argument.

You are right, although in this function, where plXe points to may not
be the page we want to unmap. When plXe becomes aligned and points to a
new page, we actually want to unmap the page before it increments to an
aligned value.

Hongyan



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  2020-04-28 15:55     ` Hongyan Xia
@ 2020-04-28 15:59       ` Hongyan Xia
  2020-04-29  9:26         ` Hongyan Xia
  0 siblings, 1 reply; 33+ messages in thread
From: Hongyan Xia @ 2020-04-28 15:59 UTC (permalink / raw)
  To: Jan Beulich, Wei Liu
  Cc: xen-devel, Roger Pau Monné, julien, Andrew Cooper

On Tue, 2020-04-28 at 16:55 +0100, Hongyan Xia wrote:
> On Tue, 2020-04-28 at 17:33 +0200, Jan Beulich wrote:
> > On 17.04.2020 11:52, Hongyan Xia wrote:
> > > --- a/xen/arch/x86/pv/dom0_build.c
> > > +++ b/xen/arch/x86/pv/dom0_build.c
> > > @@ -50,17 +50,17 @@ static __init void
> > > mark_pv_pt_pages_rdonly(struct domain *d,
> > >      unsigned long count;
> > >      struct page_info *page;
> > >      l4_pgentry_t *pl4e;
> > > -    l3_pgentry_t *pl3e;
> > > -    l2_pgentry_t *pl2e;
> > > -    l1_pgentry_t *pl1e;
> > > +    l3_pgentry_t *pl3e, *l3t;
> > > +    l2_pgentry_t *pl2e, *l2t;
> > > +    l1_pgentry_t *pl1e, *l1t;
> > 
> > I don't quite see why the new local variables get introduced:
> > unmap_domain_page(), iirc, is quite fine with a non-page-
> > aligned argument.
> 
> You are right, although in this function, where plXe points to may
> not
> be the page we want to unmap. When plXe becomes aligned and points to
> a
> new page, we actually want to unmap the page before it increments to
> an
> aligned value.

Hmm, we can just unmap(plXe - 1) if my logic is correct, and save 3
local variables.

Hongyan



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  2020-04-28 15:59       ` Hongyan Xia
@ 2020-04-29  9:26         ` Hongyan Xia
  2020-04-29 11:04           ` Jan Beulich
  0 siblings, 1 reply; 33+ messages in thread
From: Hongyan Xia @ 2020-04-29  9:26 UTC (permalink / raw)
  To: Jan Beulich, Wei Liu
  Cc: xen-devel, Roger Pau Monné, julien, Andrew Cooper

On Tue, 2020-04-28 at 16:59 +0100, Hongyan Xia wrote:
> On Tue, 2020-04-28 at 16:55 +0100, Hongyan Xia wrote:
> > On Tue, 2020-04-28 at 17:33 +0200, Jan Beulich wrote:
> > > On 17.04.2020 11:52, Hongyan Xia wrote:
> > > > --- a/xen/arch/x86/pv/dom0_build.c
> > > > +++ b/xen/arch/x86/pv/dom0_build.c
> > > > @@ -50,17 +50,17 @@ static __init void
> > > > mark_pv_pt_pages_rdonly(struct domain *d,
> > > >      unsigned long count;
> > > >      struct page_info *page;
> > > >      l4_pgentry_t *pl4e;
> > > > -    l3_pgentry_t *pl3e;
> > > > -    l2_pgentry_t *pl2e;
> > > > -    l1_pgentry_t *pl1e;
> > > > +    l3_pgentry_t *pl3e, *l3t;
> > > > +    l2_pgentry_t *pl2e, *l2t;
> > > > +    l1_pgentry_t *pl1e, *l1t;
> > > 
> > > I don't quite see why the new local variables get introduced:
> > > unmap_domain_page(), iirc, is quite fine with a non-page-
> > > aligned argument.
> > 
> > You are right, although in this function, where plXe points to may
> > not
> > be the page we want to unmap. When plXe becomes aligned and points
> > to
> > a
> > new page, we actually want to unmap the page before it increments
> > to
> > an
> > aligned value.
> 
> Hmm, we can just unmap(plXe - 1) if my logic is correct, and save 3
> local variables.

Sorry for monologuing, but I still prefer separating plXe and lXt
because it makes it clear what we are unmapping. Unmapping plXe - 1 is
a bit hackish.

But if people do not have a problem with plXe - 1, I will post a new
revision for that.

Hongyan



^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  2020-04-29  9:26         ` Hongyan Xia
@ 2020-04-29 11:04           ` Jan Beulich
  2020-04-29 12:29             ` Hongyan Xia
  0 siblings, 1 reply; 33+ messages in thread
From: Jan Beulich @ 2020-04-29 11:04 UTC (permalink / raw)
  To: Hongyan Xia
  Cc: xen-devel, Roger Pau Monné, julien, Wei Liu, Andrew Cooper

On 29.04.2020 11:26, Hongyan Xia wrote:
> But if people do not have a problem with plXe - 1, I will post a new
> revision for that.

I'd prefer that; I could live with the current version, but I'm
not in favor of it.

Jan


^ permalink raw reply	[flat|nested] 33+ messages in thread

* Re: [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  2020-04-29 11:04           ` Jan Beulich
@ 2020-04-29 12:29             ` Hongyan Xia
  2020-04-29 13:31               ` Jan Beulich
  0 siblings, 1 reply; 33+ messages in thread
From: Hongyan Xia @ 2020-04-29 12:29 UTC (permalink / raw)
  To: Jan Beulich
  Cc: xen-devel, Roger Pau Monné, julien, Wei Liu, Andrew Cooper

(Looks like other patches in this series have been merged. Replying to
this one only.)

From: Wei Liu <wei.liu2@citrix.com>
Date: Tue, 5 Feb 2019 16:32:54 +0000
Subject: [PATCH] x86/pv: map and unmap page tables in
mark_pv_pt_pages_rdonly

Also, clean up the initialisation of plXe.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
---
 xen/arch/x86/pv/dom0_build.c | 32 +++++++++++++++++---------------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/pv/dom0_build.c
b/xen/arch/x86/pv/dom0_build.c
index abfbe5f436..3522eb0114 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -49,18 +49,11 @@ static __init void mark_pv_pt_pages_rdonly(struct
domain *d,
 {
     unsigned long count;
     struct page_info *page;
-    l4_pgentry_t *pl4e;
-    l3_pgentry_t *pl3e;
-    l2_pgentry_t *pl2e;
-    l1_pgentry_t *pl1e;
-
-    pl4e = l4start + l4_table_offset(vpt_start);
-    pl3e = l4e_to_l3e(*pl4e);
-    pl3e += l3_table_offset(vpt_start);
-    pl2e = l3e_to_l2e(*pl3e);
-    pl2e += l2_table_offset(vpt_start);
-    pl1e = l2e_to_l1e(*pl2e);
-    pl1e += l1_table_offset(vpt_start);
+    l4_pgentry_t *pl4e = l4start + l4_table_offset(vpt_start);
+    l3_pgentry_t *pl3e = map_l3t_from_l4e(*pl4e) +
l3_table_offset(vpt_start);
+    l2_pgentry_t *pl2e = map_l2t_from_l3e(*pl3e) +
l2_table_offset(vpt_start);
+    l1_pgentry_t *pl1e = map_l1t_from_l2e(*pl2e) +
l1_table_offset(vpt_start);
+
     for ( count = 0; count < nr_pt_pages; count++ )
     {
         l1e_remove_flags(*pl1e, _PAGE_RW);
@@ -85,12 +78,21 @@ static __init void mark_pv_pt_pages_rdonly(struct
domain *d,
             if ( !((unsigned long)++pl2e & (PAGE_SIZE - 1)) )
             {
                 if ( !((unsigned long)++pl3e & (PAGE_SIZE - 1)) )
-                    pl3e = l4e_to_l3e(*++pl4e);
-                pl2e = l3e_to_l2e(*pl3e);
+                {
+                    /* Need to unmap the page before the increment. */
+                    unmap_domain_page(pl3e - 1);
+                    pl3e = map_l3t_from_l4e(*++pl4e);
+                }
+                unmap_domain_page(pl2e - 1);
+                pl2e = map_l2t_from_l3e(*pl3e);
             }
-            pl1e = l2e_to_l1e(*pl2e);
+            unmap_domain_page(pl1e - 1);
+            pl1e = map_l1t_from_l2e(*pl2e);
         }
     }
+    unmap_domain_page(pl1e);
+    unmap_domain_page(pl2e);
+    unmap_domain_page(pl3e);
 }
 
 static __init void setup_pv_physmap(struct domain *d, unsigned long
pgtbl_pfn,
-- 
2.24.1.AMZN



^ permalink raw reply related	[flat|nested] 33+ messages in thread

* Re: [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly
  2020-04-29 12:29             ` Hongyan Xia
@ 2020-04-29 13:31               ` Jan Beulich
  0 siblings, 0 replies; 33+ messages in thread
From: Jan Beulich @ 2020-04-29 13:31 UTC (permalink / raw)
  To: Hongyan Xia
  Cc: xen-devel, Roger Pau Monné, julien, Wei Liu, Andrew Cooper

On 29.04.2020 14:29, Hongyan Xia wrote:
> (Looks like other patches in this series have been merged. Replying to
> this one only.)

Please send as a proper patch, this one came through ...

> From: Wei Liu <wei.liu2@citrix.com>
> Date: Tue, 5 Feb 2019 16:32:54 +0000
> Subject: [PATCH] x86/pv: map and unmap page tables in
> mark_pv_pt_pages_rdonly
> 
> Also, clean up the initialisation of plXe.
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> Reviewed-by: Julien Grall <jgrall@amazon.com>
> ---
>  xen/arch/x86/pv/dom0_build.c | 32 +++++++++++++++++---------------
>  1 file changed, 17 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/arch/x86/pv/dom0_build.c
> b/xen/arch/x86/pv/dom0_build.c
> index abfbe5f436..3522eb0114 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -49,18 +49,11 @@ static __init void mark_pv_pt_pages_rdonly(struct
> domain *d,
>  {
>      unsigned long count;
>      struct page_info *page;
> -    l4_pgentry_t *pl4e;
> -    l3_pgentry_t *pl3e;
> -    l2_pgentry_t *pl2e;
> -    l1_pgentry_t *pl1e;
> -
> -    pl4e = l4start + l4_table_offset(vpt_start);
> -    pl3e = l4e_to_l3e(*pl4e);
> -    pl3e += l3_table_offset(vpt_start);
> -    pl2e = l3e_to_l2e(*pl3e);
> -    pl2e += l2_table_offset(vpt_start);
> -    pl1e = l2e_to_l1e(*pl2e);
> -    pl1e += l1_table_offset(vpt_start);
> +    l4_pgentry_t *pl4e = l4start + l4_table_offset(vpt_start);
> +    l3_pgentry_t *pl3e = map_l3t_from_l4e(*pl4e) +
> l3_table_offset(vpt_start);
> +    l2_pgentry_t *pl2e = map_l2t_from_l3e(*pl3e) +
> l2_table_offset(vpt_start);
> +    l1_pgentry_t *pl1e = map_l1t_from_l2e(*pl2e) +
> l1_table_offset(vpt_start);

... mangled anyway. I also think with the change made you need to
drop the R-b.

Jan


^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2020-04-29 13:32 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-17  9:52 [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia
2020-04-17  9:52 ` [PATCH 1/6] x86_64/mm: map and unmap page tables in cleanup_frame_table Hongyan Xia
2020-04-24  8:58   ` Julien Grall
2020-04-24  8:59     ` Julien Grall
2020-04-24  8:59   ` Julien Grall
2020-04-24  9:21     ` Hongyan Xia
2020-04-24  9:24       ` Julien Grall
2020-04-24  9:02   ` Julien Grall
2020-04-24 11:12     ` Jan Beulich
2020-04-28 15:11     ` Jan Beulich
2020-04-17  9:52 ` [PATCH 2/6] x86_64/mm: map and unmap page tables in subarch_init_memory Hongyan Xia
2020-04-24  9:04   ` Julien Grall
2020-04-28 15:12     ` Jan Beulich
2020-04-17  9:52 ` [PATCH 3/6] x86_64/mm: map and unmap page tables in subarch_memory_op Hongyan Xia
2020-04-24  9:06   ` Julien Grall
2020-04-28 15:23     ` Jan Beulich
2020-04-17  9:52 ` [PATCH 4/6] x86/smpboot: map and unmap page tables in cleanup_cpu_root_pgt Hongyan Xia
2020-04-24  9:13   ` Julien Grall
2020-04-28 15:26     ` Jan Beulich
2020-04-17  9:52 ` [PATCH 5/6] x86/pv: map and unmap page tables in mark_pv_pt_pages_rdonly Hongyan Xia
2020-04-24  9:16   ` Julien Grall
2020-04-28 15:33   ` Jan Beulich
2020-04-28 15:49     ` Wei Liu
2020-04-28 15:55     ` Hongyan Xia
2020-04-28 15:59       ` Hongyan Xia
2020-04-29  9:26         ` Hongyan Xia
2020-04-29 11:04           ` Jan Beulich
2020-04-29 12:29             ` Hongyan Xia
2020-04-29 13:31               ` Jan Beulich
2020-04-17  9:52 ` [PATCH 6/6] x86/pv: map and unmap page table in dom0_construct_pv Hongyan Xia
2020-04-24  9:18   ` Julien Grall
2020-04-28 15:34     ` Jan Beulich
2020-04-24  8:07 ` [PATCH 0/6] convert more Xen page table code to the new API Hongyan Xia

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.