From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Michael Abd-El-Malek <mabdelmalek@cmu.edu>
Cc: Mark McLoughlin <markmc@redhat.com>,
xen-devel <xen-devel@lists.xensource.com>,
Eduardo Habkost <ehabkost@redhat.com>
Subject: Re: Vanilla Linux and has_foreign_mapping
Date: Mon, 21 Apr 2008 21:46:45 +1000 [thread overview]
Message-ID: <480C7EA5.4070007@goop.org> (raw)
In-Reply-To: <480BB358.3070508@cmu.edu>
Michael Abd-El-Malek wrote:
> I'm trying to add support to Linux 2.6.25 for the
> "has_foreign_mappings" MMU context flag. Xen's Linux 2.6.18 tree uses
> this flag, so that page tables are properly disposed of when an
> application exits when it has foreign mappings.
I was hoping to avoid having to introduce that flag, but I have to admit
I haven't given it much analysis. How are you using it?
> See:
> http://lists.xensource.com/archives/html/xen-devel/2006-08/msg00038.html
>
> Here is my attempt:
> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
> index 2a054ef..3e51897 100644
> --- a/arch/x86/xen/mmu.c
> +++ b/arch/x86/xen/mmu.c
> @@ -633,8 +633,13 @@ void xen_exit_mmap(struct mm_struct *mm)
> spin_lock(&mm->page_table_lock);
>
> /* pgd may not be pinned in the error exit path of execve */
> - if (PagePinned(virt_to_page(mm->pgd)))
> - xen_pgd_unpin(mm->pgd);
> + if (PagePinned(virt_to_page(mm->pgd))) {
> + if (mm->context.has_foreign_mappings) {
> + printk("%s: because of has_foreign_mappings, delaying
> unpinning\n", __FUNCTION__);
> + } else {
> + xen_pgd_unpin(mm->pgd);
> + }
> + }
>
> spin_unlock(&mm->page_table_lock);
> }
> diff --git a/include/asm-x86/mmu.h b/include/asm-x86/mmu.h
> index efa962c..7194698 100644
> --- a/include/asm-x86/mmu.h
> +++ b/include/asm-x86/mmu.h
> @@ -18,6 +18,9 @@ typedef struct {
> int size;
> struct mutex lock;
> void *vdso;
> +#ifdef CONFIG_XEN
> + int has_foreign_mappings;
> +#endif
> } mm_context_t;
>
> #ifdef CONFIG_SMP
>
> Unfortunately, I got the following kernel crash on process exit:
>
> BUG: unable to handle kernel paging request at ebdae008
> IP: [<c01157f9>] pgd_mop_up_pmds+0x6a/0xd8
Which line is that?
J
next prev parent reply other threads:[~2008-04-21 11:46 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-20 21:19 Vanilla Linux and has_foreign_mapping Michael Abd-El-Malek
2008-04-21 11:46 ` Jeremy Fitzhardinge [this message]
2008-04-21 16:36 ` Mark McLoughlin
2008-04-21 18:00 ` Michael Abd-El-Malek
2008-04-21 17:52 ` Keir Fraser
2008-04-21 18:10 ` Michael Abd-El-Malek
2008-04-21 18:17 ` Michael Abd-El-Malek
2008-04-21 18:30 ` Keir Fraser
2008-04-25 0:18 ` Jeremy Fitzhardinge
2008-04-25 6:01 ` Keir Fraser
2008-04-25 17:11 ` Michael Abd-El-Malek
2008-04-25 18:22 ` Jeremy Fitzhardinge
2008-04-25 18:31 ` Michael Abd-El-Malek
2008-04-25 22:33 ` Jeremy Fitzhardinge
2008-04-29 16:39 ` Michael Abd-El-Malek
2008-04-29 17:32 ` Jeremy Fitzhardinge
2008-04-30 16:31 ` Michael Abd-El-Malek
[not found] ` <20080425172416.GC23300@duo.random>
2008-04-26 0:14 ` Jeremy Fitzhardinge
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=480C7EA5.4070007@goop.org \
--to=jeremy@goop.org \
--cc=ehabkost@redhat.com \
--cc=mabdelmalek@cmu.edu \
--cc=markmc@redhat.com \
--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.