[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: How is the virt_hv_start_low used in compatible guest



The guest can (and is actually doing so in the Dom0 case) make use of this e.g. 
for setting the low/highmem boundary at a higher address, thus increasing the 
amount of lowmem over what that would be on a 32-bit hypervisor. For DomU-s to 
also benefit, the tools would need to be adjusted, but as this can affect where 
a guest can be migrated to, so far it didn't seem worthwhile for anybody to 
actually implement this.

Jan

>>> "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx> 06.07.09 11:20 >>>
Jan/Keir, I have a question to followin code In arch/x86/domain_build.c. Can 
you share me why we need to make the virt_start be adjustable based on the 
memory size in the system? Per my understanding, these changes will only affect 
HV itself, but I didn't see much benifit. Or did I missed anything?

Thanks
Yunhong Jiang

    if ( (parms.virt_hv_start_low != UNSET_ADDR) && elf_32bit(&elf) )
    {
        unsigned long mask = (1UL << L2_PAGETABLE_SHIFT) - 1;
        value = (parms.virt_hv_start_low + mask) & ~mask;
        BUG_ON(!is_pv_32bit_domain(d));
#if defined(__i386__)
        if ( value > HYPERVISOR_VIRT_START )
            panic("Domain 0 expects too high a hypervisor start address.\n");
#else
        if ( value > __HYPERVISOR_COMPAT_VIRT_START )
            panic("Domain 0 expects too high a hypervisor start address.\n");
        HYPERVISOR_COMPAT_VIRT_START(d) =
            max_t(unsigned int, m2p_compat_vstart, value);
#endif
    }


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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.