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

Re: [Xen-devel] [PATCH 1/1] xc_domain_restore: Allow QEMU to increase memory



On 04/13/15 12:20, Wei Liu wrote:
> On Mon, Apr 13, 2015 at 12:09:13PM -0400, Don Slutz wrote:
>> If QEMU has called on xc_domain_setmaxmem to add more memory for
>> option ROMs, domain restore needs to also increase the memory.
>>
>> Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx>
>> ---
>> To see the hvmloader loader issue:
>>
...
>>  
>> +/* Leave some slack so that hvmloader does not complain about lack of
>> + * memory at boot time ("Could not allocate order=0 extent").
>> + * Once hvmloader is modified to cope with that situation without
>> + * printing warning messages, QEMU_SPARE_PAGES can be removed.
> Yes, please properly modify hvmloader to do this instead of trying to
> workaround this over and over again.

At some point I might get to this.

> But didn't Stefano make some changes to libxl too to handle the extra
> ram needed?

Not that I have seen.

>> + */
>> +#define QEMU_SPARE_PAGES 16
>> +
> This is still arbitrary and prone to breakage.

Yes, but turns out not to be the important part.

>
>>  struct restore_ctx {
>>      unsigned long max_mfn; /* max mfn of the current host machine */
>>      unsigned long hvirt_start; /* virtual starting address of the 
>> hypervisor */
>> @@ -209,12 +216,44 @@ static int uncanonicalize_pagetable(
>>          if (!ctx->hvm && ctx->superpages)
>>              rc = alloc_superpage_mfns(xch, dom, ctx, nr_mfns);
>>          else
>> +        {
...
>> +            }
> This is not maintainable. Trying to do smart things inside libxc
> without libxl knowing it is prone to breakage.

Some how I forgot to include that this is a bug in master
(4.6-unstable).  Much more info in
my reply to Andrew Cooper (short form below).


[root@dcs-xen-52 don]# xl cre -p /home/don/e1000x8.xfg
Parsing config from /home/don/e1000x8.xfg
got a tsc mode string: "native_paravirt"
[root@dcs-xen-52 don]# xl save e1000x8 e1000x8.save
Saving to e1000x8.save new xl format (info 0x1/0x0/3506)
xc: Saving memory: iter 0 (last sent 0 skipped 0): 1044481/1044481  100%
[root@dcs-xen-52 don]# xl restore e1000x8.save                          
Loading new save file e1000x8.save (new xl fmt info 0x1/0x0/3506)
 Savefile contains xl domain config in JSON format
Parsing config from <saved>
xc: error: Failed to allocate memory for batch.!: Internal error
libxl: error: libxl_create.c:1057:libxl__xc_domain_restore_done:
restoring domain: Cannot allocate memory
libxl: error: libxl_create.c:1129:domcreate_rebuild_done: cannot
(re-)build domain: -3
libxl: error: libxl.c:1576:libxl__destroy_domid: non-existant domain 2
libxl: error: libxl.c:1540:domain_destroy_callback: unable to destroy
guest with domid 2
libxl: error: libxl_create.c:1490:domcreate_destruction_cb: unable to
destroy domain 2 following failed creation
[root@dcs-xen-52 don]#                         


   -Don Slutz


> Wei.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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