All of lore.kernel.org
 help / color / mirror / Atom feed
From: <hongyax@amazon.com>
To: <xen-devel@lists.xenproject.org>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Wei Liu" <wei.liu2@citrix.com>, "Wei Liu" <wl@xen.org>,
	"Jan Beulich" <jbeulich@suse.com>,
	"Roger Pau Monné" <roger.pau@citrix.com>
Subject: [Xen-devel] [RFC PATCH 55/84] x86: switch to use domheap page for page tables
Date: Thu, 26 Sep 2019 10:46:18 +0100	[thread overview]
Message-ID: <872c9d77a7ada6183a23c0e776d0975d07da873e.1569489002.git.hongyax@amazon.com> (raw)
In-Reply-To: <cover.1569489002.git.hongyax@amazon.com>

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

Modify all the _new APIs to handle domheap pages.

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

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index d594b61702..8e33c8f4fe 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4854,10 +4854,10 @@ mfn_t alloc_xen_pagetable_new(void)
 {
     if ( system_state != SYS_STATE_early_boot )
     {
-        void *ptr = alloc_xenheap_page();
+        struct page_info *pg = alloc_domheap_page(NULL, 0);
 
-        BUG_ON(!hardware_domain && !ptr);
-        return virt_to_mfn(ptr);
+        BUG_ON(!hardware_domain && !pg);
+        return pg ? page_to_mfn(pg) : INVALID_MFN;
     }
 
     return alloc_boot_pages(1, 1);
@@ -4865,20 +4865,21 @@ mfn_t alloc_xen_pagetable_new(void)
 
 void *map_xen_pagetable_new(mfn_t mfn)
 {
-    return mfn_to_virt(mfn_x(mfn));
+    return map_domain_page(mfn);
 }
 
 /* v can point to an entry within a table or be NULL */
 void unmap_xen_pagetable_new(void *v)
 {
-    /* XXX still using xenheap page, no need to do anything.  */
+    if ( v )
+        unmap_domain_page((const void *)((unsigned long)v & PAGE_MASK));
 }
 
 /* mfn can be INVALID_MFN */
 void free_xen_pagetable_new(mfn_t mfn)
 {
     if ( system_state != SYS_STATE_early_boot && !mfn_eq(mfn, INVALID_MFN) )
-        free_xenheap_page(mfn_to_virt(mfn_x(mfn)));
+        free_domheap_page(mfn_to_page(mfn));
 }
 
 static DEFINE_SPINLOCK(map_pgdir_lock);
-- 
2.17.1


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  parent reply	other threads:[~2019-09-26  9:50 UTC|newest]

Thread overview: 131+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-26  9:45 [Xen-devel] [RFC PATCH 00/84] Remove direct map from Xen hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 01/84] x86/mm: defer clearing page in virt_to_xen_lXe hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 02/84] x86: move some xen mm function declarations hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 03/84] x86: introduce a new set of APIs to manage Xen page tables hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 04/84] x86/mm: introduce l{1, 2}t local variables to map_pages_to_xen hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 05/84] x86/mm: introduce l{1, 2}t local variables to modify_xen_mappings hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 06/84] x86/mm: map_pages_to_xen should have one exit path hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 07/84] x86/mm: add an end_of_loop label in map_pages_to_xen hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 08/84] x86/mm: make sure there is one exit path for modify_xen_mappings hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 09/84] x86/mm: add an end_of_loop label in modify_xen_mappings hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 10/84] x86/mm: change pl2e to l2t in virt_to_xen_l2e hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 11/84] x86/mm: change pl1e to l1t in virt_to_xen_l1e hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 12/84] x86/mm: change pl3e to l3t in virt_to_xen_l3e hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 13/84] x86/mm: rewrite virt_to_xen_l3e hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 14/84] x86/mm: rewrite xen_to_virt_l2e hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 15/84] x86/mm: rewrite virt_to_xen_l1e hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 16/84] x86/mm: switch to new APIs in map_pages_to_xen hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 17/84] xxx fixup: avoid shadowing mfn hongyax
2019-09-26 13:05   ` Wei Liu
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 18/84] x86/mm: drop lXe_to_lYe invocations in map_pages_to_xen hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 19/84] x86/mm: switch to new APIs in modify_xen_mappings hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 20/84] x86/mm: drop lXe_to_lYe invocations from modify_xen_mappings hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 21/84] x86/mm: switch to new APIs in arch_init_memory hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 22/84] x86_64/mm: introduce pl2e in paging_init hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 23/84] x86_64/mm: switch to new APIs " hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 24/84] x86_64/mm: drop l4e_to_l3e invocation from paging_init hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 25/84] x86_64/mm.c: remove code that serves no purpose in setup_m2p_table hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 26/84] x86_64/mm: introduce pl2e " hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 27/84] x86_64/mm: switch to new APIs " hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 28/84] x86_64/mm: drop lXe_to_lYe invocations from setup_m2p_table hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 29/84] efi: use new page table APIs in copy_mapping hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 30/84] efi: avoid using global variable " hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 31/84] efi: use new page table APIs in efi_init_memory hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 32/84] efi: add emacs block to boot.c hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 33/84] efi: switch EFI L4 table to use new APIs hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 34/84] x86/smpboot: add emacs block hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 35/84] x86/smpboot: clone_mapping should have one exit path hongyax
2019-09-26  9:45 ` [Xen-devel] [RFC PATCH 36/84] x86/smpboot: switch pl3e to use new APIs in clone_mapping hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 37/84] x86/smpboot: switch pl2e " hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 38/84] x86/smpboot: switch pl1e " hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 39/84] x86/smpboot: drop lXe_to_lYe invocations from cleanup_cpu_root_pgt hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 40/84] x86: switch root_pgt to mfn_t and use new APIs hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 41/84] x86/shim: map and unmap page tables in replace_va_mapping hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 42/84] x86_64/mm: map and unmap page tables in m2p_mapped hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 43/84] x86_64/mm: map and unmap page tables in share_hotadd_m2p_table hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 44/84] x86_64/mm: map and unmap page tables in destroy_compat_m2p_mapping hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 45/84] x86_64/mm: map and unmap page tables in destroy_m2p_mapping hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 46/84] x86_64/mm: map and unmap page tables in setup_compat_m2p_table hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 47/84] x86_64/mm: map and unmap page tables in cleanup_frame_table hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 48/84] x86_64/mm: map and unmap page tables in subarch_init_memory hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 49/84] x86_64/mm: map and unmap page tables in subarch_memory_op hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 50/84] x86/smpboot: remove lXe_to_lYe in cleanup_cpu_root_pgt hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 51/84] x86/pv: properly map and unmap page tables in mark_pv_pt_pages_rdonly hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 52/84] x86/pv: properly map and unmap page table in dom0_construct_pv hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 53/84] x86: remove lXe_to_lYe in __start_xen hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 54/84] x86/mm: drop old page table APIs hongyax
2019-09-26  9:46 ` hongyax [this message]
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 56/84] x86/mm: drop _new suffix for " hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 57/84] x86: add Persistent Map (PMAP) infrastructure hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 58/84] x86/mm: fix leaks in map_xen_pagetable hongyax
2019-09-26 10:23   ` Julien Grall
2019-09-26 10:45     ` hongyax
2019-09-26 12:05       ` Julien Grall
2019-09-26 13:16   ` Wei Liu
2019-09-27 13:12     ` hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 59/84] x86/pmap: break the loop in pmap APIs hongyax
2019-09-26 13:21   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 60/84] x86/domain_page: use PMAP when d/vcache is not ready hongyax
2019-09-26 13:30   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 61/84] x86: lift domain mapcache to arch_domain hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 62/84] x86: lift vcpu mapcache to arch_vcpu hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 63/84] x86/domain_page: mapcache is no longer tied to pv hongyax
2019-09-26 13:59   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 64/84] mapcache: initialise the mapcache even for the idle domain hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 65/84] x86: fix some wrong assumptions on direct map. Increase PMAP slots to 8 hongyax
2019-09-26 14:08   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 66/84] x86/pv: domheap pages should be mapped while relocating initrd hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 67/84] x86/domain_page: remove direct map code and initialise idle mapcache hongyax
2019-09-26 14:14   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 68/84] page_alloc: actually do the mapping and unmapping on xenheap hongyax
2019-09-26 10:39   ` Julien Grall
2019-09-26 10:45     ` Julien Grall
2019-09-26 10:52       ` hongyax
2019-09-26 11:18     ` hongyax
2019-09-26 12:24       ` Julien Grall
2019-09-26 13:03         ` hongyax
2019-09-26 13:22           ` Jan Beulich
2019-09-26 14:01           ` Julien Grall
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 69/84] page_alloc: comments on (un)mapping pages in xenheap allocations hongyax
2019-09-26 10:42   ` Julien Grall
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 70/84] x86/smpboot: use xenheap pages for rpts in smpboot hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 71/84] x86/setup: start tearing down the direct map hongyax
2019-09-26 10:50   ` Julien Grall
2019-09-26 14:26   ` Wei Liu
2019-09-27 12:54     ` hongyax
2019-09-27 13:00       ` Jan Beulich
2019-09-27 14:02         ` hongyax
2019-09-27 14:14           ` Jan Beulich
2019-09-27 14:49             ` hongyax
2019-09-27 15:01             ` hongyax
2019-09-27 13:01       ` Julien Grall
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 72/84] acpi: don't assume an always-mapped direct map in acpi allocations hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 73/84] x86/mm: Move vmap_to_mfn() to mm.c and rename to virt_to_mfn_walk() hongyax
2019-09-26 10:59   ` Julien Grall
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 74/84] x86/pv: refactor how building dom0 in PV handles domheap mappings hongyax
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 75/84] x86/mm: handle PSE early termination cases in virt_to_mfn_walk() hongyax
2019-09-26 14:39   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 76/84] x86/setup: also clear the permission bits in the dummy 1:1 mapping hongyax
2019-09-26 14:42   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 77/84] x86: properly (un)map pages in restore_all_guests hongyax
2019-09-26 14:52   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 78/84] Revert "x86/smpboot: use xenheap pages for rpts in smpboot." hongyax
2019-09-26 14:54   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 79/84] Don't assume bootmem_region_list is mapped. Also fix a double unmap bug hongyax
2019-09-26 11:21   ` Julien Grall
2019-09-26 12:36     ` hongyax
2019-09-26 12:51       ` Julien Grall
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 80/84] x86/setup: Install dummy 1:1 mappings for all mem passed to allocators hongyax
2019-09-26 15:47   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 81/84] x86/mm: optimise and properly unmap pages in virt_to_mfn_walk() hongyax
2019-09-26 15:46   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 82/84] x86: deduplicate code a bit and fix an unmapping bug hongyax
2019-09-26 15:48   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 83/84] x86/pmap: rewrite logic for locking hongyax
2019-09-26 15:50   ` Wei Liu
2019-09-26  9:46 ` [Xen-devel] [RFC PATCH 84/84] x86/pv: fix a couple of direct map assumptions in dom0 building hongyax
2019-09-26 15:51   ` Wei Liu
2019-09-26 10:21 ` [Xen-devel] [RFC PATCH 00/84] Remove direct map from Xen Julien Grall
2019-09-26 10:33   ` hongyax
2019-09-26 12:02     ` Julien Grall
2019-09-26 16:06       ` hongyax

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=872c9d77a7ada6183a23c0e776d0975d07da873e.1569489002.git.hongyax@amazon.com \
    --to=hongyax@amazon.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=roger.pau@citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.