[gPXE] multiple virtio network cards, qemu and gpxe.

Stefan Hajnoczi stefanha at gmail.com
Fri Jul 2 04:37:06 EDT 2010


On Sun, Jun 27, 2010 at 3:09 PM, Stefan Hajnoczi <stefanha at gmail.com> wrote:
> On Sat, Jun 26, 2010 at 5:33 AM, Vagrant Cascadian
> <vagrant+gpxe at freegeek.org> wrote:
>> i was testing out gPXE today using qemu on a debian system (0.12.4+dfsg-2),
>> with gPXE roms built from 1.0.1-rc1, and i noticed an issue when using the
>> virtio network driver.
>>
>> if there was only one virtio network card, gPXE would work fine.
>>
>> if i configured qemu to use two virtio network cards, gPXE would very briefly
>> display the following message and reboot:
>>
>>  I/O address 0x0000c020, IRQ #11
>>  MAC address 52:54:00:12:34:56
>>  WARNING: Using legacy NIC wrapper on 52:54:00:12:34:56
>>
>> with two cards, it doesn't get as far as displaying:
>>
>>  gPXE 1.0.1-rc1 -- Open Source Boot Firmware -- http://etherboot.org
>>  Features: AoE HTTP iSCSI DNS TFTP bzImage COMBOOT ELF Multiboot NBI PXE PXEXT
>>
>> other network cards i tested e1000, pcnet, ne2k_pci seemed to handle multiple
>> network cards without problem.
>
> Thanks for reporting this issue.  The virtio-net driver was originally
> written for legacy Etherboot.  The code still works in gPXE but isn't
> able to take advantage of gPXE's native driver API.
>
> What's more is that the virtio-net driver is keeping global state - it
> is not possible to have multiple instances of the driver active
> simultaneously, as you discovered.
>
> The solution requires restructuring the virtio-net driver to eliminate
> global state.  It would make sense to update the driver to use gPXE's
> native API at the same time.
>
> If you file a bug for this issue at http://support.etherboot.org/ you
> will be kept up to date when this issue is resolved.

I am rewriting virtio-net as a native driver that supports multiple
NICs in a VM.  Will post patches and test gPXE images soon.

Stefan


More information about the gPXE mailing list