netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
To: Matt Mackall <mpm@selenic.com>
Cc: David Miller <davem@davemloft.net>,
	dwmw2@infradead.org, akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	thomas.petazzoni@free-electrons.com, shemminger@vyatta.com,
	jeff@garzik.org, netdev@vger.kernel.org
Subject: Re: [patch 12/12] Configure out ethtool support
Date: Thu, 31 Jul 2008 22:17:01 +0400	[thread overview]
Message-ID: <20080731181658.GA5294@2ka.mipt.ru> (raw)
In-Reply-To: <1217518591.3657.27.camel@calx>

Hi Matt.

On Thu, Jul 31, 2008 at 10:36:31AM -0500, Matt Mackall (mpm@selenic.com) wrote:
> > I especially appreciate that you still haven't accepted the plain fact
> > that CONFIG_ETHTOOL needs to be selected by CONFIG_INET.
> 
> So far the following features have been mentioned as being critically
> dependent on ethtool:
> 
> - bridging
> - bonding
> - LRO
> - netfilter (really?)
> - IPv6 (really?)
> 
> And yet every single one of these is currently a config option, so your
> above statement is still looking awfully dubious. At this point I'd
> suggest that you've painted yourself into a corner where all these
> options must also actually be mandatory, but I'm afraid you might
> secretly want to do that anyway.

Things not are that simple. If your hardware happend to support
scatter-gather and tx checksumming, and you forgot to add a magic ifdef
into own embedded build of the driver, then sendfile() performance will
be awful. Even more: if you hardcoded negotiation bits into the driver
and happend to plug NIC to the wrong switch, you will have no-to-bad
performance. Even more: there are quite broken switches, which just
freeze the port after some tricky packets sent by nic (for example
several autonegotiation packets). Without ethtool you will not be able
to reset NIC. You will not be able to debug any hardware trouble and/or
set needed hardware bits. If embedded folks are so much care about size,
that they will hardcode all needed parameters for their own network into
the driver, then they can apply this patch on its own tree and do not
compile ethtools.

The only sane way to try to push something like this into the tree is
obviously turned on by default and with very much all needed config
options checked first. I agree with other poster, who recommened to put
a warning into the commented syscalls.


I can recommend another major part to be removed with the same approach
you use with ethtool: netlink. Webcam does not need to install route or
configure interface, it can do it via dhcp in kernel. Embedded folks can
also create a simple module, which will do the same with smaller
overhead. Then you can turn off direct-io and readahead. Webcam does not
need to have either. One can replace scheduler algorithms with something
small and trivial. Webcam should only have init and reading software.
Actually it can do it in init (I personally wrote embedded system, where
only init existed, which was a trivial shell with dozen of commands).
You can also trim block layer by half: embedded system should not be
able to configure device queues at all. Feel free to point to any
subsystem, and there are lots of such 'non-needed' from the fist view
things. But when some troubles start or feature needed, or behaviour is
not expected, uch embedded people start to scream, that everything is so
bad in Linux and it is not suitable and so on...

-- 
	Evgeniy Polyakov

  parent reply	other threads:[~2008-07-31 18:18 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-30 19:39 [patch 12/12] Configure out ethtool support akpm
2008-07-30 20:37 ` Stephen Hemminger
2008-07-30 20:48   ` Thomas Petazzoni
2008-07-30 21:01     ` Stephen Hemminger
2008-07-30 21:35       ` Thomas Petazzoni
2008-07-30 21:48         ` Andrew Morton
2008-07-30 21:52           ` Thomas Petazzoni
2008-07-30 22:04             ` Andrew Morton
2008-07-30 23:35               ` Roland Dreier
2008-07-30 21:57           ` David Miller
2008-07-30 22:13             ` Andrew Morton
2008-07-30 22:33               ` David Miller
2008-07-31 10:39               ` David Woodhouse
2008-07-31 10:43                 ` David Miller
2008-07-31 10:49                   ` David Woodhouse
2008-07-31 10:47                 ` David Miller
2008-07-31 15:36                   ` Matt Mackall
2008-07-31 15:59                     ` Stephen Hemminger
2008-07-31 16:11                       ` Matt Mackall
2008-07-31 18:17                     ` Evgeniy Polyakov [this message]
2008-07-30 21:35 ` David Miller
2008-07-30 21:44   ` Andrew Morton
2008-07-30 22:24   ` Matt Mackall
2008-07-30 22:37     ` David Miller
2008-07-30 23:05       ` Matt Mackall
2008-07-30 23:21         ` David Miller
2008-07-31  1:10           ` Matt Mackall
2008-07-31  1:23             ` David Miller
2008-07-31 10:22               ` Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080731181658.GA5294@2ka.mipt.ru \
    --to=johnpol@2ka.mipt.ru \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=dwmw2@infradead.org \
    --cc=jeff@garzik.org \
    --cc=mpm@selenic.com \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@vyatta.com \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).