From: Andres Lagar-Cavilla <andres@lagarcavilla.org>
To: xen-devel@lists.xensource.com
Cc: ian.campbell@citrix.com, andres@gridcentric.ca, tim@xen.org,
keir.xen@gmail.com, JBeulich@suse.com, ian.jackson@citrix.com,
adin@gridcentric.ca
Subject: [PATCH 4 of 9] x86: Add conversion from a xen map to an mfn
Date: Tue, 29 Nov 2011 15:21:41 -0500 [thread overview]
Message-ID: <42e6ceb8138dd9f913f6.1322598101@xdev.gridcentric.ca> (raw)
In-Reply-To: <patchbomb.1322598097@xdev.gridcentric.ca>
xen/include/asm-x86/page.h | 1 +
xen/include/asm-x86/x86_32/page.h | 11 +++++++++++
xen/include/asm-x86/x86_64/page.h | 5 +++++
3 files changed, 17 insertions(+), 0 deletions(-)
This conversion is a trivial invocation of virt_to_mfn in 64 bits.
In 32 bits it uses the linear_map.
Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org>
diff -r bea03a7fe212 -r 42e6ceb8138d xen/include/asm-x86/page.h
--- a/xen/include/asm-x86/page.h
+++ b/xen/include/asm-x86/page.h
@@ -272,6 +272,7 @@ 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 xen_map_to_mfn(va) __xen_map_to_mfn(va)
#endif /* !defined(__ASSEMBLY__) */
diff -r bea03a7fe212 -r 42e6ceb8138d xen/include/asm-x86/x86_32/page.h
--- a/xen/include/asm-x86/x86_32/page.h
+++ b/xen/include/asm-x86/x86_32/page.h
@@ -71,6 +71,17 @@ static inline void *__maddr_to_virt(unsi
return (void *)(ma + DIRECTMAP_VIRT_START);
}
+static inline unsigned long __xen_map_to_mfn(void *va)
+{
+ l1_pgentry_t *l1e;
+
+ ASSERT( (((unsigned long) va) >= MAPCACHE_VIRT_START) &&
+ (((unsigned long) va) <= MAPCACHE_VIRT_END) );
+ l1e = &__linear_l1_table[
+ l1_linear_offset((unsigned long) va)];
+ return l1e_get_pfn(*l1e);
+}
+
/* read access (should only be used for debug printk's) */
typedef u64 intpte_t;
#define PRIpte "016llx"
diff -r bea03a7fe212 -r 42e6ceb8138d xen/include/asm-x86/x86_64/page.h
--- a/xen/include/asm-x86/x86_64/page.h
+++ b/xen/include/asm-x86/x86_64/page.h
@@ -104,6 +104,11 @@ static inline void *__maddr_to_virt(unsi
((ma & ma_top_mask) >> pfn_pdx_hole_shift)));
}
+static inline unsigned long __xen_map_to_mfn(void *va)
+{
+ return (__virt_to_maddr((unsigned long) va) >> PAGE_SHIFT);
+}
+
/* read access (should only be used for debug printk's) */
typedef u64 intpte_t;
#define PRIpte "016lx"
next prev parent reply other threads:[~2011-11-29 20:21 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-29 20:21 [PATCH 0 of 9] MM Bug fixes Andres Lagar-Cavilla
2011-11-29 20:21 ` [PATCH 1 of 9] Tools: When passing no bitmap for the shadow log dirty bitmap clean up, we should not get EFAULT Andres Lagar-Cavilla
2011-11-30 14:39 ` Ian Jackson
2011-11-29 20:21 ` [PATCH 2 of 9] x86/mm: Don't trigger unnecessary shadow scans on p2m entry update Andres Lagar-Cavilla
2011-11-29 20:21 ` [PATCH 3 of 9] x86/mm: Don't lose track of the log dirty bitmap Andres Lagar-Cavilla
2011-11-29 20:21 ` Andres Lagar-Cavilla [this message]
2011-11-30 10:06 ` [PATCH 4 of 9] x86: Add conversion from a xen map to an mfn Jan Beulich
2011-11-29 20:21 ` [PATCH 5 of 9] x86/mm: Ensure maps used by nested hvm code cannot be paged out Andres Lagar-Cavilla
2011-11-30 10:10 ` Jan Beulich
2011-12-01 14:27 ` Tim Deegan
2011-12-01 14:29 ` Andres Lagar-Cavilla
2011-12-01 14:36 ` Tim Deegan
2011-11-29 20:21 ` [PATCH 6 of 9] x86/mm: Rework stale p2m auditing Andres Lagar-Cavilla
2011-12-02 8:28 ` Jan Beulich
2011-12-02 10:33 ` [PATCH] " Tim Deegan
2011-12-02 11:12 ` Jan Beulich
2011-11-29 20:21 ` [PATCH 7 of 9] Tools: Add libxc wrapper for p2m audit domctl Andres Lagar-Cavilla
2011-11-30 14:43 ` Ian Jackson
2011-11-29 20:21 ` [PATCH 8 of 9] x86/mm: Fix checks during foreign mapping of paged pages Andres Lagar-Cavilla
2011-11-30 12:46 ` Olaf Hering
2011-11-30 13:38 ` Olaf Hering
2011-11-30 15:02 ` Andres Lagar-Cavilla
2011-11-30 15:08 ` Olaf Hering
2011-11-29 20:21 ` [PATCH 9 of 9] x86/mm: Allow pages typed as log dirty to also be shared Andres Lagar-Cavilla
2011-12-01 15:09 ` [PATCH 0 of 9] MM Bug fixes Tim Deegan
2011-12-01 15:25 ` Andres Lagar-Cavilla
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=42e6ceb8138dd9f913f6.1322598101@xdev.gridcentric.ca \
--to=andres@lagarcavilla.org \
--cc=JBeulich@suse.com \
--cc=adin@gridcentric.ca \
--cc=andres@gridcentric.ca \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@citrix.com \
--cc=keir.xen@gmail.com \
--cc=tim@xen.org \
--cc=xen-devel@lists.xensource.com \
/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.