[gPXE-devel] [PATCH] [virtio] Replace virtio-net with native gPXE driver

Stefan Hajnoczi stefanha at gmail.com
Fri Jul 9 01:25:28 EDT 2010


On Sat, Jul 3, 2010 at 10:07 PM, Stefan Hajnoczi <stefanha at gmail.com> wrote:
> On Sat, Jul 3, 2010 at 9:52 PM, Stefan Hajnoczi <stefanha at gmail.com> wrote:
>> This patch adds a native gPXE virtio-net driver and removes the legacy
>> Etherboot virtio-net driver.  The main reasons for doing this are:
>>
>> 1. Multiple virtio-net NICs are now supported by gPXE.  The legacy
>>   driver kept global state and caused issues in virtual machines with
>>   more than one virtio-net device.
>>
>> 2. Faster downloads.  The native gPXE driver downloads 100 MB over HTTP
>>   in 12s, the legacy Etherboot driver in 37s.  This simple benchmark
>>   uses KVM with tap networking and the Python SimpleHTTPServer both
>>   running on the same host.
>>
>> Changes to core virtio code reduce vring descriptors to 256 (QEMU uses
>> 128 for virtio-blk and 256 for virtio-net) and change the opaque token
>> from u16 to void*.  Lowering the descriptor count reduces memory
>> consumption.  The void* opaque token change makes driver code simpler.
>>
>> Signed-off-by: Stefan Hajnoczi <stefanha at gmail.com>
>
> Testing would be appreciated so here is a ROM-o-matic to build images:
>
> http://etherboot.org/share/stefanha/virtio-net/contrib/rom-o-matic/
>
> If you want to build from source:
>
> $ git clone -b virtio-net git://git.etherboot.org/scm/people/stefanha/gpxe.git
> $ cd gpxe/src
> $ make

Thanks for testing the new driver:

http://support.etherboot.org/index.php?do=details&task_id=96

I'd appreciate code review if anyone has time.

Stefan


More information about the gPXE-devel mailing list