EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Buffer problems
From: "Ronald L. Sluiter" <[email protected]>
To: Mark Rivers <[email protected]>
Cc: "Kevin M. Peterson" <[email protected]>, [email protected]
Date: Tue, 06 Apr 2004 12:29:17 -0500
The following is from an old copy of the "ei" driver, but it
may still be relevant.  As can be seen below, the "command
field frozen" error message is from a software timeout that
indicates the 82596 ethernet chip is unresponsive.

/* ei82596End.c - END style Intel 82596 Ethernet network interface driver */

/* Copyright 1989-2000 Wind River Systems, Inc. */
#include "copyright_wrs.h"

/*
modification history
--------------------
02a,11jun00,ham  removed reference to etherLib.
01z,27jan00,dat  fixed use of NULL
...      ...    ...
...      ...    ...
/*******************************************************************************
*
* ei82596Command - deliver a command to the 82596 via SCB
*
* This function causes the device to execute a command.  It should be called
* with interrupts from the device disabled.  An error status is returned if
* the command field does not return to zero, from a previous command, in a
* reasonable amount of time.
*/

LOCAL STATUS ei82596Command(END_CTRL * pDrvCtrl, UINT16 cmd)
{
   int loopy;
   SCB *pScb;

pScb = pDrvCtrl->pScb;

   for(loopy = 0x8000; loopy--;)
   {
   if(pScb->scbCommand == 0)  /* wait for cmd zero */
       break;
   }

   if(loopy > 0)
   {
   pScb->scbCommand = cmd;    /* fill in command */
   sys596ChanAtn(pDrvCtrl->unit);    /* channel attention */
   return(OK);
   }
   else
   {
   logMsg("ei driver: command field frozen\n", 0, 0, 0, 0, 0, 0);
   return(ERROR);
   }
}




Mark Rivers wrote:


Kevin,

I suspect you are seeing the same problem we have seen at Brookhaven.
You can try to reproduce this problem by sending lots of large ping
packets quickly to the IOC.

Here's how I've done it on Mac OSX.



ping -s1500 -l3000 <ioc>



On Linux I think the command is the same. Note that you must be root to do this.

With this command I have managed to irreversibly hang MVME2700 CPUs, so
that they needed to be rebooted.  This happens something like 10-30% of
the time that the ping command is issued.  Other times it causes long
"delays", where the IOC is not capable of network activity, but then it
recovers in 30 seconds or so.

On MVME172 processors I have only managed to induce that latter
behavior, i.e. delays, but not complete hangups requiring reboot.  But I
have not done extensive tests of this.

Mark






References:
RE: Buffer problems Mark Rivers

Navigate by Date:
Prev: RE: Buffer problems Mark Rivers
Next: undefined symbols during download app.munch guobao shen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Buffer problems Mark Rivers
Next: some of my scan tasks are not being processed because of long delays. Thompson, David H.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·