i''m trying to understand how xen handles pagetables, but i''m a bit confused: 1. where is a new domain''s memory mapping initialized in xen? 2. what''re the differences between idle_pg_table and linear_pg_table and are they indexed by guest linear page #s or hardware page #s? 3. [this is more of an affirmation, than a question] xen can''t arbitrarily access *any* physical page because it doesn''t map all of physical memory (eg, like linux does from PAGE_OFFSET)? thanks, -A. -- Aaron Marks Distributed Systems Lab University of Pennsylvania www.cis.upenn.edu/~ajmarks "Strange women lying in ponds distributing swords is no basis for a system of government." _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Mon, 24 Oct 2005, Aaron J. Marks wrote:> i''m trying to understand how xen handles pagetables, but i''m a bit > confused: > > 1. where is a new domain''s memory mapping initialized in xen? > 2. what''re the differences between idle_pg_table and linear_pg_table and > are they indexed by guest linear page #s or hardware page #s? > 3. [this is more of an affirmation, than a question] xen can''t arbitrarily > access *any* physical page because it doesn''t map all of physical > memory (eg, like linux does from PAGE_OFFSET)?okay, after staring at the code for a while (too long), i think i understand 1 & 2. however, i''m still uncertain about #3. i''d like to be able to iterate over every page table of every domain from *within* xen. is this possible? i guess the basic mechanism that i need is to be able to temporarily map a domain''s machine pages into xen address space, do the traversal, then unmap (and repeat for each domain). thanks, -A.> > thanks, > -A. > > -- > Aaron Marks > Distributed Systems Lab > University of Pennsylvania > www.cis.upenn.edu/~ajmarks > > "Strange women lying in ponds distributing swords is no basis > for a system of government." > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
> On Mon, 24 Oct 2005, Aaron J. Marks wrote: > > > i''m trying to understand how xen handles pagetables, but i''m a bit > > confused: > > > > 1. where is a new domain''s memory mapping initialized in xen? > > 2. what''re the differences between idle_pg_table and linear_pg_table and > > are they indexed by guest linear page #s or hardware page #s? > > 3. [this is more of an affirmation, than a question] xen can''t arbitrarily > > access *any* physical page because it doesn''t map all of physical > > memory (eg, like linux does from PAGE_OFFSET)? > > okay, after staring at the code for a while (too long), i think i > understand 1 & 2. however, i''m still uncertain about #3. > > i''d like to be able to iterate over every page table of every domain from > *within* xen. is this possible? i guess the basic mechanism that i need is > to be able to temporarily map a domain''s machine pages into xen address > space, do the traversal, then unmap (and repeat for each domain).Yes (at least if you''re talking about 32 bit). Take a look at the functions map_domain_page() and unmap_domain_page() in xen/arch/x86/x86_32/domain_page.c cheers, S. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel