Port-xen archive

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

Re: [suspend/resume] memory_op hypercall failure: XENMEM_maximum_gpfn

On Sun, May 18, 2008 at 09:19:32PM +0200, Jean-Yves Migeon wrote:
> Jean-Yves Migeon wrote:
> >...
> ># xm dump-core 2 /root/core
> >Error: Failed to dump core: (1, 'Internal error', 'p2m_size < nr_pages 
> >-1 (0 < 1fff')
> >....
> >Questions are:
> >- hypercall APIs speak of "-ve errcode" on failure, but I can not 
> >manage to find which errcode they are referring to. Are they the same 
> >as the ones given in the mini-os from xentools? 
> >(extras/mini-os/include/errno-base.h). If yes, -1 indicates an EPERM 
> >error, which is weird for dom0.
> >- do the XENMEM_maximum_gpfn memory operation require some cooperation 
> >from the guest to obtain the proper value? I would say no, hypervisor 
> >should do it by itself alone. Am I missing something here?
> I investigated this matter a bit further: looks like the architecture 
> dependent part of shared_info struct from Xen should be "updated" by 
> guest upon start up, by completing the 
> shared_info->arch.pfn_to_mfn_frame_list_list element with the list of 
> frames that specifies the list of frames which makes up the entire p2m 
> table (I would say it mimics the PD => PT mechanisms).

That's strange as the hypervisor already has this info, which it gives us
from xen_start_info.mfn_list. Anyway it shouldn't be hard to fill in this.

There is also machine_to_phys_mapping[] which is the opposite; this
one is also provided by Xen.

> I did not find any part in NetBSD kernel which uses such kind of 
> translation tables (relevant parts of pmap dealing with machine frames 

see the xpmap_phys_to_machine_mapping[] array, and xpmap_ptom().
in pmap.c this is used mainly by pmap_pa2pte().

xpmap_phys_to_machine_mapping[] is keept up to date by the NetBSD kernel,
machine_to_phys_mapping[] is updated though xpq_queue_machphys_update().

> What troubles me is the errno returned by the hypercall I was talking 
> about in my previous mail (EPERM). IMHO, it has nothing to do with 
> permissions.

The hypervisor may use its own error codes in some case. I don't know
about this specific hypercall.

Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference

Home | Main Index | Thread Index | Old Index