domain: how long is new xml in saved file

Eric Blake eblake at redhat.com
Fri Apr 24 15:20:52 UTC 2020


On 4/24/20 7:37 AM, Daniel P. Berrangé wrote:
> On Fri, Apr 24, 2020 at 02:33:13PM +0200, Michal Privoznik wrote:
>> On 4/24/20 6:38 AM, Vincent Wu wrote:
>>>
>>
>> The save format is fragile. At the beginning there is a header which
>> describes the file, then there is libvirt section (which contains the domain
>> XML and a cookie) and then there is QEMU section (where QEMU saved the guest
>> memory). Because of this, we have to have the check you are hitting in place
>> so that we don't accidentally overwrite the QEMU section.
> 
> BTW, does anyone recall why we were so restrictive on the XML length
> in the first place ?  I looked at history and didn't see why we did
> it this way.
> 
> It occurrs to me that given guest typical RAM sizes measuring many
> 100's of MB, we could easily make the header section have 1 MB of
> padding, and thus allow essentially arbitrary XML updates without
> worry about hitting a size limit.

We've had guest XML reaching 1M before, but I agree that the initial 
saved image creation should include padding to a nice boundary to make 
future edits less likely to overflow the reserved heading.

On new enough Linux, some file systems support 
fallocate(FALLOC_FL_INSERT_RANGE) which can splice in a hole (all later 
file contents are shifted in offsets); maybe our save code could take 
advantage of that to repair existing saved images with insufficient 
header size in a more efficient manner than manually shifting the rest 
of the file contents ourselves.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




More information about the libvirt-users mailing list