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)