[libvirt-users] how xml generated

Michal Privoznik mprivozn at redhat.com
Thu Apr 26 08:01:04 UTC 2018


On 04/26/2018 09:50 AM, 李卓瑶 wrote:
> Thanks for your reply
> what i want to know is that why there are many devices in $domain.xml, actully , i choose nothing in virt-manager?
> so, Do i need to look at qemuDomainDefineXMLFlags()?

Because we try to have 1:1 relationship between domain XML configuration
and devices as seen by guest. Even when you don't select anything in
virt-manager the domain will definitely have a PCI root controller,
controller for disk bus (be it sata, scsi, ide, ..), then it'll also
have a virtual NIC, some memory/cpu configuration, and so on.

In the code, these devices are added once XML is parsed by
virDomainDefPostParseInternal(). Each driver can pass this xmlopt
structure filled in with callbacks (take a look at
virQEMUDriverCreateXMLConf()). So in the end, devices are added only
after XML is parsed. However, it is not done all in one place. For
instance, controllers are added during device address assignment, other
devices are added in PostParse callbacks, and so on.

> hours ago, i thought it's qemuDomainCreateWithFlags.

No. This creates so called transient domains.

https://wiki.libvirt.org/page/VM_lifecycle#Transient_guest_domains_vs_Persistent_guest_domains

Michal




More information about the libvirt-users mailing list