From: Mathieu Ropert <mro@adviseo.fr>
To: xen-devel@lists.xensource.com
Subject: Re: [RESEND] Question about recursive mappings
Date: Mon, 22 May 2006 17:18:12 +0200 [thread overview]
Message-ID: <4471D634.10808@adviseo.fr> (raw)
In-Reply-To: <4471814E.2070302@adviseo.fr>
Done some investingations in the mm code of Xen, i think the problem is
that linear page tables entries are checked only on level 4 entries.
In my case, my recursive entry is in a L3 table, already validated as
another type, hence not "valid" for Xen.
Will authorizing L3 or L2 recursive mappings induce a security hole or
vulnerability?
If not, I'll try to make a patch to address this issue (any hint welcome
:)).
Regards,
Mathieu
Mathieu Ropert wrote:
> [Previous one didn't hit list after 3 days, trying a resend, sorry if
> both finally show up]
>
> Hi,
>
> are recursive mappings (ie: a page table entry pointing back to itself)
> supported by Xen (on x86_64 at least)?
> I'm asking cause i'm seeing many error logs from get_page_type() telling
> something like "saw L3_page_table expected L2_page_table" or "saw
> L4_page_table expected L3_page_table" (finally leading to a failing
> mmu_update, i guess others happens on user pagetables switches).
> Or maybe is there any workaround needed? (I think i saw something like
> setting entry to 0 first then to the recursive entry somewhere, but
> can't remember where).
> By the way, i'm using recursive mappings in kernel page directory (which
> seems ok) and i temporay make user page directory recursive when i map
> a user PGD in kernel space (mapping user PGD to a L4 entry of kernel
> tables, then using kernel L4 slot and user PGD recursive entry to
> access user page tables).
>
> [edit]
> Done some little research about the problem. Seems like NetBSD use the
> same thing and works, but there is no x86_64 ports for now. I'm
> starting to think that may be a x86_64 issue, maybe because recursive
> mappings don't lead to conflicting types with only 2 levels.
> Xen interface states that a page can only be of one type (PGD, PT,
> LDT, GDT and R/W). I don't know why there is a need to distinguish
> page table levels, but i'm afraid this restriction will conflit with
> some MMU implementation on x86_64 like NetBSD and OpenBSD, and maybe
> others (FreeBSD on top of my mind, don't know how much the pmap
> implementation diverged).
> [/edit]
>
> Regards,
>
> Mathieu
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
next prev parent reply other threads:[~2006-05-22 15:18 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-22 9:15 [RESEND] Question about recursive mappings Mathieu Ropert
2006-05-22 15:18 ` Mathieu Ropert [this message]
-- strict thread matches above, loose matches on Subject: below --
2006-05-23 9:41 Ian Pratt
2006-05-23 9:52 ` Keir Fraser
2006-05-23 12:22 ` Mathieu Ropert
2006-07-27 22:14 ` Bruce Rogers
2006-05-24 9:34 Ian Pratt
2006-05-24 20:12 ` Mathieu Ropert
2006-05-24 20:16 ` Keir Fraser
2006-05-26 9:27 ` Mathieu Ropert
2006-05-29 11:43 ` Mathieu Ropert
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=4471D634.10808@adviseo.fr \
--to=mro@adviseo.fr \
--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.