From: Hongyan Xia <hx242@xen.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, jgrall@amazon.com,
"Andrew Cooper" <andrew.cooper3@citrix.com>,
"Wei Liu" <wl@xen.org>, "Roger Pau Monné" <roger.pau@citrix.com>,
"George Dunlap" <george.dunlap@citrix.com>,
"Ian Jackson" <ian.jackson@eu.citrix.com>,
"Julien Grall" <julien@xen.org>,
"Stefano Stabellini" <sstabellini@kernel.org>
Subject: Re: [PATCH v8 03/15] x86/mm: rewrite virt_to_xen_l*e
Date: Thu, 13 Aug 2020 17:08:11 +0100 [thread overview]
Message-ID: <a4f02c292a369cfd771790b1d164f139fec6bead.camel@xen.org> (raw)
In-Reply-To: <41d9d8d4-d5cb-8350-c118-c9e1fe73b6d0@suse.com>
On Fri, 2020-08-07 at 16:05 +0200, Jan Beulich wrote:
> On 27.07.2020 16:21, Hongyan Xia wrote:
> > From: Wei Liu <wei.liu2@citrix.com>
> >
> > Rewrite those functions to use the new APIs. Modify its callers to
> > unmap
> > the pointer returned. Since alloc_xen_pagetable_new() is almost
> > never
> > useful unless accompanied by page clearing and a mapping, introduce
> > a
> > helper alloc_map_clear_xen_pt() for this sequence.
> >
> > Note that the change of virt_to_xen_l1e() also requires
> > vmap_to_mfn() to
> > unmap the page, which requires domain_page.h header in vmap.
> >
> > Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> > Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
> > Reviewed-by: Jan Beulich <jbeulich@suse.com>
> >
> > ---
> > Changed in v8:
> > - s/virtual address/linear address/.
> > - BUG_ON() on NULL return in vmap_to_mfn().
>
> The justification for this should be recorded in the description. In
Will do.
> reply to v7 I did even suggest how to easily address the issue you
> did notice with large pages, as well as alternative behavior for
> vmap_to_mfn().
One thing about adding SMALL_PAGES is that vmap is common code and I am
not sure if the Arm side is happy with it.
>
> > --- a/xen/include/asm-x86/page.h
> > +++ b/xen/include/asm-x86/page.h
> > @@ -291,7 +291,15 @@ void copy_page_sse2(void *, const void *);
> > #define pfn_to_paddr(pfn) __pfn_to_paddr(pfn)
> > #define paddr_to_pfn(pa) __paddr_to_pfn(pa)
> > #define paddr_to_pdx(pa) pfn_to_pdx(paddr_to_pfn(pa))
> > -#define
> > vmap_to_mfn(va) _mfn(l1e_get_pfn(*virt_to_xen_l1e((unsigned
> > long)(va))))
> > +
> > +#define vmap_to_mfn(va)
> > ({ \
> > + const l1_pgentry_t *pl1e_ = virt_to_xen_l1e((unsigned
> > long)(va)); \
> > + mfn_t
> > mfn_; \
> > + BUG_ON(!pl1e_);
> > \
> > + mfn_ =
> > l1e_get_mfn(*pl1e_); \
> > + unmap_domain_page(pl1e_);
> > \
> > + mfn_; })
>
> Additionally - no idea why I only notice this now, this wants some
> further formatting adjustment: Either
>
> #define vmap_to_mfn(va)
> ({ \
> const l1_pgentry_t *pl1e_ = virt_to_xen_l1e((unsigned
> long)(va)); \
> mfn_t
> mfn_; \
> BUG_ON(!pl1e_);
> \
> mfn_ =
> l1e_get_mfn(*pl1e_); \
> unmap_domain_page(pl1e_);
> \
> mfn_;
> \
> })
>
> or (preferably imo)
>
> #define vmap_to_mfn(va)
> ({ \
> const l1_pgentry_t *pl1e_ = virt_to_xen_l1e((unsigned long)(va));
> \
> mfn_t
> mfn_; \
> BUG_ON(!pl1e_);
> \
> mfn_ =
> l1e_get_mfn(*pl1e_); \
> unmap_domain_page(pl1e_);
> \
> mfn_;
> \
> })
Will do so in the next rev.
Hongyan
next prev parent reply other threads:[~2020-08-13 16:08 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-27 14:21 [PATCH v8 00/15] switch to domheap for Xen page tables Hongyan Xia
2020-07-27 14:21 ` [PATCH v8 01/15] x86/mm: map_pages_to_xen would better have one exit path Hongyan Xia
2020-07-27 14:21 ` [PATCH v8 02/15] x86/mm: make sure there is one exit path for modify_xen_mappings Hongyan Xia
2020-07-27 14:21 ` [PATCH v8 03/15] x86/mm: rewrite virt_to_xen_l*e Hongyan Xia
2020-08-07 14:05 ` Jan Beulich
2020-08-13 16:08 ` Hongyan Xia [this message]
2020-08-13 17:22 ` Julien Grall
2020-08-18 8:49 ` Jan Beulich
2020-08-18 10:13 ` Julien Grall
2020-08-18 11:30 ` Jan Beulich
2020-08-18 13:08 ` Julien Grall
2020-08-18 16:16 ` Jan Beulich
2020-11-30 12:13 ` Hongyan Xia
2020-11-30 12:50 ` Jan Beulich
2020-11-30 14:13 ` Hongyan Xia
2020-11-30 14:47 ` Jan Beulich
2020-12-07 15:28 ` Hongyan Xia
2020-07-27 14:21 ` [PATCH v8 04/15] x86/mm: switch to new APIs in map_pages_to_xen Hongyan Xia
2020-07-27 14:21 ` [PATCH v8 05/15] x86/mm: switch to new APIs in modify_xen_mappings Hongyan Xia
2020-07-27 14:21 ` [PATCH v8 06/15] x86_64/mm: introduce pl2e in paging_init Hongyan Xia
2020-07-27 14:21 ` [PATCH v8 07/15] x86_64/mm: switch to new APIs " Hongyan Xia
2020-08-07 14:09 ` Jan Beulich
2020-07-27 14:21 ` [PATCH v8 08/15] x86_64/mm: switch to new APIs in setup_m2p_table Hongyan Xia
2020-07-27 14:21 ` [PATCH v8 09/15] efi: use new page table APIs in copy_mapping Hongyan Xia
2020-08-07 14:13 ` Jan Beulich
2020-07-27 14:22 ` [PATCH v8 10/15] efi: switch to new APIs in EFI code Hongyan Xia
2020-07-27 14:22 ` [PATCH v8 11/15] x86/smpboot: add exit path for clone_mapping() Hongyan Xia
2020-07-27 14:22 ` [PATCH v8 12/15] x86/smpboot: switch clone_mapping() to new APIs Hongyan Xia
2020-07-27 14:22 ` [PATCH v8 13/15] x86/mm: drop old page table APIs Hongyan Xia
2020-07-27 14:22 ` [PATCH v8 14/15] x86: switch to use domheap page for page tables Hongyan Xia
2020-07-27 14:22 ` [PATCH v8 15/15] x86/mm: drop _new suffix for page table APIs Hongyan Xia
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=a4f02c292a369cfd771790b1d164f139fec6bead.camel@xen.org \
--to=hx242@xen.org \
--cc=andrew.cooper3@citrix.com \
--cc=george.dunlap@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=jgrall@amazon.com \
--cc=julien@xen.org \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).