Commit Message

The ne2k is an ancient card that performs pretty terribly under QEMU. In many
modern OSes, there is no longer drivers available for the ne2k.
Switch the default network adapter to e1000. This card is more widely
suppported and performs rather well under QEMU. There may be very old OSes
that had a ne2k driver but not an e1000 driver but I think this is likely the
exception.
I think the average user is better served with an e1000 vs ne2k.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
---
hw/pc.c | 4 ++--
qemu-options.hx | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)

Comments

Anthony Liguori wrote:
> The ne2k is an ancient card that performs pretty terribly under QEMU. In many> modern OSes, there is no longer drivers available for the ne2k.> > Switch the default network adapter to e1000. This card is more widely> suppported and performs rather well under QEMU. There may be very old OSes> that had a ne2k driver but not an e1000 driver but I think this is likely the> exception.> > I think the average user is better served with an e1000 vs ne2k.
Can we then please get the e1000 Etherboot rom feature comparable to the other roms [1]?
[1] http://lists.gnu.org/archive/html/qemu-devel/2008-07/msg00686.html
- Sebastian

On Fri, 2009-08-14 at 11:23 -0500, Anthony Liguori wrote:
> The ne2k is an ancient card that performs pretty terribly under QEMU. In many> modern OSes, there is no longer drivers available for the ne2k.> > Switch the default network adapter to e1000. This card is more widely> suppported and performs rather well under QEMU. There may be very old OSes> that had a ne2k driver but not an e1000 driver but I think this is likely the> exception.> > I think the average user is better served with an e1000 vs ne2k.
Shouldn't ne2k continue to be the default for pc-0.11 and pc-0.10?
Cheers,
Mark.

Mark McLoughlin wrote:
> On Fri, 2009-08-14 at 11:23 -0500, Anthony Liguori wrote:> >> The ne2k is an ancient card that performs pretty terribly under QEMU. In many>> modern OSes, there is no longer drivers available for the ne2k.>>>> Switch the default network adapter to e1000. This card is more widely>> suppported and performs rather well under QEMU. There may be very old OSes>> that had a ne2k driver but not an e1000 driver but I think this is likely the>> exception.>>>> I think the average user is better served with an e1000 vs ne2k.>> >> Shouldn't ne2k continue to be the default for pc-0.11 and pc-0.10>
Hrm, doesn't seem to be an obvious way to do this. I guess we could
change the pc_init functions for pc-0.11 and pc-0.10. Any thoughts?
Regards,
Anthony Liguori
> Cheers,> Mark.>>>>

On 08/24/09 17:12, Anthony Liguori wrote:
> Mark McLoughlin wrote:>>> I think the average user is better served with an e1000 vs ne2k.>>>> Shouldn't ne2k continue to be the default for pc-0.11 and pc-0.10>> Hrm, doesn't seem to be an obvious way to do this. I guess we could> change the pc_init functions for pc-0.11 and pc-0.10. Any thoughts?
Add default_nic to QEMUMachine?
cheers,
Gerd

Gerd Hoffmann wrote:
> On 08/24/09 17:12, Anthony Liguori wrote:>> Mark McLoughlin wrote:>>>> I think the average user is better served with an e1000 vs ne2k.>>>>>> Shouldn't ne2k continue to be the default for pc-0.11 and pc-0.10>>>> Hrm, doesn't seem to be an obvious way to do this. I guess we could>> change the pc_init functions for pc-0.11 and pc-0.10. Any thoughts?>> Add default_nic to QEMUMachine?
That doesn't extend to well though. If we remove balloon (as your patch
proposes), how do we get that back for pc-0.10 and pc-0.11?

On 08/14/2009 07:23 PM, Anthony Liguori wrote:
> The ne2k is an ancient card that performs pretty terribly under QEMU. In many> modern OSes, there is no longer drivers available for the ne2k.>> Switch the default network adapter to e1000. This card is more widely> suppported and performs rather well under QEMU. There may be very old OSes> that had a ne2k driver but not an e1000 driver but I think this is likely the> exception.>> I think the average user is better served with an e1000 vs ne2k.>
I am unable to get Windows XP to work with the e1000 device, either with
its built-in drivers or with Windows Update. I think it's better to
switch to rtl8139 (qemu-kvm's default for years now).

Avi Kivity wrote:
> On 08/14/2009 07:23 PM, Anthony Liguori wrote:>> The ne2k is an ancient card that performs pretty terribly under >> QEMU. In many>> modern OSes, there is no longer drivers available for the ne2k.>>>> Switch the default network adapter to e1000. This card is more widely>> suppported and performs rather well under QEMU. There may be very >> old OSes>> that had a ne2k driver but not an e1000 driver but I think this is >> likely the>> exception.>>>> I think the average user is better served with an e1000 vs ne2k.>> >> I am unable to get Windows XP to work with the e1000 device, either > with its built-in drivers or with Windows Update. I think it's better > to switch to rtl8139 (qemu-kvm's default for years now).
Is this a bug or is this not known to work?
I'd rather fix the e1000 bug than switch to rtl8139 which is still
awfully slow.

On Tue, Aug 25, 2009 at 01:45:24PM +0300, Avi Kivity wrote:
> I am unable to get Windows XP to work with the e1000 device, either with > its built-in drivers or with Windows Update. I think it's better to > switch to rtl8139 (qemu-kvm's default for years now).
It used to not work with win2003 as well, but I thought someone recently
fixed the bug that caused that to happen.
I use e1000 with win xp, although win xp has no driver at all for the
e1000 and requires you to download the intel driver and install that.
The intel driver also made win 2003 work before even though the microsoft
supplied driver did not work.

Lennart Sorensen wrote:
> On Tue, Aug 25, 2009 at 01:45:24PM +0300, Avi Kivity wrote:> >> I am unable to get Windows XP to work with the e1000 device, either with >> its built-in drivers or with Windows Update. I think it's better to >> switch to rtl8139 (qemu-kvm's default for years now).>> >> It used to not work with win2003 as well, but I thought someone recently> fixed the bug that caused that to happen.>> I use e1000 with win xp, although win xp has no driver at all for the> e1000 and requires you to download the intel driver and install that.> The intel driver also made win 2003 work before even though the microsoft> supplied driver did not work.>
That seems to conflict with what Avi suggested (that there's a built-in
driver).

Avi Kivity schrieb:
> On 08/14/2009 07:23 PM, Anthony Liguori wrote:>> The ne2k is an ancient card that performs pretty terribly under>> QEMU. In many>> modern OSes, there is no longer drivers available for the ne2k.>>>> Switch the default network adapter to e1000. This card is more widely>> suppported and performs rather well under QEMU. There may be very>> old OSes>> that had a ne2k driver but not an e1000 driver but I think this is>> likely the>> exception.>>>> I think the average user is better served with an e1000 vs ne2k.>> >> I am unable to get Windows XP to work with the e1000 device, either> with its built-in drivers or with Windows Update. I think it's better> to switch to rtl8139 (qemu-kvm's default for years now).>
Hi
rtl8139 did not work on big endian hosts: link was down in linux guests.
For kvm on little endian hosts, this did not matter.
The only adapter working in any combination of host / guest endianess
was pcnet (which had the lowest performance under QEMU).
My tests are rather old (2007-09-15), so maybe this was fixed later.
And of course, e1000 was added after my tests, so I assume it is
well programmed and passes endianess tests. Did anybody check this?
Today, my latest eepro100 (e100) emulation also passes all endianess
tests, but it still does not work with any Windows OS. This might
change with the patches published recently.
Regards
Stefan
PS. For endianess tests with 32 and 64 bit, QEMU's mips emulation
was very helpful. Without mips host support, this test environment
is no longer working. This is the main reason why I have no newer
test results.

On Tue, Aug 25, 2009 at 08:34:45AM -0500, Anthony Liguori wrote:
> That seems to conflict with what Avi suggested (that there's a built-in > driver).
In win 2003 server, it tried to install a driver, but had no valid MAC
in that case. In XP it simply said it had no driver for that device.
At least that's what I got when I installed XP in kvm a couple of months
ago (using the 0.10.x based kvm). Unless newer SP install discs for
XP happen to include a driver, then I have no idea why there would be
a difference. If you are installing XP, then the 8139 and ne2k should
both be supported, while the e1000 probably isn't (gigabit on desktop
machines probably wasn't very common when XP came out).

On 08/25/2009 03:39 PM, Anthony Liguori wrote:
> Avi Kivity wrote:>> On 08/14/2009 07:23 PM, Anthony Liguori wrote:>>> The ne2k is an ancient card that performs pretty terribly under >>> QEMU. In many>>> modern OSes, there is no longer drivers available for the ne2k.>>>>>> Switch the default network adapter to e1000. This card is more widely>>> suppported and performs rather well under QEMU. There may be very >>> old OSes>>> that had a ne2k driver but not an e1000 driver but I think this is >>> likely the>>> exception.>>>>>> I think the average user is better served with an e1000 vs ne2k.>>>> I am unable to get Windows XP to work with the e1000 device, either >> with its built-in drivers or with Windows Update. I think it's >> better to switch to rtl8139 (qemu-kvm's default for years now).>> Is this a bug or is this not known to work?
No idea. Windows didn't even find a driver, even with Windows Update
(which should have the most uptodate list).
>> I'd rather fix the e1000 bug than switch to rtl8139 which is still > awfully slow.>
Me too, but if a fix doesn't come up soon, I don't see a choice.

On 08/25/2009 04:23 PM, Lennart Sorensen wrote:
> On Tue, Aug 25, 2009 at 01:45:24PM +0300, Avi Kivity wrote:> >> I am unable to get Windows XP to work with the e1000 device, either with>> its built-in drivers or with Windows Update. I think it's better to>> switch to rtl8139 (qemu-kvm's default for years now).>> > It used to not work with win2003 as well, but I thought someone recently> fixed the bug that caused that to happen.>> I use e1000 with win xp, although win xp has no driver at all for the> e1000 and requires you to download the intel driver and install that.> The intel driver also made win 2003 work before even though the microsoft> supplied driver did not work.>
Ok. IMO it's important for networking to work out of the box, so we
should avoid e1000 as default.

On 08/25/2009 04:34 PM, Anthony Liguori wrote:
> Lennart Sorensen wrote:>> On Tue, Aug 25, 2009 at 01:45:24PM +0300, Avi Kivity wrote:>>> I am unable to get Windows XP to work with the e1000 device, either >>> with its built-in drivers or with Windows Update. I think it's >>> better to switch to rtl8139 (qemu-kvm's default for years now).>>>> It used to not work with win2003 as well, but I thought someone recently>> fixed the bug that caused that to happen.>>>> I use e1000 with win xp, although win xp has no driver at all for the>> e1000 and requires you to download the intel driver and install that.>> The intel driver also made win 2003 work before even though the >> microsoft>> supplied driver did not work.>> That seems to conflict with what Avi suggested (that there's a > built-in driver).>
I misreported it, Windows does not find a driver either in media or in
Windows Update.

On Tue, Aug 25, 2009 at 06:58:56PM +0300, Avi Kivity wrote:
> Ok. IMO it's important for networking to work out of the box, so we > should avoid e1000 as default.
Certainly for anything newer than XP it seems e1000 just works (or at
least could be fixed so it works) and is very efficient. For XP though,
it does not seem supported out of the box. One could always manually
install the e1000 driver and then make it work, but it probably isn't
a good default. Of course one could question whether XP should hold
back good defaults for everything else, since after all linux as a guest
would work very well with e1000 as would many other OS choices.

Lennart Sorensen wrote:
> On Tue, Aug 25, 2009 at 06:58:56PM +0300, Avi Kivity wrote:> >> Ok. IMO it's important for networking to work out of the box, so we >> should avoid e1000 as default.>> >> Certainly for anything newer than XP it seems e1000 just works (or at> least could be fixed so it works) and is very efficient. For XP though,>
Mainstream support eol for xp is scheduled for 4/14/10. New licenses
are no longer available.
Since 0.12 is targeted at 3/2/10, I think it's pretty reasonable to not
support XP in the default configuration especially considering the
advantage to every other guest in using e1000.

On 08/25/2009 07:39 PM, Anthony Liguori wrote:
> Lennart Sorensen wrote:>> On Tue, Aug 25, 2009 at 06:58:56PM +0300, Avi Kivity wrote:>>> Ok. IMO it's important for networking to work out of the box, so >>> we should avoid e1000 as default.>>>> Certainly for anything newer than XP it seems e1000 just works (or at>> least could be fixed so it works) and is very efficient. For XP though,>> Mainstream support eol for xp is scheduled for 4/14/10. New licenses > are no longer available.>> Since 0.12 is targeted at 3/2/10, I think it's pretty reasonable to > not support XP in the default configuration especially considering the > advantage to every other guest in using e1000.
Our users will hate us if we do this. We should look at XP's actual
market share, not formal statements from Microsoft. If market share
starts dropping, we can scale back support in qemu.
Providing less than optimal performance is a lot better than starting up
with no networking. In any case optimal performance requires a
non-default selection (virtio).

On Tue, Aug 25, 2009 at 07:56:50PM +0300, Avi Kivity wrote:
> Our users will hate us if we do this. We should look at XP's actual > market share, not formal statements from Microsoft. If market share > starts dropping, we can scale back support in qemu.>> Providing less than optimal performance is a lot better than starting up > with no networking. In any case optimal performance requires a > non-default selection (virtio).
Well if e1000 gives 95% of the virtio performance, and 8139 gives 50%,
then I know which I will be using. Personally I don't care which one
is default, since I will use e1000 with bridging anyhow.

On 08/25/2009 08:11 PM, Lennart Sorensen wrote:
> On Tue, Aug 25, 2009 at 07:56:50PM +0300, Avi Kivity wrote:> >> Our users will hate us if we do this. We should look at XP's actual>> market share, not formal statements from Microsoft. If market share>> starts dropping, we can scale back support in qemu.>>>> Providing less than optimal performance is a lot better than starting up>> with no networking. In any case optimal performance requires a>> non-default selection (virtio).>> > Well if e1000 gives 95% of the virtio performance, and 8139 gives 50%,> then I know which I will be using. Personally I don't care which one> is default, since I will use e1000 with bridging anyhow.>
if (0) is usually optimized away by the compiler.
The default only matters to unmanaged systems. I think we should aim
first for working, and later for performance.

On Tue, Aug 25, 2009 at 01:11:07PM -0400, Lennart Sorensen wrote:
> On Tue, Aug 25, 2009 at 07:56:50PM +0300, Avi Kivity wrote:> > Our users will hate us if we do this. We should look at XP's actual > > market share, not formal statements from Microsoft. If market share > > starts dropping, we can scale back support in qemu.> >> > Providing less than optimal performance is a lot better than starting up > > with no networking. In any case optimal performance requires a > > non-default selection (virtio).> > Well if e1000 gives 95% of the virtio performance, and 8139 gives 50%,> then I know which I will be using. Personally I don't care which one> is default, since I will use e1000 with bridging anyhow.
Well, since I need it only for internet and that connection is only 90
kB/s I'd use whichever "just works" as long as it gets more than... I
guess 1% of virtio performance...
Just saying, not everyone actually needs much performance (particularly
for the network adapters), and I suspect many that do will have to do
quite a bit of configuration/customization anyway.
Though from my tests with rtl8139 (not working usably at all with
MacOSX, though it seems to have worked unreliably for others) it is
possible that the bad performance is actually due to some bug that
makes it unreliable, in which case it might be a rather bad choice.
If there's someone to code it, there's also the choice of providing
"profiles" for specific OSs, so e.g. -profile WinXP would select the
"best" hardware for that and -profile "Win2008" something else and that
kind of selection might be something people have come to expect from
VM software (sudden hardware changes due to changed profiles after a
qemu update are an issue with that though)...

Avi Kivity wrote:
> if (0) is usually optimized away by the compiler.>> The default only matters to unmanaged systems. I think we should aim > first for working, and later for performance.
An "unmanaged system" includes a standard distribution where the user is
using virt-manager. That's what led me down this road in the first place.

Avi Kivity <avi@redhat.com> writes:
> On 08/25/2009 04:23 PM, Lennart Sorensen wrote:>>> I use e1000 with win xp, although win xp has no driver at all for the>> e1000 and requires you to download the intel driver and install that.>> The intel driver also made win 2003 work before even though the microsoft>> supplied driver did not work.>> Ok. IMO it's important for networking to work out of the box, so we> should avoid e1000 as default.
I don't think you can buy a new PC with a NIC supported out of the box
by Windows XP. That doesn't seem to bother the PC manufacturers...
The e1000 works very well in Windows XP, given that you install the
driver from Intel. And e1000 is certainly more common and better
supported than ne2k in more *modern* OSes.
I fully agree with Anthony:
"the average user is better served with an e1000 vs ne2k."
But this of course boils down to a discussion about who the average user
is. Anyone having any statistics on that?
Anyway, most people will know that they may need driver disks when
installing ancient OSes on modern computers. With QEMU they even have
the option to change the hardware with a flip of a command line.
The ne2k default is misleading. A common assumption is that developers
know best, and that you need a good reason to change their defaults.
This may trick people into thinking that the ne2k is the best NIC choice
for QEMU. And I think everyone here agrees that it is not anymore.
Bjørn

On (Tue) Aug 25 2009 [11:39:17], Anthony Liguori wrote:
> Lennart Sorensen wrote:>> On Tue, Aug 25, 2009 at 06:58:56PM +0300, Avi Kivity wrote:>> >>> Ok. IMO it's important for networking to work out of the box, so we >>> should avoid e1000 as default.>>> >>>> Certainly for anything newer than XP it seems e1000 just works (or at>> least could be fixed so it works) and is very efficient. For XP though,>> >> Mainstream support eol for xp is scheduled for 4/14/10. New licenses > are no longer available.>> Since 0.12 is targeted at 3/2/10, I think it's pretty reasonable to not > support XP in the default configuration especially considering the > advantage to every other guest in using e1000.
One point of VMs is running older software on newer hardware.
Amit

On 08/25/2009 09:19 PM, Anthony Liguori wrote:
> Avi Kivity wrote:>> if (0) is usually optimized away by the compiler.>>>> The default only matters to unmanaged systems. I think we should aim >> first for working, and later for performance.>> An "unmanaged system" includes a standard distribution where the user > is using virt-manager.
From the name, I would have thought that virt-manager is a managed system.
> That's what led me down this road in the first place.>
I don't follow the logic at all. If qemu is started with model= (which
I'd guess a managed system will do), it doesn't matter what the default
is. If qemu is not started with model= (which I'd expect from command
line), then we should make every effort to bring up a working guest.
Have we run out of unintended regressions that we've started to add
intended ones?

On 08/25/2009 11:20 PM, Bjørn Mork wrote:
> Avi Kivity<avi@redhat.com> writes:> >> On 08/25/2009 04:23 PM, Lennart Sorensen wrote:>>>> >>> I use e1000 with win xp, although win xp has no driver at all for the>>> e1000 and requires you to download the intel driver and install that.>>> The intel driver also made win 2003 work before even though the microsoft>>> supplied driver did not work.>>> >> Ok. IMO it's important for networking to work out of the box, so we>> should avoid e1000 as default.>> > I don't think you can buy a new PC with a NIC supported out of the box> by Windows XP.
rtl8139 works out of the box.
> That doesn't seem to bother the PC manufacturers...>
I'm sure it bothers users.
> The e1000 works very well in Windows XP, given that you install the> driver from Intel. And e1000 is certainly more common and better> supported than ne2k in more *modern* OSes.>> I fully agree with Anthony:> "the average user is better served with an e1000 vs ne2k.">> But this of course boils down to a discussion about who the average user> is. Anyone having any statistics on that?>> Anyway, most people will know that they may need driver disks when> installing ancient OSes on modern computers. With QEMU they even have> the option to change the hardware with a flip of a command line.>> The ne2k default is misleading. A common assumption is that developers> know best, and that you need a good reason to change their defaults.> This may trick people into thinking that the ne2k is the best NIC choice> for QEMU. And I think everyone here agrees that it is not anymore.>
The best choice for Windows XP is virtio, but we sure won't be making
that the default. Given that e1000 gives 0 Mb/sec out of the box, I
think it's clear that rtl8139 is better. If people are interested in
performance, they can change the default and download a driver (e1000 or
virtio).