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

[Xen-devel] xc: error: xc_machphys_mfn_list: 83 != 129 when suspending 32GB PV DomU



Hi,

I have a 256GB host and run a 32GB 64-bit PV domain (SLES 11) on it.
When I try and suspend the domain, xc barfs with:

 xc: error: xc_machphys_mfn_list: 83 != 129: Internal error
 xc: error: xc_get_m2p_mfns (0 = Success): Internal error
 xc: error: Failed to map live M2P table (0 = Success): Internal error

At first, since dom0 is 32 bit, I suspected the compat layer. However
the hypercall in xen/arch/x86/x86_64/compat/mm.c compat_arch_memory_op()
seems to agree with the numbers:

 (XEN) compat_arch_memory_op returned 0 (nr_extents = 83, max_extents = 129)

>From this I conclude that everything is working OK at the hypercall
layer. However, looking at the code in compat_arch_memory_op() it
appears that the code is failing due to some arcane limits of the compat
subsystem. The following code to establish the variable 'limit' is
causing the loop to exit early:

    limit = (unsigned long)(compat_machine_to_phys_mapping +
        min_t(unsigned long, max_page,
              MACH2PHYS_COMPAT_NR_ENTRIES(current->domain)));
    if ( limit > RDWR_COMPAT_MPT_VIRT_END )
         limit = RDWR_COMPAT_MPT_VIRT_END;
    for ( i = 0, v = RDWR_COMPAT_MPT_VIRT_START, last_mfn = 0;
         (i != xmml.max_extents) && (v < limit);
          i++, v += 1 << L2_PAGETABLE_SHIFT )
    {
        /* do stuff */
    }
    xmml.nr_extents = i;

Further debugging reveals the variables are set as such:
 (XEN) compat_machine_to_phys_mapping = 18446606377058041856
 (XEN) max_page = 67272704
 (XEN) MACH2PHYS_COMPAT_NR_ENTRIES(current->domain) = 43515904
 (XEN) RDWR_COMPAT_MPT_VIRT_START = 18446606377058041856
 (XEN) RDWR_COMPAT_MPT_VIRT_END = 18446606378131783680
 (XEN) limit = 18446606377232105472, (1 << L2_PAGETABLE_SHIFT) = 2097152

Could it be that the compat mach-to-phys conversion table size of 1GB is
too small? Or that there exists some other arbitrary limit on the size
of domains that can be suspended [when using a 32bit dom0] ?

Gianni


_______________________________________________
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®.