* e1000: backport ich9 support from 7.5.5 ?
@ 2007-06-29 17:29 Mark McLoughlin
2007-06-29 17:50 ` Jason Lunz
0 siblings, 1 reply; 67+ messages in thread
From: Mark McLoughlin @ 2007-06-29 17:29 UTC (permalink / raw)
To: Auke Kok; +Cc: e1000-devel, netdev
[-- Attachment #1: Type: text/plain, Size: 504 bytes --]
Hi Auke,
I understand there is some delay in getting e1000-7.5.5 into the
upstream kernel given the major re-working of the chipset specific
parts.
I wonder would it be feasible in the meantime to backport the ich9
support and push it upstream?
A first-cut at the backport is attached. Note, this patch applies
against latest netdev-2.6-git, but I haven't actually tested this
version of the patch beyond compiling. A similar patch against 2.6.18
worked fine with some light testing.
Thanks,
Mark.
[-- Attachment #2: Type: text/plain, Size: 286 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
[-- Attachment #3: Type: text/plain, Size: 164 bytes --]
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 17:29 e1000: backport ich9 support from 7.5.5 ? Mark McLoughlin
@ 2007-06-29 17:50 ` Jason Lunz
2007-06-29 19:51 ` Kok, Auke
` (2 more replies)
0 siblings, 3 replies; 67+ messages in thread
From: Jason Lunz @ 2007-06-29 17:50 UTC (permalink / raw)
To: Mark McLoughlin; +Cc: Auke Kok, e1000-devel, netdev, Jeff Garzik
On Fri, Jun 29, 2007 at 06:29:18PM +0100, Mark McLoughlin wrote:
> I understand there is some delay in getting e1000-7.5.5 into the
> upstream kernel given the major re-working of the chipset specific
> parts.
>
> I wonder would it be feasible in the meantime to backport the ich9
> support and push it upstream?
seconded - this driver reorg has been holding back support for the
newest e1000 hardware since at least 2.6.20, and I haven't seen any
indication that the 7.5.5 e1000 driver will even be added to 2.6.23.
What's the prognosis for the 7.5.5-series e1000 reorg going into
netdev-2.6?
Jason
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 17:50 ` Jason Lunz
@ 2007-06-29 19:51 ` Kok, Auke
2007-06-29 20:22 ` Jason Lunz
` (2 more replies)
2007-06-29 20:55 ` Jeff Garzik
2007-06-29 21:39 ` Andy Gospodarek
2 siblings, 3 replies; 67+ messages in thread
From: Kok, Auke @ 2007-06-29 19:51 UTC (permalink / raw)
To: Jason Lunz; +Cc: Mark McLoughlin, e1000-devel, netdev, Jeff Garzik
Jason Lunz wrote:
> On Fri, Jun 29, 2007 at 06:29:18PM +0100, Mark McLoughlin wrote:
>> I understand there is some delay in getting e1000-7.5.5 into the
>> upstream kernel given the major re-working of the chipset specific
>> parts.
>>
>> I wonder would it be feasible in the meantime to backport the ich9
>> support and push it upstream?
>
> seconded - this driver reorg has been holding back support for the
> newest e1000 hardware since at least 2.6.20, and I haven't seen any
> indication that the 7.5.5 e1000 driver will even be added to 2.6.23.
I disagree, we should not break the current e1000 driver in the kernel while
there is a new driver coming up that introduces ich9 support without breaking
(the old e1000) support for all other devices. This is why we want to drop a new
version of the e1000 driver upstream instead, and put all newer devices in that
driver.
For distro's not following kernel.org releases we have the perfect solution: A
fully tested 7.5.5 driver on sourceforge that was extensively tested against
RHEL5 for instance, but also a lot of other older kernels.
> What's the prognosis for the 7.5.5-series e1000 reorg going into
> netdev-2.6?
I sure hope to get it out before 2.6.23 merge window close... But anything can
unfortunately happen.
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 19:51 ` Kok, Auke
@ 2007-06-29 20:22 ` Jason Lunz
2007-06-29 20:59 ` Jeff Garzik
2007-06-30 21:24 ` Mark McLoughlin
2 siblings, 0 replies; 67+ messages in thread
From: Jason Lunz @ 2007-06-29 20:22 UTC (permalink / raw)
To: Kok, Auke; +Cc: Mark McLoughlin, e1000-devel, netdev, Jeff Garzik
On Fri, Jun 29, 2007 at 12:51:02PM -0700, Kok, Auke wrote:
> For distro's not following kernel.org releases we have the perfect
> solution: A fully tested 7.5.5 driver on sourceforge that was extensively
> tested against RHEL5 for instance, but also a lot of other older kernels.
I'm sure you and your team have tested the driver thoroughly, but you
cannot hope to match the amount of testing the driver is subjected to by
going into -mm and -rc kernels.
There have been several instances over the years in the e1000 driver
where new releases caused regressions on old or esoteric hardware, and
these were only later discovered by the community. This is why I prefer
kernel.org versions of the e1000 driver, even if they're a little older.
Ordinarily this is a pretty good strategy, because the mainline driver
hasn't usually lagged too far behind new hardware becoming available.
That's no longer true of the newer pcie e1000 parts and the 7.5.5.1
driver.
Is there any specific objection remaining to the merge of e1000 7.5.5.1
into 2.6.23? Is there anything I can do to expedite the process other
than cheer from the sidelines?
Jason
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 17:50 ` Jason Lunz
2007-06-29 19:51 ` Kok, Auke
@ 2007-06-29 20:55 ` Jeff Garzik
2007-06-29 21:39 ` Kok, Auke
2007-06-29 21:39 ` Andy Gospodarek
2 siblings, 1 reply; 67+ messages in thread
From: Jeff Garzik @ 2007-06-29 20:55 UTC (permalink / raw)
To: Jason Lunz; +Cc: Mark McLoughlin, Auke Kok, e1000-devel, netdev, Andrew Morton
Jason Lunz wrote:
> What's the prognosis for the 7.5.5-series e1000 reorg going into
> netdev-2.6?
As I have posted previously, I am not keen on merging basically an e1000
rewrite. That basically throws away all Internet-wide testing so far.
The rewrite was not done according to Linux kernel standards (read:
progression of changes), so any problems will bisect into The Big
Commit(tm) and go no further. A rewrite also means the complete driver
has to be reviewed from scratch, since such a large patch is basically
impossible to review. Finally, the rewrite doesn't do much to clean up
the e1000 driver.
I warned Intel for months not to do things this way, but I guess my
opinion counts for little :)
Jeff
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 19:51 ` Kok, Auke
2007-06-29 20:22 ` Jason Lunz
@ 2007-06-29 20:59 ` Jeff Garzik
2007-06-30 21:24 ` Mark McLoughlin
2 siblings, 0 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-06-29 20:59 UTC (permalink / raw)
To: Kok, Auke; +Cc: e1000-devel, Mark McLoughlin, Jason Lunz, netdev
Kok, Auke wrote:
> I disagree, we should not break the current e1000 driver in the kernel
> while there is a new driver coming up that introduces ich9 support
> without breaking (the old e1000) support for all other devices. This is
> why we want to drop a new version of the e1000 driver upstream instead,
> and put all newer devices in that driver.
If it's clean -and- new hardware is quite different from older hardware,
a new driver makes sense, and causes far less disruption to both new and
old hardware.
> For distro's not following kernel.org releases we have the perfect
> solution: A fully tested 7.5.5 driver on sourceforge that was
> extensively tested against RHEL5 for instance, but also a lot of other
> older kernels.
I respectfully object to the advertising, here.
Based on past history, "posted on sf.net and tested by Intel" does not
equate to "extensively tested." Field experience proves time and again
that PickYourVendor test labs always miss the raft of problems that show
up once code is upstream and in production use. If the code has never
seen Internet-wide testing in an upstream kernel, it's -not- widely nor
extensively tested.
Jeff
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 20:55 ` Jeff Garzik
@ 2007-06-29 21:39 ` Kok, Auke
2007-06-29 22:03 ` Andrew Morton
2007-06-29 22:07 ` Jeff Garzik
0 siblings, 2 replies; 67+ messages in thread
From: Kok, Auke @ 2007-06-29 21:39 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mark McLoughlin, Auke Kok, e1000-devel, netdev, Andrew Morton,
Jason Lunz
Jeff Garzik wrote:
> Jason Lunz wrote:
>> What's the prognosis for the 7.5.5-series e1000 reorg going into
>> netdev-2.6?
>
> As I have posted previously, I am not keen on merging basically an e1000
> rewrite. That basically throws away all Internet-wide testing so far.
> The rewrite was not done according to Linux kernel standards (read:
> progression of changes), so any problems will bisect into The Big
> Commit(tm) and go no further. A rewrite also means the complete driver
> has to be reviewed from scratch, since such a large patch is basically
> impossible to review. Finally, the rewrite doesn't do much to clean up
> the e1000 driver.
>
> I warned Intel for months not to do things this way, but I guess my
> opinion counts for little :)
no, they do
However, I am stuck with a half rewritten e1000 codebase (the 7.4.x code base)
and on top of that all the changes that you requested from us. This effort has
taken me about two months of time.
Taking apart that work change for every change seems very wasteful to me: it
mucks up the current e1000 driver potentially, might break it and that is
exactly what we want to prevent.
That's why we want to introduce a second e1000 driver (named differently, pick
any name) that contains the new code base, side-by-side into the kernel with the
current e1000.
This would allow everyone to fallback and compare the new and old code
instantly, for several kernel releases at least. After that period, we can
retire the old codebase.
Given the size of the changes and the fact that this is an interal API change
that gigantically changes how e1000 internally works, there is *no* way that we
can introduce this change in any other way in my opinion.
Looking at that, I think that bringing a second and new e1000 driver into the
kernel is the best thing to do, and that is what I have been working towards.
This new e1000 codebase goes miles and miles beyond what I posted in april/march
and what is in -mm. For instance: the new codebase no longer has mac_type checks
in *any* part of e1000_main.c.
I will try to post it as soon as I can. Please bear with me until I get that out
to everyone.
Auke
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 17:50 ` Jason Lunz
2007-06-29 19:51 ` Kok, Auke
2007-06-29 20:55 ` Jeff Garzik
@ 2007-06-29 21:39 ` Andy Gospodarek
2 siblings, 0 replies; 67+ messages in thread
From: Andy Gospodarek @ 2007-06-29 21:39 UTC (permalink / raw)
To: Jason Lunz; +Cc: e1000-devel, Mark McLoughlin, Auke Kok, Jeff Garzik, netdev
On Fri, Jun 29, 2007 at 10:50:07AM -0700, Jason Lunz wrote:
> On Fri, Jun 29, 2007 at 06:29:18PM +0100, Mark McLoughlin wrote:
> > I understand there is some delay in getting e1000-7.5.5 into the
> > upstream kernel given the major re-working of the chipset specific
> > parts.
> >
> > I wonder would it be feasible in the meantime to backport the ich9
> > support and push it upstream?
>
> seconded - this driver reorg has been holding back support for the
> newest e1000 hardware since at least 2.6.20, and I haven't seen any
> indication that the 7.5.5 e1000 driver will even be added to 2.6.23.
>
I'll ACK this as well. I'd like to see ich9 support upstream as soon as
possible and I'd rather see it with the old driver than not at all.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 21:39 ` Kok, Auke
@ 2007-06-29 22:03 ` Andrew Morton
2007-06-29 22:11 ` Jeff Garzik
2007-06-29 22:16 ` Kok, Auke
2007-06-29 22:07 ` Jeff Garzik
1 sibling, 2 replies; 67+ messages in thread
From: Andrew Morton @ 2007-06-29 22:03 UTC (permalink / raw)
To: Kok, Auke; +Cc: e1000-devel, Mark McLoughlin, Jason Lunz, Jeff Garzik, netdev
On Fri, 29 Jun 2007 14:39:20 -0700
"Kok, Auke" <auke-jan.h.kok@intel.com> wrote:
>
> That's why we want to introduce a second e1000 driver (named differently, pick
> any name) that contains the new code base, side-by-side into the kernel with the
> current e1000.
Sounds like a reasonable approach to me (it has plenty of precedent). But
I forget what all the other issues were, so ignore me.
> This new e1000 codebase goes miles and miles beyond what I posted in april/march
> and what is in -mm.
There are no e1000 changes in -mm (from you), I don't believe. git-e1000
has been in permadrop mode since 2.6.22-rc1-mm1 due to a huge number of git
rejects/conflicts.
Is git://lost.foo-projects.org/~ahkok/git/netdev-2.6#mm the correct URL?
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 21:39 ` Kok, Auke
2007-06-29 22:03 ` Andrew Morton
@ 2007-06-29 22:07 ` Jeff Garzik
1 sibling, 0 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-06-29 22:07 UTC (permalink / raw)
To: Kok, Auke
Cc: Jason Lunz, Mark McLoughlin, e1000-devel, netdev, Andrew Morton,
David Miller
Kok, Auke wrote:
> That's why we want to introduce a second e1000 driver (named
> differently, pick any name) that contains the new code base,
> side-by-side into the kernel with the current e1000.
We do not want to introduce duplicate drivers for the same hardware. We
spend -years- before the old driver gets removed. There are installer
headaches with distros, with duplicate drivers. User confusion.
Problems abound, as past history shows.
I meant a new driver for ICH9 and later hardware, or whatever hardware
boundary between new-driver and old-driver you wish to pick.
That way the new driver doesn't carry all the old baggage with it, and
can go quietly into old age.
> This would allow everyone to fallback and compare the new and old code
> instantly, for several kernel releases at least. After that period, we
> can retire the old codebase.
No it takes -years- to kill duplicate drivers, when you consider all the
transition effects. That is what history shows us time and again.
> Given the size of the changes and the fact that this is an interal API
> change that gigantically changes how e1000 internally works, there is
> *no* way that we can introduce this change in any other way in my opinion.
The standard way to introduce big changes is to (a) do them, and then
(b) plot the steps involved in the transition, and create those steps
that lead us to the goal.
Jeff
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 22:03 ` Andrew Morton
@ 2007-06-29 22:11 ` Jeff Garzik
2007-06-29 23:24 ` RFR: New e1000 driver (e1000new), was: " Kok, Auke
2007-06-29 23:57 ` Andrew Grover
2007-06-29 22:16 ` Kok, Auke
1 sibling, 2 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-06-29 22:11 UTC (permalink / raw)
To: Andrew Morton; +Cc: Kok, Auke, Jason Lunz, Mark McLoughlin, e1000-devel, netdev
Andrew Morton wrote:
> On Fri, 29 Jun 2007 14:39:20 -0700
> "Kok, Auke" <auke-jan.h.kok@intel.com> wrote:
>
>> That's why we want to introduce a second e1000 driver (named differently, pick
>> any name) that contains the new code base, side-by-side into the kernel with the
>> current e1000.
>
> Sounds like a reasonable approach to me (it has plenty of precedent). But
> I forget what all the other issues were, so ignore me.
Given past history with duplicate drivers and the problems that they
cause -- I know, I've caused some of those problems :( -- I strongly
recommend against when it can be avoided.
Leaving e1000 with current hardware, and a new e1001 for newer hardware
should be easier to manage for all involved, without the headaches that
duplicate drivers cause.
An "e1001" approach also means we have a much greater chance of
encouraging Intel down the path of clean driver-ness.
Jeff
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 22:03 ` Andrew Morton
2007-06-29 22:11 ` Jeff Garzik
@ 2007-06-29 22:16 ` Kok, Auke
1 sibling, 0 replies; 67+ messages in thread
From: Kok, Auke @ 2007-06-29 22:16 UTC (permalink / raw)
To: Andrew Morton
Cc: Kok, Auke, Jeff Garzik, Jason Lunz, Mark McLoughlin, e1000-devel,
netdev
Andrew Morton wrote:
> On Fri, 29 Jun 2007 14:39:20 -0700
> "Kok, Auke" <auke-jan.h.kok@intel.com> wrote:
>
>> That's why we want to introduce a second e1000 driver (named differently, pick
>> any name) that contains the new code base, side-by-side into the kernel with the
>> current e1000.
>
> Sounds like a reasonable approach to me (it has plenty of precedent). But
> I forget what all the other issues were, so ignore me.
>
>> This new e1000 codebase goes miles and miles beyond what I posted in april/march
>> and what is in -mm.
>
> There are no e1000 changes in -mm (from you), I don't believe. git-e1000
> has been in permadrop mode since 2.6.22-rc1-mm1 due to a huge number of git
> rejects/conflicts.
>
> Is git://lost.foo-projects.org/~ahkok/git/netdev-2.6#mm the correct URL?
no, not yet, please remove that tree. I'll post a new one when ready.
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 22:11 ` Jeff Garzik
@ 2007-06-29 23:24 ` Kok, Auke
2007-06-29 23:38 ` Arjan van de Ven
` (2 more replies)
2007-06-29 23:57 ` Andrew Grover
1 sibling, 3 replies; 67+ messages in thread
From: Kok, Auke @ 2007-06-29 23:24 UTC (permalink / raw)
To: netdev
Cc: Jeff Garzik, Andrew Morton, Jason Lunz, Mark McLoughlin,
e1000-devel, Arjan van de Ven, Ronciak, John
Jeff Garzik wrote:
> Andrew Morton wrote:
>> On Fri, 29 Jun 2007 14:39:20 -0700
>> "Kok, Auke" <auke-jan.h.kok@intel.com> wrote:
>>
>>> That's why we want to introduce a second e1000 driver (named differently, pick
>>> any name) that contains the new code base, side-by-side into the kernel with the
>>> current e1000.
>> Sounds like a reasonable approach to me (it has plenty of precedent). But
>> I forget what all the other issues were, so ignore me.
>
> Given past history with duplicate drivers and the problems that they
> cause -- I know, I've caused some of those problems :( -- I strongly
> recommend against when it can be avoided.
>
> Leaving e1000 with current hardware, and a new e1001 for newer hardware
> should be easier to manage for all involved, without the headaches that
> duplicate drivers cause.
>
> An "e1001" approach also means we have a much greater chance of
> encouraging Intel down the path of clean driver-ness.
ok, FWIW, here is this new driver:
I've posted this new driver (currently called "e1000new") on my git tree:
git-pull git://lost.foo-projects.org/~ahkok/git/netdev-2.6 e1000new
It contains a single git-commit with the following content (on top of current
master branch from Jeff's netdev tree):
---
commit d2ec375736ac23a3432534112e0f8fc172ee9db4
Author: Auke Kok <auke-jan.h.kok@intel.com>
Date: Fri Jun 29 15:48:04 2007 -0700
e1000new: new e1000 driver for current e1000 hardware
This driver is a cleaned up version of the current e1000 driver. It
introduces a fully rewritten abstraction between MAC, PHY, NVM
and other low-level hardware features such as manageability. Per-
hardware family specific code.
Mac type checks are almost completely eliminated and replaced with
hardware feature/issue or capability flags. This allows us much
easier going forward to add new hardware support or debug issues.
Finally, the driver structures were reorganized and restructured
to align better and remove holes. tx and rx structures are now
basically the same and simplify setup code etc.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
:100644 100644 7d57f4a... 0bad8f3... M drivers/net/Kconfig
:100644 100644 a77affa... 0b58e78... M drivers/net/Makefile
:000000 100644 0000000... 5bdf481... A drivers/net/e1000new/80003es2lan.c
:000000 100644 0000000... f139050... A drivers/net/e1000new/80003es2lan.h
:000000 100644 0000000... 1279521... A drivers/net/e1000new/82540.c
:000000 100644 0000000... dc20510... A drivers/net/e1000new/82541.c
:000000 100644 0000000... 5fab7ff... A drivers/net/e1000new/82541.h
:000000 100644 0000000... e18a1be... A drivers/net/e1000new/82542.c
:000000 100644 0000000... dad89ae... A drivers/net/e1000new/82543.c
:000000 100644 0000000... 6d14aba... A drivers/net/e1000new/82543.h
:000000 100644 0000000... 3283841... A drivers/net/e1000new/82571.c
:000000 100644 0000000... 5912f47... A drivers/net/e1000new/82571.h
:000000 100644 0000000... 703d938... A drivers/net/e1000new/Makefile
:000000 100644 0000000... 2de032e... A drivers/net/e1000new/api.c
:000000 100644 0000000... e429f8c... A drivers/net/e1000new/api.h
:000000 100644 0000000... 59f34db... A drivers/net/e1000new/defines.h
:000000 100644 0000000... 71b775d... A drivers/net/e1000new/e1000.h
:000000 100644 0000000... 803ed2c... A drivers/net/e1000new/ethtool.c
:000000 100644 0000000... 848debc... A drivers/net/e1000new/hw.h
:000000 100644 0000000... e5adbff... A drivers/net/e1000new/ich8lan.c
:000000 100644 0000000... 557858f... A drivers/net/e1000new/ich8lan.h
:000000 100644 0000000... 8f589a3... A drivers/net/e1000new/mac.c
:000000 100644 0000000... 075e326... A drivers/net/e1000new/mac.h
:000000 100644 0000000... 3b6f6bc... A drivers/net/e1000new/main.c
:000000 100644 0000000... e5fee2e... A drivers/net/e1000new/manage.c
:000000 100644 0000000... 27606ea... A drivers/net/e1000new/manage.h
:000000 100644 0000000... 2c9ccb4... A drivers/net/e1000new/nvm.c
:000000 100644 0000000... e59c8ad... A drivers/net/e1000new/nvm.h
:000000 100644 0000000... 3c943f1... A drivers/net/e1000new/param.c
:000000 100644 0000000... 45338ef... A drivers/net/e1000new/phy.c
:000000 100644 0000000... 957957d... A drivers/net/e1000new/phy.h
:000000 100644 0000000... 669ad03... A drivers/net/e1000new/regs.h
---
You can also get it through http:
http://foo-projects.org/~sofar/e1000new.patch [883KB]
http://foo-projects.org/~sofar/e1000new.patch.bz2 [121KB]
Unfortunately it's too big to send directly to the list.
While I understand everyone's reservation for going a certain course forward, I
would really appreciate it if people would review this driver and give it
attention. Any feedback is appreciated, and whatever course we might end up
going, can be used.
Thanks,
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 23:24 ` RFR: New e1000 driver (e1000new), was: " Kok, Auke
@ 2007-06-29 23:38 ` Arjan van de Ven
2007-07-08 18:20 ` Jeff Garzik
2007-06-30 3:32 ` Roland Dreier
2007-07-06 19:07 ` Jeff Garzik
2 siblings, 1 reply; 67+ messages in thread
From: Arjan van de Ven @ 2007-06-29 23:38 UTC (permalink / raw)
To: Kok, Auke
Cc: Mark McLoughlin, Jeff Garzik, e1000-devel, netdev, Ronciak, John,
Andrew Morton, Jason Lunz
Kok, Auke wrote:
> Jeff Garzik wrote:
>> Andrew Morton wrote:
>>> On Fri, 29 Jun 2007 14:39:20 -0700
>>> "Kok, Auke" <auke-jan.h.kok@intel.com> wrote:
>>>
>>>> That's why we want to introduce a second e1000 driver (named
>>>> differently, pick any name) that contains the new code base,
>>>> side-by-side into the kernel with the current e1000.
>>> Sounds like a reasonable approach to me (it has plenty of
>>> precedent). But
>>> I forget what all the other issues were, so ignore me.
>>
>> Given past history with duplicate drivers and the problems that they
>> cause -- I know, I've caused some of those problems :( -- I strongly
>> recommend against when it can be avoided.
>>
>> Leaving e1000 with current hardware, and a new e1001 for newer
>> hardware should be easier to manage for all involved, without the
>> headaches that duplicate drivers cause.
>>
Jeff,
ok first you hate the old e1000 and now you don't want to get rid of it ;)
I appreciate the pain a temporary dual driver situation gives; it
comes down to a few things that I can think of right now, if you see
more please add to the list.
1) users who find a bug in the new one silently use the old one rather
than reporting the bug; and only scream when the old one eventually
goes away (see ALSA/OSS duplication)
2) users who enable both in KConfig may get a "random" one
3) distros really prefer only 1 driver per PCI ID for their
infrastructure tools
4) there will be resistance against deleting the old one meaning it
might not happen
While the pain won't be zero, I know there are some simple things that
can be done to make it significantly less:
1) Make sure that the various feature-removal files and KConfig
clearly mark the old one as "going away" early on, make the old one
printk that it's the older driver and stick a hard date on it. This
should at least ease [1] and [4] above
2) After a minimal amount of shake-out time (say one kernel release),
make the old e1000 not export the PCI IDs in it's module, but make it
a manual modprobe. This means people can still use the old one, but
distro tools will pick the new one automatically
[and if there is any doubt about a specific PCI ID model temporarily,
that one can be done the other way around]
3) Have a config option which does what you say; allow both drivers to
be there but with non-overlapping PCI IDs; where exactly the new/old
split is is up for discussion, and it can even move over time
4) Work with the distro maintainers to default their development
snapshots as quickly as possible to the new driver so that it gets as
much testing as possible quickly; yet at the same time for their
security fixes and released updates they can use the 3) option
5) once there is some confidence in the new driver, put a patch into
-mm that makes the old driver really hard to select in KConfig; this
in preparation for removal later on (hey this worked for devfs ;)
6) put more or less a code freeze on the old driver; it should remain
compiling but it's ok to be bug-to-bug compatible with what is there
at the moment the new driver goes into the tree.
Personally I'm convinced this is a managable process with a reasonable
assurance that the old driver really can go away after 2 kernel
releases (as long as Auke and co are on top of bugreports about
regressions, I don't see why not). What is needed of course is some
level of strictness/determination to get rid of the old one after the
reasonable time period.
if you have other concerns about temporarily having two drivers that
are real showstoppers , please put them on the table; it might well be
possible to find a reasonable way to solve/mitigate them.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 22:11 ` Jeff Garzik
2007-06-29 23:24 ` RFR: New e1000 driver (e1000new), was: " Kok, Auke
@ 2007-06-29 23:57 ` Andrew Grover
2007-06-30 0:02 ` Andrew Grover
` (2 more replies)
1 sibling, 3 replies; 67+ messages in thread
From: Andrew Grover @ 2007-06-29 23:57 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mark McLoughlin, Kok, Auke, e1000-devel, netdev, Andrew Morton,
Jason Lunz
On 6/29/07, Jeff Garzik <jeff@garzik.org> wrote:
> Given past history with duplicate drivers and the problems that they
> cause -- I know, I've caused some of those problems :( -- I strongly
> recommend against when it can be avoided.
>
> Leaving e1000 with current hardware, and a new e1001 for newer hardware
> should be easier to manage for all involved, without the headaches that
> duplicate drivers cause.
>
> An "e1001" approach also means we have a much greater chance of
> encouraging Intel down the path of clean driver-ness.
When I was at Intel, I heard a lot of "the linux community won't let
us split the driver". "Oh well, guess we gotta keep lugging around all
the old crap." So it was a (perhaps misunderstood) desire to make you
guys happy that led to e1000 turning into a monster.
I think making e1000new ICH9-and-newer isn't really the best place to
split it. The Windows e1000 driver got split on the PCI->PCIe
transition, something that clearly delineated what nics one driver
supported, and the other. There's no real technical reason for
splitting now other than "this was when e1000old collapsed under its
own weight".
The PCIe adapters are also the first ones to support multiple queues
IIRC, maybe that would be an another actual technical reason to split
it there?
-- Andy
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 23:57 ` Andrew Grover
@ 2007-06-30 0:02 ` Andrew Grover
2007-06-30 0:09 ` Jeff Garzik
2007-06-30 8:26 ` Christoph Hellwig
2 siblings, 0 replies; 67+ messages in thread
From: Andrew Grover @ 2007-06-30 0:02 UTC (permalink / raw)
To: Jeff Garzik
Cc: Andrew Morton, Kok, Auke, Jason Lunz, Mark McLoughlin,
e1000-devel, netdev
On 6/29/07, Andrew Grover <andy.grover@gmail.com> wrote:
> I think making e1000new ICH9-and-newer isn't really the best place to
> split it. The Windows e1000 driver got split on the PCI->PCIe
> transition, something that clearly delineated what nics one driver
> supported, and the other. There's no real technical reason for
> splitting now other than "this was when e1000old collapsed under its
> own weight".
>
> The PCIe adapters are also the first ones to support multiple queues
> IIRC, maybe that would be an another actual technical reason to split
> it there?
I agree with Jeff BTW, the list of devices each one supports should
have zero overlap.
-- Andy
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 23:57 ` Andrew Grover
2007-06-30 0:02 ` Andrew Grover
@ 2007-06-30 0:09 ` Jeff Garzik
2007-06-30 1:29 ` Jim McCullough
2007-06-30 2:31 ` Kok, Auke
2007-06-30 8:26 ` Christoph Hellwig
2 siblings, 2 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-06-30 0:09 UTC (permalink / raw)
To: Andrew Grover
Cc: Mark McLoughlin, Kok, Auke, e1000-devel, netdev, Andrew Morton,
Jason Lunz
Andrew Grover wrote:
> I think making e1000new ICH9-and-newer isn't really the best place to
> split it. The Windows e1000 driver got split on the PCI->PCIe
> transition, something that clearly delineated what nics one driver
> supported, and the other. There's no real technical reason for
> splitting now other than "this was when e1000old collapsed under its
> own weight".
>
> The PCIe adapters are also the first ones to support multiple queues
> IIRC, maybe that would be an another actual technical reason to split
> it there?
Can knowledgeable people characterize the PCIe adapters somehow? Is
that "ICH8-era and later", or does it go back further than that?
Jeff
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-30 0:09 ` Jeff Garzik
@ 2007-06-30 1:29 ` Jim McCullough
2007-06-30 1:31 ` Jim McCullough
2007-06-30 2:34 ` [E1000-devel] " Kok, Auke
2007-06-30 2:31 ` Kok, Auke
1 sibling, 2 replies; 67+ messages in thread
From: Jim McCullough @ 2007-06-30 1:29 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mark McLoughlin, Kok, Auke, e1000-devel, netdev, Andrew Grover,
Andrew Morton, Jason Lunz
[-- Attachment #1.1: Type: text/plain, Size: 1583 bytes --]
It goes back to ICH7 for the PCIe support. That also includes models used
as plugin PCIe devices. I dont remember if ICH6 erra devices were PCI or
PCIe. I'll leave that part for Auke.
On 6/29/07, Jeff Garzik <jeff@garzik.org> wrote:
>
> Andrew Grover wrote:
> > I think making e1000new ICH9-and-newer isn't really the best place to
> > split it. The Windows e1000 driver got split on the PCI->PCIe
> > transition, something that clearly delineated what nics one driver
> > supported, and the other. There's no real technical reason for
> > splitting now other than "this was when e1000old collapsed under its
> > own weight".
> >
> > The PCIe adapters are also the first ones to support multiple queues
> > IIRC, maybe that would be an another actual technical reason to split
> > it there?
>
> Can knowledgeable people characterize the PCIe adapters somehow? Is
> that "ICH8-era and later", or does it go back further than that?
>
> Jeff
>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> E1000-devel mailing list
> E1000-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/e1000-devel
>
--
Jim McCullough
"Just because the standard provides a cliff in front of you, you are not
necessarily required to jump off it."
Norman Diamond
[-- Attachment #2: Type: text/plain, Size: 286 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
[-- Attachment #3: Type: text/plain, Size: 164 bytes --]
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-30 1:29 ` Jim McCullough
@ 2007-06-30 1:31 ` Jim McCullough
2007-06-30 2:34 ` [E1000-devel] " Kok, Auke
1 sibling, 0 replies; 67+ messages in thread
From: Jim McCullough @ 2007-06-30 1:31 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mark McLoughlin, Kok, Auke, e1000-devel, netdev, Andrew Grover,
Andrew Morton, Jason Lunz
Sorry if this is a duplication, I forgot to switch to plain text.
On 6/29/07, Jim McCullough <jim.mccullough@gmail.com> wrote:
> It goes back to ICH7 for the PCIe support. That also includes models used as plugin PCIe devices. I dont remember if ICH6 erra devices were PCI or PCIe. I'll leave that part for Auke.
>
>
> On 6/29/07, Jeff Garzik <jeff@garzik.org> wrote:
>
> > Andrew Grover wrote:
> > > I think making e1000new ICH9-and-newer isn't really the best place to
> > > split it. The Windows e1000 driver got split on the PCI->PCIe
> > > transition, something that clearly delineated what nics one driver
> > > supported, and the other. There's no real technical reason for
> > > splitting now other than "this was when e1000old collapsed under its
> > > own weight".
> > >
> > > The PCIe adapters are also the first ones to support multiple queues
> > > IIRC, maybe that would be an another actual technical reason to split
> > > it there?
> >
> > Can knowledgeable people characterize the PCIe adapters somehow? Is
> > that "ICH8-era and later", or does it go back further than that?
> >
> > Jeff
> >
> >
> >
> > -------------------------------------------------------------------------
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > E1000-devel mailing list
> > E1000-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/e1000-devel
> >
>
>
>
> --
> Jim McCullough
>
> "Just because the standard provides a cliff in front of you, you are not necessarily required to jump off it."
>
> Norman Diamond
--
Jim McCullough
"Just because the standard provides a cliff in front of you, you are
not necessarily required to jump off it."
Norman Diamond
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-30 0:09 ` Jeff Garzik
2007-06-30 1:29 ` Jim McCullough
@ 2007-06-30 2:31 ` Kok, Auke
2007-06-30 8:25 ` Christoph Hellwig
2007-06-30 14:31 ` e1000: backport ich9 support from 7.5.5 ? James Chapman
1 sibling, 2 replies; 67+ messages in thread
From: Kok, Auke @ 2007-06-30 2:31 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mark McLoughlin, e1000-devel, netdev, Andrew Grover,
Andrew Morton, Jason Lunz
Jeff Garzik wrote:
> Andrew Grover wrote:
>> I think making e1000new ICH9-and-newer isn't really the best place to
>> split it. The Windows e1000 driver got split on the PCI->PCIe
>> transition, something that clearly delineated what nics one driver
>> supported, and the other. There's no real technical reason for
>> splitting now other than "this was when e1000old collapsed under its
>> own weight".
>>
>> The PCIe adapters are also the first ones to support multiple queues
>> IIRC, maybe that would be an another actual technical reason to split
>> it there?
>
> Can knowledgeable people characterize the PCIe adapters somehow? Is
> that "ICH8-era and later", or does it go back further than that?
very brief outline:
all the pci-express adapters that are supported are extremely similar:
- they all support 2 queues
- the register sets are (almost entirely) identical
- there is minimal feature variance between 82571/2/3, esb2lan, ich8/9
The major differences between 82571/2/3, esb2lan and ich8/9 are PHY-based (4
different PHY's basically, one for 82571/2/3, one for esb2lan and 2 for ich8/9,
excluding fiber and serdes here) and NVM/EEPROM.
ich8 and 9 are consistent with 82571/2/3 - on-board nic's based on the 82571
design with different PHY's, and added features for the newer demands. A driver
split here would be possible but not justified IMHO.
this above discussion excludes the new server NIC hardware that we are about to
release (aka 82575), which will have it's own driver, since the register set and
descriptor types are completely different.
if you want a quick view of features by chipset type, open the patch and search
forward to /e1000_setup_flags/. The list below shows historically which features
were added from time to time. This one function that sets up all these features
is a quick reference that easily shows the distinction between pre-pcie and pcie
e1000 hardware.
Auke
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: [E1000-devel] e1000: backport ich9 support from 7.5.5 ?
2007-06-30 1:29 ` Jim McCullough
2007-06-30 1:31 ` Jim McCullough
@ 2007-06-30 2:34 ` Kok, Auke
1 sibling, 0 replies; 67+ messages in thread
From: Kok, Auke @ 2007-06-30 2:34 UTC (permalink / raw)
To: Jim McCullough
Cc: Jeff Garzik, Andrew Grover, Mark McLoughlin, e1000-devel, netdev,
Andrew Morton, Jason Lunz
Jim McCullough wrote:
> It goes back to ICH7 for the PCIe support. That also includes models used
> as plugin PCIe devices. I dont remember if ICH6 erra devices were PCI or
> PCIe. I'll leave that part for Auke.
>
> On 6/29/07, Jeff Garzik <jeff@garzik.org> wrote:
>> Andrew Grover wrote:
>>> I think making e1000new ICH9-and-newer isn't really the best place to
>>> split it. The Windows e1000 driver got split on the PCI->PCIe
>>> transition, something that clearly delineated what nics one driver
>>> supported, and the other. There's no real technical reason for
>>> splitting now other than "this was when e1000old collapsed under its
>>> own weight".
>>>
>>> The PCIe adapters are also the first ones to support multiple queues
>>> IIRC, maybe that would be an another actual technical reason to split
>>> it there?
>> Can knowledgeable people characterize the PCIe adapters somehow? Is
>> that "ICH8-era and later", or does it go back further than that?
ich7 and 6 are sold with various on-board NICs, often pre-pcie e1000 silicon
like 82547 and 82546. Some newer models (lenovo, toshiba) laptops pack 82573,
but basically ich chipsets before ich8 did not have an in-chipset MAC, so they
are irrelevant for this story.
only es2lan, ich8 and ich9 have true on-board MAC's.
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 23:24 ` RFR: New e1000 driver (e1000new), was: " Kok, Auke
2007-06-29 23:38 ` Arjan van de Ven
@ 2007-06-30 3:32 ` Roland Dreier
2007-07-08 18:20 ` Jeff Garzik
2007-07-06 19:07 ` Jeff Garzik
2 siblings, 1 reply; 67+ messages in thread
From: Roland Dreier @ 2007-06-30 3:32 UTC (permalink / raw)
To: Kok, Auke
Cc: Mark McLoughlin, Jeff Garzik, e1000-devel, netdev, Ronciak, John,
Andrew Morton, Arjan van de Ven, Jason Lunz
one possibility would be to merge e1000new with support only for chips
not supported by e1000, and semi-freeze e1000 (fixes only, new device
support goes into e1000new). Then if there are some devices that are
more naturally supported by e1000new, we could later on merge patches
to move support for those devices from e1000 to e1000new. Presumably
this would simplify e1000, since it would have to support a smaller
set of older devices. e1000new would stay relatively clean too since
it wouldn't have to handle anything too old.
And at every stage of the process, any given NIC would have only one
driver in the tree.
- R.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-30 2:31 ` Kok, Auke
@ 2007-06-30 8:25 ` Christoph Hellwig
2007-07-03 22:48 ` Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?) Kok, Auke
2007-06-30 14:31 ` e1000: backport ich9 support from 7.5.5 ? James Chapman
1 sibling, 1 reply; 67+ messages in thread
From: Christoph Hellwig @ 2007-06-30 8:25 UTC (permalink / raw)
To: Kok, Auke
Cc: Mark McLoughlin, Jeff Garzik, e1000-devel, netdev, Andrew Grover,
Andrew Morton, Jason Lunz
On Fri, Jun 29, 2007 at 07:31:55PM -0700, Kok, Auke wrote:
> all the pci-express adapters that are supported are extremely similar:
>
> - they all support 2 queues
> - the register sets are (almost entirely) identical
> - there is minimal feature variance between 82571/2/3, esb2lan, ich8/9
>
> The major differences between 82571/2/3, esb2lan and ich8/9 are PHY-based
> (4 different PHY's basically, one for 82571/2/3, one for esb2lan and 2 for
> ich8/9, excluding fiber and serdes here) and NVM/EEPROM.
>
>
> ich8 and 9 are consistent with 82571/2/3 - on-board nic's based on the
> 82571 design with different PHY's, and added features for the newer
> demands. A driver split here would be possible but not justified IMHO.
Sounds like the perfect split to me. I'd suggest you rip out support
for older hardware from your new driver and do the resulting simplification
and post a new e1000e driver for this hardware, removing existing support
from e1000 at the same time. Later you can do the feature flags and similar
improvements to the old driver driver in an incremental fashion without the
burden of having to keep up with new hardware.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 23:57 ` Andrew Grover
2007-06-30 0:02 ` Andrew Grover
2007-06-30 0:09 ` Jeff Garzik
@ 2007-06-30 8:26 ` Christoph Hellwig
2 siblings, 0 replies; 67+ messages in thread
From: Christoph Hellwig @ 2007-06-30 8:26 UTC (permalink / raw)
To: Andrew Grover
Cc: Jeff Garzik, Andrew Morton, Kok, Auke, Jason Lunz,
Mark McLoughlin, e1000-devel, netdev
On Fri, Jun 29, 2007 at 04:57:46PM -0700, Andrew Grover wrote:
> When I was at Intel, I heard a lot of "the linux community won't let
> us split the driver". "Oh well, guess we gotta keep lugging around all
> the old crap." So it was a (perhaps misunderstood) desire to make you
> guys happy that led to e1000 turning into a monster.
Where exactly is that crap coming from? We've always told people to
split drivers if things go to divergent and there's some interesting
examples where the vendors has a monster driver and mainline has two
nicely split ones (sk98lin vs skge and sky2 for example).
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-30 2:31 ` Kok, Auke
2007-06-30 8:25 ` Christoph Hellwig
@ 2007-06-30 14:31 ` James Chapman
2007-06-30 16:29 ` Kok, Auke
1 sibling, 1 reply; 67+ messages in thread
From: James Chapman @ 2007-06-30 14:31 UTC (permalink / raw)
To: Kok, Auke
Cc: Jeff Garzik, Andrew Grover, Andrew Morton, Jason Lunz,
Mark McLoughlin, e1000-devel, netdev
Kok, Auke wrote:
> Jeff Garzik wrote:
>> Can knowledgeable people characterize the PCIe adapters somehow? Is
>> that "ICH8-era and later", or does it go back further than that?
>
> ich8 and 9 are consistent with 82571/2/3 - on-board nic's based on the
> 82571 design with different PHY's, and added features for the newer
> demands. A driver split here would be possible but not justified IMHO.
>
> if you want a quick view of features by chipset type, open the patch
> and search forward to /e1000_setup_flags/.
I briefly looked over your new driver. I think it might benefit by
moving common parts into one or more libraries (or modules) and have
separate chip-specific drivers for 82540, 82541, 82542, 82543, 82571
etc. Put all the chip-specific bits in a chip-specific driver and have
each driver call into the common (shared) code. The device
probe/init/remove would be done by the chip-specific code, not the
common code like it is now. When built as a module, the chip-specific
parts and the common parts could be built as separate modules; modprobe
would load the common parts automatically. Most of the code would be in
the common part since these chips are very similar.
Doing the above would lead naturally to a series of patches which will
make it easier to review. When Intel release a new device variant in the
future, it might be supported by a new, small driver rather than needing
modifications to one big monolith. Also, the kernel would be loaded with
only the code it needed to support the specific device(s) present.
BTW, since you're doing a major update, would it be a good time to
switch to phylib to manage your PHYs?
--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-30 14:31 ` e1000: backport ich9 support from 7.5.5 ? James Chapman
@ 2007-06-30 16:29 ` Kok, Auke
2007-07-01 10:45 ` James Chapman
0 siblings, 1 reply; 67+ messages in thread
From: Kok, Auke @ 2007-06-30 16:29 UTC (permalink / raw)
To: James Chapman
Cc: Kok, Auke, Jeff Garzik, Andrew Grover, Andrew Morton, Jason Lunz,
Mark McLoughlin, e1000-devel, netdev
James Chapman wrote:
> Kok, Auke wrote:
>> Jeff Garzik wrote:
>>> Can knowledgeable people characterize the PCIe adapters somehow? Is
>>> that "ICH8-era and later", or does it go back further than that?
>> ich8 and 9 are consistent with 82571/2/3 - on-board nic's based on the
>> 82571 design with different PHY's, and added features for the newer
>> demands. A driver split here would be possible but not justified IMHO.
>>
> > if you want a quick view of features by chipset type, open the patch
> > and search forward to /e1000_setup_flags/.
>
> I briefly looked over your new driver. I think it might benefit by
> moving common parts into one or more libraries (or modules) and have
> separate chip-specific drivers for 82540, 82541, 82542, 82543, 82571
> etc. Put all the chip-specific bits in a chip-specific driver and have
> each driver call into the common (shared) code. The device
> probe/init/remove would be done by the chip-specific code, not the
> common code like it is now. When built as a module, the chip-specific
> parts and the common parts could be built as separate modules; modprobe
> would load the common parts automatically. Most of the code would be in
> the common part since these chips are very similar.
splitting beyond the obvious does not make any sense and will just add
confusion. I'm not against a pcie/pre-pcie split or even going a step further
and looking into using PHYlib as you suggest below, but we should really avoid
trying to create an unmaintainable mess where we have to patch 7 drivers for
each generic issue we find.
> Doing the above would lead naturally to a series of patches which will
> make it easier to review. When Intel release a new device variant in the
> future, it might be supported by a new, small driver rather than needing
> modifications to one big monolith. Also, the kernel would be loaded with
> only the code it needed to support the specific device(s) present.
>
> BTW, since you're doing a major update, would it be a good time to
> switch to phylib to manage your PHYs?
well, PHYlib might help, so I'm not negative against doing that right now. It
will be quite some work.
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 19:51 ` Kok, Auke
2007-06-29 20:22 ` Jason Lunz
2007-06-29 20:59 ` Jeff Garzik
@ 2007-06-30 21:24 ` Mark McLoughlin
2007-07-02 23:52 ` Williams, Mitch A
2 siblings, 1 reply; 67+ messages in thread
From: Mark McLoughlin @ 2007-06-30 21:24 UTC (permalink / raw)
To: Kok, Auke; +Cc: e1000-devel, netdev, Jason Lunz, Jeff Garzik
Hi Auke,
On Fri, 2007-06-29 at 12:51 -0700, Kok, Auke wrote:
> Jason Lunz wrote:
> > On Fri, Jun 29, 2007 at 06:29:18PM +0100, Mark McLoughlin wrote:
> >> I understand there is some delay in getting e1000-7.5.5 into the
> >> upstream kernel given the major re-working of the chipset specific
> >> parts.
> >>
> >> I wonder would it be feasible in the meantime to backport the ich9
> >> support and push it upstream?
> >
> > seconded - this driver reorg has been holding back support for the
> > newest e1000 hardware since at least 2.6.20, and I haven't seen any
> > indication that the 7.5.5 e1000 driver will even be added to 2.6.23.
>
> I disagree, we should not break the current e1000 driver in the kernel while
> there is a new driver coming up that introduces ich9 support without breaking
> (the old e1000) support for all other devices. This is why we want to drop a new
> version of the e1000 driver upstream instead, and put all newer devices in that
> driver.
Clearly some major changes are happening around e1000, but the point
I'm making is that ich9 support, in particular, doesn't need to be held
hostage to these longer term changes. I think the backport shows that:
- ich9 differs only very slightly from ich8, which is already
supported upstream. The patch largely consists of:
- if (hw->mac_type == e1000_ich8lan)
+ if (hw->mac_type == e1000_ich8lan || hw->mac_type == e1000_ich9lan)
- adding ich9 support is very unlikely to affect support for any
other chipsets
Thanks,
Mark.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-30 16:29 ` Kok, Auke
@ 2007-07-01 10:45 ` James Chapman
0 siblings, 0 replies; 67+ messages in thread
From: James Chapman @ 2007-07-01 10:45 UTC (permalink / raw)
To: Kok, Auke
Cc: Mark McLoughlin, Jeff Garzik, e1000-devel, netdev, Andrew Grover,
Andrew Morton, Jason Lunz
Kok, Auke wrote:
> James Chapman wrote:
>> I briefly looked over your new driver. I think it might benefit by
>> moving common parts into one or more libraries (or modules) and have
>> separate chip-specific drivers for 82540, 82541, 82542, 82543, 82571
>> etc. Put all the chip-specific bits in a chip-specific driver and have
>> each driver call into the common (shared) code. The device
>> probe/init/remove would be done by the chip-specific code, not the
>> common code like it is now. When built as a module, the chip-specific
>> parts and the common parts could be built as separate modules;
>> modprobe would load the common parts automatically. Most of the code
>> would be in the common part since these chips are very similar.
>
> splitting beyond the obvious does not make any sense and will just add
> confusion.
Users wouldn't need to know which driver to load - the right driver
would be loaded automatically. Distros would ship all of them (and the
common bits). The few users who know which device(s) they have could
build only the required drivers if they wanted to do so.
> I'm not against a pcie/pre-pcie split or even going a step
> further and looking into using PHYlib as you suggest below, but we
> should really avoid trying to create an unmaintainable mess where we
> have to patch 7 drivers for each generic issue we find.
The generic issues would be in the common part so would be patched once.
Looking at your new driver code, there are separate source files for the
5 chips I mention, hence my leaning towards a driver per device. I
counted 24 funcptrs that are set up in order for the common code to call
out to driver-private chip specific functions. Wouldn't most of these go
away if the chip-specific code called common code, not the other way round?
Let me use an example to illustrate what I mean. e1000_setup_link() is
common code. It simply calls a function pointed to by func.setup_link,
which was initialized to a chip-specific function, e.g.
e1000_setup_link_82543() in e1000_init_mac_params_82543(). It turns out
that e1000_setup_link() is called by chip-specific code from
e1000_init_hw_82543() so the abstraction through e1000_setup_link()
wouldn't be needed for init. However, e1000_setup_link() is also called
from the common driver/ethtool entry points e1000_open() and
e1000_set_pause_params(). These entry points could be moved in to the
chip specific code, calling out to common code when necessary: the
funcptrs/abstractions wouldn't then be needed. This would obviously lead
to some common boilerplate code in each chip specific driver for the
driver entry points open/close etc and occasionally some common changes
might be needed in that code. However, I'm sure most bugs will be in the
guts of the driver, not the boilerplate code so the duplication of the
driver boilerplate code wouldn't matter so much. I think maintenance
effort would actually reduce with this kind of structure.
I don't want to sound negative though; it's great that you and Intel are
putting a lot of work into this driver. You know much more about the
actual chip feature differences/workarounds than I do so if you don't
think the approach I suggest will work, I'm happy to just drop this thread.
--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-30 21:24 ` Mark McLoughlin
@ 2007-07-02 23:52 ` Williams, Mitch A
2007-07-03 0:10 ` Rick Jones
2007-07-03 7:15 ` Christoph Hellwig
0 siblings, 2 replies; 67+ messages in thread
From: Williams, Mitch A @ 2007-07-02 23:52 UTC (permalink / raw)
To: Mark McLoughlin, Kok, Auke-jan H
Cc: e1000-devel, netdev, Jason Lunz, Jeff Garzik
Mark McLoughlin wrote:
>> I disagree, we should not break the current e1000 driver in
>the kernel while
>> there is a new driver coming up that introduces ich9 support
>without breaking
>> (the old e1000) support for all other devices. This is why
>we want to drop a new
>> version of the e1000 driver upstream instead, and put all
>newer devices in that
>> driver.
>
> Clearly some major changes are happening around e1000,
>but the point
>I'm making is that ich9 support, in particular, doesn't need to be held
>hostage to these longer term changes. I think the backport shows that:
>
There seems to be a lot of concern over obsoleting the e1000 driver
too quickly, and with confusing users (and startup scripts) about which
driver to load.
Obviously, we at Intel want to get e1000new into the kernel as quickly
as possible, and to obsolete e1000 also as quickly as possible. The
point of this exercise is to reduce our support and maintenance burden,
and e1000new has shown itself internally to be much easier to work on.
So how about this:
- We include e1000new in 2.6.23, along side e1000. We expose ICH9
device IDs in e1000new, and gate the rest of the IDs inside
#ifndef CONFIG_E1000. This gives distis ICH9 support, along
with a guarantee of the known e1000 driver. It also lets the more
bleeding-edge people turn off e1000 and run with just e1000new to
work out any kinks.
- For 2.6.24, we reverse the situation: Gate all device IDs in e1000
behind #ifndef CONFIG_E1000NEW, and expose all of them in e1000new.
At this point we (i.e. the community, not just Intel) should be
confident in e1000new, and we can mark e1000 as obsolete. It's still
a fallback option for those with old/funky/misconfigured hardware.
- After a year (or whatever), we remove e1000.
Seems to me that this plan should appease either everybody or nobody.
We get ICH9 support out there, e1000new gets in the kernel and
exercised,
and we get to set a definite date for obsoleting e1000.
-Mitch
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-07-02 23:52 ` Williams, Mitch A
@ 2007-07-03 0:10 ` Rick Jones
2007-07-03 0:55 ` Jason Lunz
2007-07-03 7:15 ` Christoph Hellwig
1 sibling, 1 reply; 67+ messages in thread
From: Rick Jones @ 2007-07-03 0:10 UTC (permalink / raw)
To: Williams, Mitch A
Cc: Mark McLoughlin, Kok, Auke-jan H, Jeff Garzik, e1000-devel,
netdev, Jason Lunz
> There seems to be a lot of concern over obsoleting the e1000 driver
> too quickly, and with confusing users (and startup scripts) about which
> driver to load.
Yes.
> Obviously, we at Intel want to get e1000new into the kernel as quickly
> as possible, and to obsolete e1000 also as quickly as possible. The
> point of this exercise is to reduce our support and maintenance burden,
> and e1000new has shown itself internally to be much easier to work on.
>
> So how about this:
> - We include e1000new in 2.6.23, along side e1000. We expose ICH9
> device IDs in e1000new, and gate the rest of the IDs inside
> #ifndef CONFIG_E1000. This gives distis ICH9 support, along
> with a guarantee of the known e1000 driver. It also lets the more
> bleeding-edge people turn off e1000 and run with just e1000new to
> work out any kinks.
> - For 2.6.24, we reverse the situation: Gate all device IDs in e1000
> behind #ifndef CONFIG_E1000NEW, and expose all of them in e1000new.
> At this point we (i.e. the community, not just Intel) should be
> confident in e1000new, and we can mark e1000 as obsolete. It's still
> a fallback option for those with old/funky/misconfigured hardware.
> - After a year (or whatever), we remove e1000.
>
> Seems to me that this plan should appease either everybody or nobody.
> We get ICH9 support out there, e1000new gets in the kernel and
> exercised, and we get to set a definite date for obsoleting e1000.
What sort of timeframes are we looking at with 2.6.23 and then 2.6.24
and how might they map to distro releases? Much as everyone
wants/encourages folks to test the kernel.org kernels and such, the
_real_ exposure still seems to come with a distro release.
Rambling a bit, and recognizing that "e1000new" was probably just a
strawman name, but I suspect that a _very_ different name for the new
driver would be a good thing, rather than a varition on the e1000 theme.
"The Law of the Telephone Game" pretty much guaratees that something
with "e1000" in its name will be shortened to just "e1000."
How about "elk" (ee el kay) - applying that same "telephone" game
(consistency? nah) to e1000 to get e1k, which if you look at it quickly
enough looks like elk. OK, that's half in jest, but only half. I may
be wrong, but I don't think I've seen anyone shortening the current
e1000 to e1k?
rick jones
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-07-03 0:10 ` Rick Jones
@ 2007-07-03 0:55 ` Jason Lunz
2007-07-03 1:44 ` Kok, Auke
0 siblings, 1 reply; 67+ messages in thread
From: Jason Lunz @ 2007-07-03 0:55 UTC (permalink / raw)
To: Rick Jones
Cc: Mark McLoughlin, Kok, Auke-jan H, Jeff Garzik, e1000-devel,
netdev
On Mon, Jul 02, 2007 at 05:10:48PM -0700, Rick Jones wrote:
> Rambling a bit, and recognizing that "e1000new" was probably just a
> strawman name, but I suspect that a _very_ different name for the new
> driver would be a good thing, rather than a varition on the e1000 theme.
I rather liked the "e1000e" name suggested by Christoph Hellwig. That
may not be different enough for you, though. Anything but "e1000new";
it won't be new forever.
Jason
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-07-03 0:55 ` Jason Lunz
@ 2007-07-03 1:44 ` Kok, Auke
0 siblings, 0 replies; 67+ messages in thread
From: Kok, Auke @ 2007-07-03 1:44 UTC (permalink / raw)
To: Jason Lunz
Cc: Mark McLoughlin, Kok, Auke-jan H, Rick Jones, Jeff Garzik,
e1000-devel, netdev
Jason Lunz wrote:
> On Mon, Jul 02, 2007 at 05:10:48PM -0700, Rick Jones wrote:
>> Rambling a bit, and recognizing that "e1000new" was probably just a
>> strawman name, but I suspect that a _very_ different name for the new
>> driver would be a good thing, rather than a varition on the e1000 theme.
>
> I rather liked the "e1000e" name suggested by Christoph Hellwig. That
> may not be different enough for you, though. Anything but "e1000new";
> it won't be new forever.
hehe, yes, true. And the e1000new was just a placeholder. e1000e seems much more
attractive for me, especially if we end up splitting the driver at the pci/pci-e
boundary (like ixgb and ixgbe are).
Auke
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: e1000: backport ich9 support from 7.5.5 ?
2007-07-02 23:52 ` Williams, Mitch A
2007-07-03 0:10 ` Rick Jones
@ 2007-07-03 7:15 ` Christoph Hellwig
2007-07-03 13:13 ` [E1000-devel] " Jeff Garzik
1 sibling, 1 reply; 67+ messages in thread
From: Christoph Hellwig @ 2007-07-03 7:15 UTC (permalink / raw)
To: Williams, Mitch A
Cc: Mark McLoughlin, Kok, Auke-jan H, Jeff Garzik, e1000-devel,
netdev, Jason Lunz
On Mon, Jul 02, 2007 at 04:52:52PM -0700, Williams, Mitch A wrote:
> - We include e1000new in 2.6.23, along side e1000. We expose ICH9
> device IDs in e1000new, and gate the rest of the IDs inside
> #ifndef CONFIG_E1000.
No. Hardware support in one driver should never be affected by config
options in another drivers.
Also I really think there shouldn't be one single driver for all the
hardware as outlined by intel people in this thread. I'd say add a new
e1000e driver for all the pci-e hardware and have a temporary config
option to disable those device already supported by the existing e1000
driver.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: [E1000-devel] e1000: backport ich9 support from 7.5.5 ?
2007-07-03 7:15 ` Christoph Hellwig
@ 2007-07-03 13:13 ` Jeff Garzik
0 siblings, 0 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-07-03 13:13 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Williams, Mitch A, Mark McLoughlin, Kok, Auke-jan H, e1000-devel,
netdev, Jason Lunz
Christoph Hellwig wrote:
> On Mon, Jul 02, 2007 at 04:52:52PM -0700, Williams, Mitch A wrote:
>> - We include e1000new in 2.6.23, along side e1000. We expose ICH9
>> device IDs in e1000new, and gate the rest of the IDs inside
>> #ifndef CONFIG_E1000.
>
> No. Hardware support in one driver should never be affected by config
> options in another drivers.
Agreed.
> Also I really think there shouldn't be one single driver for all the
> hardware as outlined by intel people in this thread.
Agreed.
(as I've been saying)
Jeff
^ permalink raw reply [flat|nested] 67+ messages in thread
* Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-06-30 8:25 ` Christoph Hellwig
@ 2007-07-03 22:48 ` Kok, Auke
2007-07-05 18:32 ` Kok, Auke
2007-07-06 0:22 ` Jeff Garzik
0 siblings, 2 replies; 67+ messages in thread
From: Kok, Auke @ 2007-07-03 22:48 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mark McLoughlin, Kok, Auke, e1000-devel, netdev, David S. Miller,
Christoph Hellwig, Ronciak, John, Andrew Grover, Andrew Morton,
'Stephen Hemminger', Jason Lunz, Andy Gospodarek
Christoph Hellwig wrote:
> On Fri, Jun 29, 2007 at 07:31:55PM -0700, Kok, Auke wrote:
>> all the pci-express adapters that are supported are extremely similar:
>>
>> - they all support 2 queues
>> - the register sets are (almost entirely) identical
>> - there is minimal feature variance between 82571/2/3, esb2lan, ich8/9
>>
>> The major differences between 82571/2/3, esb2lan and ich8/9 are PHY-based
>> (4 different PHY's basically, one for 82571/2/3, one for esb2lan and 2 for
>> ich8/9, excluding fiber and serdes here) and NVM/EEPROM.
>>
>> ich8 and 9 are consistent with 82571/2/3 - on-board nic's based on the
>> 82571 design with different PHY's, and added features for the newer
>> demands. A driver split here would be possible but not justified IMHO.
>
> Sounds like the perfect split to me. I'd suggest you rip out support
> for older hardware from your new driver and do the resulting simplification
> and post a new e1000e driver for this hardware, removing existing support
> from e1000 at the same time. Later you can do the feature flags and similar
> improvements to the old driver driver in an incremental fashion without the
> burden of having to keep up with new hardware.
Jeff,
it seems that this is the preferred path to go including "e1000e" as the new
driver name for all 8257x family based adapters. Just for the record I'd like
your acknowledgement on the following plan:
1a) We post an e1000e driver that implements support for all 8257x (ich8/9,
es2lan etc) devices.
1b) We post a patch that drops support for all of these devices in the form of a
pci-ID removal (no code removed) for e1000.
2) we post patches that remove code support for non-8254x devices at a later stage.
3) we backport any and all cleanups and flags from e1000e to e1000 where applicable.
This plan leaves a significant gap that I'm worrying about: after step (1) we
basically have forced everyone to switch without providing a fallback (allthough
we have our out-of-tree driver, but no in-kernel version in case issues exist).
Comments?
I have no idea how internally this is going to get accepted, there will
certainly be some fireworks around here soon :).
Auke
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-03 22:48 ` Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?) Kok, Auke
@ 2007-07-05 18:32 ` Kok, Auke
2007-07-06 0:22 ` Jeff Garzik
1 sibling, 0 replies; 67+ messages in thread
From: Kok, Auke @ 2007-07-05 18:32 UTC (permalink / raw)
To: Jeff Garzik
Cc: Christoph Hellwig, Andrew Grover, Andrew Morton, Jason Lunz,
Mark McLoughlin, e1000-devel, netdev, Ronciak, John,
David S. Miller, 'Stephen Hemminger', Andy Gospodarek,
Arjan van de Ven
Kok, Auke wrote:
> Christoph Hellwig wrote:
>> On Fri, Jun 29, 2007 at 07:31:55PM -0700, Kok, Auke wrote:
>>> all the pci-express adapters that are supported are extremely similar:
>>>
>>> - they all support 2 queues
>>> - the register sets are (almost entirely) identical
>>> - there is minimal feature variance between 82571/2/3, esb2lan, ich8/9
>>>
>>> The major differences between 82571/2/3, esb2lan and ich8/9 are PHY-based
>>> (4 different PHY's basically, one for 82571/2/3, one for esb2lan and 2 for
>>> ich8/9, excluding fiber and serdes here) and NVM/EEPROM.
>>>
>>> ich8 and 9 are consistent with 82571/2/3 - on-board nic's based on the
>>> 82571 design with different PHY's, and added features for the newer
>>> demands. A driver split here would be possible but not justified IMHO.
>> Sounds like the perfect split to me. I'd suggest you rip out support
>> for older hardware from your new driver and do the resulting simplification
>> and post a new e1000e driver for this hardware, removing existing support
>> from e1000 at the same time. Later you can do the feature flags and similar
>> improvements to the old driver driver in an incremental fashion without the
>> burden of having to keep up with new hardware.
>
> Jeff,
>
> it seems that this is the preferred path to go including "e1000e" as the new
> driver name for all 8257x family based adapters. Just for the record I'd like
> your acknowledgement on the following plan:
>
>
> 1a) We post an e1000e driver that implements support for all 8257x (ich8/9,
> es2lan etc) devices.
> 1b) We post a patch that drops support for all of these devices in the form of a
> pci-ID removal (no code removed) for e1000.
>
> 2) we post patches that remove code support for non-8254x devices at a later stage.
>
> 3) we backport any and all cleanups and flags from e1000e to e1000 where applicable.
>
>
> This plan leaves a significant gap that I'm worrying about: after step (1) we
> basically have forced everyone to switch without providing a fallback (allthough
> we have our out-of-tree driver, but no in-kernel version in case issues exist).
Actually, this plan temporarily allows users to manually bind "e1000" to
pci-express adapters in case they wish to do so, thereby providing a fallback
driver for everyone.
If we leave the "e1000" driver untouched (not removing code support for pci-e
adapters) for at least a full kernel release, this should be reasonable for
everyone I hope. After we have gained some confidence in "e1000e" we can start
removing code from "e1000" for pci-e adapters.
How does that sound?
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-03 22:48 ` Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?) Kok, Auke
2007-07-05 18:32 ` Kok, Auke
@ 2007-07-06 0:22 ` Jeff Garzik
2007-07-07 0:14 ` Kok, Auke
1 sibling, 1 reply; 67+ messages in thread
From: Jeff Garzik @ 2007-07-06 0:22 UTC (permalink / raw)
To: Kok, Auke
Cc: Mark McLoughlin, e1000-devel, netdev, David S. Miller,
Christoph Hellwig, Ronciak, John, Andrew Grover, Andrew Morton,
'Stephen Hemminger', Jason Lunz, Andy Gospodarek
Kok, Auke wrote:
> 1a) We post an e1000e driver that implements support for all 8257x
> (ich8/9, es2lan etc) devices.
> 1b) We post a patch that drops support for all of these devices in the
> form of a pci-ID removal (no code removed) for e1000.
>
> 2) we post patches that remove code support for non-8254x devices at a
> later stage.
>
> 3) we backport any and all cleanups and flags from e1000e to e1000 where
> applicable.
>
>
> This plan leaves a significant gap that I'm worrying about: after step
> (1) we basically have forced everyone to switch without providing a
> fallback (allthough we have our out-of-tree driver, but no in-kernel
> version in case issues exist).
>
>
> Comments?
I like the general gist of it. My own suggestion would be
1) Create e1001.c, which is the SMALLEST POSSIBLE "it works" driver for
ICH9. No feature enablement (no TSO, no MQ, no IOAT, not even checksum
offload), just a rock solid, no frills driver. Think like e100.c :)
2) We review the hell out of e1001, and merge it. This enables ICH9
users, and ONLY ICH9 users, on e1001 in the upstream kernel, allowing us
to blithely ignore driver->driver migration issues present with other chips.
At this point, e1001 is out in the field and in the upstream kernel in
the absolute shortest amount of time. Users of chips NOT found in
current e1000 driver, and all future chips, can be enabled with little
impediments, in parallel with the steps below.
(all the "3^y" steps can occur in parallel)
3^1) Add features to e1001, enabling new gizmos on new hardware. This
can proceed in parallel with any e1000 work. This allows users to use
git-bisect to find driver bugs -- or even hardware bugs, since you have
a baseline working e1001 driver.
3^2) Add full ICH8 (8257x?) support to e1001.
4) Drop 8257x PCI IDs from e1000. See who complains. Lather, rinse,
repeat.
5) Figure out how the hell to clean up the current mess that is e1000,
and how to make sure e1000 and e1001 stay clean, long term.
Jeff
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 23:24 ` RFR: New e1000 driver (e1000new), was: " Kok, Auke
2007-06-29 23:38 ` Arjan van de Ven
2007-06-30 3:32 ` Roland Dreier
@ 2007-07-06 19:07 ` Jeff Garzik
2007-07-07 0:13 ` Kok, Auke
2007-07-07 18:59 ` Andrew Grover
2 siblings, 2 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-07-06 19:07 UTC (permalink / raw)
To: Kok, Auke
Cc: netdev, Andrew Morton, Jason Lunz, Mark McLoughlin, e1000-devel,
Arjan van de Ven, Ronciak, John
OK, just looked through the driver. I think its structured inside-out
from what it should be.
Comments:
* is a clear improvement from current e1000
* The multitude of tiny, fine-grained operations for MAC, NVM, PHY, etc.
is a signal that organization is backwards. You should be creating
hardware-specific high level operations (PHY layer hooks, net_device
hooks, interrupt handler) that call out to more-generic functions when
necessary. Doing so eliminates the need to create a new hook for every
little twirl in the code path.
In the long run, a driver is easier to maintain if you can easily follow
the code path for a particular hardware generation. Creating
e1001_8257x_do_this_thing(), which calls more generic code as needed, is
easier to review and doesn't require all sorts of indirection through APIs.
Doing so also means that many workarounds for older hardware "disappear"
from the most-travelled code paths over time. The 64k boundary check
found in e1000new is an easy example of something that really shouldn't
pollute newer code at all [yes, even though it reduces to 'return 1' for
most].
* The multitude of files makes it difficult to review. Much easier in
one file, or a small few.
* bitfields
* check for PCI DMA mapping failure
* atomic_t irq_sem is reinventing the wheel (and too heavy for you
needs, too?). You might as well use a lock or mutex or whatnot at that
point, since you are using a locked instruction. tg3 might also have
some hints in this regard.
* like I noted in the last email, the quickest path to upstream is to
start SMALL. Create the smallest working driver, review it heavily, get
it upstream. Add all hardware&features after that.
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-07-06 19:07 ` Jeff Garzik
@ 2007-07-07 0:13 ` Kok, Auke
2007-07-07 12:23 ` James Chapman
2007-07-07 18:59 ` Andrew Grover
1 sibling, 1 reply; 67+ messages in thread
From: Kok, Auke @ 2007-07-07 0:13 UTC (permalink / raw)
To: Jeff Garzik
Cc: netdev, Andrew Morton, Jason Lunz, Mark McLoughlin, e1000-devel,
Arjan van de Ven, Ronciak, John
Jeff Garzik wrote:
> OK, just looked through the driver. I think its structured inside-out
> from what it should be.
>
> Comments:
>
> * is a clear improvement from current e1000
>
> * The multitude of tiny, fine-grained operations for MAC, NVM, PHY, etc.
> is a signal that organization is backwards. You should be creating
> hardware-specific high level operations (PHY layer hooks, net_device
> hooks, interrupt handler) that call out to more-generic functions when
> necessary. Doing so eliminates the need to create a new hook for every
> little twirl in the code path.
>
> In the long run, a driver is easier to maintain if you can easily follow
> the code path for a particular hardware generation. Creating
> e1001_8257x_do_this_thing(), which calls more generic code as needed, is
> easier to review and doesn't require all sorts of indirection through APIs.
>
> Doing so also means that many workarounds for older hardware "disappear"
> from the most-travelled code paths over time. The 64k boundary check
> found in e1000new is an easy example of something that really shouldn't
> pollute newer code at all [yes, even though it reduces to 'return 1' for
> most].
are you talking about the internals of e1000_phy/mac/nvm etc? i agree that the
amount of forward/backward mapping in here is a bit of a spaghetti and could be
more clear
> * The multitude of files makes it difficult to review. Much easier in
> one file, or a small few.
well, at least the files are reasonably well structured by topic. Combining
small files just to make reviewing easier seems strange to me, besides making it
easier to jump around in an editor it doesn't add any value to the code
organization, and just encourages more forward declarations and horrible
ordering issues.
> * bitfields
consider these gone ;)
> * check for PCI DMA mapping failure
*draws blank* specific one? I'm not seeing what you mean here
> * atomic_t irq_sem is reinventing the wheel (and too heavy for you
> needs, too?). You might as well use a lock or mutex or whatnot at that
> point, since you are using a locked instruction. tg3 might also have
> some hints in this regard.
absolutely, I really don't like irq_sem and several people insist even that it
can be removed (allthough I've demonstrated that plain removing it actually
breaks on pci-e adapters). I had left it in since it currently works fine, but
it's high on my list to fix.
> * like I noted in the last email, the quickest path to upstream is to
> start SMALL. Create the smallest working driver, review it heavily, get
> it upstream. Add all hardware&features after that.
In this line, I will try to drop things like multiqueue from it completely to
avoid making it over-complex (and not used at all right now), as is the case in
a lot of points right now.
Thanks for reviewing.
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-06 0:22 ` Jeff Garzik
@ 2007-07-07 0:14 ` Kok, Auke
2007-07-07 13:58 ` James Chapman
` (2 more replies)
0 siblings, 3 replies; 67+ messages in thread
From: Kok, Auke @ 2007-07-07 0:14 UTC (permalink / raw)
To: Jeff Garzik
Cc: Christoph Hellwig, Andrew Grover, Andrew Morton, Jason Lunz,
Mark McLoughlin, e1000-devel, netdev, Ronciak, John,
David S. Miller, 'Stephen Hemminger', Andy Gospodarek,
Arjan van de Ven
Jeff Garzik wrote:
> Kok, Auke wrote:
>> 1a) We post an e1000e driver that implements support for all 8257x
>> (ich8/9, es2lan etc) devices.
>> 1b) We post a patch that drops support for all of these devices in the
>> form of a pci-ID removal (no code removed) for e1000.
>>
>> 2) we post patches that remove code support for non-8254x devices at a
>> later stage.
>>
>> 3) we backport any and all cleanups and flags from e1000e to e1000 where
>> applicable.
>>
>>
>> This plan leaves a significant gap that I'm worrying about: after step
>> (1) we basically have forced everyone to switch without providing a
>> fallback (allthough we have our out-of-tree driver, but no in-kernel
>> version in case issues exist).
>>
>>
>> Comments?
>
> I like the general gist of it. My own suggestion would be
>
> 1) Create e1001.c, which is the SMALLEST POSSIBLE "it works" driver for
> ICH9. No feature enablement (no TSO, no MQ, no IOAT, not even checksum
> offload), just a rock solid, no frills driver. Think like e100.c :)
>
> 2) We review the hell out of e1001, and merge it. This enables ICH9
> users, and ONLY ICH9 users, on e1001 in the upstream kernel, allowing us
> to blithely ignore driver->driver migration issues present with other chips.
>
>
> At this point, e1001 is out in the field and in the upstream kernel in
> the absolute shortest amount of time. Users of chips NOT found in
> current e1000 driver, and all future chips, can be enabled with little
> impediments, in parallel with the steps below.
>
> (all the "3^y" steps can occur in parallel)
>
> 3^1) Add features to e1001, enabling new gizmos on new hardware. This
> can proceed in parallel with any e1000 work. This allows users to use
> git-bisect to find driver bugs -- or even hardware bugs, since you have
> a baseline working e1001 driver.
>
> 3^2) Add full ICH8 (8257x?) support to e1001.
>
> 4) Drop 8257x PCI IDs from e1000. See who complains. Lather, rinse,
> repeat.
>
> 5) Figure out how the hell to clean up the current mess that is e1000,
> and how to make sure e1000 and e1001 stay clean, long term.
This is not acceptable and hardly fair to expect from us.
It also exposes users to endless delays and uncertainties as to a final
resolution. Not to mention that writing a driver from scratch for (just) ich9
will take significant time, is silly since it's almost identical to ich8 etc..
I don't think that anyone besides you and maybe one or two others are interested
in doing this rewrite from scratch. The rest of us would rather see something
much more similar to my original suggestion which relieves the ich9-wishes for
everyone and provides a good starting point to go forward. Not to mention that a
lot of that code is already there, and at least cleaned up quite a bit already.
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-07-07 0:13 ` Kok, Auke
@ 2007-07-07 12:23 ` James Chapman
2007-07-08 18:41 ` James Chapman
0 siblings, 1 reply; 67+ messages in thread
From: James Chapman @ 2007-07-07 12:23 UTC (permalink / raw)
To: Kok, Auke
Cc: Jeff Garzik, netdev, Andrew Morton, Jason Lunz, Mark McLoughlin,
e1000-devel, Arjan van de Ven, Ronciak, John
Kok, Auke wrote:
> Jeff Garzik wrote:
>> * The multitude of tiny, fine-grained operations for MAC, NVM, PHY,
>> etc. is a signal that organization is backwards. You should be
>> creating hardware-specific high level operations (PHY layer hooks,
>> net_device hooks, interrupt handler) that call out to more-generic
>> functions when necessary. Doing so eliminates the need to create a
>> new hook for every little twirl in the code path.
I think this is the key point that needs to be addressed in the new
driver. All of the netdevice glue such as PCI ID tables, netdev open,
close etc should be in its own driver for each device, which calls out
to common code where appropriate.
> are you talking about the internals of e1000_phy/mac/nvm etc? i agree
> that the amount of forward/backward mapping in here is a bit of a
> spaghetti and could be more clear
Make it more clear by restructuring it, not by adding comments though.
>> * The multitude of files makes it difficult to review. Much easier in
>> one file, or a small few.
>
> well, at least the files are reasonably well structured by topic.
> Combining small files just to make reviewing easier seems strange to me,
> besides making it easier to jump around in an editor it doesn't add any
> value to the code organization, and just encourages more forward
> declarations and horrible ordering issues.
There's a lot of common code across the e1000 family. But all of the
chip-specific code for an individual driver could be in one file. I
envisage something like this:-
e1000_core.c - common code used by all drivers of the e1000 family.
Exports functions used by actual drivers. Loadable
as a separate module when built as a module.
e1000_82541.c - driver for 82541
e1000_82542.c - driver for 82542
e1000_xxxxx.c - driver for xxxxx
If phylib were used, the phy-specific parts would move out naturally
into a phy driver for each phy device. And if e1000_core.c were
implemented well, few changes should occur over time as more e1000
devices are released.
There would obviously be no overlap of PCI IDs in each driver. For the
initial version, support just one device - more can be added later. The
important thing is to get the structure right in the initial version.
--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-07 0:14 ` Kok, Auke
@ 2007-07-07 13:58 ` James Chapman
2007-07-07 19:04 ` Francois Romieu
2007-07-08 17:41 ` Jeff Garzik
2 siblings, 0 replies; 67+ messages in thread
From: James Chapman @ 2007-07-07 13:58 UTC (permalink / raw)
To: Kok, Auke
Cc: Jeff Garzik, Christoph Hellwig, Andrew Grover, Andrew Morton,
Jason Lunz, Mark McLoughlin, e1000-devel, netdev, Ronciak, John,
David S. Miller, 'Stephen Hemminger', Andy Gospodarek,
Arjan van de Ven
Kok, Auke wrote:
> I don't think that anyone besides you and maybe one or two others are
> interested in doing this rewrite from scratch.
I count myself as one of those others. :) I don't think it's a rewrite
though; it's a rework.
> The rest of us would
> rather see something much more similar to my original suggestion which
> relieves the ich9-wishes for everyone and provides a good starting point
> to go forward. Not to mention that a lot of that code is already there,
> and at least cleaned up quite a bit already.
But the structure of it isn't right, as mentioned by Jeff and I in
previous posts. Any restructuring of your new driver will obviously take
time. In my view using the urgency of needing ich9 support to get the
new driver in isn't the right tradeoff. Perhaps the ich9 code should be
backported into the existing e1000, which is where this thread started?
This will buy time to restructure the new driver to make sure it is
right for the future.
I agree with Jeff that the initial version of the new driver should have
only essential features - bells and whistles can be added incrementally.
--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-07-06 19:07 ` Jeff Garzik
2007-07-07 0:13 ` Kok, Auke
@ 2007-07-07 18:59 ` Andrew Grover
1 sibling, 0 replies; 67+ messages in thread
From: Andrew Grover @ 2007-07-07 18:59 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mark McLoughlin, Kok, Auke, e1000-devel, netdev, Ronciak, John,
Andrew Morton, Arjan van de Ven, Jason Lunz
On 7/6/07, Jeff Garzik <jeff@garzik.org> wrote:
> OK, just looked through the driver. I think its structured inside-out
> from what it should be.
> * The multitude of tiny, fine-grained operations for MAC, NVM, PHY, etc.
> is a signal that organization is backwards. You should be creating
> hardware-specific high level operations (PHY layer hooks, net_device
> hooks, interrupt handler) that call out to more-generic functions when
> necessary. Doing so eliminates the need to create a new hook for every
> little twirl in the code path.
I think the nice thing about the driver's organization is that it
gives a clear overview of how the driver works, without delving into
generation-specific details. This fixes a problem that the old driver
had, where it was very easy to get lost in the woods of
family-specific workarounds.
> In the long run, a driver is easier to maintain if you can easily follow
> the code path for a particular hardware generation. Creating
> e1001_8257x_do_this_thing(), which calls more generic code as needed, is
> easier to review and doesn't require all sorts of indirection through APIs.
Basically make a library of e1000-routines. The alternative is a
polymorphic approach (i.e. using function pointers so generic code can
call specific code). Both approaches are used extensively in the
kernel -- I happen to think the latter approach is better suited to
the e1000's current issue.
(For what is a driver but specific code called from generic code? This
just reuses this helpful design pattern at a lower level.)
> Doing so also means that many workarounds for older hardware "disappear"
> from the most-travelled code paths over time. The 64k boundary check
> found in e1000new is an easy example of something that really shouldn't
> pollute newer code at all [yes, even though it reduces to 'return 1' for
> most].
Given that the new driver would only support PCIe devices (i.e.
relatively new/good HW) I would think this would cut down on the
"workaround" hooks, leaving the "HW is genuinely different" hooks.
> * The multitude of files makes it difficult to review. Much easier in
> one file, or a small few.
Removing support for pre-PCIe in the new driver would help alleviate this.
Regards -- Andy
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-07 0:14 ` Kok, Auke
2007-07-07 13:58 ` James Chapman
@ 2007-07-07 19:04 ` Francois Romieu
2007-07-07 21:54 ` Kok, Auke
2007-07-08 17:41 ` Jeff Garzik
2 siblings, 1 reply; 67+ messages in thread
From: Francois Romieu @ 2007-07-07 19:04 UTC (permalink / raw)
To: Kok, Auke
Cc: Mark McLoughlin, Jeff Garzik, e1000-devel, netdev,
David S. Miller, Christoph Hellwig, Ronciak, John,
Arjan van de Ven, Andrew Grover, Andrew Morton,
'Stephen Hemminger', Jason Lunz, Andy Gospodarek
Kok, Auke <auke-jan.h.kok@intel.com> :
> Jeff Garzik wrote:
> >Kok, Auke wrote:
[...]
> This is not acceptable and hardly fair to expect from us.
>
> It also exposes users to endless delays and uncertainties as to a final
> resolution. Not to mention that writing a driver from scratch for (just)
> ich9 will take significant time, is silly since it's almost identical to
> ich8 etc..
>
> I don't think that anyone besides you and maybe one or two others are
> interested in doing this rewrite from scratch.
So far I'd say him and at least two others. Is it time to count them ?
Everybody is cool and polite but after a week of discussion this is
going nowhere.
--
Ueimor
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-07 19:04 ` Francois Romieu
@ 2007-07-07 21:54 ` Kok, Auke
2007-07-08 1:32 ` Stephen Hemminger
0 siblings, 1 reply; 67+ messages in thread
From: Kok, Auke @ 2007-07-07 21:54 UTC (permalink / raw)
To: Francois Romieu
Cc: Kok, Auke, Jeff Garzik, Christoph Hellwig, Andrew Grover,
Andrew Morton, Jason Lunz, Mark McLoughlin, e1000-devel, netdev,
Ronciak, John, David S. Miller, 'Stephen Hemminger',
Andy Gospodarek, Arjan van de Ven
Francois Romieu wrote:
> Kok, Auke <auke-jan.h.kok@intel.com> :
>> Jeff Garzik wrote:
>>> Kok, Auke wrote:
> [...]
>> This is not acceptable and hardly fair to expect from us.
>>
>> It also exposes users to endless delays and uncertainties as to a final
>> resolution. Not to mention that writing a driver from scratch for (just)
>> ich9 will take significant time, is silly since it's almost identical to
>> ich8 etc..
>>
>> I don't think that anyone besides you and maybe one or two others are
>> interested in doing this rewrite from scratch.
>
> So far I'd say him and at least two others. Is it time to count them ?
>
> Everybody is cool and polite but after a week of discussion this is
> going nowhere.
It is really hard to stay polite for me now. After we were told to clean up the
driver and implement things like feature flags and organize all the various
hardware dependent bits, we did exactly that. And now we're told to rewrite the
driver from scratch. ("thanks for the effort but no thanks, do this instead").
If that does not make your hair on the back of your neck stand up...
I politely suggested a middle way that would allows us to continue working on
the driver and take it to the next step. This would in my opinion be the least
destructive plan and get us moving forward quickly. Jeff's alternative plan can
set us back another year. Perhaps it won't, but I fear that it will, and it will
be a hard thing to sell to my group and other parties.
I agree that rewriting drivers that are bad from scratch is a good thing. But in
this case we're talking about a driver with a good reputation that has
functioned really well for everyone for as long as it's out there. Perhaps you
disagree on this, but lets just agree on that e1000 never really broke in the
last 7 years even though we added over 50 different type of adapters to it, and
it's still performance wise a good driver.
As a matter of fact, I find it hard to believe that e1000 has a bad reputation.
Almost all of the direct feedback that I get from people using e1000 is
positive. We regularly get good feedback on our response rate too.
We as a group are committed to keep repairing and improving e1000 and I think
that we have shown our good intent with some of the stuff that we've recently
shown. I think it's also polite to let us do our work and work *with* us,
instead of dumping our ideas ("I like the gist of it, but") and basically
sending us off with nothing. And that means that the linux community also is
stuck with nothing.
I would really like to continue with my original plan that I posted that follows
Christoph's idea. I hope you can all agree with that so we can get on with this.
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-07 21:54 ` Kok, Auke
@ 2007-07-08 1:32 ` Stephen Hemminger
2007-07-08 10:07 ` James Chapman
` (2 more replies)
0 siblings, 3 replies; 67+ messages in thread
From: Stephen Hemminger @ 2007-07-08 1:32 UTC (permalink / raw)
To: Kok, Auke
Cc: Mark McLoughlin, Kok, Auke, Jeff Garzik, Christoph, e1000-devel,
netdev, Andrew, David S. Miller, Hellwig, Ronciak, John,
Andrew Grover, Francois Romieu, Morton, van de Ven, Jason Lunz,
Andy Gospodarek, Arjan
On Sat, 07 Jul 2007 14:54:11 -0700
"Kok, Auke" <auke-jan.h.kok@intel.com> wrote:
> Francois Romieu wrote:
> > Kok, Auke <auke-jan.h.kok@intel.com> :
> >> Jeff Garzik wrote:
> >>> Kok, Auke wrote:
> > [...]
> >> This is not acceptable and hardly fair to expect from us.
> >>
> >> It also exposes users to endless delays and uncertainties as to a final
> >> resolution. Not to mention that writing a driver from scratch for (just)
> >> ich9 will take significant time, is silly since it's almost identical to
> >> ich8 etc..
> >>
> >> I don't think that anyone besides you and maybe one or two others are
> >> interested in doing this rewrite from scratch.
> >
> > So far I'd say him and at least two others. Is it time to count them ?
> >
> > Everybody is cool and polite but after a week of discussion this is
> > going nowhere.
>
> It is really hard to stay polite for me now. After we were told to clean up the
> driver and implement things like feature flags and organize all the various
> hardware dependent bits, we did exactly that. And now we're told to rewrite the
> driver from scratch. ("thanks for the effort but no thanks, do this instead").
>
> If that does not make your hair on the back of your neck stand up...
>
> I politely suggested a middle way that would allows us to continue working on
> the driver and take it to the next step. This would in my opinion be the least
> destructive plan and get us moving forward quickly. Jeff's alternative plan can
> set us back another year. Perhaps it won't, but I fear that it will, and it will
> be a hard thing to sell to my group and other parties.
>
> I agree that rewriting drivers that are bad from scratch is a good thing. But in
> this case we're talking about a driver with a good reputation that has
> functioned really well for everyone for as long as it's out there. Perhaps you
> disagree on this, but lets just agree on that e1000 never really broke in the
> last 7 years even though we added over 50 different type of adapters to it, and
> it's still performance wise a good driver.
>
> As a matter of fact, I find it hard to believe that e1000 has a bad reputation.
> Almost all of the direct feedback that I get from people using e1000 is
> positive. We regularly get good feedback on our response rate too.
>
> We as a group are committed to keep repairing and improving e1000 and I think
> that we have shown our good intent with some of the stuff that we've recently
> shown. I think it's also polite to let us do our work and work *with* us,
> instead of dumping our ideas ("I like the gist of it, but") and basically
> sending us off with nothing. And that means that the linux community also is
> stuck with nothing.
>
> I would really like to continue with my original plan that I posted that follows
> Christoph's idea. I hope you can all agree with that so we can get on with this.
I think rather than having a meta-discussion, which always seems to degenerate
into finger pointing. Let's look at the code. The problem with popular drivers
(as I too well know) is that user's seem to find every wart. There are lots of
old drivers that never seem to get the same scrutiny, and if they did would
be tarred and feathered.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-08 1:32 ` Stephen Hemminger
@ 2007-07-08 10:07 ` James Chapman
2007-07-08 16:29 ` Arjan van de Ven
2007-07-08 18:08 ` Jeff Garzik
2 siblings, 0 replies; 67+ messages in thread
From: James Chapman @ 2007-07-08 10:07 UTC (permalink / raw)
To: Stephen Hemminger
Cc: Mark McLoughlin, Kok, Auke, Jeff Garzik, e1000-devel, netdev,
David S. Miller, Christoph Hellwig, Ronciak, John, Andrew Grover,
Francois Romieu, Andrew Morton, Arjan van de Ven, Jason Lunz,
Andy Gospodarek
Stephen Hemminger wrote:
> I think rather than having a meta-discussion, which always seems to degenerate
> into finger pointing. Let's look at the code. The problem with popular drivers
> (as I too well know) is that user's seem to find every wart. There are lots of
> old drivers that never seem to get the same scrutiny, and if they did would
> be tarred and feathered.
Auke has already posted an early snapshot, archived here:
http://marc.info/?l=linux-netdev&m=118315951209350&w=3
Jeff and I have already commented on the code.
--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-08 1:32 ` Stephen Hemminger
2007-07-08 10:07 ` James Chapman
@ 2007-07-08 16:29 ` Arjan van de Ven
2007-07-08 18:06 ` Jeff Garzik
2007-07-08 18:08 ` Jeff Garzik
2 siblings, 1 reply; 67+ messages in thread
From: Arjan van de Ven @ 2007-07-08 16:29 UTC (permalink / raw)
To: Stephen Hemminger
Cc: Mark McLoughlin, Kok, Auke, Jeff Garzik, e1000-devel, netdev,
David S. Miller, Christoph Hellwig, Ronciak, John, Andrew Grover,
Francois Romieu, Andrew Morton, Jason Lunz, Andy Gospodarek
Stephen Hemminger wrote:
>> I would really like to continue with my original plan that I posted that follows
>> Christoph's idea. I hope you can all agree with that so we can get on with this.
>
> I think rather than having a meta-discussion, which always seems to degenerate
> into finger pointing. Let's look at the code. The problem with popular drivers
> (as I too well know) is that user's seem to find every wart. There are lots of
> old drivers that never seem to get the same scrutiny, and if they did would
> be tarred and feathered.
I'd second this; also lets be honest and fair about things and use a
similar standard for all drivers; are we going to ask all driver
submitters to remove NAPI, TSO and other stuff? I would hope not. Are
all new drivers that have even a single bitfield going to be rejected?
That's be a new rule but ok, if it applies to all drivers it's fair.
So the question in my opinion should be "is this driver good enough
for merging, and if not, what specifically is wrong enough to hold of
merging" not "what would the perfect ideal
we-have-all-the-time-in-the-world driver be" and certainly not "how is
this going to work in an enterprise distro" since the later is the
problem for the enterprise disro that they get paid to solve, not for
kernel.org kernels.
What is there now is a driver that works, is relatively clean (and yes
if you look deep enough you can ALWAYS nitpick on any code, even
Linus' or Jeff's best code) and provides good performance with all the
features a modern ethernet driver is supposed to have.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-07 0:14 ` Kok, Auke
2007-07-07 13:58 ` James Chapman
2007-07-07 19:04 ` Francois Romieu
@ 2007-07-08 17:41 ` Jeff Garzik
2 siblings, 0 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-07-08 17:41 UTC (permalink / raw)
To: Kok, Auke
Cc: Mark McLoughlin, e1000-devel, netdev, David S. Miller,
Christoph Hellwig, Ronciak, John, Arjan van de Ven,
Andrew Grover, Andrew Morton, 'Stephen Hemminger',
Jason Lunz, Andy Gospodarek
Kok, Auke wrote:
> This is not acceptable and hardly fair to expect from us.
>
> It also exposes users to endless delays and uncertainties as to a final
> resolution. Not to mention that writing a driver from scratch for (just)
> ich9 will take significant time, is silly since it's almost identical to
> ich8 etc..
>
> I don't think that anyone besides you and maybe one or two others are
> interested in doing this rewrite from scratch. The rest of us would
> rather see something much more similar to my original suggestion which
> relieves the ich9-wishes for everyone and provides a good starting point
> to go forward. Not to mention that a lot of that code is already there,
> and at least cleaned up quite a bit already.
Let's review the history here:
* For -years-, Intel has been told to stream structural cleanups into
e1000 (and ixgb), along with feature enablement. None of these cleanups
happened, and the result was today's bloated driver.
* Intel posts a new e1000 driver, which is just as complex, if not more so.
* Intel proposes a Linux user transition plan that amounts to an abrupt
NIC driver switch for users on a widely used NIC platform.
* Intel immediately dismisses all alternate paths to e1000 change, and
all major e1000new structural comments.
Thus in effect you are presenting the Linux community with one option
(and only one) -- your e1000new as it exists today -- and demanding that
that option be accepted.
More importantly, Intel is asking the Linux community to TRUST that
Intel will be a good driver MAINTAINER, despite lack of encouraging
evidence in that regard.
Will we continue to see INATTENTION to basic driver maintenance, with
100% of resources being devoted new features, and 0% devoted to thinking
about how best to create a maintainable driver for those features long term?
With e1000new, I see a driver that's internally modular, but no more
maintainable. I also see a driver that runs directly counter to what we
normally do in this situation -- split it up into multiple drivers.
When you find yourself reinventing a net driver API, that's a big hint
your engineering is ass-backwards.
It's not acceptable and hardly fair to expect the Linux community to
blindly swallow the single option you've presented us.
We're talking about one of the most widely used NIC drivers here.
Proposing to flip a switch and dump all users on the new driver in a
couple months time does not serve Linux users at all. Introducing the
new driver more slowly -- starting with ICH9 and any other PCI IDs not
covered by e1000 -- gives the driver a chance to prove itself in the
field and be introduced more slowly, while at the same time not
dramatically disturbing the existing, working e1000 installed base.
Starting with a new driver for the new hardware is the right way to go.
Get that driver into the field, get it right, and THEN use that
field experience to see what PCI IDs you want to transition from the
older driver. That path is minimal disruption for Linux users, and
maximizes the changes of Linux users running a working, proven driver.
And coincidentally, that path also gives you the freedom to do heavy
development on the new driver, with minimal disruption of the majority
of your userbase.
So in sum, (a) Intel does not appear to have thought through the driver
transition, (b) Intel has not proven itself to be a maintainer, and (c)
e1000new needs to be restructured.
Jeff
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-08 16:29 ` Arjan van de Ven
@ 2007-07-08 18:06 ` Jeff Garzik
2007-07-08 19:24 ` Andrew Grover
2007-07-08 20:05 ` Arjan van de Ven
0 siblings, 2 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-07-08 18:06 UTC (permalink / raw)
To: Arjan van de Ven
Cc: Mark McLoughlin, Kok, Auke, e1000-devel, netdev, David S. Miller,
Christoph Hellwig, Ronciak, John, Andrew Grover, Francois Romieu,
Andrew Morton, Stephen Hemminger, Jason Lunz, Andy Gospodarek
Arjan van de Ven wrote:
> I'd second this; also lets be honest and fair about things and use a
> similar standard for all drivers; are we going to ask all driver
> submitters to remove NAPI, TSO and other stuff? I would hope not. Are
That was merely a suggestion. My general meaning was "small driver is
easier to get into the kernel and into the field."
> all new drivers that have even a single bitfield going to be rejected?
> That's be a new rule but ok, if it applies to all drivers it's fair.
That's one of a gazillion checklist items that a new driver has to pass
through. You know how it works for new drivers.
"it looks better than our last try" and "it looks better than that ugly
driver over there" does not grant you a free pass on review.
I'm not asking for perfection, just something other than
* e1000 gets feedback
* Intel disappears for months
* Intel reappears with e1000 rewrite
* Intel fights tooth and nail when the driver is not accepted verboten
And specifically I worry that three years down the road we will reach
the same point again, when e1000new is even more complex.
Will Intel shrug its shoulders and decide its time for another rewrite?
> So the question in my opinion should be "is this driver good enough for
> merging, and if not, what specifically is wrong enough to hold of
> merging" not "what would the perfect ideal
> we-have-all-the-time-in-the-world driver be" and certainly not "how is
> this going to work in an enterprise distro" since the later is the
> problem for the enterprise disro that they get paid to solve, not for
> kernel.org kernels.
>
> What is there now is a driver that works, is relatively clean (and yes
> if you look deep enough you can ALWAYS nitpick on any code, even Linus'
> or Jeff's best code) and provides good performance with all the features
> a modern ethernet driver is supposed to have.
Is this is the attitude, what's the point of even posting the driver for
review? Intel posted e1000new on June 29. Feedback was then posted.
Ten days later, without a single revision, Intel declares its own driver
clean and working and good enough for merging as-is.
Jeff
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-08 1:32 ` Stephen Hemminger
2007-07-08 10:07 ` James Chapman
2007-07-08 16:29 ` Arjan van de Ven
@ 2007-07-08 18:08 ` Jeff Garzik
2 siblings, 0 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-07-08 18:08 UTC (permalink / raw)
To: Stephen Hemminger
Cc: Kok, Auke, Francois Romieu, Christoph Hellwig, Andrew Grover,
Andrew Morton, Jason Lunz, Mark McLoughlin, e1000-devel, netdev,
Ronciak, John, David S. Miller, Andy Gospodarek, Arjan van de Ven
Stephen Hemminger wrote:
> I think rather than having a meta-discussion, which always seems to degenerate
> into finger pointing. Let's look at the code. The problem with popular drivers
> (as I too well know) is that user's seem to find every wart. There are lots of
> old drivers that never seem to get the same scrutiny, and if they did would
> be tarred and feathered.
"it's not as scruffy as that driver in the corner" is no way to maintain
a kernel.
Jeff
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-29 23:38 ` Arjan van de Ven
@ 2007-07-08 18:20 ` Jeff Garzik
2007-07-08 20:14 ` Arjan van de Ven
0 siblings, 1 reply; 67+ messages in thread
From: Jeff Garzik @ 2007-07-08 18:20 UTC (permalink / raw)
To: Arjan van de Ven
Cc: Mark McLoughlin, Kok, Auke, e1000-devel, netdev, Ronciak, John,
Andrew Morton, Jason Lunz
Arjan van de Ven wrote:
> Kok, Auke wrote:
>> Jeff Garzik wrote:
>>> Andrew Morton wrote:
>>>> On Fri, 29 Jun 2007 14:39:20 -0700
>>>> "Kok, Auke" <auke-jan.h.kok@intel.com> wrote:
>>>>
>>>>> That's why we want to introduce a second e1000 driver (named
>>>>> differently, pick any name) that contains the new code base,
>>>>> side-by-side into the kernel with the current e1000.
>>>> Sounds like a reasonable approach to me (it has plenty of
>>>> precedent). But
>>>> I forget what all the other issues were, so ignore me.
>>>
>>> Given past history with duplicate drivers and the problems that they
>>> cause -- I know, I've caused some of those problems :( -- I strongly
>>> recommend against when it can be avoided.
>>>
>>> Leaving e1000 with current hardware, and a new e1001 for newer
>>> hardware should be easier to manage for all involved, without the
>>> headaches that duplicate drivers cause.
>>>
>
> Jeff,
>
> ok first you hate the old e1000 and now you don't want to get rid of it ;)
No -- e1000 is big and bloated but also stable and working and a key
popular NIC driver for a lot of people.
That means the transition has a wide impact, and thus should be
considered a lot more carefully than (say) rewriting 8139cp.
I reject the notion that a "flag day" switchover for a huge mass of
e1000 users is the correct path. I do not think that best serves Linux
users.
It is better to get a new driver out in the field and working for a
small population, let time pass, then consider if we really want to
transition the entire e1000 population to the new driver. That leaves
the mass of e1000 users with a working driver while the new driver
proves itself. Since a small population of users is required to use the
new driver, by virtue of new/old PCI ID split, you are guaranteed a
population of test users immediately for the new driver.
When the new driver proves itself stable, you will have plenty of
knowledge from which to decide whether to transition 8257x users, all
e1000 users, or whatever.
> I appreciate the pain a temporary dual driver situation gives; it comes
> down to a few things that I can think of right now, if you see more
> please add to the list.
>
> 1) users who find a bug in the new one silently use the old one rather
> than reporting the bug; and only scream when the old one eventually goes
> away (see ALSA/OSS duplication)
>
> 2) users who enable both in KConfig may get a "random" one
>
> 3) distros really prefer only 1 driver per PCI ID for their
> infrastructure tools
>
> 4) there will be resistance against deleting the old one meaning it
> might not happen
You are missing the largest source of pain and headache: Users will use
the default driver, which means no field testing at all until flag day,
with obvious results.
Furthermore, Linux kernel history demonstrates that "temporary dual
driver situations" are rarely temporary. Thus, selling it as such in
the face of all contrary experience is pure hyperbole.
Jeff
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-06-30 3:32 ` Roland Dreier
@ 2007-07-08 18:20 ` Jeff Garzik
0 siblings, 0 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-07-08 18:20 UTC (permalink / raw)
To: Roland Dreier
Cc: Kok, Auke, netdev, Andrew Morton, Jason Lunz, Mark McLoughlin,
e1000-devel, Arjan van de Ven, Ronciak, John
Roland Dreier wrote:
> one possibility would be to merge e1000new with support only for chips
> not supported by e1000, and semi-freeze e1000 (fixes only, new device
> support goes into e1000new).
indeed.
Jeff
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-07-07 12:23 ` James Chapman
@ 2007-07-08 18:41 ` James Chapman
0 siblings, 0 replies; 67+ messages in thread
From: James Chapman @ 2007-07-08 18:41 UTC (permalink / raw)
To: Kok, Auke
Cc: Jeff Garzik, netdev, Andrew Morton, Jason Lunz, Mark McLoughlin,
e1000-devel, Arjan van de Ven, Ronciak, John
James Chapman wrote:
> I envisage something like this:-
>
> e1000_core.c - common code used by all drivers of the e1000 family.
> Exports functions used by actual drivers. Loadable
> as a separate module when built as a module.
> e1000_82541.c - driver for 82541
> e1000_82542.c - driver for 82542
> e1000_xxxxx.c - driver for xxxxx
Please ignore the statement I made above. Having read the code and chip
docs again, I realize I jumped to the wrong conclusions when I saw
separate source files for each of the 7 chip variants in the new driver.
Just wanted to nip it in the bud before it causes any wasted time
discussing it. :)
--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-08 18:06 ` Jeff Garzik
@ 2007-07-08 19:24 ` Andrew Grover
2007-07-09 17:56 ` Jeff Garzik
2007-07-08 20:05 ` Arjan van de Ven
1 sibling, 1 reply; 67+ messages in thread
From: Andrew Grover @ 2007-07-08 19:24 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mark McLoughlin, Kok, Auke, David S. Miller, e1000-devel,
Arjan van de Ven, Ronciak, John, Christoph Hellwig, netdev,
Francois Romieu, Andrew Morton, Stephen Hemminger, Jason Lunz,
Andy Gospodarek
On 7/8/07, Jeff Garzik <jeff@garzik.org> wrote:
> * e1000 gets feedback
> * Intel disappears for months
> * Intel reappears with e1000 rewrite
* you ask them for another complete (simpler) rewrite
> * Intel fights tooth and nail when the driver is not accepted verboten
I don't think it must be as-is (i.e. replacing e1000 for all HW) but
don't throw away all the work they've done in architecting the driver
to cleanly handle multiple chip generations.
How about:
1) Considering e1000new's current design, but for ICH9 only
2) test test test
3) Sometime in the future, considering incrementally moving previous
PCIe generations' support from e1000 to e1000new (like I initially
wanted, since that at least means there would be some technical reason
for where the split occurs :-)
Regards -- Andy
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-08 18:06 ` Jeff Garzik
2007-07-08 19:24 ` Andrew Grover
@ 2007-07-08 20:05 ` Arjan van de Ven
2007-07-09 18:39 ` Jeff Garzik
1 sibling, 1 reply; 67+ messages in thread
From: Arjan van de Ven @ 2007-07-08 20:05 UTC (permalink / raw)
To: Jeff Garzik
Cc: Stephen Hemminger, Kok, Auke, Francois Romieu, Christoph Hellwig,
Andrew Grover, Andrew Morton, Jason Lunz, Mark McLoughlin,
e1000-devel, netdev, Ronciak, John, David S. Miller,
Andy Gospodarek
Jeff Garzik wrote:
> Arjan van de Ven wrote:
>> I'd second this; also lets be honest and fair about things and use a
>> similar standard for all drivers; are we going to ask all driver
>> submitters to remove NAPI, TSO and other stuff? I would hope not. Are
>
> That was merely a suggestion. My general meaning was "small driver is
> easier to get into the kernel and into the field."
it didn't quite come across as a suggestion, but if it was only a
suggestion then ok; it's not really a practical option.
>> all new drivers that have even a single bitfield going to be rejected?
>> That's be a new rule but ok, if it applies to all drivers it's fair.
>
> That's one of a gazillion checklist items that a new driver has to pass
> through. You know how it works for new drivers.
>
> "it looks better than our last try" and "it looks better than that ugly
> driver over there" does not grant you a free pass on review.
I know how it works for new drivers; they need to be good enough to
maintain forward and form a burden on the stack/maintainers. Any
remaining items need to be small enough to not be a 'risk' for users.
>> What is there now is a driver that works, is relatively clean (and yes
>> if you look deep enough you can ALWAYS nitpick on any code, even
>> Linus' or Jeff's best code) and provides good performance with all the
>> features a modern ethernet driver is supposed to have.
>
> Is this is the attitude, what's the point of even posting the driver for
> review? Intel posted e1000new on June 29. Feedback was then posted.
and feedback is being incorperated.
> Ten days later, without a single revision, Intel declares its own driver
> clean and working and good enough for merging as-is.
No. Arjan looked at driver and sees a rather clean driver compared to
some of the other recently merged drivers, sees a list of relatively
simple todos (some of which obviously aren't merge stoppers, others
are) and hopes that this driver will be treated objectively without
the appearance of having different levels of bars depending on what
your email address ends with.
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-07-08 18:20 ` Jeff Garzik
@ 2007-07-08 20:14 ` Arjan van de Ven
2007-07-08 22:01 ` [E1000-devel] " Jonathan Lundell
0 siblings, 1 reply; 67+ messages in thread
From: Arjan van de Ven @ 2007-07-08 20:14 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mark McLoughlin, Kok, Auke, e1000-devel, netdev, Ronciak, John,
Andrew Morton, Jason Lunz
> I reject the notion that a "flag day" switchover for a huge mass of
> e1000 users is the correct path. I do not think that best serves Linux
> users.
so the options we have is do it one pci id a time; and the suggestion
by others like Christoph has been to make the split at the PCI Express
switchover. Do you agree with that approach?
>
>> I appreciate the pain a temporary dual driver situation gives; it
>> comes down to a few things that I can think of right now, if you see
>> more please add to the list.
>>
>> 1) users who find a bug in the new one silently use the old one rather
>> than reporting the bug; and only scream when the old one eventually
>> goes away (see ALSA/OSS duplication)
>>
>> 2) users who enable both in KConfig may get a "random" one
>>
>> 3) distros really prefer only 1 driver per PCI ID for their
>> infrastructure tools
>>
>> 4) there will be resistance against deleting the old one meaning it
>> might not happen
>
> You are missing the largest source of pain and headache: Users will use
> the default driver, which means no field testing at all until flag day,
> with obvious results.
which is why the proposal that was below the text you quoted talks
about working with the distro kernel maintainers and get the new
driver default for their development releases etc etc.... that adds
a significant level of granularity. For example I'd not be surprised
if Fedora and Ubuntu test releases have orders of magnitude more users
than kernel.org "self compiloe" kernels.
> Furthermore, Linux kernel history demonstrates that "temporary dual
> driver situations" are rarely temporary. Thus, selling it as such in
> the face of all contrary experience is pure hyperbole.
history also demonstrates it can be done (just look at Adrian Bunk and
the OSS drivers) as long as someone is determined to do it. It's not
easy, especially cases where the two drivers have different
maintainers who disagree, or represent different
interfaces/functionality; but it's very not impossible either.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: [E1000-devel] RFR: New e1000 driver (e1000new), was: Re: e1000: backport ich9 support from 7.5.5 ?
2007-07-08 20:14 ` Arjan van de Ven
@ 2007-07-08 22:01 ` Jonathan Lundell
0 siblings, 0 replies; 67+ messages in thread
From: Jonathan Lundell @ 2007-07-08 22:01 UTC (permalink / raw)
To: Arjan van de Ven
Cc: Jeff Garzik, Mark McLoughlin, Kok, Auke, e1000-devel, netdev,
Ronciak, John, Andrew Morton, Jason Lunz
On Jul 8, 2007, at 1:14 PM, Arjan van de Ven wrote:
>> I reject the notion that a "flag day" switchover for a huge mass of
>> e1000 users is the correct path. I do not think that best serves
>> Linux
>> users.
>
> so the options we have is do it one pci id a time; and the suggestion
> by others like Christoph has been to make the split at the PCI Express
> switchover. Do you agree with that approach?
My preference, as someone who has to support pretty much all
generations of e1000-supported hardware in the field running critical
applications is for a single well-structured driver. Qualifying a new
release of the driver is a big deal, and having to qualify two of
them doesn't really appeal to me.
We're seeing at least a couple of generations of mainboard that will
have both PCIe and PCI-X slots (and adapters) in them, so even in the
same box a PCIe split would require us to use both drivers. If
splitting the driver really makes for substantial simplification of
both, I suppose that's a compensating benefit, but it's not purely
beneficial.
The e1000 driver (and the team behind it) has been a blessing to our
business. Whatever they're doing right, I'd like to see them keep
doing it.
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-08 19:24 ` Andrew Grover
@ 2007-07-09 17:56 ` Jeff Garzik
0 siblings, 0 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-07-09 17:56 UTC (permalink / raw)
To: Andrew Grover
Cc: Mark McLoughlin, Kok, Auke, David S. Miller, e1000-devel,
Arjan van de Ven, Ronciak, John, Christoph Hellwig, netdev,
Francois Romieu, Andrew Morton, Stephen Hemminger, Jason Lunz,
Andy Gospodarek
Andrew Grover wrote:
> On 7/8/07, Jeff Garzik <jeff@garzik.org> wrote:
>> * e1000 gets feedback
>> * Intel disappears for months
>> * Intel reappears with e1000 rewrite
>
> * you ask them for another complete (simpler) rewrite
>
>> * Intel fights tooth and nail when the driver is not accepted verboten
>
> I don't think it must be as-is (i.e. replacing e1000 for all HW) but
> don't throw away all the work they've done in architecting the driver
> to cleanly handle multiple chip generations.
>
> How about:
>
> 1) Considering e1000new's current design, but for ICH9 only
> 2) test test test
> 3) Sometime in the future, considering incrementally moving previous
> PCIe generations' support from e1000 to e1000new (like I initially
> wanted, since that at least means there would be some technical reason
> for where the split occurs :-)
That plan would be fine... as long as the e1000new driver internals
were restructured as I've been describing.
If one arrives at a driver containing an internal API that is flexible
enough to implement support for almost -any- NIC, then that's a sign
that it needs to be organized in a different fashion.
Jeff
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-08 20:05 ` Arjan van de Ven
@ 2007-07-09 18:39 ` Jeff Garzik
2007-07-09 18:46 ` Stephen Hemminger
` (2 more replies)
0 siblings, 3 replies; 67+ messages in thread
From: Jeff Garzik @ 2007-07-09 18:39 UTC (permalink / raw)
To: Arjan van de Ven, Kok, Auke
Cc: e1000-devel, netdev, Christoph Hellwig, Ronciak, John,
Andrew Grover, Francois Romieu, Andrew Morton, Stephen Hemminger,
David S. Miller, Andy Gospodarek
Arjan van de Ven wrote:
> Jeff Garzik wrote:
>> Is this is the attitude, what's the point of even posting the driver
>> for review? Intel posted e1000new on June 29. Feedback was then posted.
>
> and feedback is being incorperated.
>
>> Ten days later, without a single revision, Intel declares its own
>> driver clean and working and good enough for merging as-is.
>
> No. Arjan looked at driver and sees a rather clean driver compared to
> some of the other recently merged drivers, sees a list of relatively
> simple todos (some of which obviously aren't merge stoppers, others are)
> and hopes that this driver will be treated objectively without the
> appearance of having different levels of bars depending on what your
> email address ends with.
Ignoring small potatoes, the merge stoppers in my mind are:
1) Transition plan. I strongly oppose switching all e1000 users en
masse to a new driver, especially so soon. Flag day transitions to
unproven drivers suck. Defaults don't work: users use the old driver
until the default changes, which means the new driver gets little field
testing.
Regardless of my opinion of old-e1000 maintainability, top priority is
to keep users running on a stable driver until new driver is stable. I
would propose merging a new driver with only the PCI IDs not already in
the kernel, get that stable, then consider moving the rest of the
PCI-Express PCI IDs (or others?).
2) Internal API. An "it can do anything" API is a hint that the driver
should be structured differently. Perhaps a divorce between pre-PCIe
and PCIe will help things (or 8257x vs other?). I tend to think that
both e1000 and e1000new could be cleaned up substantially by such a
split. Also, specifically for PHYs, we already have a phy layer that
can be used a focal point for PHY modularity.
Overall, within minor chip revs you'll probably create standard
branches. But within major chip revs, you really should be looking at
separate code paths rather than trying to shoehorn a wide variety of
chips down the same (highly modular!) hot path. That slows down
everybody to the same speed (least common denominator), and makes it
more difficult to follow the code path for a single chip.
If the chips are sufficiently different, it is better to write two
distinct RX/TX/etc. code paths than to create a single, highly modular
yet highly dense code path. Easier to read. Easier to tune. Easier to
leave chip errata behind, as time progresses.
3) Looming over everything else, is I wonder if Intel has recognized
that a maintainership problem exists: lack of ongoing cleanups and lack
of "focus" on issues not directly related to enabling new features?
My only "bias" against Intel is that I am -nervous- that past history
will continue, with regards to the "stuff it into the driver and move
on" driver maintenance regime. Even most clean driver in the world will
fall upon hard times if under-maintained.
Receiving feedback, disappearing for months, and then reappearing with
"blessed" changes is not adequate. netdev@vger.kernel.org and
netdev-2.6.git need to be the primary vehicle for e1000[new]
development, maintained through small incremental changes streaming into
the kernel. (though I do understand the constraints of hardware
go-public release dates)
Jeff
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-09 18:39 ` Jeff Garzik
@ 2007-07-09 18:46 ` Stephen Hemminger
2007-07-09 19:36 ` Arjan van de Ven
2007-07-09 20:46 ` Kok, Auke
2 siblings, 0 replies; 67+ messages in thread
From: Stephen Hemminger @ 2007-07-09 18:46 UTC (permalink / raw)
To: Jeff Garzik
Cc: Kok, Auke, e1000-devel, netdev, Christoph Hellwig, Ronciak, John,
Andy, Andrew Grover, Francois Romieu, Andrew Morton,
Arjan van de Ven, David S. Miller, Gospodarek
Let me ask a different question. Why do we have some many user reported
problems with network drivers, not just the E1000's?
Is it lack of specifications? test infrastructure?
Or as I suspect lots of it has to with the myriad of chip revisions, including
cases where designs get reworked by OEM's.
If the problem were more understood, then the community would have more confidence
with new drivers and other changes.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-09 18:39 ` Jeff Garzik
2007-07-09 18:46 ` Stephen Hemminger
@ 2007-07-09 19:36 ` Arjan van de Ven
2007-07-09 20:46 ` Kok, Auke
2 siblings, 0 replies; 67+ messages in thread
From: Arjan van de Ven @ 2007-07-09 19:36 UTC (permalink / raw)
To: Jeff Garzik
Cc: Kok, Auke, Stephen Hemminger, Francois Romieu, Christoph Hellwig,
Andrew Grover, Andrew Morton, e1000-devel, netdev, Ronciak, John,
David S. Miller, Andy Gospodarek
Jeff Garzik wrote:
<I'll leave the first two to Auke; the discussion I had with Auke on
Friday was that he felt that a lot of the "ugly" stuff you complained
about will go away if there is a PCI-E/older split, the PCI-E cards
are more or less of the same "major generation", while pre-PCI-E is
different>
> 3) Looming over everything else, is I wonder if Intel has recognized
> that a maintainership problem exists: lack of ongoing cleanups and lack
> of "focus" on issues not directly related to enabling new features?
>
> My only "bias" against Intel is that I am -nervous- that past history
> will continue, with regards to the "stuff it into the driver and move
> on" driver maintenance regime. Even most clean driver in the world will
> fall upon hard times if under-maintained.
We (the Intel people on this mail and various others inside Intel)
have been working hard to fix this issue several levels of management
up in the networking group and I am confident we have all the buy-in
to do the right thing now, and Auke has the time to do this. This was
quite an effort at Intel-internal politics, and that's obviously
something you don't (want to) care about or should have to care
about.... but the end result is that finally in the last month or two
things changed enough that I feel that the maintenance issue can be
done right. The flipside sort of is that there needs to be a chance to
prove this ;)
(and if you feel that it's not working please contact me so that I can
re-escalate things; I'll also be monitoring how things go)
> Receiving feedback, disappearing for months, and then reappearing with
> "blessed" changes is not adequate. netdev@vger.kernel.org and
> netdev-2.6.git need to be the primary vehicle for e1000[new]
> development, maintained through small incremental changes streaming into
> the kernel. (though I do understand the constraints of hardware
> go-public release dates)
Actually the biggest constraint for new hardware support is having
working prototypes ;-)
The market is such that there may be only a short time between having
a working prototype and a launch. (Before that there are design specs
of course, but reality is that unless you can do basic unit testing
shipping code for such new things is not a good thing, the chance of
things "just working" is obviously pretty low).
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-09 18:39 ` Jeff Garzik
2007-07-09 18:46 ` Stephen Hemminger
2007-07-09 19:36 ` Arjan van de Ven
@ 2007-07-09 20:46 ` Kok, Auke
2007-07-09 22:26 ` Jeff Garzik
2 siblings, 1 reply; 67+ messages in thread
From: Kok, Auke @ 2007-07-09 20:46 UTC (permalink / raw)
To: Jeff Garzik
Cc: Arjan van de Ven, Kok, Auke, Stephen Hemminger, Francois Romieu,
Christoph Hellwig, Andrew Grover, Andrew Morton, e1000-devel,
netdev, Ronciak, John, David S. Miller, Andy Gospodarek
Jeff Garzik wrote:
> Ignoring small potatoes, the merge stoppers in my mind are:
>
> 1) Transition plan. I strongly oppose switching all e1000 users en
> masse to a new driver, especially so soon. Flag day transitions to
> unproven drivers suck. Defaults don't work: users use the old driver
> until the default changes, which means the new driver gets little field
> testing.
>
> Regardless of my opinion of old-e1000 maintainability, top priority is
> to keep users running on a stable driver until new driver is stable. I
> would propose merging a new driver with only the PCI IDs not already in
> the kernel, get that stable, then consider moving the rest of the
> PCI-Express PCI IDs (or others?).
I would strongly vote for taking a stripped down e1000new then, mask out all the
pci id's except ich9, remove all code for pre-pci-e silicon and remove the most
annoying and needlessly complexing code like the semi-implemented multiqueue
code that is in there.
How we are going to improve the internal api then can subsequently be done
upstream in steps: implement using phylib, reorganize the code. This would give
the community a view on the progress.
I fear that if I spend yet another 2 months offline working on making a minimal
ich9 driver I will lose even more time and patience: Even though the current
driver (with pre-pci-e stripped) might not be as nice as you want, at least we
can work together on it. I would rather go with something I know that works,
isn't too bad, and we have time and start reviewing upstream immediately.
> 2) Internal API. An "it can do anything" API is a hint that the driver
> should be structured differently. Perhaps a divorce between pre-PCIe
> and PCIe will help things (or 8257x vs other?). I tend to think that
> both e1000 and e1000new could be cleaned up substantially by such a
> split. Also, specifically for PHYs, we already have a phy layer that
> can be used a focal point for PHY modularity.
Agreed. All current e1000 pci-e hardware is based on the same mac, so it's the
logical split. The differences are PHYs and manageability, but the interface is
rather similar throughout, as well as features.
> Overall, within minor chip revs you'll probably create standard
> branches. But within major chip revs, you really should be looking at
> separate code paths rather than trying to shoehorn a wide variety of
> chips down the same (highly modular!) hot path. That slows down
> everybody to the same speed (least common denominator), and makes it
> more difficult to follow the code path for a single chip.
looking at this with respect to e1000e (a pci-e only e1000 driver) - this would
make perfect sense: most of the irq and rx/tx paths are identical across the
board. So this confirms IMO that we should not split beyond this.
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-09 20:46 ` Kok, Auke
@ 2007-07-09 22:26 ` Jeff Garzik
2007-07-13 21:45 ` Kok, Auke
0 siblings, 1 reply; 67+ messages in thread
From: Jeff Garzik @ 2007-07-09 22:26 UTC (permalink / raw)
To: Kok, Auke
Cc: e1000-devel, Arjan van de Ven, Ronciak, John, Christoph Hellwig,
netdev, Andrew Grover, Francois Romieu, Andrew Morton,
Stephen Hemminger, David S. Miller, Andy Gospodarek
Kok, Auke wrote:
> I would strongly vote for taking a stripped down e1000new then, mask out
> all the pci id's except ich9, remove all code for pre-pci-e silicon and
> remove the most annoying and needlessly complexing code like the
> semi-implemented multiqueue code that is in there.
I'm fine for that as a path forward. I would think that would zap a lot
of the hooks.
> How we are going to improve the internal api then can subsequently be
> done upstream in steps: implement using phylib, reorganize the code.
> This would give the community a view on the progress.
>
> I fear that if I spend yet another 2 months offline working on making a
> minimal ich9 driver I will lose even more time and patience: Even though
> the current driver (with pre-pci-e stripped) might not be as nice as you
> want, at least we can work together on it. I would rather go with
> something I know that works, isn't too bad, and we have time and start
> reviewing upstream immediately.
"minimal ich9 driver" is more a metaphor, describing the seed from which
a clean driver would logically grow: imagine a minimal ich9 driver,
then add TSO, add support for other PCI-e phys, etc. Whether you do
this exercise in your head or on the computer makes no difference, as
long as you can see what the end result should look like.
Not asking for yet another driver... Start with e1000new or whatever
base you like. Post driver for review, get feedback, update, lather,
rinse, repeat. If we're all responsive, it should not take long at all
to get something upstream-mergeable. Solve the "big potato" issues
especially :)
> Agreed. All current e1000 pci-e hardware is based on the same mac, so
> it's the logical split. The differences are PHYs and manageability, but
OK
Jeff
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-09 22:26 ` Jeff Garzik
@ 2007-07-13 21:45 ` Kok, Auke
2007-07-13 22:08 ` Jeff Garzik
0 siblings, 1 reply; 67+ messages in thread
From: Kok, Auke @ 2007-07-13 21:45 UTC (permalink / raw)
To: Jeff Garzik
Cc: Arjan van de Ven, Stephen Hemminger, Francois Romieu,
Christoph Hellwig, Andrew Grover, Andrew Morton, e1000-devel,
netdev, Ronciak, John, David S. Miller, Andy Gospodarek
Jeff Garzik wrote:
> Kok, Auke wrote:
>> I would strongly vote for taking a stripped down e1000new then, mask out
>> all the pci id's except ich9, remove all code for pre-pci-e silicon and
>> remove the most annoying and needlessly complexing code like the
>> semi-implemented multiqueue code that is in there.
>
> I'm fine for that as a path forward. I would think that would zap a lot
> of the hooks.
>
>> How we are going to improve the internal api then can subsequently be
>> done upstream in steps: implement using phylib, reorganize the code.
>> This would give the community a view on the progress.
>>
>> I fear that if I spend yet another 2 months offline working on making a
>> minimal ich9 driver I will lose even more time and patience: Even though
>> the current driver (with pre-pci-e stripped) might not be as nice as you
>> want, at least we can work together on it. I would rather go with
>> something I know that works, isn't too bad, and we have time and start
>> reviewing upstream immediately.
>
> "minimal ich9 driver" is more a metaphor, describing the seed from which
> a clean driver would logically grow: imagine a minimal ich9 driver,
> then add TSO, add support for other PCI-e phys, etc. Whether you do
> this exercise in your head or on the computer makes no difference, as
> long as you can see what the end result should look like.
>
> Not asking for yet another driver... Start with e1000new or whatever
> base you like. Post driver for review, get feedback, update, lather,
> rinse, repeat. If we're all responsive, it should not take long at all
> to get something upstream-mergeable. Solve the "big potato" issues
> especially :)
>
>
>> Agreed. All current e1000 pci-e hardware is based on the same mac, so
>> it's the logical split. The differences are PHYs and manageability, but
>
> OK
Sorry for not replying to this earlier (I was on vacation for 2 days). We had
some internal discussions and all the noses appear to be facing in the proper
direction. I'm very happy with this and it will be my highest priority to make
this work. I will attempt to get a quick start on this and come with a start
point driver as soon as I can. Thanks to everyones who commented!
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-13 21:45 ` Kok, Auke
@ 2007-07-13 22:08 ` Jeff Garzik
2007-07-13 22:13 ` Kok, Auke
0 siblings, 1 reply; 67+ messages in thread
From: Jeff Garzik @ 2007-07-13 22:08 UTC (permalink / raw)
To: Kok, Auke
Cc: e1000-devel, Arjan van de Ven, Ronciak, John, Christoph Hellwig,
netdev, Andrew Grover, Francois Romieu, Andrew Morton,
Stephen Hemminger, David S. Miller, Andy Gospodarek
Kok, Auke wrote:
> Sorry for not replying to this earlier (I was on vacation for 2 days).
> We had some internal discussions and all the noses appear to be facing
> in the proper direction. I'm very happy with this and it will be my
> highest priority to make this work. I will attempt to get a quick start
> on this and come with a start point driver as soon as I can. Thanks to
> everyones who commented!
Sounds good to me. My only further comment would be to agree and
encourage posting of quick-start soon. Don't worry about much beyond
"it works" tests before posting the first public version. We'll
inevitably need a couple more minor revisions before merging, as with
all new drivers.
We all seem to be going in the right direction, so the process should
not take months. I'll make it a priority to review each revision as
soon as possible.
Jeff
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?)
2007-07-13 22:08 ` Jeff Garzik
@ 2007-07-13 22:13 ` Kok, Auke
0 siblings, 0 replies; 67+ messages in thread
From: Kok, Auke @ 2007-07-13 22:13 UTC (permalink / raw)
To: Jeff Garzik
Cc: Arjan van de Ven, Stephen Hemminger, Francois Romieu,
Christoph Hellwig, Andrew Grover, Andrew Morton, e1000-devel,
netdev, Ronciak, John, David S. Miller, Andy Gospodarek
Jeff Garzik wrote:
> Kok, Auke wrote:
>> Sorry for not replying to this earlier (I was on vacation for 2 days).
>> We had some internal discussions and all the noses appear to be facing
>> in the proper direction. I'm very happy with this and it will be my
>> highest priority to make this work. I will attempt to get a quick start
>> on this and come with a start point driver as soon as I can. Thanks to
>> everyones who commented!
>
> Sounds good to me. My only further comment would be to agree and
> encourage posting of quick-start soon. Don't worry about much beyond
> "it works" tests before posting the first public version. We'll
> inevitably need a couple more minor revisions before merging, as with
> all new drivers.
>
> We all seem to be going in the right direction, so the process should
> not take months. I'll make it a priority to review each revision as
> soon as possible.
absolutely.
I personally hope to have a draft ich9 version next week ready. Let's see if I
make that - a lot of people would be happy to get it that soon ;)
Auke
^ permalink raw reply [flat|nested] 67+ messages in thread
end of thread, other threads:[~2007-07-13 22:13 UTC | newest]
Thread overview: 67+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-29 17:29 e1000: backport ich9 support from 7.5.5 ? Mark McLoughlin
2007-06-29 17:50 ` Jason Lunz
2007-06-29 19:51 ` Kok, Auke
2007-06-29 20:22 ` Jason Lunz
2007-06-29 20:59 ` Jeff Garzik
2007-06-30 21:24 ` Mark McLoughlin
2007-07-02 23:52 ` Williams, Mitch A
2007-07-03 0:10 ` Rick Jones
2007-07-03 0:55 ` Jason Lunz
2007-07-03 1:44 ` Kok, Auke
2007-07-03 7:15 ` Christoph Hellwig
2007-07-03 13:13 ` [E1000-devel] " Jeff Garzik
2007-06-29 20:55 ` Jeff Garzik
2007-06-29 21:39 ` Kok, Auke
2007-06-29 22:03 ` Andrew Morton
2007-06-29 22:11 ` Jeff Garzik
2007-06-29 23:24 ` RFR: New e1000 driver (e1000new), was: " Kok, Auke
2007-06-29 23:38 ` Arjan van de Ven
2007-07-08 18:20 ` Jeff Garzik
2007-07-08 20:14 ` Arjan van de Ven
2007-07-08 22:01 ` [E1000-devel] " Jonathan Lundell
2007-06-30 3:32 ` Roland Dreier
2007-07-08 18:20 ` Jeff Garzik
2007-07-06 19:07 ` Jeff Garzik
2007-07-07 0:13 ` Kok, Auke
2007-07-07 12:23 ` James Chapman
2007-07-08 18:41 ` James Chapman
2007-07-07 18:59 ` Andrew Grover
2007-06-29 23:57 ` Andrew Grover
2007-06-30 0:02 ` Andrew Grover
2007-06-30 0:09 ` Jeff Garzik
2007-06-30 1:29 ` Jim McCullough
2007-06-30 1:31 ` Jim McCullough
2007-06-30 2:34 ` [E1000-devel] " Kok, Auke
2007-06-30 2:31 ` Kok, Auke
2007-06-30 8:25 ` Christoph Hellwig
2007-07-03 22:48 ` Splitting e1000 (Was: Re: e1000: backport ich9 support from 7.5.5 ?) Kok, Auke
2007-07-05 18:32 ` Kok, Auke
2007-07-06 0:22 ` Jeff Garzik
2007-07-07 0:14 ` Kok, Auke
2007-07-07 13:58 ` James Chapman
2007-07-07 19:04 ` Francois Romieu
2007-07-07 21:54 ` Kok, Auke
2007-07-08 1:32 ` Stephen Hemminger
2007-07-08 10:07 ` James Chapman
2007-07-08 16:29 ` Arjan van de Ven
2007-07-08 18:06 ` Jeff Garzik
2007-07-08 19:24 ` Andrew Grover
2007-07-09 17:56 ` Jeff Garzik
2007-07-08 20:05 ` Arjan van de Ven
2007-07-09 18:39 ` Jeff Garzik
2007-07-09 18:46 ` Stephen Hemminger
2007-07-09 19:36 ` Arjan van de Ven
2007-07-09 20:46 ` Kok, Auke
2007-07-09 22:26 ` Jeff Garzik
2007-07-13 21:45 ` Kok, Auke
2007-07-13 22:08 ` Jeff Garzik
2007-07-13 22:13 ` Kok, Auke
2007-07-08 18:08 ` Jeff Garzik
2007-07-08 17:41 ` Jeff Garzik
2007-06-30 14:31 ` e1000: backport ich9 support from 7.5.5 ? James Chapman
2007-06-30 16:29 ` Kok, Auke
2007-07-01 10:45 ` James Chapman
2007-06-30 8:26 ` Christoph Hellwig
2007-06-29 22:16 ` Kok, Auke
2007-06-29 22:07 ` Jeff Garzik
2007-06-29 21:39 ` Andy Gospodarek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).