From: Tim Bird <tim.bird@am.sony.com>
To: Robert Schwebel <r.schwebel@pengutronix.de>
Cc: Denys Vlasenko <vda.linux@googlemail.com>,
linux-kernel@vger.kernel.org, linux-embedded@vger.kernel.org,
Arjan van de Ven <arjan@linux.intel.com>,
kernel@pengutronix.de
Subject: Re: New fast(?)-boot results on ARM
Date: Mon, 17 Aug 2009 12:15:12 -0700 [thread overview]
Message-ID: <4A89AC40.2040109@am.sony.com> (raw)
In-Reply-To: <20090814204305.GA31727@pengutronix.de>
Robert Schwebel wrote:
> On Fri, Aug 14, 2009 at 10:04:57PM +0200, Denys Vlasenko wrote:
>>> [ �5.082616] < �0.007992> RPC: Registered tcp transport module.
>>> [ �5.605159] < �0.522543> eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX.
>>> [ �6.602621] < �0.997462> IP-Config: Complete:
>>> [ �6.606638] < �0.004017> � � �device=eth0, addr=192.168.23.197, mask=255.255.0.0, gw=192.168.23.2,
>>> [ �6.614588] < �0.007950> � � �host=192.168.23.197, domain=, nis-domain=(none),
>>> [ �6.618652] < �0.004064> � � �bootserver=192.168.23.2, rootserver=192.168.23.2, rootpath=
>> Well, this ~1 second is not really kernel's fault, it's DHCP delay.
>> But, do you need to do it at this moment?
>> You do not seem to be using networking filesystems.
>> You can run DHCP client in userspace.
>
> The board has ip autoconfig configured in, because we also use tftp/nfs
> boot for development. But it had been disabled on the commandline:
>
> ip=192.168.23.197:192.168.23.2:192.168.23.2:255.255.0.0:::
>
> That shouldn't do dhcp, right?
I think it doesn't, but I'm not positive. The DHCP trasmissions
themselves don't take very long. There are some very long timeouts
in the network code paths, which appear to be used whether you specify
a static address or not.
See the definitions of CONF_PRE_OPEN and CON_POST_OPEN
in net/ipv4/ipconfig.c
They are set to ridiculously long values. In my experience,
you can cut them down considerably with no dangerous side
effects (but I haven't asked the network guys about the
possible downsides).
Here's a patch which I've used in the past. (Sorry
if it doesn't apply cleanly, I just extracted it from
a PDF and the whitespace may have gotten messed up.
It's short enough that you can hand-edit the files if
there's a problem.)
I'd like to hear back, if you apply this, whether it shortens
the network startup time for you.
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 42065ff..e42d83f 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -86,8 +86,10 @@
#endif
/* Define the friendly delay before and after opening net devices */
-#define CONF_PRE_OPEN 500 /* Before opening: 1/2 second */
-#define CONF_POST_OPEN 1 /* After opening: 1 second */
+/*#define CONF_PRE_OPEN 500 /* Before opening: 1/2 second */
+/*#define CONF_POST_OPEN 1 /* After opening: 1 second */
+#define CONF_PRE_OPEN 5 /* Before opening: 5 milli seconds */
+#define CONF_POST_OPEN 10 /* After opening: 10 milli seconds */
/* Define the timeout for waiting for a DHCP/BOOTP/RARP reply */
#define CONF_OPEN_RETRIES 2 /* (Re)open devices twice */
@@ -1292,7 +1294,7 @@ static int __init ip_auto_config(void)
return -1;
/* Give drivers a chance to settle */
- ssleep(CONF_POST_OPEN);
+ msleep(CONF_POST_OPEN);
/*
* If the config information is insufficient (e.g., our IP address or
=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================
next prev parent reply other threads:[~2009-08-17 19:16 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-14 17:02 New fast(?)-boot results on ARM Robert Schwebel
2009-08-14 18:19 ` Zan Lynx
2009-08-14 18:46 ` Jamie Lokier
2009-08-14 18:58 ` Robert Schwebel
2009-08-14 18:57 ` Robert Schwebel
2009-08-14 21:01 ` Linus Walleij
2009-08-14 21:15 ` Robert Schwebel
2009-08-14 21:35 ` Zan Lynx
2009-08-15 6:21 ` Artem Bityutskiy
2009-08-14 20:04 ` Denys Vlasenko
2009-08-14 20:43 ` Robert Schwebel
2009-08-15 5:59 ` Dirk Behme
2009-08-15 10:35 ` Johannes Stezenbach
2009-08-18 10:06 ` Marco Stornelli
2009-08-18 10:21 ` Robert Schwebel
2009-08-18 10:34 ` Alex Riesen
2009-08-18 10:44 ` Robert Schwebel
2009-08-18 10:48 ` Alex Riesen
2009-08-18 10:53 ` Robert Schwebel
2009-09-04 16:16 ` Wolfram Sang
2009-09-09 14:33 ` Johannes Stezenbach
2009-09-10 0:03 ` Denys Vlasenko
2009-08-17 19:15 ` Tim Bird [this message]
2009-08-17 22:35 ` new ipdelay= option for faster netboot (was Re: New fast(?)-boot results on ARM) Tim Bird
2009-08-18 1:03 ` new ipdelay= option for faster netboot David Miller
2009-08-18 1:24 ` Tim Bird
2009-08-18 1:27 ` David Miller
2009-08-18 1:40 ` Tim Bird
2009-08-18 1:56 ` David Miller
2009-08-19 11:57 ` Jamie Lokier
2009-08-18 4:56 ` Denys Vlasenko
2009-08-18 5:00 ` David Miller
2009-08-18 1:31 ` Rick Jones
2009-08-18 2:45 ` david
2009-08-18 4:56 ` Willy Tarreau
2009-08-15 6:14 ` New fast(?)-boot results on ARM Artem Bityutskiy
2009-08-18 14:06 ` Sascha Hauer
2009-08-18 15:31 ` Dirk Behme
2009-08-18 16:34 ` Marco Stornelli
2009-08-18 18:23 ` Tim Bird
2009-08-19 7:21 ` Sascha Hauer
2009-08-19 16:20 ` Dirk Behme
2009-08-20 8:57 ` Sascha Hauer
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=4A89AC40.2040109@am.sony.com \
--to=tim.bird@am.sony.com \
--cc=arjan@linux.intel.com \
--cc=kernel@pengutronix.de \
--cc=linux-embedded@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=r.schwebel@pengutronix.de \
--cc=vda.linux@googlemail.com \
/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