I overheard this interesting tidbit on the WRS mail list this morning!
This is certainly relevant to our situation here.
Jeff
-----Original Message-----
From: the vxWorks Users Group Exploder [SMTP:[email protected]]
Sent: Tuesday, March 23, 1999 9:40 AM
To: [email protected]
Subject: RE: Slow TCP/IP Sockets
Submitted-by owner-vxwexplo-process Tue Mar 23 08:39:32 1999
Submitted-by: "Sowko, Nick" <[email protected]>
TSR #116602 addresses the slow boot problem on Solaris 2.6 (expecially
noticed going from 2.5.1 to 2.6)
TITLE: Why does Solaris 2.6 take so long to boot vxworks?
AUTHOR: David Holloway
SCOPE DISCOVERED ON
HOST: Solaris 2.6 / All Solaris 2.6
------------------- -------------------
ARCHITECTURE: All PowerPC
------------------- -------------------
BSP: All mtx603
------------------- -------------------
PRODUCT / REVISION: N/A vxWorks 5.3.1
------------------- -------------------
DESCRIPTION:
It takes far too long to boot vxworks using a solaris 2.6 ftp
server under the following conditions:
1. when it is rebooted in quick succession.
2. when symbol tables loaded via the network take too long to load.
RESEARCH:
The bootrom uses a local port number to download vxWorks. VxWorks will
attempt to use the same port number to download vxWorks.sym. In accordance
with TCP/IP's proper implementation, after the bootrom's transaction,
Solaris 2.6 still has a connection in a TIME_WAIT state as vxWorks attempts
to download vxWorks.sym. VxWorks must then wait for Solaris 2.6 to time
out before proceeding with its connection. That is the cause for the delay.
Sun Microsystems probably fixed TCP/IP in version 2.6 of Solaris.
The device /dev/tcp has a "quality" modifiable by /usr/sbin/ndd called
tcp_time_wait_interval. Solaris 2.5.1 doesn't seem to pay attention to
this variable, if one changes it to a larger or smaller value then
vxWorks/vxWorks.sym still load without interruption.
RESOLUTION:
If you do not have root access to the solaris ftp server, then
add this to your usrConfig.c. It increments the local port number
so that vxWorks.sym will load more quickly.
/* Right before the call to netLoadSymTbl() */
#ifdef SOLARIS26FTPD /* increment the last used port number by one. */
#include "netinet/in.h"
#include "sockLib.h"
{
int mybsock;
struct sockaddr_in mybsockaddr;
mybsockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
mybsockaddr.sin_port = 0;
mybsockaddr.sin_family = AF_INET;
mybsock = socket(AF_INET, SOCK_STREAM, 0);
bind (mybsock, (struct sockaddr *) &mybsockaddr, sizeof(mybsockaddr));
close(mybsock);
}
#endif /* SOLARIS26 ftp server*/
Note, this would also apply when using a vxworks ftp server to boot other
vxworks targets.
If you do have root access to the solaris ftp server then
decrease the value of tcp_time_wait_interval using /usr/sbin/ndd
example usage:
/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 5000
SPR / PATCH:
KEYWORDS: Solaris 2.6 symbol table boot INCLUDE_NET_SYM_TBL
- Replies:
- Re: FW: slow VxWorks boot under Solaris 2.6 George Vaughn
- Navigate by Date:
- Prev:
Re: Interrupt message Marty Kraimer
- Next:
Re: FW: slow VxWorks boot under Solaris 2.6 George Vaughn
- Index:
1994
1995
1996
1997
1998
<1999>
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Time Stamping Ned Arnold
- Next:
Re: FW: slow VxWorks boot under Solaris 2.6 George Vaughn
- Index:
1994
1995
1996
1997
1998
<1999>
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|