|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH 12/12] xfs: eagerly remove vmap mappings to avoid ups
To: |
Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> |
Subject: |
[Xen-devel] [PATCH 12/12] xfs: eagerly remove vmap mappings to avoid upsetting Xen |
From: |
Jeremy Fitzhardinge <jeremy@xxxxxxxx> |
Date: |
Mon, 15 Oct 2007 13:48:52 -0700 |
Cc: |
Nick Piggin <nickpiggin@xxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, XFS masters <xfs-masters@xxxxxxxxxxx>, Mark Williamson <mark.williamson@xxxxxxxxxxxx>, David Chinner <dgc@xxxxxxx>, LKML <linux-kernel@xxxxxxxxxxxxxxx>, Morten Bøgeskov <xen-users@xxxxxxxxxxxxxxxxxx>, Andi Kleen <ak@xxxxxxx>, Chris Wright <chrisw@xxxxxxxxxxxx>, virtualization@xxxxxxxxxxxxxx, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>, Keir Fraser <keir@xxxxxxxxxxxxx>, Stable Kernel <stable@xxxxxxxxxx> |
Delivery-date: |
Mon, 15 Oct 2007 14:37:44 -0700 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxx |
List-help: |
<mailto:xen-devel-request@lists.xensource.com?subject=help> |
List-id: |
Xen developer discussion <xen-devel.lists.xensource.com> |
List-post: |
<mailto:xen-devel@lists.xensource.com> |
List-subscribe: |
<http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |
List-unsubscribe: |
<http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |
References: |
<20071015204840.074767068@xxxxxxxx> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
User-agent: |
quilt/0.46-1 |
XFS leaves stray mappings around when it vmaps memory to make it
virtually contigious. This upsets Xen if one of those pages is being
recycled into a pagetable, since it finds an extra writable mapping of
the page.
This patch solves the problem in a brute force way, by making XFS
always eagerly unmap its mappings. David Chinner says this shouldn't
have any performance impact on filesystems with default block sizes;
it will only affect filesystems with large block sizes.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xxxxxxxxxxxxx>
Cc: David Chinner <dgc@xxxxxxx>
Cc: Nick Piggin <nickpiggin@xxxxxxxxxxxx>
Cc: XFS masters <xfs-masters@xxxxxxxxxxx>
Cc: Stable kernel <stable@xxxxxxxxxx>
Cc: Morten =?utf-8?q?B=C3=B8geskov?= <xen-users@xxxxxxxxxxxxxxxxxx>
Cc: Mark Williamson <mark.williamson@xxxxxxxxxxxx>
---
fs/xfs/linux-2.6/xfs_buf.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
===================================================================
--- a/fs/xfs/linux-2.6/xfs_buf.c
+++ b/fs/xfs/linux-2.6/xfs_buf.c
@@ -186,6 +186,19 @@ free_address(
void *addr)
{
a_list_t *aentry;
+
+#ifdef CONFIG_XEN
+ /*
+ * Xen needs to be able to make sure it can get an exclusive
+ * RO mapping of pages it wants to turn into a pagetable. If
+ * a newly allocated page is also still being vmap()ed by xfs,
+ * it will cause pagetable construction to fail. This is a
+ * quick workaround to always eagerly unmap pages so that Xen
+ * is happy.
+ */
+ vunmap(addr);
+ return;
+#endif
aentry = kmalloc(sizeof(a_list_t), GFP_NOWAIT);
if (likely(aentry)) {
--
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH 00/12] xen/paravirt_ops patches for 2.6.24, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 05/12] xen: yield to IPI target if necessary, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 04/12] Clean up duplicate includes in arch/i386/xen/, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 02/12] paravirt: clean up lazy mode handling, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 03/12] remove dead code in pgtable_cache_init, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 12/12] xfs: eagerly remove vmap mappings to avoid upsetting Xen,
Jeremy Fitzhardinge <=
- [Xen-devel] [PATCH 11/12] xen: add some debug output for failed multicalls, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 10/12] xen: fix incorrect vcpu_register_vcpu_info hypercall argument, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 09/12] xen: ask the hypervisor how much space it needs reserved, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 06/12] xen: add batch completion callbacks, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 08/12] xen: lock pte pages while pinning/unpinning, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 01/12] paravirt: refactor struct paravirt_ops into smaller pv_*_ops, Jeremy Fitzhardinge
- [Xen-devel] [PATCH 07/12] xen: deal with stale cr3 values when unpinning pagetables, Jeremy Fitzhardinge
- [Xen-devel] Re: [stable] [PATCH 00/12] xen/paravirt_ops patches for 2.6.24, Greg KH
|
|
|
|
|