On Mon, 2018-04-09 at 11:29 -0500, Wei Huang wrote: > > > Running mach-virt machine types (i.e. "-M virt") on different systems can > > > result in various misleading warnings if -cpu and/or gic-version not > > > specified. > > > For KVM, this can be solved mostly by using "host" type. But the "host" > > > type > > > doesn't work for TCG. Compared with "host", the "max" type not only > > > supports > > > auto detection under KVM mode, but also works with TCG. So this patch set > > > "max" as the default types for both -cpu and gic-version. > > > > Hmm, generally we aim for the config provided by a machine type to be stable > > across QEMU versions. > > I understand this principle. But in reality, under KVM mode, the default > config most time doesn't work. If end users specify cpu type manually, > it still doesn't work because the host CPU is vendor-specific design > (e.g. "cortex-a57" doesn't work on QCOM's machine). So we end up with > using "-cpu host" all the time. My argument for this patch is that "-cpu > max" isn't worse than "-cpu host".
I figure the people not explicitly specifying a CPU model on the command line will probably also use '-M virt' instead of versioned machine types, which means they will get a different guest behavior after upgrading QEMU regardless. Defaulting to 'max' for '-cpu' and 'gic-version' makes it convenient to quickly and concisely start a guest; if you care about guest ABI at all, then you are already specifying everything explicitly on the command line instead of relying on defaults - or using libvirt ;) -- Andrea Bolognani / Red Hat / Virtualization