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 303 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 239 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().

239  {
240  CMS_SA_ALLOW static const auto original = get<decltype(&::aligned_alloc)>("aligned_alloc");
241  if (not alloc_monitor_running_state()) {
242  return original(alignment, size);
243  }
244 
245  auto& reg = AllocMonitorRegistry::instance();
246  return reg.allocCalled(
247  size,
248  [alignment, size]() { return original(alignment, size); },
249  [](auto ret) { return malloc_usable_size(ret); });
250 }
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 285 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().

285  {
286  CMS_SA_ALLOW static const auto original = get<decltype(&::free)>("free");
287  // ignore memory allocated from our static array at startup
288  if (not is_local_alloc(ptr)) {
289  if (not alloc_monitor_running_state()) {
290  original(ptr);
291  return;
292  }
293 
294  auto& reg = AllocMonitorRegistry::instance();
295  reg.deallocCalled(ptr, [](auto ptr) { original(ptr); }, [](auto ptr) { return malloc_usable_size(ptr); });
296  }
297 }
#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 272 of file memory_proxies.cc.

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

272  {
273  CMS_SA_ALLOW static const auto original = get<decltype(&::memalign)>("memalign");
274  if (not alloc_monitor_running_state()) {
275  return original(alignment, size);
276  }
277 
278  auto& reg = AllocMonitorRegistry::instance();
279  return reg.allocCalled(
280  size,
281  [alignment, size]() { return original(alignment, size); },
282  [](auto ret) { return malloc_usable_size(ret); });
283 }
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 318 of file memory_proxies.cc.

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

318  {
319  CMS_SA_ALLOW static const auto original = get<void (*)(void*)>("_ZdlPv");
320  if (not alloc_monitor_running_state()) {
321  original(ptr);
322  return;
323  }
324 
325  auto& reg = AllocMonitorRegistry::instance();
326  reg.deallocCalled(ptr, [](auto ptr) { original(ptr); }, [](auto ptr) { return malloc_usable_size(ptr); });
327 } //_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 427 of file memory_proxies.cc.

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

427  {
428  CMS_SA_ALLOW static const auto original = get<void (*)(void*, std::align_val_t) noexcept>("_ZdlPvSt11align_val_t");
429 
430  if (not alloc_monitor_running_state()) {
431  original(ptr, al);
432  return;
433  }
434  auto& reg = AllocMonitorRegistry::instance();
435  reg.deallocCalled(ptr, [al](auto ptr) { original(ptr, al); }, [](auto ptr) { return malloc_usable_size(ptr); });
436 } //_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 449 of file memory_proxies.cc.

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

449  {
450  CMS_SA_ALLOW static const auto original = get<void (*)(void*, std::size_t) noexcept>("_ZdlPvm");
451 
452  if (not alloc_monitor_running_state()) {
453  original(ptr, sz);
454  return;
455  }
456  auto& reg = AllocMonitorRegistry::instance();
457  reg.deallocCalled(ptr, [sz](auto ptr) { original(ptr, sz); }, [](auto ptr) { return malloc_usable_size(ptr); });
458 } //_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 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 =
473  get<void (*)(void*, std::size_t, std::align_val_t) noexcept>("_ZdlPvmSt11align_val_t");
474 
475  if (not alloc_monitor_running_state()) {
476  original(ptr, sz, al);
477  return;
478  }
479  auto& reg = AllocMonitorRegistry::instance();
480  reg.deallocCalled(
481  ptr, [sz, al](auto ptr) { original(ptr, sz, al); }, [](auto ptr) { return malloc_usable_size(ptr); });
482 } //_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 497 of file memory_proxies.cc.

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

497  {
498  CMS_SA_ALLOW static const auto original =
499  get<void (*)(void*, const std::nothrow_t&) noexcept>("_ZdlPvRKSt9nothrow_t");
500 
501  if (not alloc_monitor_running_state()) {
502  original(ptr, tag);
503  return;
504  }
505  auto& reg = AllocMonitorRegistry::instance();
506  reg.deallocCalled(ptr, [&tag](auto ptr) { original(ptr, tag); }, [](auto ptr) { return malloc_usable_size(ptr); });
507 } //_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 521 of file memory_proxies.cc.

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

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

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

void operator delete[] ( void *  ptr)
noexcept

Definition at line 339 of file memory_proxies.cc.

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

339  {
340  CMS_SA_ALLOW static const auto original = get<void (*)(void*)>("_ZdaPv");
341 
342  if (not alloc_monitor_running_state()) {
343  original(ptr);
344  return;
345  }
346  auto& reg = AllocMonitorRegistry::instance();
347  reg.deallocCalled(ptr, [](auto ptr) { original(ptr); }, [](auto ptr) { return malloc_usable_size(ptr); });
348 } //_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 438 of file memory_proxies.cc.

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

438  {
439  CMS_SA_ALLOW static const auto original = get<void (*)(void*, std::align_val_t) noexcept>("_ZdaPvSt11align_val_t");
440 
441  if (not alloc_monitor_running_state()) {
442  original(ptr, al);
443  return;
444  }
445  auto& reg = AllocMonitorRegistry::instance();
446  reg.deallocCalled(ptr, [al](auto ptr) { original(ptr, al); }, [](auto ptr) { return malloc_usable_size(ptr); });
447 } //_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 460 of file memory_proxies.cc.

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

460  {
461  CMS_SA_ALLOW static const auto original = get<void (*)(void*, std::size_t) noexcept>("_ZdaPvm");
462 
463  if (not alloc_monitor_running_state()) {
464  original(ptr, sz);
465  return;
466  }
467  auto& reg = AllocMonitorRegistry::instance();
468  reg.deallocCalled(ptr, [sz](auto ptr) { original(ptr, sz); }, [](auto ptr) { return malloc_usable_size(ptr); });
469 } //_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 484 of file memory_proxies.cc.

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

484  {
485  CMS_SA_ALLOW static const auto original =
486  get<void (*)(void*, std::size_t, std::align_val_t) noexcept>("_ZdaPvmSt11align_val_t");
487 
488  if (not alloc_monitor_running_state()) {
489  original(ptr, sz, al);
490  return;
491  }
492  auto& reg = AllocMonitorRegistry::instance();
493  reg.deallocCalled(
494  ptr, [sz, al](auto ptr) { original(ptr, sz, al); }, [](auto ptr) { return malloc_usable_size(ptr); });
495 } //_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 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>("_ZdaPvRKSt9nothrow_t");
512 
513  if (not alloc_monitor_running_state()) {
514  original(ptr, tag);
515  return;
516  }
517  auto& reg = AllocMonitorRegistry::instance();
518  reg.deallocCalled(ptr, [&tag](auto ptr) { original(ptr, tag); }, [](auto ptr) { return malloc_usable_size(ptr); });
519 } //_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 534 of file memory_proxies.cc.

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

534  {
535  CMS_SA_ALLOW static const auto original =
536  get<void (*)(void*, std::align_val_t, const std::nothrow_t&) noexcept>("_ZdaPvSt11align_val_tRKSt9nothrow_t");
537 
538  if (not alloc_monitor_running_state()) {
539  original(ptr, al, tag);
540  return;
541  }
542  auto& reg = AllocMonitorRegistry::instance();
543  reg.deallocCalled(
544  ptr, [al, &tag](auto ptr) { original(ptr, al, tag); }, [](auto ptr) { return malloc_usable_size(ptr); });
545 } //_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 308 of file memory_proxies.cc.

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

308  {
309  CMS_SA_ALLOW static const auto original = get<void* (*)(std::size_t)>("_Znwm");
310  if (not alloc_monitor_running_state()) {
311  return original(size);
312  }
313 
314  auto& reg = AllocMonitorRegistry::instance();
315  return reg.allocCalled(size, [size]() { return original(size); }, [](auto ret) { return malloc_usable_size(ret); });
316 } //_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 350 of file memory_proxies.cc.

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

350  {
351  CMS_SA_ALLOW static const auto original = get<void* (*)(std::size_t, std::align_val_t)>("_ZnwmSt11align_val_t");
352  if (not alloc_monitor_running_state()) {
353  return original(size, al);
354  }
355 
356  auto& reg = AllocMonitorRegistry::instance();
357  return reg.allocCalled(
358  size, [size, al]() { return original(size, al); }, [](auto ret) { return malloc_usable_size(ret); });
359 } //_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 373 of file memory_proxies.cc.

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

373  {
374  CMS_SA_ALLOW static const auto original =
375  get<void* (*)(std::size_t, const std::nothrow_t&) noexcept>("_ZnwmRKSt9nothrow_t");
376 
377  if (not alloc_monitor_running_state()) {
378  return original(size, tag);
379  }
380 
381  auto& reg = AllocMonitorRegistry::instance();
382  return reg.allocCalled(
383  size, [size, &tag]() { return original(size, tag); }, [](auto ret) { return malloc_usable_size(ret); });
384 } //_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 399 of file memory_proxies.cc.

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

399  {
400  CMS_SA_ALLOW static const auto original =
401  get<void* (*)(std::size_t, std::align_val_t, const std::nothrow_t&) noexcept>(
402  "_ZnwmSt11align_val_tRKSt9nothrow_t");
403 
404  if (not alloc_monitor_running_state()) {
405  return original(size, al, tag);
406  }
407 
408  auto& reg = AllocMonitorRegistry::instance();
409  return reg.allocCalled(
410  size, [size, al, &tag]() { return original(size, al, tag); }, [](auto ret) { return malloc_usable_size(ret); });
411 } //_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 329 of file memory_proxies.cc.

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

329  {
330  CMS_SA_ALLOW static const auto original = get<void* (*)(std::size_t)>("_Znam");
331  if (not alloc_monitor_running_state()) {
332  return original(size);
333  }
334 
335  auto& reg = AllocMonitorRegistry::instance();
336  return reg.allocCalled(size, [size]() { return original(size); }, [](auto ret) { return malloc_usable_size(ret); });
337 } //_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 361 of file memory_proxies.cc.

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

361  {
362  CMS_SA_ALLOW static const auto original = get<void* (*)(std::size_t, std::align_val_t)>("_ZnamSt11align_val_t");
363 
364  if (not alloc_monitor_running_state()) {
365  return original(size, al);
366  }
367 
368  auto& reg = AllocMonitorRegistry::instance();
369  return reg.allocCalled(
370  size, [size, al]() { return original(size, al); }, [](auto ret) { return malloc_usable_size(ret); });
371 } //_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 386 of file memory_proxies.cc.

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

386  {
387  CMS_SA_ALLOW static const auto original =
388  get<void* (*)(std::size_t, const std::nothrow_t&) noexcept>("_ZnamRKSt9nothrow_t");
389 
390  if (not alloc_monitor_running_state()) {
391  return original(size, tag);
392  }
393 
394  auto& reg = AllocMonitorRegistry::instance();
395  return reg.allocCalled(
396  size, [size, &tag]() { return original(size, tag); }, [](auto ret) { return malloc_usable_size(ret); });
397 } //_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 413 of file memory_proxies.cc.

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

413  {
414  CMS_SA_ALLOW static const auto original =
415  get<void* (*)(std::size_t, std::align_val_t, const std::nothrow_t&) noexcept>(
416  "_ZnamSt11align_val_tRKSt9nothrow_t");
417 
418  if (not alloc_monitor_running_state()) {
419  return original(size, al, tag);
420  }
421 
422  auto& reg = AllocMonitorRegistry::instance();
423  return reg.allocCalled(
424  size, [size, al, &tag]() { return original(size, al, tag); }, [](auto ret) { return malloc_usable_size(ret); });
425 } //_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 253 of file memory_proxies.cc.

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

253  {
254  CMS_SA_ALLOW static const auto original = get<decltype(&::posix_memalign)>("posix_memalign");
255  if (not alloc_monitor_running_state()) {
256  return original(memptr, alignment, size);
257  }
258 
259  auto& reg = AllocMonitorRegistry::instance();
260  int ret;
261  reg.allocCalled(
262  size,
263  [&ret, memptr, alignment, size]() {
264  ret = original(memptr, alignment, size);
265  return *memptr;
266  },
267  [](auto ret) { return malloc_usable_size(ret); });
268  return ret;
269 }
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 218 of file memory_proxies.cc.

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

Referenced by fgettoken().

218  {
219  CMS_SA_ALLOW static const auto original = get<decltype(&::realloc)>("realloc");
220  if (not alloc_monitor_running_state()) {
221  return original(ptr, size);
222  }
223  size_t oldsize = malloc_usable_size(ptr);
224  void* ret;
225  auto& reg = AllocMonitorRegistry::instance();
226  {
227  //incase this calls malloc/free
228  [[maybe_unused]] auto g = reg.makeGuard();
229  ret = original(ptr, size);
230  }
231  size_t used = malloc_usable_size(ret);
232  if (used != oldsize) {
233  reg.deallocCalled(ptr, [](auto) {}, [oldsize](auto) { return oldsize; });
234  reg.allocCalled(size, [ret]() { return ret; }, [used](auto) { return used; });
235  }
236  return ret;
237 }
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