Am 19.09.2010 18:07, schrieb ext Michael S. Tsirkin:
On Tue, Sep 14, 2010 at 05:46:55PM +0200, Bernhard Kohl wrote:
> This patch was motivated by the following use case: In our system
> the VMs usually have 4 NICs, any combination of virtio-net-pci and
> pci-assign NIC devices. The VMs boot via gPXE preferably over the
> pci-assign devices.
>
> There is no way to make this working with a combination of the
> current options -net -pcidevice -device -optionrom -boot.
>
> With the parameter boot=off it is possible to avoid loading
> and using gPXE option ROMs either for old style "-net nic" or
> for "-device" NIC devices. So we can select which NIC is used
> for booting.
>
> A side effect of the boot=off parameter is that unneeded ROMs
> which might waste memory are not longer loaded. E.g. if you have
> 2 virtio-net-pci and 2 pci-assign NICs in sum 4 option ROMs are
> loaded and the virtio ROMs take precedence over the pci-assign
> ROMs. The BIOS uses the first gPXE ROM which it finds and only
> needs one of them even if there are more NICs of the same type.
>
> Without using the boot=on|off parameter the current behaviour
> does not change.
>
> Signed-off-by: Thomas Ostler<thomas.ost...@nsn.com>
> Signed-off-by: Bernhard Kohl<bernhard.k...@nsn.com>
I think this is useful, however:
- We have bit properties which handle parsing on/off
and other formats automatically. Please don't use string.
- boot is not a great property name for PCI: what
you actually do is disable option rom.
So maybe call it 'rom' or something like that?
Our main goal is to select a certain NIC's option rom for booting.
So the other roms are not needed and not loaded. We used 'boot'
as the property name as it is similar as in the '-drive' option to
select a certain disk for booting. What's about to call it 'bootrom'?
- given you have added a property, it can now
be changed with -device. and visible in -device ?
This also has an advantage of only applying to pci devices
(-net option would appear to apply to non-pci but have no effect).
Please do not add more flag parsing in qdemu-options, net and vl.c
I think it is OK that we don't support this new feature for the old
style '-net' option and only implement it for qdev / -device?
To summarize, just add a qdev bit option and check
the bit.
In general, we will rework the patch and use all new qdev features.
There are also some memory leaks as Chris told us, because of the
usage of strdup.
This rework might take 2 weeks because of vacation.
Thanks
Bernhard