All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard <judicator3@gmail.com>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: xen-devel@lists.sourceforge.net
Subject: Re: Page table and memory management
Date: Thu, 3 Mar 2005 17:11:31 -0500	[thread overview]
Message-ID: <a146ff9b050303141192e1c67@mail.gmail.com> (raw)
In-Reply-To: <a146ff9b05030314006a47e40d@mail.gmail.com>

Hi,

I think the flow graph in the previous email was too big and might not
display properly:

               do_mmu_update
                     |
                     |
    /---------------------------------\
    |                                 |
    |                                 |
    \/                                \/
 mod_l2_entry              do_extended_command
    |                                 |
    |                                 |
    \/                                |
get_page_from_l2e                     |
    |                                 |
    |                                 |
    \---------------------------------/
                     |
                     |
                     \/
          get_page_and_type_from_pagenr
                     |
                     |
                     \/
               get_page_type

Richard


On Thu, 3 Mar 2005 17:00:17 -0500, Richard <judicator3@gmail.com> wrote:
> Hi Keir,
> 
> I am still having trouble to edit the page table entries with the
> mmu_update hypercall.
> I am actually updating the mini-os. The mem management in mini-os is
> pretty outdated. For example, it assumes that the initial page tables
> are placed at the top of available memory and hence does not count
> properly the total amount of pages that have been allocated to the
> domain. I am extending the initial PGD and PT given to mini-os at boot
> time to map the available memory that I can use.
> 
> I tried to first pin a level 1 page frame before inserting it as an
> entry in the level 2 PGD.
> Whether I pin a level1 page frame first or I start using it directly
> as a page table, it does not matter the mmu_update hypercall still
> fails.
> 
> I traced through the XEN code, in the file arch/x86/memory.c. Whether
> excuting a MMU_NORMAL_PT_UPDATE or a MMU_EXTENDED_COMMAND type of
> command, the function do_mmu_update() eventually calls the helper
> function get_page_and_type_from_pagenr() which in turns call the
> function get_page_type(). Below I drew a call graph.
> 
>                                                  do_mmu_update
>                                                             |
>                                                             |
> 
> /------------------------------------------------------------------------------\
>                        |
>                                |
>                        \/
>                                \/
>                mod_l2_entry
>    do_extended_command
>                        |
>                                |
>                        \/
>                                |
>             get_page_from_l2e
>                     |
>                        |
>                                |
>                        |
>                                |
> 
> \------------------------------------------------------------------------------/
>                                                               |
>                                                               \/
>                                         get_page_and_type_from_pagenr
>                                                               |
>                                                               \/
>                                                      get_page_type
> 
> The get_page_type() checks the upperbits of the 'typeinfo' field of
> the page frame to make sure it is of type 'PGT_l1_page_table'.
> get_page_type() also does another check to verify that the 'typeinfo'
> field also contains the 10 upper bits of the virtual address that this
> page frame is suppose to eventually map to.
> 
> > Xen will automatically infer the type when you attach an L1 to an
> > existing L2. Xen will infer the L2 type when the L2 gets used as
> > current pagetable base.
> So I do not see where XEN is automatically inferring the L1 type when
> I am inserting for the 1st time the L1 page frame into the L2. In
> order to use a page frame as an L1 page table, I have to find a way to
> tell XEN to update the corresponding typeinfo field in order to pass
> the verification in get_page_type().
> 
> Thanks
> Richard
>


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

  reply	other threads:[~2005-03-03 22:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-03  3:07 Page table and memory management Richard
2005-03-03  9:02 ` Keir Fraser
2005-03-03 22:00   ` Richard
2005-03-03 22:11     ` Richard [this message]
2005-03-03 23:48       ` Xen hangs while booting Domain 0 Dhawan, Puneet
2005-03-04  1:38     ` Page table and memory management Christian Limpach
2005-03-04  9:21     ` Keir Fraser

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=a146ff9b050303141192e1c67@mail.gmail.com \
    --to=judicator3@gmail.com \
    --cc=Keir.Fraser@cl.cam.ac.uk \
    --cc=xen-devel@lists.sourceforge.net \
    /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.