Re: [patch] e1000=y && e1000e=m regression fix

From: Willy Tarreau
Date: Fri Apr 11 2008 - 15:31:30 EST


On Fri, Apr 11, 2008 at 01:01:28PM -0600, Matthew Wilcox wrote:
> On Fri, Apr 11, 2008 at 11:51:07AM -0700, Linus Torvalds wrote:
> > Because your version has exactly the same problem that the current code
> > has: it asks questions that aren't sensible to people who don't care. It
> > also keeps the old E1000 name for "PCI chips only", which means that
> > people who just use an old config and ignore new questions will suddenly
> > lose their ability to use the E1000 driver if they have a PCI-E card.
>
> We only support people keeping their old configs after they run 'make
> oldconfig', right? At which point they'd be prompted for E1000_SUPPORT.
> Presumably they'd think "That's odd. I'm sure I had that selected
> before", then select it. Then oldconfig skips over CONFIG_E1000 because
> it already knows the answer to that one and they're prompted with a
> question about PCIe support. Now something is clearly strange. Perhaps
> they look at the help text at this point and it says to go with 'Y' or
> 'M' if they're not sure.

I don't think this will happen like that. People will simply think as
usual "ah, they have added support for new hardware, but since everything
in my machine was supported, I don't need it".

I think that the correct solution to help people is not at build time,
but at run time. The e1000 driver should just *check* if there are PCI-IDs
that it used to manage and that it does not anymore, for unclaimed devices,
and report a warning message clearly indicating that these devices are not
handled anymore and that for this, the user must load e1000e. It will :

a) help people know what to load if they need to update modprobe.conf
b) just require a new "make menuconfig;make modules" after the poor guy
has been caught.

It's not a problem to have to tweak the config and reboot several times,
provided that the user is guided. Almost none of us has ever blindly
upgraded without a few post-boot adjustments.

> That's the most important bit of help texts for me. Do I want Control
> Groups? Will my machine break if I don't select them? I have no idea
> what a 'process cgroup subsystem' is, and I don't care. But the help
> text tells me I can say "n" and nothing will break.

Here if people don't know, they will reply "no" too.

> > So most users:
> > - want to just say "E1000", and not care about type.
> > - want to have old configurations continue working (ie if you haev had
> > "E1000" driving your hardware before, it should _continue_ to do so,
> > with no need to select a _new_ E1000E question!
> >
> > Nobody wants to care deeply whether it's a PCI-E or PCI chip. In fact,
> > it's almost impossible to tell. Here, quickly, tell me which one mine is
> > (this is from /sbin/lspci):
> >
> > 00:19.0 Ethernet controller: Intel Corporation 82566DM Gigabit Network Connection (rev 02)
>
> I quite agree. I have no idea either. All I know is that my ICH9 box
> didn't work until e1000e was released ;-)

I'm pretty sure it's PCI-E, because Linus got caught first ;-) But of
course, that should not be an accepted guess method.

Willy

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/