[illumos-Discuss] recent sunos kernels has big problem with qemu's e1000 driver

Milan Jurik milan.jurik at xylab.cz
Thu Sep 16 05:56:45 PDT 2010


Daniel,

V Thu, 16 Sep 2010 14:30:43 +0200
dpecka <dpecka at techniservit.cz> napsáno:

> On Thu, 2010-09-16 at 14:09 +0200, Milan Jurik wrote:
> > Hi,
> > 
> > V Thu, 16 Sep 2010 13:42:14 +0200
> > dpecka <dpecka at techniservit.cz> napsáno:
> > 
> > > On Wed, 2010-09-15 at 08:31 -0700, Garrett D'Amore wrote:
> > > > Actually, usually the emulation doesn't emulate the full
> > > > hardware, just enough to make the typical OS drivers work with
> > > > it.  In some cases, the behaviors are very fragile, depending
> > > > on specific initialization sequences, such that when the driver
> > > > does them differently (perhaps on a different OS), the
> > > > emulation fails to work.
> > > > 
> > > > 	-- Garrett
> > > 
> > > well, in short (i discussed this with qemu/kvm guys):
> > > 
> > > 1) sunos guys say that problem is in driver emulation .. ok, right
> > > 2) qemu guys say **YOU FIX (cuz you have strange implementation)
> > > 
> > 
> > Do they say what Solaris e1000g driver is doing wrong? To be fair,
> > it works on real HW (and e.g. in VMware and VirtualBox) and they are
> > emulation of HW.... Yes, it can be bug in Solaris driver, of course.
> > But if I am doing emulation of some HW, I am trying to emulate it
> > accurately.
> 
> my bad, i badly described it. they just say, that we're those who have
> to provide info (find out what went wrong) and of course possibly
> fix .. which sounds reasonable
> 

OK, that looks more clear now.

> > 
> > > there is no way out from this .. so i'd like to fix .. it has
> > > only one problem .. i am unable to dig out from mdb or whatever i
> > > should use what's happening bad in sunos kernel with loaded e1000
> > > driver ..
> > > 
> > > logs don't contain any clue, everything seems just fine ..
> > > 
> > > i'll very appreciate any hint or link to docs which would tell me,
> > > what to be looking for in there ..
> > > 
> > 
> > You will need to look at Solaris e1000g driver source code and
> > trying to catch if some receiving function fails. For "how it
> > works" look at "Writing device drivers" docu.
> > 
> 
> i've rather meant, that i'm still unable to dig out from mdb what
> wrong in there. but ok, i'll spend some time with it, just to be
> honest i worked on this only hour or two already.
> 

Use dtrace and look what is e1000g driver doing when it should receive
packet. Is there some activity from some e1000g functions? mdb is heavy
weight here so early.

Best regards,

Milan



More information about the Discuss mailing list