CMS 3D CMS Logo

Macros | Functions
memory_proxies.cc File Reference
#include <memory>
#include <cassert>
#include <atomic>
#include <array>
#include <mutex>
#include <limits>
#include <cstddef>
#include <malloc.h>
#include <pthread.h>
#include "PerfTools/AllocMonitor/interface/AllocMonitorRegistry.h"
#include "FWCore/Utilities/interface/thread_safety_macros.h"
#include <dlfcn.h>
#include <new>

Go to the source code of this file.

Macros

#define ALLOC_USE_PTHREADS
 
#define CPP_MEM_OVERRIDE
 
#define USE_LOCAL_MALLOC
 

Functions

void * aligned_alloc (size_t alignment, size_t size) noexcept
 
void alloc_monitor_start ()
 
void alloc_monitor_start_thread_reporting ()
 
void alloc_monitor_stop ()
 
bool alloc_monitor_stop_thread_reporting ()
 
void * calloc (size_t nitems, size_t item_size) noexcept
 
void free (void *ptr) noexcept
 
void * malloc (size_t size) noexcept
 
void * memalign (size_t alignment, size_t size) noexcept
 
void operator delete (void *ptr) noexcept
 
void operator delete (void *ptr, std::align_val_t al) noexcept
 
void operator delete (void *ptr, std::size_t sz) noexcept
 
void operator delete (void *ptr, std::size_t sz, std::align_val_t al) noexcept
 
void operator delete (void *ptr, const std::nothrow_t &tag) noexcept
 
void operator delete (void *ptr, std::align_val_t al, const std::nothrow_t &tag) noexcept
 
void operator delete[] (void *ptr) noexcept
 
void operator delete[] (void *ptr, std::align_val_t al) noexcept
 
void operator delete[] (void *ptr, std::size_t sz) noexcept
 
void operator delete[] (void *ptr, std::size_t sz, std::align_val_t al) noexcept
 
void operator delete[] (void *ptr, const std::nothrow_t &tag) noexcept
 
void operator delete[] (void *ptr, std::align_val_t al, const std::nothrow_t &tag) noexcept
 
void * operator new (std::size_t size)
 
void * operator new (std::size_t size, std::align_val_t al)
 
void * operator new (std::size_t size, const std::nothrow_t &tag) noexcept
 
void * operator new (std::size_t size, std::align_val_t al, const std::nothrow_t &tag) noexcept
 
void * operator new[] (std::size_t size)
 
void * operator new[] (std::size_t size, std::align_val_t al)
 
void * operator new[] (std::size_t size, const std::nothrow_t &tag) noexcept
 
void * operator new[] (std::size_t size, std::align_val_t al, const std::nothrow_t &tag) noexcept
 
int posix_memalign (void **memptr, size_t alignment, size_t size) noexcept
 
void * realloc (void *ptr, size_t size) noexcept
 

Macro Definition Documentation

◆ ALLOC_USE_PTHREADS

#define ALLOC_USE_PTHREADS

Definition at line 9 of file memory_proxies.cc.

◆ CPP_MEM_OVERRIDE

#define CPP_MEM_OVERRIDE

Definition at line 307 of file memory_proxies.cc.

◆ USE_LOCAL_MALLOC

#define USE_LOCAL_MALLOC

Definition at line 23 of file memory_proxies.cc.

Function Documentation

◆ aligned_alloc()

void* aligned_alloc ( size_t  alignment,
size_t  size 
)
noexcept

Definition at line 242 of file memory_proxies.cc.

References myMessageLogger_cff::alignment, CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and runTheMatrix::ret.

Referenced by Matriplex::aligned_alloc64(), aligned_allocator< T, Alignment >::allocate(), and cms::cuda::make_host_unique().

242  {
243  CMS_SA_ALLOW static const auto original = get<decltype(&::aligned_alloc)>("aligned_alloc");
244  if (not alloc_monitor_running_state()) {
245  return original(alignment, size);
246  }
247 
248  auto& reg = AllocMonitorRegistry::instance();
249  return reg.allocCalled(
250  size,
251  [alignment, size]() { return original(alignment, size); },
252  [](auto ret) { return malloc_usable_size(ret); });
253 }
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ alloc_monitor_start()

void alloc_monitor_start ( )

Definition at line 161 of file memory_proxies.cc.

Referenced by cms::perftools::AllocMonitorRegistry::start().

161 { alloc_monitor_running_state() = true; }

◆ alloc_monitor_start_thread_reporting()

void alloc_monitor_start_thread_reporting ( )

Definition at line 166 of file memory_proxies.cc.

166 { getTracker().start_reporting(); }

◆ alloc_monitor_stop()

void alloc_monitor_stop ( )

Definition at line 162 of file memory_proxies.cc.

Referenced by cms::perftools::AllocMonitorRegistry::~AllocMonitorRegistry().

162 { alloc_monitor_running_state() = false; }

◆ alloc_monitor_stop_thread_reporting()

bool alloc_monitor_stop_thread_reporting ( )

Definition at line 164 of file memory_proxies.cc.

164 { return getTracker().stop_reporting(); }

◆ calloc()

void* calloc ( size_t  nitems,
size_t  item_size 
)
noexcept

Definition at line 183 of file memory_proxies.cc.

References init, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and runTheMatrix::ret.

Referenced by cree_mat(), cree_mat_prod(), FWColorManager::initColorTable(), and readRemote().

183  {
184  const auto original = Originals::calloc;
185  Originals::init();
186  if (not alloc_monitor_running_state()) {
187  return original(nitems, item_size);
188  }
189  auto& reg = AllocMonitorRegistry::instance();
190  return reg.allocCalled(
191  nitems * item_size,
192  [nitems, item_size, original]() { return original(nitems, item_size); },
193  [](auto ret) { return malloc_usable_size(ret); });
194 }
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued
int init
Definition: HydjetWrapper.h:66
void * calloc(size_t nitems, size_t item_size) noexcept

◆ free()

void free ( void *  ptr)
noexcept

Definition at line 288 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), and definitions::original.

Referenced by evf::__attribute__(), cond::auth::Cipher::b64decrypt(), cond::auth::Cipher::b64encrypt(), base64_decode_alloc_ctx(), RivetAnalyzer::beginJob(), DQMEventInfo::bookHistograms(), pat::UserData::checkDictionaries(), lumi::Lumi2DB::cleanTemporaryMemory(), pat::EventHypothesis::createExceptionMessage(), aligned_allocator< T, Alignment >::deallocate(), cond::auth::Cipher::decrypt(), mkfit::Pool< mkfit::MkFitter >::destroy(), notcub::CachingDeviceAllocator::DeviceAllocate(), notcub::CachingDeviceAllocator::DeviceFree(), DQMHarvestingMetadata::dqmEndRun(), ExternalLHEProducer::executeScript(), LumiProducer::fillLSCache(), SiStripHistoPlotter::fillNamedImageBuffer(), edm::storage::LocalFileSystem::findCachePath(), edm::storage::LocalFileSystem::findMount(), cond::auth::DecodingKey::flush(), notcub::CachingDeviceAllocator::FreeAllCached(), getCompressedBuffer(), WatcherStreamFileReader::getInputFile(), l1t::Parameter::getVector(), cond::auth::DecodingKey::init(), edm::storage::LocalFileSystem::initFSList(), EGammaMvaEleEstimatorCSA14::initialize(), EGammaMvaEleEstimator::initialize(), edm::storage::LocalFileSystem::isLocalPath(), reco::details::loadTMVAWeights(), main(), MyFree(), cms::cuda::host::impl::HostDeleter::operator()(), operator*(), dqm::implementation::DQMStore::printTrace(), edm::storage::LocalFileSystem::readFSTypes(), reco::details::readGzipFile(), readRemote(), cms::h5::Attribute::readString(), EcalLaserCondTools::FileReader::readTime(), lumi::Lumi2DB::retrieveData(), edm::typeDemangle(), lumi::Lumi2DB::writeBeamIntensityOnly(), LMFDat::writeDB(), jsoncollector::Json::BatchAllocator< AllocatedType, objectPerAllocation >::~BatchAllocator(), Demangle::~Demangle(), DTSpy::~DTSpy(), edm::storage::LocalFileSystem::~LocalFileSystem(), Matriplex::MatriplexVector< MP >::~MatriplexVector(), and edm::service::SimpleMemoryCheck::~SimpleMemoryCheck().

288  {
289  CMS_SA_ALLOW static const auto original = get<decltype(&::free)>("free");
290  // ignore memory allocated from our static array at startup
291  if (not is_local_alloc(ptr)) {
292  if (not alloc_monitor_running_state()) {
293  original(ptr);
294  return;
295  }
296 
297  auto& reg = AllocMonitorRegistry::instance();
298  reg.deallocCalled(
299  ptr, [](auto ptr) { original(ptr); }, [](auto ptr) { return malloc_usable_size(ptr); });
300  }
301 }
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ malloc()

void* malloc ( size_t  size)
noexcept

Definition at line 172 of file memory_proxies.cc.

References init, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and runTheMatrix::ret.

Referenced by evf::__attribute__(), jsoncollector::Json::BatchAllocator< AllocatedType, objectPerAllocation >::allocateBatch(), base64_decode_alloc_ctx(), base64_encode_alloc(), cond::auth::Cipher::bf_process_alloc(), cree_mat(), cree_mat_prod(), DTSpy::DTSpy(), LumiProducer::fillLSCache(), getCompressedBuffer(), cond::auth::DecodingKey::init(), edm::storage::LocalFileSystem::initFSInfo(), EGammaMvaEleEstimatorCSA14::initialize(), EGammaMvaEleEstimator::initialize(), MyAlloc(), reco::details::readGzipFile(), lumi::Lumi2DB::retrieveBeamIntensity(), lumi::Lumi2DB::retrieveData(), and LMFDat::writeDB().

172  {
173  const auto original = Originals::malloc;
174  Originals::init();
175  if (not alloc_monitor_running_state()) {
176  return original(size);
177  }
178  auto& reg = AllocMonitorRegistry::instance();
179  return reg.allocCalled(
180  size, [size, original]() { return original(size); }, [](auto ret) { return malloc_usable_size(ret); });
181 }
size
Write out results.
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued
int init
Definition: HydjetWrapper.h:66
void * malloc(size_t size) noexcept

◆ memalign()

void* memalign ( size_t  alignment,
size_t  size 
)
noexcept

Definition at line 275 of file memory_proxies.cc.

References myMessageLogger_cff::alignment, CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and runTheMatrix::ret.

275  {
276  CMS_SA_ALLOW static const auto original = get<decltype(&::memalign)>("memalign");
277  if (not alloc_monitor_running_state()) {
278  return original(alignment, size);
279  }
280 
281  auto& reg = AllocMonitorRegistry::instance();
282  return reg.allocCalled(
283  size,
284  [alignment, size]() { return original(alignment, size); },
285  [](auto ret) { return malloc_usable_size(ret); });
286 }
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ operator delete() [1/6]

void operator delete ( void *  ptr)
noexcept

Definition at line 323 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), and definitions::original.

323  {
324  CMS_SA_ALLOW static const auto original = get<void (*)(void*)>("_ZdlPv");
325  if (not alloc_monitor_running_state()) {
326  original(ptr);
327  return;
328  }
329 
330  auto& reg = AllocMonitorRegistry::instance();
331  reg.deallocCalled(
332  ptr, [](auto ptr) { original(ptr); }, [](auto ptr) { return malloc_usable_size(ptr); });
333 } //_ZdlPv
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete() [2/6]

void operator delete ( void *  ptr,
std::align_val_t  al 
)
noexcept

Definition at line 435 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), and definitions::original.

435  {
436  CMS_SA_ALLOW static const auto original = get<void (*)(void*, std::align_val_t) noexcept>("_ZdlPvSt11align_val_t");
437 
438  if (not alloc_monitor_running_state()) {
439  original(ptr, al);
440  return;
441  }
442  auto& reg = AllocMonitorRegistry::instance();
443  reg.deallocCalled(
444  ptr, [al](auto ptr) { original(ptr, al); }, [](auto ptr) { return malloc_usable_size(ptr); });
445 } //_ZdlPvSt11align_val_t
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete() [3/6]

void operator delete ( void *  ptr,
std::size_t  sz 
)
noexcept

Definition at line 459 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), and definitions::original.

459  {
460  CMS_SA_ALLOW static const auto original = get<void (*)(void*, std::size_t) noexcept>("_ZdlPvm");
461 
462  if (not alloc_monitor_running_state()) {
463  original(ptr, sz);
464  return;
465  }
466  auto& reg = AllocMonitorRegistry::instance();
467  reg.deallocCalled(
468  ptr, [sz](auto ptr) { original(ptr, sz); }, [](auto ptr) { return malloc_usable_size(ptr); });
469 } //_ZdlPvm
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete() [4/6]

void operator delete ( void *  ptr,
std::size_t  sz,
std::align_val_t  al 
)
noexcept

Definition at line 483 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), and definitions::original.

483  {
484  CMS_SA_ALLOW static const auto original =
485  get<void (*)(void*, std::size_t, std::align_val_t) noexcept>("_ZdlPvmSt11align_val_t");
486 
487  if (not alloc_monitor_running_state()) {
488  original(ptr, sz, al);
489  return;
490  }
491  auto& reg = AllocMonitorRegistry::instance();
492  reg.deallocCalled(
493  ptr, [sz, al](auto ptr) { original(ptr, sz, al); }, [](auto ptr) { return malloc_usable_size(ptr); });
494 } //_ZdlPvmSt11align_val_t
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete() [5/6]

void operator delete ( void *  ptr,
const std::nothrow_t &  tag 
)
noexcept

Definition at line 509 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and makeGlobalPositionRcd_cfg::tag.

509  {
510  CMS_SA_ALLOW static const auto original =
511  get<void (*)(void*, const std::nothrow_t&) noexcept>("_ZdlPvRKSt9nothrow_t");
512 
513  if (not alloc_monitor_running_state()) {
514  original(ptr, tag);
515  return;
516  }
517  auto& reg = AllocMonitorRegistry::instance();
518  reg.deallocCalled(
519  ptr, [&tag](auto ptr) { original(ptr, tag); }, [](auto ptr) { return malloc_usable_size(ptr); });
520 } //_ZdlPvRKSt9nothrow_t
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete() [6/6]

void operator delete ( void *  ptr,
std::align_val_t  al,
const std::nothrow_t &  tag 
)
noexcept

Definition at line 535 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and makeGlobalPositionRcd_cfg::tag.

535  {
536  CMS_SA_ALLOW static const auto original =
537  get<void (*)(void*, std::align_val_t, const std::nothrow_t&) noexcept>("_ZdlPvSt11align_val_tRKSt9nothrow_t");
538 
539  if (not alloc_monitor_running_state()) {
540  original(ptr, al, tag);
541  return;
542  }
543  auto& reg = AllocMonitorRegistry::instance();
544  reg.deallocCalled(
545  ptr, [al, &tag](auto ptr) { original(ptr, al, tag); }, [](auto ptr) { return malloc_usable_size(ptr); });
546 } //_ZdlPvSt11align_val_tRKSt9nothrow_t
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete[]() [1/6]

void operator delete[] ( void *  ptr)
noexcept

Definition at line 346 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), and definitions::original.

346  {
347  CMS_SA_ALLOW static const auto original = get<void (*)(void*)>("_ZdaPv");
348 
349  if (not alloc_monitor_running_state()) {
350  original(ptr);
351  return;
352  }
353  auto& reg = AllocMonitorRegistry::instance();
354  reg.deallocCalled(
355  ptr, [](auto ptr) { original(ptr); }, [](auto ptr) { return malloc_usable_size(ptr); });
356 } //_ZdaPv
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete[]() [2/6]

void operator delete[] ( void *  ptr,
std::align_val_t  al 
)
noexcept

Definition at line 447 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), and definitions::original.

447  {
448  CMS_SA_ALLOW static const auto original = get<void (*)(void*, std::align_val_t) noexcept>("_ZdaPvSt11align_val_t");
449 
450  if (not alloc_monitor_running_state()) {
451  original(ptr, al);
452  return;
453  }
454  auto& reg = AllocMonitorRegistry::instance();
455  reg.deallocCalled(
456  ptr, [al](auto ptr) { original(ptr, al); }, [](auto ptr) { return malloc_usable_size(ptr); });
457 } //_ZdaPvSt11align_val_t
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete[]() [3/6]

void operator delete[] ( void *  ptr,
std::size_t  sz 
)
noexcept

Definition at line 471 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), and definitions::original.

471  {
472  CMS_SA_ALLOW static const auto original = get<void (*)(void*, std::size_t) noexcept>("_ZdaPvm");
473 
474  if (not alloc_monitor_running_state()) {
475  original(ptr, sz);
476  return;
477  }
478  auto& reg = AllocMonitorRegistry::instance();
479  reg.deallocCalled(
480  ptr, [sz](auto ptr) { original(ptr, sz); }, [](auto ptr) { return malloc_usable_size(ptr); });
481 } //_ZdaPvm
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete[]() [4/6]

void operator delete[] ( void *  ptr,
std::size_t  sz,
std::align_val_t  al 
)
noexcept

Definition at line 496 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), and definitions::original.

496  {
497  CMS_SA_ALLOW static const auto original =
498  get<void (*)(void*, std::size_t, std::align_val_t) noexcept>("_ZdaPvmSt11align_val_t");
499 
500  if (not alloc_monitor_running_state()) {
501  original(ptr, sz, al);
502  return;
503  }
504  auto& reg = AllocMonitorRegistry::instance();
505  reg.deallocCalled(
506  ptr, [sz, al](auto ptr) { original(ptr, sz, al); }, [](auto ptr) { return malloc_usable_size(ptr); });
507 } //_ZdaPvmSt11align_val_t
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete[]() [5/6]

void operator delete[] ( void *  ptr,
const std::nothrow_t &  tag 
)
noexcept

Definition at line 522 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and makeGlobalPositionRcd_cfg::tag.

522  {
523  CMS_SA_ALLOW static const auto original =
524  get<void (*)(void*, const std::nothrow_t&) noexcept>("_ZdaPvRKSt9nothrow_t");
525 
526  if (not alloc_monitor_running_state()) {
527  original(ptr, tag);
528  return;
529  }
530  auto& reg = AllocMonitorRegistry::instance();
531  reg.deallocCalled(
532  ptr, [&tag](auto ptr) { original(ptr, tag); }, [](auto ptr) { return malloc_usable_size(ptr); });
533 } //_ZdaPvRKSt9nothrow_t
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator delete[]() [6/6]

void operator delete[] ( void *  ptr,
std::align_val_t  al,
const std::nothrow_t &  tag 
)
noexcept

Definition at line 548 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and makeGlobalPositionRcd_cfg::tag.

548  {
549  CMS_SA_ALLOW static const auto original =
550  get<void (*)(void*, std::align_val_t, const std::nothrow_t&) noexcept>("_ZdaPvSt11align_val_tRKSt9nothrow_t");
551 
552  if (not alloc_monitor_running_state()) {
553  original(ptr, al, tag);
554  return;
555  }
556  auto& reg = AllocMonitorRegistry::instance();
557  reg.deallocCalled(
558  ptr, [al, &tag](auto ptr) { original(ptr, al, tag); }, [](auto ptr) { return malloc_usable_size(ptr); });
559 } //_ZdaPvSt11align_val_tRKSt9nothrow_t
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance

◆ operator new() [1/4]

void* operator new ( std::size_t  size)

Definition at line 312 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and runTheMatrix::ret.

312  {
313  CMS_SA_ALLOW static const auto original = get<void* (*)(std::size_t)>("_Znwm");
314  if (not alloc_monitor_running_state()) {
315  return original(size);
316  }
317 
318  auto& reg = AllocMonitorRegistry::instance();
319  return reg.allocCalled(
320  size, [size]() { return original(size); }, [](auto ret) { return malloc_usable_size(ret); });
321 } //_Znwm
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ operator new() [2/4]

void* operator new ( std::size_t  size,
std::align_val_t  al 
)

Definition at line 358 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and runTheMatrix::ret.

358  {
359  CMS_SA_ALLOW static const auto original = get<void* (*)(std::size_t, std::align_val_t)>("_ZnwmSt11align_val_t");
360  if (not alloc_monitor_running_state()) {
361  return original(size, al);
362  }
363 
364  auto& reg = AllocMonitorRegistry::instance();
365  return reg.allocCalled(
366  size, [size, al]() { return original(size, al); }, [](auto ret) { return malloc_usable_size(ret); });
367 } //_ZnwmSt11align_val_t
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ operator new() [3/4]

void* operator new ( std::size_t  size,
const std::nothrow_t &  tag 
)
noexcept

Definition at line 381 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, runTheMatrix::ret, and makeGlobalPositionRcd_cfg::tag.

381  {
382  CMS_SA_ALLOW static const auto original =
383  get<void* (*)(std::size_t, const std::nothrow_t&) noexcept>("_ZnwmRKSt9nothrow_t");
384 
385  if (not alloc_monitor_running_state()) {
386  return original(size, tag);
387  }
388 
389  auto& reg = AllocMonitorRegistry::instance();
390  return reg.allocCalled(
391  size, [size, &tag]() { return original(size, tag); }, [](auto ret) { return malloc_usable_size(ret); });
392 } //_ZnwmRKSt9nothrow_t
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ operator new() [4/4]

void* operator new ( std::size_t  size,
std::align_val_t  al,
const std::nothrow_t &  tag 
)
noexcept

Definition at line 407 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, runTheMatrix::ret, and makeGlobalPositionRcd_cfg::tag.

407  {
408  CMS_SA_ALLOW static const auto original =
409  get<void* (*)(std::size_t, std::align_val_t, const std::nothrow_t&) noexcept>(
410  "_ZnwmSt11align_val_tRKSt9nothrow_t");
411 
412  if (not alloc_monitor_running_state()) {
413  return original(size, al, tag);
414  }
415 
416  auto& reg = AllocMonitorRegistry::instance();
417  return reg.allocCalled(
418  size, [size, al, &tag]() { return original(size, al, tag); }, [](auto ret) { return malloc_usable_size(ret); });
419 } //_ZnwmSt11align_val_tRKSt9nothrow_t
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ operator new[]() [1/4]

void* operator new[] ( std::size_t  size)

Definition at line 335 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and runTheMatrix::ret.

335  {
336  CMS_SA_ALLOW static const auto original = get<void* (*)(std::size_t)>("_Znam");
337  if (not alloc_monitor_running_state()) {
338  return original(size);
339  }
340 
341  auto& reg = AllocMonitorRegistry::instance();
342  return reg.allocCalled(
343  size, [size]() { return original(size); }, [](auto ret) { return malloc_usable_size(ret); });
344 } //_Znam
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ operator new[]() [2/4]

void* operator new[] ( std::size_t  size,
std::align_val_t  al 
)

Definition at line 369 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and runTheMatrix::ret.

369  {
370  CMS_SA_ALLOW static const auto original = get<void* (*)(std::size_t, std::align_val_t)>("_ZnamSt11align_val_t");
371 
372  if (not alloc_monitor_running_state()) {
373  return original(size, al);
374  }
375 
376  auto& reg = AllocMonitorRegistry::instance();
377  return reg.allocCalled(
378  size, [size, al]() { return original(size, al); }, [](auto ret) { return malloc_usable_size(ret); });
379 } //_ZnamSt11align_val_t
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ operator new[]() [3/4]

void* operator new[] ( std::size_t  size,
const std::nothrow_t &  tag 
)
noexcept

Definition at line 394 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, runTheMatrix::ret, and makeGlobalPositionRcd_cfg::tag.

394  {
395  CMS_SA_ALLOW static const auto original =
396  get<void* (*)(std::size_t, const std::nothrow_t&) noexcept>("_ZnamRKSt9nothrow_t");
397 
398  if (not alloc_monitor_running_state()) {
399  return original(size, tag);
400  }
401 
402  auto& reg = AllocMonitorRegistry::instance();
403  return reg.allocCalled(
404  size, [size, &tag]() { return original(size, tag); }, [](auto ret) { return malloc_usable_size(ret); });
405 } //_ZnamRKSt9nothrow_t
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ operator new[]() [4/4]

void* operator new[] ( std::size_t  size,
std::align_val_t  al,
const std::nothrow_t &  tag 
)
noexcept

Definition at line 421 of file memory_proxies.cc.

References CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, runTheMatrix::ret, and makeGlobalPositionRcd_cfg::tag.

421  {
422  CMS_SA_ALLOW static const auto original =
423  get<void* (*)(std::size_t, std::align_val_t, const std::nothrow_t&) noexcept>(
424  "_ZnamSt11align_val_tRKSt9nothrow_t");
425 
426  if (not alloc_monitor_running_state()) {
427  return original(size, al, tag);
428  }
429 
430  auto& reg = AllocMonitorRegistry::instance();
431  return reg.allocCalled(
432  size, [size, al, &tag]() { return original(size, al, tag); }, [](auto ret) { return malloc_usable_size(ret); });
433 } //_ZnamSt11align_val_tRKSt9nothrow_t
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ posix_memalign()

int posix_memalign ( void **  memptr,
size_t  alignment,
size_t  size 
)
noexcept

Definition at line 256 of file memory_proxies.cc.

References myMessageLogger_cff::alignment, CMS_SA_ALLOW, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and runTheMatrix::ret.

256  {
257  CMS_SA_ALLOW static const auto original = get<decltype(&::posix_memalign)>("posix_memalign");
258  if (not alloc_monitor_running_state()) {
259  return original(memptr, alignment, size);
260  }
261 
262  auto& reg = AllocMonitorRegistry::instance();
263  int ret;
264  reg.allocCalled(
265  size,
266  [&ret, memptr, alignment, size]() {
267  ret = original(memptr, alignment, size);
268  return *memptr;
269  },
270  [](auto ret) { return malloc_usable_size(ret); });
271  return ret;
272 }
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued

◆ realloc()

void* realloc ( void *  ptr,
size_t  size 
)
noexcept

Definition at line 219 of file memory_proxies.cc.

References CMS_SA_ALLOW, g, cms::perftools::AllocMonitorRegistry::instance(), definitions::original, and runTheMatrix::ret.

Referenced by fgettoken().

219  {
220  CMS_SA_ALLOW static const auto original = get<decltype(&::realloc)>("realloc");
221  if (not alloc_monitor_running_state()) {
222  return original(ptr, size);
223  }
224  size_t oldsize = malloc_usable_size(ptr);
225  void* ret;
226  auto& reg = AllocMonitorRegistry::instance();
227  {
228  //incase this calls malloc/free
229  [[maybe_unused]] auto g = reg.makeGuard();
230  ret = original(ptr, size);
231  }
232  size_t used = malloc_usable_size(ret);
233  if (used != oldsize) {
234  reg.deallocCalled(
235  ptr, [](auto) {}, [oldsize](auto) { return oldsize; });
236  reg.allocCalled(
237  size, []() { return nullptr; }, [used](auto) { return used; });
238  }
239  return ret;
240 }
size
Write out results.
#define CMS_SA_ALLOW
static PFTauRenderPlugin instance
ret
prodAgent to be discontinued
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4