WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Does Xen in 64 bit mode support shadow page table mode?

To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Does Xen in 64 bit mode support shadow page table mode?
From: Randy Thelen <rthelen@xxxxxxxxxx>
Date: Mon, 13 Nov 2006 13:12:51 -0800
Delivery-date: Mon, 13 Nov 2006 13:13:43 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Folks --

I'm trying to experiment with running a 64 bit paravirtualized guest in shadow page table mode, and I'm getting an error while pinning the page table.

The call to pin the pages is in xc_linux_build.c:

static int setup_guest(int xc_handle, ...

#if defined(__x86_64__)
    /*
* Pin down l4tab addr as page dir page - causes hypervisor to provide
     * correct protection for the page
     */
    if ( pin_table(xc_handle, MMUEXT_PIN_L4_TABLE,
                   xen_cr3_to_pfn(ctxt->ctrlreg[3]), dom) )
        goto error_out;
#endif

...

And Xen coughs up:

(XEN) (file=/home/sai/xen-unstable/xen/include/asm/mm.h, line=266) Error pfn 50d: rd=ffff830000fdf080, od=0000000000000000, caf=00000000, taf=0000000000000000
(XEN) DOM0: (file=mm.c, line=483) Could not get page ref for pfn 50d
(XEN) DOM0: (file=mm.c, line=2052) Error while pinning mfn 50d

My Xen version is:

Xen version 3.0-unstable (root@xxxxxxxxxxxxxx) (gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)) Thu Nov 2 10:37:27 P
ST 2006
Latest ChangeSet: Sun Sep 10 17:55:03 2006 +0100 11440:bfd00b317815

(XEN) Command line: /xen-3.gz dom0_mem=716800 com1=9600,8n1 cdb=com1 console=com1
(XEN) Physical RAM map:

My debugging session looks like:

Breakpoint 9, setup_guest (xc_handle=8, dom=20, image=0x806150 "\177ELF\002\001\001", image_size=19277, initrd=0x42801700, nr_pages=2560, pvsi=0x0, pvke=0x0, pvss=0x0, ctxt=0x42800130, cmdline=0x2b653d609054 "", shared_info_frame=4052, flags=0, store_evtchn=0, store_mfn=0x428017a8, console_evtchn=0, console_mfn=0x428017a0, required_features=0x42800110) at xc_linux_build.c:921
921         if ( pin_table(xc_handle, MMUEXT_PIN_L4_TABLE,
(gdb) p xc_handle
$39 = 8
(gdb) l
916     #if defined(__x86_64__)
917         /*
918 * Pin down l4tab addr as page dir page - causes hypervisor to provide
919          * correct protection for the page
920          */
921         if ( pin_table(xc_handle, MMUEXT_PIN_L4_TABLE,
922                        xen_cr3_to_pfn(ctxt->ctrlreg[3]), dom) )
923             goto error_out;
924     #endif
925
(gdb) p/x ctxt->ctrlreg
$40 = {0x0, 0x0, 0x0, 0x50d000, 0x0, 0x0, 0x0, 0x0}
(gdb) p/x dsi
$41 = {v_start = 0x0, v_end = 0x503c88, v_kernstart = 0x400000, v_kernend = 0x503c88, v_kernentry = 0x4000e8, elf_paddr_offset = 0x0, pae_kernel = 0x0, load_symtab = 0x0, symtab_addr = 0x0, symtab_len = 0x0, __elfnote_section = 0x0, __elfnote_section_end = 0x0, __xen_guest_string = 0x80a3be}
(gdb) p dsi.__xen_guest_string
$42 = 0x80a3be "LOADER=generic,GUEST_OS=your-favorite- os,GUEST_VER=0.1,XEN_VER=xen-3.0,BSD_SYMTAB,FEATURES=! writable_page_tables|!auto_translated_physmap,PAE=no"
(gdb) l xen_cr3_to_pfn
Function "xen_cr3_to_pfn" not defined.
(gdb) s
pin_table (xc_handle=8, type=3, mfn=1293, dom=20) at xg_private.c:127
127         op.cmd = type;
(gdb)

I'm a little concerned about v_start being 0. I don't know how to influence that in the link stage. But, it should work as it stands, I would imagine.

Anything obvious jump out at any of you?

-- Randy

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel