Ian Pratt wrote:>>> * cleanup use of ''unsigned long'' that exists in some handling of >>> PTEs. We''ve agreed a strategy of doing this with Gerd >> >> Next version of this cleanup patch, comments are welcome. > > Gerd, I think this patch is definitely the right idea. > > I don''t particularly like the names of your macros, but I can''t think > of any better. > > The init_0 is rather superfluous. > >> Handle with care for now. It builds and boots domain0 fine for me. >> But will break the x86_64 build and isn''t tested much otherwise. > > Let''s get the new shadow mode code checked in, then get everything > (including x86_64) switched over to the new macros. > > Ian >I like the idea of new macros. The other thing is that the current shadow code has issues with supporting 32-bit unmodified guests on x86_64 (e.g. VMX domain). For example, the following does not work, and we need new definitions (e.g. l1_pgentry_32_t) for that purpose. typedef struct { unsigned long l1_lo; } l1_pgentry_t; typedef struct { unsigned long l2_lo; } l2_pgentry_t; The linear page table does not work either, because the page table entries are different (i.e. 4-byte vs. 8-byte). I think we need to get the current shadow code working for 2-level page tables on both x86 and x86_64 first, then extend it to support 3/4-level page tables, probably in a sperate file? Jun ------------------------------------------------------- This SF.net email is sponsored by: 2005 Windows Mobile Application Contest Submit applications for Windows Mobile(tm)-based Pocket PCs or Smartphones for the chance to win $25,000 and application distribution. Enter today at http://ads.osdn.com/?ad_idh82&alloc_id148&op=click _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
On 23 Mar 2005, at 15:22, Nakajima, Jun wrote:> I like the idea of new macros. The other thing is that the current > shadow code has issues with supporting 32-bit unmodified guests on > x86_64 (e.g. VMX domain). For example, the following does not work, and > we need new definitions (e.g. l1_pgentry_32_t) for that purpose. > typedef struct { unsigned long l1_lo; } l1_pgentry_t; > typedef struct { unsigned long l2_lo; } l2_pgentry_t; > The linear page table does not work either, because the page table > entries are different (i.e. 4-byte vs. 8-byte). I think we need to get > the current shadow code working for 2-level page tables on both x86 and > x86_64 first, then extend it to support 3/4-level page tables, probably > in a sperate file?I suspect there may be a lot of commonality between the code for handling different pagteable arrangements (2 vs. 3 vs 4 level, and 4-byte vs 8-byte PTEs). Rather than duping the code for each case, maybe we can have one codebase with minimal ifdef''s that works with the l_pgentry types, then perhaps gets compiled multiple times with different-size types and macros differently defined? As you say, it''s probably best to consider the best course of action after we have x-type guest working on x-type host (for x == x86/32,PAE,x86/64). -- Keir ------------------------------------------------------- This SF.net email is sponsored by Microsoft Mobile & Embedded DevCon 2005 Attend MEDC 2005 May 9-12 in Vegas. Learn more about the latest Windows Embedded(r) & Windows Mobile(tm) platforms, applications & content. Register by 3/29 & save $300 http://ads.osdn.com/?ad_id=6883&alloc_id=15149&op=click _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel