CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Types | Private Attributes
evf::FUResourceTable Class Reference

#include <FUResourceTable.h>

Inheritance diagram for evf::FUResourceTable:

Public Member Functions

UInt_t allocateResource ()
 
bool buildResource (MemRef_t *bufRef)
 
std::vector< UInt_tcellEvtNumbers () const
 
std::vector< pid_t > cellPrcIds () const
 
std::vector< std::string > cellStates () const
 
std::vector< time_t > cellTimeStamps () const
 
void clear ()
 
std::vector< pid_t > clientPrcIds () const
 
std::string clientPrcIdsAsString () const
 
bool discard (toolbox::task::WorkLoop *workLoop)
 
bool discardDataEvent (MemRef_t *bufRef)
 
bool discardDqmEvent (MemRef_t *bufRef)
 
std::vector< std::string > dqmCellStates () const
 
void dropEvent ()
 
void dumpEvent (evf::FUShmRawCell *cell)
 
 FUResourceTable (bool segmentationMode, UInt_t nbRawCells, UInt_t nbRecoCells, UInt_t nbDqmCells, UInt_t rawCellSize, UInt_t recoCellSize, UInt_t dqmCellSize, BUProxy *bu, SMProxy *sm, log4cplus::Logger logger, unsigned int, EvffedFillerRB *frb, xdaq::Application *) throw (evf::Exception)
 
void halt ()
 
bool handleCrashedEP (UInt_t runNumber, pid_t pid)
 
void initialize (bool segmentationMode, UInt_t nbRawCells, UInt_t nbRecoCells, UInt_t nbDqmCells, UInt_t rawCellSize, UInt_t recoCellSize, UInt_t dqmCellSize) throw (evf::Exception)
 
void injectCRCError ()
 
bool isActive () const
 
bool isLastMessageOfEvent (MemRef_t *bufRef)
 
bool isReadyToShutDown () const
 
void lastResort ()
 
void lock ()
 
UInt_t nbAllocated () const
 
UInt_t nbAllocSent () const
 
UInt_t nbClients () const
 
UInt_t nbCompleted () const
 
UInt_t nbCrcErrors () const
 
UInt_t nbDiscarded () const
 
UInt_t nbEolDiscarded () const
 
UInt_t nbEolPosted () const
 
UInt_t nbErrors () const
 
UInt_t nbFreeSlots () const
 
UInt_t nbLost () const
 
UInt_t nbPending () const
 
UInt_t nbPendingSMDiscards () const
 
UInt_t nbPendingSMDqmDiscards () const
 
UInt_t nbResources () const
 
UInt_t nbSent () const
 
UInt_t nbSentDqm () const
 
UInt_t nbSentError () const
 
void postEndOfLumiSection (MemRef_t *bufRef)
 
void printWorkLoopStatus ()
 
void resetCounters ()
 
void sendAllocate ()
 
bool sendData (toolbox::task::WorkLoop *workLoop)
 
void sendDataEvent (UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
 
void sendDiscard (UInt_t buResourceId)
 
bool sendDqm (toolbox::task::WorkLoop *workLoop)
 
void sendDqmEvent (UInt_t fuDqmId, UInt_t runNumber, UInt_t evtAtUpdate, UInt_t folderId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
 
void sendErrorEvent (UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
 
void sendInitMessage (UInt_t fuResourceId, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
 
void setDoCrcCheck (UInt_t doCrcCheck)
 
void setDoDumpEvents (UInt_t doDumpEvents)
 
void setRunNumber (UInt_t runNumber)
 
void shutDownClients ()
 
void startDiscardWorkLoop () throw (evf::Exception)
 
void startSendDataWorkLoop () throw (evf::Exception)
 
void startSendDqmWorkLoop () throw (evf::Exception)
 
void stop ()
 
UInt_t sumOfSizes () const
 
uint64_t sumOfSquares () const
 
void unlock ()
 
virtual ~FUResourceTable ()
 

Private Types

typedef
toolbox::task::ActionSignature 
ActionSignature_t
 
typedef toolbox::task::WorkLoop WorkLoop_t
 

Private Attributes

bool * acceptSMDataDiscard_
 
int * acceptSMDqmDiscard_
 
xdaq::Application * app_
 
ActionSignature_tasDiscard_
 
ActionSignature_tasSendData_
 
ActionSignature_tasSendDqm_
 
BUProxybu_
 
UInt_t doCrcCheck_
 
UInt_t doDumpEvents_
 
EvffedFillerRBfrb_
 
std::queue< UInt_tfreeResourceIds_
 
bool isActive_
 
bool isHalting_
 
bool isReadyToShutDown_
 
bool isStopping_
 
toolbox::BSem lock_
 
log4cplus::Logger log_
 
UInt_t nbAllocated_
 
UInt_t nbAllocSent_
 
UInt_t nbClientsToShutDown_
 
UInt_t nbCompleted_
 
UInt_t nbCrcErrors_
 
UInt_t nbDiscarded_
 
UInt_t nbDqmCells_
 
UInt_t nbEolDiscarded_
 
UInt_t nbEolPosted_
 
UInt_t nbErrors_
 
UInt_t nbLost_
 
UInt_t nbPending_
 
UInt_t nbPendingSMDiscards_
 
UInt_t nbPendingSMDqmDiscards_
 
UInt_t nbRawCells_
 
UInt_t nbRecoCells_
 
UInt_t nbSent_
 
UInt_t nbSentDqm_
 
UInt_t nbSentError_
 
FUResourceVec_t resources_
 
UInt_t runNumber_
 
FUShmBuffershmBuffer_
 
unsigned int shutdownTimeout_
 
SMProxysm_
 
UInt_t sumOfSizes_
 
uint64_t sumOfSquares_
 
WorkLoop_twlDiscard_
 
WorkLoop_twlSendData_
 
WorkLoop_twlSendDqm_
 

Detailed Description

Definition at line 28 of file FUResourceTable.h.

Member Typedef Documentation

typedef toolbox::task::ActionSignature evf::FUResourceTable::ActionSignature_t
private

Definition at line 213 of file FUResourceTable.h.

typedef toolbox::task::WorkLoop evf::FUResourceTable::WorkLoop_t
private

Definition at line 212 of file FUResourceTable.h.

Constructor & Destructor Documentation

FUResourceTable::FUResourceTable ( bool  segmentationMode,
UInt_t  nbRawCells,
UInt_t  nbRecoCells,
UInt_t  nbDqmCells,
UInt_t  rawCellSize,
UInt_t  recoCellSize,
UInt_t  dqmCellSize,
BUProxy bu,
SMProxy sm,
log4cplus::Logger  logger,
unsigned int  timeout,
EvffedFillerRB frb,
xdaq::Application *  app 
)
throw (evf::Exception
)

Definition at line 34 of file FUResourceTable.cc.

48  : bu_(bu)
49  , sm_(sm)
50  , log_(logger)
51  , wlSendData_(0)
52  , asSendData_(0)
53  , wlSendDqm_(0)
54  , asSendDqm_(0)
55  , wlDiscard_(0)
56  , asDiscard_(0)
57  , shmBuffer_(0)
58  , nbDqmCells_(nbDqmCells)
59  , nbRawCells_(nbRawCells)
60  , nbRecoCells_(nbRecoCells)
63  , doCrcCheck_(1)
64  , shutdownTimeout_(timeout)
65  , nbPending_(0)
67  , isReadyToShutDown_(true)
68  , isActive_(false)
69  , isHalting_(false)
70  , isStopping_(false)
71  , runNumber_(0xffffffff)
72  , lock_(toolbox::BSem::FULL)
73  , frb_(frb)
74  , app_(app)
75 {
76  initialize(segmentationMode,
77  nbRawCells,nbRecoCells,nbDqmCells,
78  rawCellSize,recoCellSize,dqmCellSize);
79 }
std::ostream & logger()
Definition: fwLog.cc:41
xdaq::Application * app_
WorkLoop_t * wlSendData_
FUShmBuffer * shmBuffer_
ActionSignature_t * asDiscard_
ActionSignature_t * asSendData_
EvffedFillerRB * frb_
ActionSignature_t * asSendDqm_
unsigned int shutdownTimeout_
log4cplus::Logger log_
void initialize(bool segmentationMode, UInt_t nbRawCells, UInt_t nbRecoCells, UInt_t nbDqmCells, UInt_t rawCellSize, UInt_t recoCellSize, UInt_t dqmCellSize)
FUResourceTable::~FUResourceTable ( )
virtual

Definition at line 83 of file FUResourceTable.cc.

References evf::FUShmBuffer::releaseSharedMemory().

84 {
85  clear();
86  if(wlSendData_){
87  wlSendData_->cancel();
88  toolbox::task::getWorkLoopFactory()->removeWorkLoop("SendData","waiting");
89  }
90  if(wlSendDqm_){
91  wlSendDqm_->cancel();
92  toolbox::task::getWorkLoopFactory()->removeWorkLoop("SendDqm","waiting");
93  }
94  if(wlDiscard_){
95  wlDiscard_->cancel();
96  toolbox::task::getWorkLoopFactory()->removeWorkLoop("Discard","waiting");
97  }
98  shmdt(shmBuffer_);
100  LOG4CPLUS_INFO(log_,"SHARED MEMORY SUCCESSFULLY RELEASED.");
101  if (0!=acceptSMDataDiscard_) delete [] acceptSMDataDiscard_;
102  if (0!= acceptSMDqmDiscard_) delete [] acceptSMDqmDiscard_;
103 }
static bool releaseSharedMemory()
Definition: FUShmBuffer.cc:969
WorkLoop_t * wlSendData_
FUShmBuffer * shmBuffer_
log4cplus::Logger log_

Member Function Documentation

UInt_t FUResourceTable::allocateResource ( )

Definition at line 442 of file FUResourceTable.cc.

References CommonMethods::lock().

443 {
444  assert(!freeResourceIds_.empty());
445 
446  lock();
447  UInt_t fuResourceId=freeResourceIds_.front();
448  freeResourceIds_.pop();
449  nbPending_++;
450  nbAllocated_++;
451  unlock();
452 
453  return fuResourceId;
454 }
std::queue< UInt_t > freeResourceIds_
unsigned int UInt_t
Definition: FUTypes.h:12
bool FUResourceTable::buildResource ( MemRef_t bufRef)

Definition at line 458 of file FUResourceTable.cc.

References evf::FUResource::allocate(), createPayload::block, evf::FUResource::doCrcCheck(), dumpEvent(), evf::FUResource::fatalError(), evf::FUResource::isAllocated(), evf::FUResource::isComplete(), CommonMethods::lock(), evf::FUResource::nbCrcErrors(), evf::FUResource::nbErrors(), cmsPerfSuiteHarvest::now, evf::FUResource::process(), evf::FUResource::release(), and evf::FUResource::shmCell().

Referenced by evf::FUResourceBroker::I2O_FU_TAKE_Callback().

459 {
460  bool eventComplete=false;
461 
462  I2O_EVENT_DATA_BLOCK_MESSAGE_FRAME *block=
463  (I2O_EVENT_DATA_BLOCK_MESSAGE_FRAME*)bufRef->getDataLocation();
464 
465  UInt_t fuResourceId=(UInt_t)block->fuTransactionId;
466  UInt_t buResourceId=(UInt_t)block->buResourceId;
467  FUResource* resource =resources_[fuResourceId];
468 
469  // allocate resource
470  if (!resource->fatalError()&&!resource->isAllocated()) {
472  resource->allocate(cell);
473  timeval now;
474  gettimeofday(&now,0);
475 
476  frb_->setRBTimeStamp(((uint64_t)(now.tv_sec) << 32) + (uint64_t)(now.tv_usec));
477 
479 
480  if (doCrcCheck_>0&&0==nbAllocated_%doCrcCheck_) resource->doCrcCheck(true);
481  else resource->doCrcCheck(false);
482  }
483 
484 
485  // keep building this resource if it is healthy
486  if (!resource->fatalError()) {
487  resource->process(bufRef);
488  lock();
489  nbErrors_ +=resource->nbErrors();
490  nbCrcErrors_+=resource->nbCrcErrors();
491  unlock();
492 
493  // make resource available for pick-up
494  if (resource->isComplete()) {
495  lock();
496  nbCompleted_++;
497  nbPending_--;
498  unlock();
500  dumpEvent(resource->shmCell());
502  eventComplete=true;
503  }
504 
505  }
506  // bad event, release msg, and the whole resource if this was the last one
507  //else {
508  if (resource->fatalError()) {
509  bool lastMsg=isLastMessageOfEvent(bufRef);
510  if (lastMsg) {
511  shmBuffer_->releaseRawCell(resource->shmCell());
512  resource->release();
513  lock();
514  freeResourceIds_.push(fuResourceId);
515  nbDiscarded_++;
516  nbLost_++;
517  nbPending_--;
518  unlock();
519  bu_->sendDiscard(buResourceId);
520  sendAllocate();
521  }
522  bufRef->release(); // this should now be safe re: appendToSuperFrag as corrupted blocks will be removed...
523  }
524 
525  return eventComplete;
526 }
void process(MemRef_t *bufRef)
Definition: FUResource.cc:144
bool fatalError() const
Definition: FUResource.h:62
void setRBEventCount(uint32_t evtcnt)
void sendDiscard(UInt_t buResourceId)
Definition: BUProxy.cc:121
UInt_t nbErrors(bool reset=true)
Definition: FUResource.cc:800
void releaseRawCell(FUShmRawCell *cell)
Definition: FUShmBuffer.cc:506
std::queue< UInt_t > freeResourceIds_
FUShmBuffer * shmBuffer_
void finishWritingRawCell(FUShmRawCell *cell)
Definition: FUShmBuffer.cc:372
bool isComplete() const
Definition: FUResource.h:146
EvffedFillerRB * frb_
bool isLastMessageOfEvent(MemRef_t *bufRef)
unsigned int UInt_t
Definition: FUTypes.h:12
evf::FUShmRawCell * shmCell()
Definition: FUResource.h:77
unsigned long long uint64_t
Definition: Time.h:15
FUShmRawCell * rawCellToWrite()
Definition: FUShmBuffer.cc:290
bool isAllocated() const
Definition: FUResource.h:63
void doCrcCheck(bool doCrcCheck)
Definition: FUResource.h:58
void dumpEvent(evf::FUShmRawCell *cell)
UInt_t nbCrcErrors(bool reset=true)
Definition: FUResource.cc:809
void setRBTimeStamp(uint64_t ts)
void allocate(FUShmRawCell *shmCell)
Definition: FUResource.cc:88
FUResourceVec_t resources_
vector< UInt_t > FUResourceTable::cellEvtNumbers ( ) const

Definition at line 847 of file FUResourceTable.cc.

References i, n, and query::result.

Referenced by evf::FUResourceBroker::watching().

848 {
849  vector<UInt_t> result;
850  if (0!=shmBuffer_) {
851  UInt_t n=nbResources();
852  shmBuffer_->lock();
853  for (UInt_t i=0;i<n;i++) result.push_back(shmBuffer_->evtNumber(i));
854  shmBuffer_->unlock();
855  }
856  return result;
857 }
int i
Definition: DBlmapReader.cc:9
unsigned int evtNumber(unsigned int index)
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
UInt_t nbResources() const
unsigned int UInt_t
Definition: FUTypes.h:12
vector< pid_t > FUResourceTable::cellPrcIds ( ) const

Definition at line 861 of file FUResourceTable.cc.

References i, n, and query::result.

Referenced by evf::FUResourceBroker::watching().

862 {
863  vector<pid_t> result;
864  if (0!=shmBuffer_) {
865  UInt_t n=nbResources();
866  shmBuffer_->lock();
867  for (UInt_t i=0;i<n;i++) result.push_back(shmBuffer_->evtPrcId(i));
868  shmBuffer_->unlock();
869  }
870  return result;
871 }
int i
Definition: DBlmapReader.cc:9
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
pid_t evtPrcId(unsigned int index)
UInt_t nbResources() const
unsigned int UInt_t
Definition: FUTypes.h:12
vector< string > FUResourceTable::cellStates ( ) const

Definition at line 796 of file FUResourceTable.cc.

References evf::evt::DISCARDING, evf::evt::EMPTY, i, evf::evt::LUMISECTION, n, evf::evt::PROCESSED, evf::evt::PROCESSING, evf::evt::RAWREAD, evf::evt::RAWREADING, evf::evt::RAWWRITING, evf::evt::RAWWRITTEN, evf::evt::RECOWRITING, evf::evt::RECOWRITTEN, query::result, evf::evt::SENDING, evf::evt::SENT, evf::utils::state, evf::evt::STOP, and evf::evt::USEDLS.

797 {
798  vector<string> result;
799  if (0!=shmBuffer_) {
800  UInt_t n=nbResources();
801  shmBuffer_->lock();
802  for (UInt_t i=0;i<n;i++) {
804  if (state==evt::EMPTY) result.push_back("EMPTY");
805  else if (state==evt::STOP) result.push_back("STOP");
806  else if (state==evt::LUMISECTION)result.push_back("LUMISECTION");
807  else if (state==evt::USEDLS) result.push_back("USEDLS");
808  else if (state==evt::RAWWRITING) result.push_back("RAWWRITING");
809  else if (state==evt::RAWWRITTEN) result.push_back("RAWWRITTEN");
810  else if (state==evt::RAWREADING) result.push_back("RAWREADING");
811  else if (state==evt::RAWREAD) result.push_back("RAWREAD");
812  else if (state==evt::PROCESSING) result.push_back("PROCESSING");
813  else if (state==evt::PROCESSED) result.push_back("PROCESSED");
814  else if (state==evt::RECOWRITING)result.push_back("RECOWRITING");
815  else if (state==evt::RECOWRITTEN)result.push_back("RECOWRITTEN");
816  else if (state==evt::SENDING) result.push_back("SENDING");
817  else if (state==evt::SENT) result.push_back("SENT");
818  else if (state==evt::DISCARDING) result.push_back("DISCARDING");
819  }
820  shmBuffer_->unlock();
821  }
822  return result;
823 }
int i
Definition: DBlmapReader.cc:9
evt::State_t evtState(unsigned int index)
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
UInt_t nbResources() const
unsigned int UInt_t
Definition: FUTypes.h:12
char state
Definition: procUtils.cc:75
vector< time_t > FUResourceTable::cellTimeStamps ( ) const

Definition at line 875 of file FUResourceTable.cc.

References i, n, and query::result.

Referenced by evf::FUResourceBroker::watching().

876 {
877  vector<time_t> result;
878  if (0!=shmBuffer_) {
879  UInt_t n=nbResources();
880  shmBuffer_->lock();
881  for (UInt_t i=0;i<n;i++) result.push_back(shmBuffer_->evtTimeStamp(i));
882  shmBuffer_->unlock();
883  }
884  return result;
885 }
int i
Definition: DBlmapReader.cc:9
time_t evtTimeStamp(unsigned int index)
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
UInt_t nbResources() const
unsigned int UInt_t
Definition: FUTypes.h:12
void FUResourceTable::clear ( void  )
vector< pid_t > FUResourceTable::clientPrcIds ( ) const

Definition at line 769 of file FUResourceTable.cc.

References i, n, and query::result.

Referenced by evf::FUResourceBroker::emergencyStop(), and evf::FUResourceBroker::watching().

770 {
771  vector<pid_t> result;
772  if (0!=shmBuffer_) {
773  UInt_t n=nbClients();
774  for (UInt_t i=0;i<n;i++) result.push_back(shmBuffer_->clientPrcId(i));
775  }
776  return result;
777 }
int i
Definition: DBlmapReader.cc:9
pid_t clientPrcId(unsigned int index)
UInt_t nbClients() const
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
unsigned int UInt_t
Definition: FUTypes.h:12
string FUResourceTable::clientPrcIdsAsString ( ) const

Definition at line 781 of file FUResourceTable.cc.

References i, and n.

Referenced by evf::FUResourceBroker::actionPerformed().

782 {
783  stringstream ss;
784  if (0!=shmBuffer_) {
785  UInt_t n=nbClients();
786  for (UInt_t i=0;i<n;i++) {
787  if (i>0) ss<<",";
788  ss<<shmBuffer_->clientPrcId(i);
789  }
790  }
791  return ss.str();
792 }
int i
Definition: DBlmapReader.cc:9
pid_t clientPrcId(unsigned int index)
UInt_t nbClients() const
FUShmBuffer * shmBuffer_
unsigned int UInt_t
Definition: FUTypes.h:12
bool FUResourceTable::discard ( toolbox::task::WorkLoop *  workLoop)

Definition at line 337 of file FUResourceTable.cc.

References evf::FUShmRawCell::buResourceId(), prof2calltree::count, gather_cfg::cout, evf::dqm::EMPTY, evf::FUShmRawCell::fuResourceId(), i, evf::FUShmRawCell::index(), CommonMethods::lock(), n, evf::FUShmBuffer::shm_nattch(), evf::utils::state, evf::evt::STOP, and evf::evt::USEDLS.

Referenced by startDiscardWorkLoop().

338 {
341 
342  bool reschedule =true;
343  bool shutDown =(state==evt::STOP);
344  bool isLumi =(state==evt::USEDLS);
345  UInt_t fuResourceId=cell->fuResourceId();
346  UInt_t buResourceId=cell->buResourceId();
347 
348  // std::cout << "discard loop, state, shutDown, isLumi " << state << " "
349  // << shutDown << " " << isLumi << std::endl;
350  // std::cout << "resource ids " << fuResourceId << " " << buResourceId << std::endl;
351 
352  if (shutDown) {
353  LOG4CPLUS_INFO(log_,"nbClientsToShutDown = "<<nbClientsToShutDown_);
355  if (nbClientsToShutDown_==0) {
356  LOG4CPLUS_INFO(log_,"Don't reschedule discard-workloop.");
357  isActive_ =false;
358  reschedule=false;
359  }
360  }
361 
362  shmBuffer_->discardRawCell(cell);
363  if(isLumi) nbEolDiscarded_++;
364 
365  if (!shutDown && !isLumi) {
366  if(fuResourceId >= nbResources()){
367  LOG4CPLUS_WARN(log_,"cell " << cell->index() << " in state " << state
368  << " scheduled for discard has no associated FU resource ");
369  }
370  else{
371  resources_[fuResourceId]->release();
372  lock();
373  freeResourceIds_.push(fuResourceId);
374  assert(freeResourceIds_.size()<=resources_.size());
375  unlock();
376 
377  if (!isHalting_) {
378  sendDiscard(buResourceId);
380  }
381  }
382  }
383 
384  if (!reschedule) {
385  std::cout << " entered shutdown cycle " << std::endl;
387  UInt_t count=0;
388  while (count<100) {
389  std::cout << " shutdown cycle " <<shmBuffer_->nClients() << " "
390  << FUShmBuffer::shm_nattch(shmBuffer_->shmid()) << std::endl;
391  if (shmBuffer_->nClients()==0&&
393  // isReadyToShutDown_ = true;
394  break;
395  }
396  else {
397  count++;
398  std::cout << " shutdown cycle attempt " << count << std::endl;
399  LOG4CPLUS_DEBUG(log_,"FUResourceTable: Wait for all clients to detach,"
400  <<" nClients="<<shmBuffer_->nClients()
401  <<" nattch="<<FUShmBuffer::shm_nattch(shmBuffer_->shmid())
402  <<" ("<<count<<")");
403  ::usleep(shutdownTimeout_);
404  if(count*shutdownTimeout_ > 10000000)
405  LOG4CPLUS_WARN(log_,"FUResourceTable:LONG Wait (>10s) for all clients to detach,"
406  <<" nClients="<<shmBuffer_->nClients()
407  <<" nattch="<<FUShmBuffer::shm_nattch(shmBuffer_->shmid())
408  <<" ("<<count<<")");
409 
410  }
411  }
412  bool allEmpty = false;
413  std::cout << "Checking if all dqm cells are empty " << std::endl;
414  while(!allEmpty){
416  allEmpty = true;
417  shmBuffer_->lock();
418  for (UInt_t i=0;i<n;i++) {
420  if(state!=dqm::EMPTY) allEmpty = false;
421  }
422  shmBuffer_->unlock();
423  }
424  std::cout << "Making sure there are no dqm pending discards " << std::endl;
425  if(nbPendingSMDqmDiscards_ != 0)
426  {
427  LOG4CPLUS_WARN(log_,"FUResourceTable: pending DQM discards not zero: ="
428  << nbPendingSMDqmDiscards_ << " while cells are all empty. This may cause problems at next start ");
429 
430  }
432  isReadyToShutDown_ = true; // moved here from within the first while loop to make sure the
433  // sendDqm loop has been shut down as well
434  }
435 
436  return reschedule;
437 }
FUShmRawCell * rawCellToDiscard()
Definition: FUShmBuffer.cc:352
int i
Definition: DBlmapReader.cc:9
static int shm_nattch(int shmid)
int shmid() const
Definition: FUShmBuffer.h:68
std::queue< UInt_t > freeResourceIds_
evt::State_t evtState(unsigned int index)
void sendDiscard(UInt_t buResourceId)
void writeRecoEmptyEvent()
Definition: FUShmBuffer.cc:568
FUShmBuffer * shmBuffer_
void discardRawCell(FUShmRawCell *cell)
Definition: FUShmBuffer.cc:456
unsigned int nClients() const
Definition: FUShmBuffer.h:70
UInt_t nbResources() const
dqm::State_t dqmState(unsigned int index)
unsigned int UInt_t
Definition: FUTypes.h:12
void writeDqmEmptyEvent()
Definition: FUShmBuffer.cc:581
char state
Definition: procUtils.cc:75
unsigned int index() const
Definition: FUShmRawCell.h:25
unsigned int shutdownTimeout_
unsigned int fuResourceId() const
Definition: FUShmRawCell.h:26
log4cplus::Logger log_
tuple cout
Definition: gather_cfg.py:41
unsigned int buResourceId() const
Definition: FUShmRawCell.h:27
FUResourceVec_t resources_
bool FUResourceTable::discardDataEvent ( MemRef_t bufRef)

Definition at line 530 of file FUResourceTable.cc.

References CommonMethods::lock(), runTheMatrix::msg, and _I2O_FU_DATA_DISCARD_MESSAGE_FRAME::rbBufferID.

Referenced by evf::FUResourceBroker::I2O_FU_DATA_DISCARD_Callback().

531 {
533  msg=(I2O_FU_DATA_DISCARD_MESSAGE_FRAME*)bufRef->getDataLocation();
534  UInt_t recoIndex=msg->rbBufferID;
535 
536  if (acceptSMDataDiscard_[recoIndex]) {
537  lock();
539  unlock();
540  acceptSMDataDiscard_[recoIndex] = false;
541 
542  if (!isHalting_) {
543  shmBuffer_->discardRecoCell(recoIndex);
544  bufRef->release();
545  }
546  }
547  else {
548  LOG4CPLUS_ERROR(log_,"Spurious DATA discard by StorageManager, skip!");
549  }
550 
551  if (isHalting_) {
552  bufRef->release();
553  return false;
554  }
555 
556  return true;
557 }
void discardRecoCell(unsigned int iCell)
Definition: FUShmBuffer.cc:464
FUShmBuffer * shmBuffer_
unsigned int UInt_t
Definition: FUTypes.h:12
log4cplus::Logger log_
bool FUResourceTable::discardDqmEvent ( MemRef_t bufRef)

Definition at line 561 of file FUResourceTable.cc.

References runTheMatrix::msg, _I2O_FU_DQM_DISCARD_MESSAGE_FRAME::rbBufferID, and evf::dqm::SENT.

Referenced by evf::FUResourceBroker::I2O_FU_DQM_DISCARD_Callback().

562 {
564  msg=(I2O_FU_DQM_DISCARD_MESSAGE_FRAME*)bufRef->getDataLocation();
565  UInt_t dqmIndex=msg->rbBufferID;
566  unsigned int ntries = 0;
567  while(shmBuffer_->dqmState(dqmIndex)!=dqm::SENT){
568  LOG4CPLUS_WARN(log_,"DQM discard for cell "<< dqmIndex << " which is not yer in SENT state - waiting");
569  ::usleep(10000);
570  if(ntries++>10){
571  LOG4CPLUS_ERROR(log_,"DQM cell " << dqmIndex
572  << " discard timed out while cell still in state " << shmBuffer_->dqmState(dqmIndex) );
573  bufRef->release();
574  return true;
575  }
576  }
577  if (acceptSMDqmDiscard_[dqmIndex]>0) {
578  acceptSMDqmDiscard_[dqmIndex]--;
581  }
582  else {
583  LOG4CPLUS_WARN(log_,"Spurious??? DQM discard by StorageManager, index " << dqmIndex
584  << " cell state " << shmBuffer_->dqmState(dqmIndex) << " accept flag " << acceptSMDqmDiscard_[dqmIndex];);
585  }
586 
587  if (!isHalting_) {
588  shmBuffer_->discardDqmCell(dqmIndex);
589  bufRef->release();
590  }
591 
592  }
593  else {
594  LOG4CPLUS_ERROR(log_,"Spurious DQM discard for cell " << dqmIndex
595  << " from StorageManager while cell is not accepting discards");
596  }
597 
598  if (isHalting_) {
599  bufRef->release();
600  return false;
601  }
602 
603  return true;
604 }
void discardDqmCell(unsigned int iCell)
Definition: FUShmBuffer.cc:491
FUShmBuffer * shmBuffer_
dqm::State_t dqmState(unsigned int index)
unsigned int UInt_t
Definition: FUTypes.h:12
log4cplus::Logger log_
vector< string > FUResourceTable::dqmCellStates ( ) const

Definition at line 825 of file FUResourceTable.cc.

References evf::dqm::DISCARDING, evf::dqm::EMPTY, i, n, query::result, evf::dqm::SENDING, evf::dqm::SENT, evf::utils::state, evf::dqm::WRITING, and evf::dqm::WRITTEN.

826 {
827  vector<string> result;
828  if (0!=shmBuffer_) {
830  shmBuffer_->lock();
831  for (UInt_t i=0;i<n;i++) {
833  if (state==dqm::EMPTY) result.push_back("EMPTY");
834  else if (state==dqm::WRITING) result.push_back("WRITING");
835  else if (state==dqm::WRITTEN) result.push_back("WRITTEN");
836  else if (state==dqm::SENDING) result.push_back("SENDING");
837  else if (state==dqm::SENT) result.push_back("SENT");
838  else if (state==dqm::DISCARDING) result.push_back("DISCARDING");
839  }
840  shmBuffer_->unlock();
841  }
842  return result;
843 }
int i
Definition: DBlmapReader.cc:9
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
dqm::State_t dqmState(unsigned int index)
unsigned int UInt_t
Definition: FUTypes.h:12
char state
Definition: procUtils.cc:75
void FUResourceTable::dropEvent ( )

Definition at line 624 of file FUResourceTable.cc.

References evf::FUShmRawCell::fuResourceId().

Referenced by evf::FUResourceBroker::I2O_FU_TAKE_Callback().

625 {
627  UInt_t fuResourceId=cell->fuResourceId();
629  shmBuffer_->scheduleRawCellForDiscard(fuResourceId);
630 }
FUShmRawCell * rawCellToRead()
Definition: FUShmBuffer.cc:304
FUShmBuffer * shmBuffer_
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned int fuResourceId() const
Definition: FUShmRawCell.h:26
void finishReadingRawCell(FUShmRawCell *cell)
Definition: FUShmBuffer.cc:385
void scheduleRawCellForDiscard(unsigned int iCell)
Definition: FUShmBuffer.cc:420
void FUResourceTable::dumpEvent ( evf::FUShmRawCell cell)

Definition at line 653 of file FUResourceTable.cc.

References evf::FUShmRawCell::evtNumber(), evf::FUShmRawCell::fedAddr(), evf::FUShmRawCell::fedSize(), makeHLTPrescaleTable::fout, i, j, and evf::FUShmRawCell::nFed().

654 {
655  ostringstream oss; oss<<"/tmp/evt"<<cell->evtNumber()<<".dump";
656  ofstream fout(oss.str().c_str());
657  fout.fill('0');
658 
659  fout<<"#\n# evt "<<cell->evtNumber()<<"\n#\n"<<endl;
660  for (unsigned int i=0;i<cell->nFed();i++) {
661  if (cell->fedSize(i)==0) continue;
662  fout<<"# fedid "<<i<<endl;
663  unsigned char* addr=cell->fedAddr(i);
664  for (unsigned int j=0;j<cell->fedSize(i);j++) {
665  fout<<setiosflags(ios::right)<<setw(2)<<hex<<(int)(*addr)<<dec;
666  if ((j+1)%8) fout<<" "; else fout<<endl;
667  ++addr;
668  }
669  fout<<endl;
670  }
671  fout.close();
672 }
int i
Definition: DBlmapReader.cc:9
unsigned int evtNumber() const
Definition: FUShmRawCell.h:28
int j
Definition: DBlmapReader.cc:9
unsigned char * fedAddr(unsigned int i) const
Definition: FUShmRawCell.cc:96
unsigned int nFed() const
Definition: FUShmRawCell.h:33
unsigned int fedSize(unsigned int i) const
Definition: FUShmRawCell.cc:84
void FUResourceTable::halt ( )

Definition at line 684 of file FUResourceTable.cc.

Referenced by evf::FUResourceBroker::halting().

685 {
686  isHalting_=true;
687  shutDownClients();
688 }
bool FUResourceTable::handleCrashedEP ( UInt_t  runNumber,
pid_t  pid 
)

Definition at line 634 of file FUResourceTable.cc.

References i.

Referenced by evf::FUResourceBroker::emergencyStop(), and evf::FUResourceBroker::watching().

635 {
636  bool retval = false;
637  vector<pid_t> pids=cellPrcIds();
638  UInt_t iRawCell=pids.size();
639  for (UInt_t i=0;i<pids.size();i++) { if (pid==pids[i]) { iRawCell=i; break; } }
640 
641  if (iRawCell<pids.size()){
643  retval = true;
644  }
645  else
646  LOG4CPLUS_WARN(log_,"No raw data to send to error stream for process " << pid);
648  return retval;
649 }
int i
Definition: DBlmapReader.cc:9
bool removeClientPrcId(pid_t prcId)
FUShmBuffer * shmBuffer_
unsigned int UInt_t
Definition: FUTypes.h:12
std::vector< pid_t > cellPrcIds() const
log4cplus::Logger log_
bool writeErrorEventData(unsigned int runNumber, unsigned int fuProcessId, unsigned int iRawCell)
Definition: FUShmBuffer.cc:702
void FUResourceTable::initialize ( bool  segmentationMode,
UInt_t  nbRawCells,
UInt_t  nbRecoCells,
UInt_t  nbDqmCells,
UInt_t  rawCellSize,
UInt_t  recoCellSize,
UInt_t  dqmCellSize 
)
throw (evf::Exception
)

Definition at line 111 of file FUResourceTable.cc.

References evf::FUShmBuffer::createShmBuffer(), i, and runTheMatrix::msg.

119 {
120  clear();
121 
122  shmBuffer_=FUShmBuffer::createShmBuffer(segmentationMode,
123  nbRawCells,nbRecoCells,nbDqmCells,
124  rawCellSize,recoCellSize,dqmCellSize);
125  if (0==shmBuffer_) {
126  string msg = "CREATION OF SHARED MEMORY SEGMENT FAILED!";
127  LOG4CPLUS_FATAL(log_,msg);
128  XCEPT_RAISE(evf::Exception,msg);
129  }
130 
131  for (UInt_t i=0;i<nbRawCells_;i++) {
132  resources_.push_back(new FUResource(i,log_,frb_,app_));
133  freeResourceIds_.push(i);
134  }
135 
136  acceptSMDataDiscard_ = new bool[nbRecoCells];
137  acceptSMDqmDiscard_ = new int[nbDqmCells];
138 
139  resetCounters();
140 }
int i
Definition: DBlmapReader.cc:9
std::queue< UInt_t > freeResourceIds_
xdaq::Application * app_
FUShmBuffer * shmBuffer_
EvffedFillerRB * frb_
static FUShmBuffer * createShmBuffer(bool semgmentationMode, unsigned int nRawCells, unsigned int nRecoCells, unsigned int nDqmCells, unsigned int rawCellSize=0x400000, unsigned int recoCellSize=0x400000, unsigned int dqmCellSize=0x400000)
Definition: FUShmBuffer.cc:853
unsigned int UInt_t
Definition: FUTypes.h:12
log4cplus::Logger log_
FUResourceVec_t resources_
void FUResourceTable::injectCRCError ( )

Definition at line 1050 of file FUResourceTable.cc.

References i.

1051 {
1052  for (UInt_t i=0;i<resources_.size();i++) {
1053  resources_[i]->scheduleCRCError();
1054  }
1055 }
int i
Definition: DBlmapReader.cc:9
unsigned int UInt_t
Definition: FUTypes.h:12
FUResourceVec_t resources_
bool evf::FUResourceTable::isActive ( ) const
inline

Definition at line 116 of file FUResourceTable.h.

References isActive_.

Referenced by evf::FUResourceBroker::halting().

116 { return isActive_; }
bool FUResourceTable::isLastMessageOfEvent ( MemRef_t bufRef)

Definition at line 1034 of file FUResourceTable.cc.

References createPayload::block.

1035 {
1036  while (0!=bufRef->getNextReference()) bufRef=bufRef->getNextReference();
1037 
1038  I2O_EVENT_DATA_BLOCK_MESSAGE_FRAME *block=
1039  (I2O_EVENT_DATA_BLOCK_MESSAGE_FRAME*)bufRef->getDataLocation();
1040 
1041  UInt_t iBlock =block->blockNb;
1042  UInt_t nBlock =block->nbBlocksInSuperFragment;
1043  UInt_t iSuperFrag=block->superFragmentNb;
1044  UInt_t nSuperFrag=block->nbSuperFragmentsInEvent;
1045 
1046  return ((iSuperFrag==nSuperFrag-1)&&(iBlock==nBlock-1));
1047 }
unsigned int UInt_t
Definition: FUTypes.h:12
bool evf::FUResourceTable::isReadyToShutDown ( ) const
inline
void FUResourceTable::lastResort ( )

Definition at line 1071 of file FUResourceTable.cc.

References gather_cfg::cout, and evf::FUShmRawCell::index().

Referenced by evf::FUResourceBroker::emergencyStop().

1072 {
1073  std::cout << "lastResort: " << shmBuffer_->nbRawCellsToRead()
1074  << " more rawcells to read " << std::endl;
1075  while(shmBuffer_->nbRawCellsToRead()!=0){
1077  std::cout << "lastResort: " << shmBuffer_->nbRawCellsToRead() << std::endl;
1079  std::cout << "lastResort: schedule raw cell for discard" << std::endl;
1080  }
1081 }
FUShmRawCell * rawCellToRead()
Definition: FUShmBuffer.cc:304
void scheduleRawCellForDiscardServerSide(unsigned int iCell)
Definition: FUShmBuffer.cc:441
int nbRawCellsToRead() const
Definition: FUShmBuffer.cc:283
FUShmBuffer * shmBuffer_
unsigned int index() const
Definition: FUShmRawCell.h:25
tuple cout
Definition: gather_cfg.py:41
void evf::FUResourceTable::lock ( void  )
inline

Definition at line 200 of file FUResourceTable.h.

References lock_.

200 { lock_.take(); }
UInt_t evf::FUResourceTable::nbAllocated ( ) const
inline

Definition at line 124 of file FUResourceTable.h.

References nbAllocated_.

Referenced by evf::FUResourceBroker::actionPerformed().

124 { return nbAllocated_; }
UInt_t evf::FUResourceTable::nbAllocSent ( ) const
inline

Definition at line 139 of file FUResourceTable.h.

References nbAllocSent_.

Referenced by evf::FUResourceBroker::actionPerformed().

139 { return nbAllocSent_; }
UInt_t FUResourceTable::nbClients ( ) const

Definition at line 760 of file FUResourceTable.cc.

References query::result.

Referenced by evf::FUResourceBroker::actionPerformed().

761 {
762  UInt_t result(0);
764  return result;
765 }
FUShmBuffer * shmBuffer_
unsigned int nClients() const
Definition: FUShmBuffer.h:70
tuple result
Definition: query.py:137
unsigned int UInt_t
Definition: FUTypes.h:12
UInt_t evf::FUResourceTable::nbCompleted ( ) const
inline

Definition at line 126 of file FUResourceTable.h.

References nbCompleted_.

Referenced by evf::FUResourceBroker::actionPerformed().

126 { return nbCompleted_; }
UInt_t evf::FUResourceTable::nbCrcErrors ( ) const
inline

Definition at line 138 of file FUResourceTable.h.

References nbCrcErrors_.

Referenced by evf::FUResourceBroker::actionPerformed().

138 { return nbCrcErrors_; }
UInt_t evf::FUResourceTable::nbDiscarded ( ) const
inline

Definition at line 132 of file FUResourceTable.h.

References nbDiscarded_.

Referenced by evf::FUResourceBroker::actionPerformed().

132 { return nbDiscarded_; }
UInt_t evf::FUResourceTable::nbEolDiscarded ( ) const
inline

Definition at line 135 of file FUResourceTable.h.

References nbEolDiscarded_.

Referenced by evf::FUResourceBroker::actionPerformed().

135 { return nbEolDiscarded_; }
UInt_t evf::FUResourceTable::nbEolPosted ( ) const
inline

Definition at line 134 of file FUResourceTable.h.

References nbEolPosted_.

Referenced by evf::FUResourceBroker::actionPerformed().

134 { return nbEolPosted_; }
UInt_t evf::FUResourceTable::nbErrors ( ) const
inline

Definition at line 137 of file FUResourceTable.h.

References nbErrors_.

Referenced by evf::FUResourceBroker::actionPerformed().

137 { return nbErrors_; }
UInt_t evf::FUResourceTable::nbFreeSlots ( ) const
inline
UInt_t evf::FUResourceTable::nbLost ( ) const
inline

Definition at line 133 of file FUResourceTable.h.

References nbLost_.

Referenced by evf::FUResourceBroker::actionPerformed().

133 { return nbLost_; }
UInt_t evf::FUResourceTable::nbPending ( ) const
inline

Definition at line 125 of file FUResourceTable.h.

References nbPending_.

Referenced by evf::FUResourceBroker::actionPerformed().

125 { return nbPending_; }
UInt_t evf::FUResourceTable::nbPendingSMDiscards ( ) const
inline

Definition at line 130 of file FUResourceTable.h.

References nbPendingSMDiscards_.

Referenced by evf::FUResourceBroker::actionPerformed().

130 { return nbPendingSMDiscards_; }
UInt_t evf::FUResourceTable::nbPendingSMDqmDiscards ( ) const
inline

Definition at line 131 of file FUResourceTable.h.

References nbPendingSMDqmDiscards_.

Referenced by evf::FUResourceBroker::actionPerformed().

131 { return nbPendingSMDqmDiscards_; }
UInt_t evf::FUResourceTable::nbResources ( ) const
inline
UInt_t evf::FUResourceTable::nbSent ( ) const
inline

Definition at line 127 of file FUResourceTable.h.

References nbSent_.

Referenced by evf::FUResourceBroker::actionPerformed(), and evf::FUResourceBroker::monitoring().

127 { return nbSent_; }
UInt_t evf::FUResourceTable::nbSentDqm ( ) const
inline

Definition at line 129 of file FUResourceTable.h.

References nbSentDqm_.

Referenced by evf::FUResourceBroker::actionPerformed().

129 { return nbSentDqm_; }
UInt_t evf::FUResourceTable::nbSentError ( ) const
inline

Definition at line 128 of file FUResourceTable.h.

References nbSentError_.

Referenced by evf::FUResourceBroker::actionPerformed().

128 { return nbSentError_; }
void FUResourceTable::postEndOfLumiSection ( MemRef_t bufRef)

Definition at line 608 of file FUResourceTable.cc.

References i, and runTheMatrix::msg.

Referenced by evf::FUResourceBroker::I2O_EVM_LUMISECTION_Callback().

609 {
610  I2O_EVM_END_OF_LUMISECTION_MESSAGE_FRAME *msg =
611  (I2O_EVM_END_OF_LUMISECTION_MESSAGE_FRAME *)bufRef->getDataLocation();
612  //make sure to fill up the shmem so no process will miss it
613  // but processes will have to handle duplicates
614 
615  for(unsigned int i = 0; i < nbRawCells_; i++)
616  {
617  nbEolPosted_++;
618  shmBuffer_->writeRawLumiSectionEvent(msg->lumiSection);
619  }
620 }
int i
Definition: DBlmapReader.cc:9
void writeRawLumiSectionEvent(unsigned int)
Definition: FUShmBuffer.cc:553
FUShmBuffer * shmBuffer_
void FUResourceTable::printWorkLoopStatus ( )

Definition at line 1056 of file FUResourceTable.cc.

References gather_cfg::cout.

Referenced by evf::FUResourceBroker::emergencyStop().

1057 {
1058  std::cout << "Workloop status===============" << std::endl;
1059  std::cout << "==============================" << std::endl;
1060  if(wlSendData_!=0)
1061  std::cout << "SendData -> " << wlSendData_->isActive() << std::endl;
1062  if(wlSendDqm_!=0)
1063  std::cout << "SendDqm -> " << wlSendDqm_->isActive() << std::endl;
1064  if(wlDiscard_!=0)
1065  std::cout << "Discard -> " << wlDiscard_->isActive() << std::endl;
1066  std::cout << "Workloops Active -> " << isActive_ << std::endl;
1067 
1068 }
WorkLoop_t * wlSendData_
tuple cout
Definition: gather_cfg.py:41
void FUResourceTable::resetCounters ( )

Definition at line 730 of file FUResourceTable.cc.

References i.

Referenced by evf::FUResourceBroker::enabling().

731 {
732  if (0!=shmBuffer_) {
733  for (UInt_t i=0;i<shmBuffer_->nRecoCells();i++) acceptSMDataDiscard_[i]= false;
734  for (UInt_t i=0;i<shmBuffer_->nDqmCells();i++) acceptSMDqmDiscard_[i] = 0;
735  }
736 
738  nbCompleted_ =0;
739  nbSent_ =0;
740  nbSentError_ =0;
741  nbSentDqm_ =0;
744  nbDiscarded_ =0;
745  nbLost_ =0;
746  nbEolPosted_ =0;
747  nbEolDiscarded_ =0;
748 
749  nbErrors_ =0;
750  nbCrcErrors_ =0;
751  nbAllocSent_ =0;
752 
753  sumOfSquares_ =0;
754  sumOfSizes_ =0;
755  isStopping_ =false;
756 }
int i
Definition: DBlmapReader.cc:9
unsigned int nRecoCells() const
Definition: FUShmBuffer.h:65
FUShmBuffer * shmBuffer_
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned int nDqmCells() const
Definition: FUShmBuffer.h:66
void FUResourceTable::sendAllocate ( )

Definition at line 893 of file FUResourceTable.cc.

References i.

Referenced by evf::FUResourceBroker::enabling().

894 {
895  UInt_t nbFreeSlots = this->nbFreeSlots();
896  UInt_t nbFreeSlotsMax = resources_.size()/2;
897  if (nbFreeSlots>nbFreeSlotsMax) {
898  UIntVec_t fuResourceIds;
899  for (UInt_t i=0;i<nbFreeSlots;i++)
900  fuResourceIds.push_back(allocateResource());
901  bu_->sendAllocate(fuResourceIds);
902  nbAllocSent_++;
903  }
904 }
UInt_t nbFreeSlots() const
int i
Definition: DBlmapReader.cc:9
std::vector< UInt_t > UIntVec_t
Definition: FUTypes.h:15
void sendAllocate(const UIntVec_t &fuResourceIds)
Definition: BUProxy.cc:60
unsigned int UInt_t
Definition: FUTypes.h:12
FUResourceVec_t resources_
bool FUResourceTable::sendData ( toolbox::task::WorkLoop *  workLoop)

Definition at line 161 of file FUResourceTable.cc.

References evf::FUShmRecoCell::eventSize(), evf::FUShmRecoCell::evtNumber(), edm::hlt::Exception, evf::FUShmRecoCell::fuGuid(), evf::FUShmRecoCell::fuProcessId(), evf::FUShmRecoCell::index(), CommonMethods::lock(), evf::FUShmRecoCell::outModId(), evf::FUShmRecoCell::payloadAddr(), evf::FUShmRecoCell::rawCellIndex(), evf::FUShmRecoCell::runNumber(), sistrip::runNumber_, and evf::FUShmRecoCell::type().

Referenced by startSendDataWorkLoop().

162 {
163  bool reschedule=true;
164 
166 
167  if (0==cell->eventSize()) {
168  LOG4CPLUS_INFO(log_,"Don't reschedule sendData workloop.");
169  UInt_t cellIndex=cell->index();
171  shmBuffer_->discardRecoCell(cellIndex);
172  reschedule=false;
173  }
174  else if (isHalting_) {
175  LOG4CPLUS_INFO(log_,"sendData: isHalting, discard recoCell.");
176  UInt_t cellIndex=cell->index();
178  shmBuffer_->discardRecoCell(cellIndex);
179  }
180  else {
181  try {
182  if (cell->type()==0) {
183  UInt_t cellIndex = cell->index();
184  UInt_t cellOutModId = cell->outModId();
185  UInt_t cellFUProcId = cell->fuProcessId();
186  UInt_t cellFUGuid = cell->fuGuid();
187  UChar_t* cellPayloadAddr = cell->payloadAddr();
188  UInt_t cellEventSize = cell->eventSize();
190 
191  lock();
193  unlock();
194 
195  sendInitMessage(cellIndex,cellOutModId,cellFUProcId,cellFUGuid,
196  cellPayloadAddr,cellEventSize);
197  }
198  else if (cell->type()==1) {
199  UInt_t cellIndex = cell->index();
200  UInt_t cellRawIndex = cell->rawCellIndex();
201  UInt_t cellRunNumber = cell->runNumber();
202  UInt_t cellEvtNumber = cell->evtNumber();
203  UInt_t cellOutModId = cell->outModId();
204  UInt_t cellFUProcId = cell->fuProcessId();
205  UInt_t cellFUGuid = cell->fuGuid();
206  UChar_t *cellPayloadAddr = cell->payloadAddr();
207  UInt_t cellEventSize = cell->eventSize();
209 
210  lock();
212  resources_[cellRawIndex]->incNbSent();
213  if (resources_[cellRawIndex]->nbSent()==1) nbSent_++;
214  unlock();
215 
216  sendDataEvent(cellIndex,cellRunNumber,cellEvtNumber,cellOutModId,
217  cellFUProcId,cellFUGuid,cellPayloadAddr,cellEventSize);
218  }
219  else if (cell->type()==2) {
220  UInt_t cellIndex = cell->index();
221  UInt_t cellRawIndex = cell->rawCellIndex();
222  //UInt_t cellRunNumber = cell->runNumber();
223  UInt_t cellEvtNumber = cell->evtNumber();
224  UInt_t cellFUProcId = cell->fuProcessId();
225  UInt_t cellFUGuid = cell->fuGuid();
226  UChar_t *cellPayloadAddr = cell->payloadAddr();
227  UInt_t cellEventSize = cell->eventSize();
229 
230  lock();
232  resources_[cellRawIndex]->incNbSent();
233  if (resources_[cellRawIndex]->nbSent()==1) { nbSent_++; nbSentError_++; }
234  unlock();
235 
236  sendErrorEvent(cellIndex,runNumber_,cellEvtNumber,
237  cellFUProcId,cellFUGuid,cellPayloadAddr,cellEventSize);
238  }
239  else {
240  string errmsg="Unknown RecoCell type (neither INIT/DATA/ERROR).";
241  XCEPT_RAISE(evf::Exception,errmsg);
242  }
243  }
244  catch (xcept::Exception& e) {
245  LOG4CPLUS_FATAL(log_,"Failed to send EVENT DATA to StorageManager: "
246  <<xcept::stdformat_exception_history(e));
247  reschedule=false;
248  }
249  }
250 
251  return reschedule;
252 }
unsigned int index() const
Definition: FUShmRecoCell.h:22
void discardRecoCell(unsigned int iCell)
Definition: FUShmBuffer.cc:464
unsigned int type() const
Definition: FUShmRecoCell.h:29
unsigned int runNumber() const
Definition: FUShmRecoCell.h:24
unsigned int fuGuid() const
Definition: FUShmRecoCell.h:28
unsigned int eventSize() const
Definition: FUShmRecoCell.h:33
void sendErrorEvent(UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
unsigned int fuProcessId() const
Definition: FUShmRecoCell.h:27
FUShmBuffer * shmBuffer_
unsigned char * payloadAddr() const
void sendDataEvent(UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
unsigned int evtNumber() const
Definition: FUShmRecoCell.h:25
unsigned int rawCellIndex() const
Definition: FUShmRecoCell.h:23
unsigned char UChar_t
Definition: FUTypes.h:14
void finishReadingRecoCell(FUShmRecoCell *cell)
Definition: FUShmBuffer.cc:397
unsigned int UInt_t
Definition: FUTypes.h:12
UInt_t nbSent() const
unsigned int outModId() const
Definition: FUShmRecoCell.h:26
FUShmRecoCell * recoCellToRead()
Definition: FUShmBuffer.cc:323
log4cplus::Logger log_
FUResourceVec_t resources_
void sendInitMessage(UInt_t fuResourceId, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
void FUResourceTable::sendDataEvent ( UInt_t  fuResourceId,
UInt_t  runNumber,
UInt_t  evtNumber,
UInt_t  outModId,
UInt_t  fuProcessId,
UInt_t  fuGuid,
UChar_t data,
UInt_t  dataSize 
)

Definition at line 937 of file FUResourceTable.cc.

945 {
946  if (0==sm_) {
947  LOG4CPLUS_ERROR(log_,"No StorageManager, DROP DATA EVENT!");
948  }
949  else {
950  acceptSMDataDiscard_[fuResourceId] = true;
951  UInt_t nbBytes=sm_->sendDataEvent(fuResourceId,runNumber,evtNumber,
952  outModId,fuProcessId,fuGuid,
953  data,dataSize);
954  sumOfSquares_+=(uint64_t)nbBytes*(uint64_t)nbBytes;
955  sumOfSizes_ +=nbBytes;
956  }
957 }
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned long long uint64_t
Definition: Time.h:15
UInt_t sendDataEvent(UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
Definition: SMProxy.cc:110
log4cplus::Logger log_
void FUResourceTable::sendDiscard ( UInt_t  buResourceId)

Definition at line 908 of file FUResourceTable.cc.

909 {
910  bu_->sendDiscard(buResourceId);
911  nbDiscarded_++;
912 }
void sendDiscard(UInt_t buResourceId)
Definition: BUProxy.cc:121
bool FUResourceTable::sendDqm ( toolbox::task::WorkLoop *  workLoop)

Definition at line 272 of file FUResourceTable.cc.

References gather_cfg::cout, evf::dqm::EMPTY, evf::FUShmDqmCell::eventSize(), evf::FUShmDqmCell::evtAtUpdate(), edm::hlt::Exception, evf::FUShmDqmCell::folderId(), evf::FUShmDqmCell::fuGuid(), evf::FUShmDqmCell::fuProcessId(), evf::FUShmDqmCell::index(), evf::FUShmDqmCell::payloadAddr(), evf::FUShmDqmCell::runNumber(), and evf::utils::state.

Referenced by startSendDqmWorkLoop().

273 {
274  bool reschedule=true;
275 
278 
279  if (state==dqm::EMPTY) {
280  LOG4CPLUS_WARN(log_,"Don't reschedule sendDqm workloop.");
281  std::cout << "shut down dqm workloop " << std::endl;
282  UInt_t cellIndex=cell->index();
284  shmBuffer_->discardDqmCell(cellIndex);
285  reschedule=false;
286  }
287  else if (isHalting_) {
288  UInt_t cellIndex=cell->index();
290  shmBuffer_->discardDqmCell(cellIndex);
291  }
292  else {
293  try {
294  UInt_t cellIndex = cell->index();
295  UInt_t cellRunNumber = cell->runNumber();
296  UInt_t cellEvtAtUpdate = cell->evtAtUpdate();
297  UInt_t cellFolderId = cell->folderId();
298  UInt_t cellFUProcId = cell->fuProcessId();
299  UInt_t cellFUGuid = cell->fuGuid();
300  UChar_t *cellPayloadAddr = cell->payloadAddr();
301  UInt_t cellEventSize = cell->eventSize();
302  sendDqmEvent(cellIndex,cellRunNumber,cellEvtAtUpdate,cellFolderId,
303  cellFUProcId,cellFUGuid,cellPayloadAddr,cellEventSize);
305  }
306  catch (xcept::Exception& e) {
307  LOG4CPLUS_FATAL(log_,"Failed to send DQM DATA to StorageManager: "
308  <<xcept::stdformat_exception_history(e));
309  reschedule=false;
310  }
311  }
312 
313  return reschedule;
314 }
unsigned int fuGuid() const
Definition: FUShmDqmCell.h:27
unsigned int index() const
Definition: FUShmDqmCell.h:22
unsigned int folderId() const
Definition: FUShmDqmCell.h:25
unsigned int evtAtUpdate() const
Definition: FUShmDqmCell.h:24
FUShmDqmCell * dqmCellToRead()
Definition: FUShmBuffer.cc:339
void discardDqmCell(unsigned int iCell)
Definition: FUShmBuffer.cc:491
FUShmBuffer * shmBuffer_
unsigned int fuProcessId() const
Definition: FUShmDqmCell.h:26
unsigned int runNumber() const
Definition: FUShmDqmCell.h:23
unsigned char UChar_t
Definition: FUTypes.h:14
void finishReadingDqmCell(FUShmDqmCell *cell)
Definition: FUShmBuffer.cc:410
dqm::State_t dqmState(unsigned int index)
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned char * payloadAddr() const
Definition: FUShmDqmCell.cc:54
unsigned int eventSize() const
Definition: FUShmDqmCell.h:31
char state
Definition: procUtils.cc:75
log4cplus::Logger log_
tuple cout
Definition: gather_cfg.py:41
void sendDqmEvent(UInt_t fuDqmId, UInt_t runNumber, UInt_t evtAtUpdate, UInt_t folderId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
void FUResourceTable::sendDqmEvent ( UInt_t  fuDqmId,
UInt_t  runNumber,
UInt_t  evtAtUpdate,
UInt_t  folderId,
UInt_t  fuProcessId,
UInt_t  fuGuid,
UChar_t data,
UInt_t  dataSize 
)

Definition at line 1006 of file FUResourceTable.cc.

1014 {
1015  if (0==sm_) {
1016  LOG4CPLUS_WARN(log_,"No StorageManager, DROP DQM EVENT.");
1017  }
1018  else {
1019  sm_->sendDqmEvent(fuDqmId,runNumber,evtAtUpdate,folderId,
1020  fuProcessId,fuGuid,data,dataSize);
1021 
1023 
1024  acceptSMDqmDiscard_[fuDqmId]++;
1025  if(acceptSMDqmDiscard_[fuDqmId]>1)
1026  LOG4CPLUS_WARN(log_,"DQM Cell " << fuDqmId << " being sent more than once for folder "
1027  << folderId << " process " << fuProcessId << " guid " << fuGuid);
1028  nbSentDqm_++;
1029  }
1030 }
UInt_t sendDqmEvent(UInt_t fuDqmId, UInt_t runNumber, UInt_t evtAtUpdate, UInt_t folderId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
Definition: SMProxy.cc:197
log4cplus::Logger log_
void FUResourceTable::sendErrorEvent ( UInt_t  fuResourceId,
UInt_t  runNumber,
UInt_t  evtNumber,
UInt_t  fuProcessId,
UInt_t  fuGuid,
UChar_t data,
UInt_t  dataSize 
)

Definition at line 961 of file FUResourceTable.cc.

968 {
969  if (0==sm_) {
970  LOG4CPLUS_ERROR(log_,"No StorageManager, DROP ERROR EVENT!");
971  }
972  else {
973  acceptSMDataDiscard_[fuResourceId] = true;
974  UInt_t nbBytes=sm_->sendErrorEvent(fuResourceId,runNumber,evtNumber,
975  fuProcessId,fuGuid,data,dataSize);
976  sumOfSquares_+=(uint64_t)nbBytes*(uint64_t)nbBytes;
977  sumOfSizes_ +=nbBytes;
978  }
979 
980 // if (0!=shmBuffer_) {
981 // UInt_t n=nbDqmCells_;
982 
983 // for (UInt_t i=0;i<n;i++) {
984 // if(shmBuffer_->dqmCell(i)->fuProcessId()==fuProcessId)
985 // {
986 // if(shmBuffer_->dqmState(i)!=dqm::SENT){
987 // shmBuffer_->setDqmState(i,dqm::SENT);
988 // shmBuffer_->discardDqmCell(i);
989 // acceptSMDqmDiscard_[i] = false;
990 // }
991 // }
992 // }
993 // n=nbRecoCells_;
994 // for (UInt_t i=0;i<n;i++) {
995 // if(shmBuffer_->recoCell(i)->fuProcessId()==fuProcessId)
996 // {
997 // shmBuffer_->discardOrphanedRecoCell(i);
998 // }
999 // }
1000 
1001 // }
1002 }
UInt_t sendErrorEvent(UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
Definition: SMProxy.cc:154
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned long long uint64_t
Definition: Time.h:15
log4cplus::Logger log_
void FUResourceTable::sendInitMessage ( UInt_t  fuResourceId,
UInt_t  outModId,
UInt_t  fuProcessId,
UInt_t  fuGuid,
UChar_t data,
UInt_t  dataSize 
)

Definition at line 916 of file FUResourceTable.cc.

922 {
923  if (0==sm_) {
924  LOG4CPLUS_ERROR(log_,"No StorageManager, DROP INIT MESSAGE!");
925  }
926  else {
927  acceptSMDataDiscard_[fuResourceId] = true;
928  UInt_t nbBytes=sm_->sendInitMessage(fuResourceId,outModId,fuProcessId,
929  fuGuid,data,dataSize);
930  sumOfSquares_+=(uint64_t)nbBytes*(uint64_t)nbBytes;
931  sumOfSizes_ +=nbBytes;
932  }
933 }
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned long long uint64_t
Definition: Time.h:15
UInt_t sendInitMessage(UInt_t fuResourceId, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
Definition: SMProxy.cc:71
log4cplus::Logger log_
void evf::FUResourceTable::setDoCrcCheck ( UInt_t  doCrcCheck)
inline
void evf::FUResourceTable::setDoDumpEvents ( UInt_t  doDumpEvents)
inline
void evf::FUResourceTable::setRunNumber ( UInt_t  runNumber)
inline
void FUResourceTable::shutDownClients ( )

Definition at line 692 of file FUResourceTable.cc.

References evf::evt::EMPTY, i, n, and evf::utils::state.

693 {
695  isReadyToShutDown_ = false;
696 
697  if (nbClientsToShutDown_==0) {
698  LOG4CPLUS_INFO(log_,"No clients to shut down. Checking if there are raw cells not assigned to any process yet");
699  UInt_t n=nbResources();
700  for (UInt_t i=0;i<n;i++) {
702  if (state!=evt::EMPTY){
703  LOG4CPLUS_WARN(log_,"Schedule discard at STOP for orphaned event in state "
704  << state);
706  }
707  }
709  }
710  else {
712  for (UInt_t i=0;i<n;++i) shmBuffer_->writeRawEmptyEvent();
713  }
714 }
int i
Definition: DBlmapReader.cc:9
void scheduleRawCellForDiscardServerSide(unsigned int iCell)
Definition: FUShmBuffer.cc:441
evt::State_t evtState(unsigned int index)
UInt_t nbClients() const
FUShmBuffer * shmBuffer_
void writeRawEmptyEvent()
Definition: FUShmBuffer.cc:540
UInt_t nbResources() const
void scheduleRawEmptyCellForDiscard()
Definition: FUShmBuffer.cc:594
unsigned int UInt_t
Definition: FUTypes.h:12
char state
Definition: procUtils.cc:75
log4cplus::Logger log_
void FUResourceTable::startDiscardWorkLoop ( )
throw (evf::Exception
)

Definition at line 318 of file FUResourceTable.cc.

References discard(), edm::hlt::Exception, and runTheMatrix::msg.

Referenced by evf::FUResourceBroker::enabling().

319 {
320  try {
321  LOG4CPLUS_INFO(log_,"Start 'discard' workloop.");
322  wlDiscard_=toolbox::task::getWorkLoopFactory()->getWorkLoop("Discard","waiting");
323  if (!wlDiscard_->isActive()) wlDiscard_->activate();
324  asDiscard_=toolbox::task::bind(this,&FUResourceTable::discard,"Discard");
325  wlDiscard_->submit(asDiscard_);
326  isActive_=true;
327  }
328  catch (xcept::Exception& e) {
329  string msg = "Failed to start workloop 'Discard'.";
330  XCEPT_RETHROW(evf::Exception,msg,e);
331  }
332  isReadyToShutDown_=false;
333 }
ActionSignature_t * asDiscard_
bool discard(toolbox::task::WorkLoop *workLoop)
log4cplus::Logger log_
void FUResourceTable::startSendDataWorkLoop ( )
throw (evf::Exception
)

Definition at line 144 of file FUResourceTable.cc.

References edm::hlt::Exception, runTheMatrix::msg, and sendData().

Referenced by evf::FUResourceBroker::enabling().

145 {
146  try {
147  wlSendData_=
148  toolbox::task::getWorkLoopFactory()->getWorkLoop("SendData","waiting");
149  if (!wlSendData_->isActive()) wlSendData_->activate();
150  asSendData_=toolbox::task::bind(this,&FUResourceTable::sendData,"SendData");
151  wlSendData_->submit(asSendData_);
152  }
153  catch (xcept::Exception& e) {
154  string msg = "Failed to start workloop 'SendData'.";
155  XCEPT_RETHROW(evf::Exception,msg,e);
156  }
157 }
bool sendData(toolbox::task::WorkLoop *workLoop)
WorkLoop_t * wlSendData_
ActionSignature_t * asSendData_
void FUResourceTable::startSendDqmWorkLoop ( )
throw (evf::Exception
)

Definition at line 256 of file FUResourceTable.cc.

References edm::hlt::Exception, runTheMatrix::msg, and sendDqm().

Referenced by evf::FUResourceBroker::enabling().

257 {
258  try {
259  wlSendDqm_=toolbox::task::getWorkLoopFactory()->getWorkLoop("SendDqm","waiting");
260  if (!wlSendDqm_->isActive()) wlSendDqm_->activate();
261  asSendDqm_=toolbox::task::bind(this,&FUResourceTable::sendDqm,"SendDqm");
262  wlSendDqm_->submit(asSendDqm_);
263  }
264  catch (xcept::Exception& e) {
265  string msg = "Failed to start workloop 'SendDqm'.";
266  XCEPT_RETHROW(evf::Exception,msg,e);
267  }
268 }
bool sendDqm(toolbox::task::WorkLoop *workLoop)
ActionSignature_t * asSendDqm_
void FUResourceTable::stop ( )

Definition at line 676 of file FUResourceTable.cc.

Referenced by evf::FUResourceBroker::stopping().

677 {
678  isStopping_ = true;
679  shutDownClients();
680 }
UInt_t evf::FUResourceTable::sumOfSizes ( ) const
inline

Definition at line 142 of file FUResourceTable.h.

References sumOfSizes_.

Referenced by evf::FUResourceBroker::monitoring().

142 { return sumOfSizes_; }
uint64_t evf::FUResourceTable::sumOfSquares ( ) const
inline

Definition at line 141 of file FUResourceTable.h.

References sumOfSquares_.

Referenced by evf::FUResourceBroker::monitoring().

141 { return sumOfSquares_; }
void evf::FUResourceTable::unlock ( void  )
inline

Definition at line 201 of file FUResourceTable.h.

References lock_.

201 { lock_.give(); }

Member Data Documentation

bool* evf::FUResourceTable::acceptSMDataDiscard_
private

Definition at line 236 of file FUResourceTable.h.

int* evf::FUResourceTable::acceptSMDqmDiscard_
private

Definition at line 237 of file FUResourceTable.h.

xdaq::Application* evf::FUResourceTable::app_
private

Definition at line 273 of file FUResourceTable.h.

ActionSignature_t* evf::FUResourceTable::asDiscard_
private

Definition at line 227 of file FUResourceTable.h.

ActionSignature_t* evf::FUResourceTable::asSendData_
private

Definition at line 221 of file FUResourceTable.h.

ActionSignature_t* evf::FUResourceTable::asSendDqm_
private

Definition at line 224 of file FUResourceTable.h.

BUProxy* evf::FUResourceTable::bu_
private

Definition at line 215 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::doCrcCheck_
private

Definition at line 239 of file FUResourceTable.h.

Referenced by setDoCrcCheck().

UInt_t evf::FUResourceTable::doDumpEvents_
private

Definition at line 240 of file FUResourceTable.h.

Referenced by setDoDumpEvents().

EvffedFillerRB* evf::FUResourceTable::frb_
private

Definition at line 272 of file FUResourceTable.h.

std::queue<UInt_t> evf::FUResourceTable::freeResourceIds_
private

Definition at line 234 of file FUResourceTable.h.

Referenced by nbFreeSlots().

bool evf::FUResourceTable::isActive_
private

Definition at line 258 of file FUResourceTable.h.

Referenced by isActive().

bool evf::FUResourceTable::isHalting_
private

Definition at line 259 of file FUResourceTable.h.

bool evf::FUResourceTable::isReadyToShutDown_
private

Definition at line 257 of file FUResourceTable.h.

Referenced by isReadyToShutDown().

bool evf::FUResourceTable::isStopping_
private

Definition at line 260 of file FUResourceTable.h.

toolbox::BSem evf::FUResourceTable::lock_
private

Definition at line 271 of file FUResourceTable.h.

Referenced by lock(), and unlock().

log4cplus::Logger evf::FUResourceTable::log_
private

Definition at line 218 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::nbAllocated_
private

Definition at line 243 of file FUResourceTable.h.

Referenced by nbAllocated().

UInt_t evf::FUResourceTable::nbAllocSent_
private

Definition at line 264 of file FUResourceTable.h.

Referenced by nbAllocSent().

UInt_t evf::FUResourceTable::nbClientsToShutDown_
private

Definition at line 256 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::nbCompleted_
private

Definition at line 245 of file FUResourceTable.h.

Referenced by nbCompleted().

UInt_t evf::FUResourceTable::nbCrcErrors_
private

Definition at line 263 of file FUResourceTable.h.

Referenced by nbCrcErrors().

UInt_t evf::FUResourceTable::nbDiscarded_
private

Definition at line 251 of file FUResourceTable.h.

Referenced by nbDiscarded().

UInt_t evf::FUResourceTable::nbDqmCells_
private

Definition at line 231 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::nbEolDiscarded_
private

Definition at line 254 of file FUResourceTable.h.

Referenced by nbEolDiscarded().

UInt_t evf::FUResourceTable::nbEolPosted_
private

Definition at line 253 of file FUResourceTable.h.

Referenced by nbEolPosted().

UInt_t evf::FUResourceTable::nbErrors_
private

Definition at line 262 of file FUResourceTable.h.

Referenced by nbErrors().

UInt_t evf::FUResourceTable::nbLost_
private

Definition at line 252 of file FUResourceTable.h.

Referenced by nbLost().

UInt_t evf::FUResourceTable::nbPending_
private

Definition at line 244 of file FUResourceTable.h.

Referenced by nbPending().

UInt_t evf::FUResourceTable::nbPendingSMDiscards_
private

Definition at line 249 of file FUResourceTable.h.

Referenced by nbPendingSMDiscards().

UInt_t evf::FUResourceTable::nbPendingSMDqmDiscards_
private

Definition at line 250 of file FUResourceTable.h.

Referenced by nbPendingSMDqmDiscards().

UInt_t evf::FUResourceTable::nbRawCells_
private

Definition at line 232 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::nbRecoCells_
private

Definition at line 233 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::nbSent_
private

Definition at line 246 of file FUResourceTable.h.

Referenced by nbSent().

UInt_t evf::FUResourceTable::nbSentDqm_
private

Definition at line 248 of file FUResourceTable.h.

Referenced by nbSentDqm().

UInt_t evf::FUResourceTable::nbSentError_
private

Definition at line 247 of file FUResourceTable.h.

Referenced by nbSentError().

FUResourceVec_t evf::FUResourceTable::resources_
private

Definition at line 230 of file FUResourceTable.h.

Referenced by nbResources().

UInt_t evf::FUResourceTable::runNumber_
private

Definition at line 269 of file FUResourceTable.h.

Referenced by setRunNumber().

FUShmBuffer* evf::FUResourceTable::shmBuffer_
private

Definition at line 229 of file FUResourceTable.h.

unsigned int evf::FUResourceTable::shutdownTimeout_
private

Definition at line 241 of file FUResourceTable.h.

SMProxy* evf::FUResourceTable::sm_
private

Definition at line 216 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::sumOfSizes_
private

Definition at line 267 of file FUResourceTable.h.

Referenced by sumOfSizes().

uint64_t evf::FUResourceTable::sumOfSquares_
private

Definition at line 266 of file FUResourceTable.h.

Referenced by sumOfSquares().

WorkLoop_t* evf::FUResourceTable::wlDiscard_
private

Definition at line 226 of file FUResourceTable.h.

WorkLoop_t* evf::FUResourceTable::wlSendData_
private

Definition at line 220 of file FUResourceTable.h.

WorkLoop_t* evf::FUResourceTable::wlSendDqm_
private

Definition at line 223 of file FUResourceTable.h.