EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: RE: no space in pool for a new client (below max block thresh) in EPICS R3.14.12
From: "Jeff Hill" <[email protected]>
To: "'Ernest L. Williams Jr.'" <[email protected]>, "'Andrew Johnson'" <[email protected]>
Cc: "'Eric Norum'" <[email protected]>, [email protected]
Date: Fri, 11 Feb 2011 10:50:10 -0700
Hi Ernest,

> CAS: no space in pool for a new client (below max block thresh)

This happens when osiSufficentSpaceInPool return FALSE. The CA server tries
its best to not use the very last bit of memory (of RAM), and it calls
osiSufficentSpaceInPool to find out when it's getting too close to the end.

If its vxWorks or RTEMS it may be that your IOC is in a RAM limited
situation, or its system pool is severely fragmented. Also, the RTEMS
implementation of osiSufficentSpaceInPool is more recent than the vxWorks
version (which is probably unmodified since the early 90s).

On other OS we currently assume that running out of RAM isn't much of an
issue because of page files, and or no one has taken time to implement a
better approach, so osiSufficentSpaceInPool always returns TRUE.

On RTEMS:

/*
 * osiSufficentSpaceInPool ()
 */
epicsShareFunc int epicsShareAPI osiSufficentSpaceInPool ( size_t
contiguousBlockSize )
{
    rtems_malloc_statistics_t s;
    unsigned long n;

    malloc_get_statistics(&s);
    n = s.space_available - (unsigned long)(s.lifetime_allocated -
s.lifetime_freed);
    return (n > (50000 + contiguousBlockSize));
}

On vxWorks:
/*
 * osiSufficentSpaceInPool () 
 */
epicsShareFunc int epicsShareAPI osiSufficentSpaceInPool ( size_t
contiguousBlockSize )
{
    epicsThreadOnce ( &osdMaxBlockOnceler, osdSufficentSpaceInPoolInit, 0 );

    if ( UINT_MAX - 100000u >= contiguousBlockSize ) {
        return ( osdMaxBlockSize > 100000 + contiguousBlockSize );
    }
    else {
        return 0;
    }
}

Jeff
______________________________________________________
Jeffrey O. Hill           Email        [email protected]
LANL MS H820              Voice        505 665 1831
Los Alamos NM 87545 USA   FAX          505 665 5107

Message content: TSPA

With sufficient thrust, pigs fly just fine. However, this is
not necessarily a good idea. It is hard to be sure where they
are going to land, and it could be dangerous sitting under them
as they fly overhead. -- RFC 1925


> -----Original Message-----
> From: Ernest L. Williams Jr. [mailto:[email protected]]
> Sent: Friday, February 11, 2011 9:39 AM
> To: Jeff Hill; Andrew Johnson
> Cc: Ernest L. Williams Jr.; Eric Bjorklund
> Subject: CAS: no space in pool for a new client (below max block thresh)
> in EPICS R3.14.12
> 
> Hi Jeff,
> 
> What vxWorks resource must I increase to address this message after
> booting my Petium4 VME IOC running EPICS R3.14.12?
> 
> I get the following: CAS: no space in pool for a new client (below max
> block thresh)
> 
> 
> iocInit
> iocInit: Reached initHookAtIocBuild
> Starting iocInit
> iocInit: Reached initHookAtBeginning
> ##########################################################################
> ##
> ## EPICS R3.14.12-SLAC_1 $Date: 2010/11/27 17:57:27 $
> ## EPICS Base built Feb 11 2011
> ##########################################################################
> ##
> iocInit: Reached initHookAfterCallbackInit
> iocInit: Reached initHookAfterCaLinkInit
> iocInit: Reached initHookAfterInitDrvSup
> iocInit: Reached initHookAfterInitRecSup
> iocInit: Reached initHookAfterInitDevSup
> iocInit: Reached initHookAfterInitDatabase
> iocInit: Reached initHookAfterFinishDevSup
> iocInit: Reached initHookAfterScanInit
> iocInit: Reached initHookAfterInitialProcess
> CAS: no space in pool for a new client (below max block thresh)



Replies:
Re: no space in pool for a new client (below max block thresh) in EPICS R3.14.12 Ernest L. Williams Jr.

Navigate by Date:
Prev: RE: USB4000 David Beauregard
Next: Re: no space in pool for a new client (below max block thresh) in EPICS R3.14.12 Ernest L. Williams Jr.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: soft ioc runs into fatal exception (base-3.14.12) Andrew Johnson
Next: Re: no space in pool for a new client (below max block thresh) in EPICS R3.14.12 Ernest L. Williams Jr.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·