From: Amos Jeffries Date: Tue, 24 Jan 2017 09:06:00 +0000 (+1300) Subject: Cleanup: convert Delay Pool classes to MEMPROXY X-Git-Tag: M-staged-PR71~304 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b58d2a22b31ec12c7070dfca849359bb726a1f12;p=thirdparty%2Fsquid.git Cleanup: convert Delay Pool classes to MEMPROXY --- diff --git a/src/CommonPool.h b/src/CommonPool.h index 21ac458cdc..88d3844279 100644 --- a/src/CommonPool.h +++ b/src/CommonPool.h @@ -24,10 +24,9 @@ */ class CommonPool { + MEMPROXY_CLASS(CommonPool); public: - void *operator new(size_t); - void operator delete (void *); static CommonPool *Factory (unsigned char _class, CompositePoolNode::Pointer&); char const* theClassTypeLabel() const {return typeLabel.termedBuf();} diff --git a/src/CompositePoolNode.h b/src/CompositePoolNode.h index 9ee4ed6341..f74f21bfe3 100644 --- a/src/CompositePoolNode.h +++ b/src/CompositePoolNode.h @@ -24,11 +24,10 @@ class StoreEntry; /// \ingroup DelayPoolsAPI class CompositePoolNode : public RefCountable, public Updateable { + MEMPROXY_CLASS(CompositePoolNode); public: typedef RefCount Pointer; - void *operator new(size_t); - void operator delete (void *); virtual ~CompositePoolNode() {} virtual void stats(StoreEntry * sentry) =0; diff --git a/src/DelayPools.h b/src/DelayPools.h index f515794e5b..4aa7c28460 100644 --- a/src/DelayPools.h +++ b/src/DelayPools.h @@ -43,7 +43,6 @@ public: static unsigned char *DelayClasses(); static void registerForUpdates(Updateable *); static void deregisterForUpdates (Updateable *); - static long MemoryUsed; static DelayPool *delay_data; private: diff --git a/src/DelayTagged.cc b/src/DelayTagged.cc index bd9ce0c075..f4e2312254 100644 --- a/src/DelayTagged.cc +++ b/src/DelayTagged.cc @@ -16,20 +16,6 @@ #include "NullDelayId.h" #include "Store.h" -void * -DelayTagged::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (DelayTagged); - return ::operator new (size); -} - -void -DelayTagged::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (DelayTagged); - ::operator delete (address); -} - DelayTagged::DelayTagged() { DelayPools::registerForUpdates (this); @@ -138,34 +124,6 @@ DelayTagged::id(CompositePoolNode::CompositeSelectionDetails &details) return new Id(this, details.tag); } -void * -DelayTagged::Id::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (Id); - return ::operator new (size); -} - -void -DelayTagged::Id::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (Id); - ::operator delete (address); -} - -void * -DelayTaggedBucket::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (DelayTaggedBucket); - return ::operator new (size); -} - -void -DelayTaggedBucket::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (DelayTaggedBucket); - ::operator delete (address); -} - DelayTaggedBucket::DelayTaggedBucket(String &aTag) : tag (aTag) { debugs(77, 3, "DelayTaggedBucket::DelayTaggedBucket"); diff --git a/src/DelayTagged.h b/src/DelayTagged.h index 1fea930487..866cf1078f 100644 --- a/src/DelayTagged.h +++ b/src/DelayTagged.h @@ -23,11 +23,10 @@ /// \ingroup DelayPoolsAPI class DelayTaggedBucket : public RefCountable { + MEMPROXY_CLASS(DelayTaggedBucket); public: typedef RefCount Pointer; - void *operator new(size_t); - void operator delete (void *); void stats(StoreEntry *)const; DelayTaggedBucket(String &aTag); @@ -39,11 +38,11 @@ public: /// \ingroup DelayPoolsAPI class DelayTagged : public CompositePoolNode { + MEMPROXY_CLASS(DelayTagged); public: typedef RefCount Pointer; - void *operator new(size_t); - void operator delete (void *); + DelayTagged(); virtual ~DelayTagged(); virtual void stats(StoreEntry * sentry); @@ -58,10 +57,9 @@ private: /// \ingroup DelayPoolsInternal class Id:public DelayIdComposite { + MEMPROXY_CLASS(DelayTagged::Id); public: - void *operator new(size_t); - void operator delete (void *); Id (RefCount, String &); ~Id(); virtual int bytesWanted (int min, int max) const; diff --git a/src/DelayUser.cc b/src/DelayUser.cc index 72220bafc5..f2754e842d 100644 --- a/src/DelayUser.cc +++ b/src/DelayUser.cc @@ -18,20 +18,6 @@ #include "NullDelayId.h" #include "Store.h" -void * -DelayUser::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (DelayUser); - return ::operator new (size); -} - -void -DelayUser::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (DelayUser); - ::operator delete (address); -} - DelayUser::DelayUser() { DelayPools::registerForUpdates (this); @@ -149,34 +135,6 @@ DelayUser::id(CompositePoolNode::CompositeSelectionDetails &details) return new Id(this, details.user->user()); } -void * -DelayUser::Id::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (Id); - return ::operator new (size); -} - -void -DelayUser::Id::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (Id); - ::operator delete (address); -} - -void * -DelayUserBucket::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (DelayUserBucket); - return ::operator new (size); -} - -void -DelayUserBucket::operator delete(void *address) -{ - DelayPools::MemoryUsed -= sizeof(DelayUserBucket); - ::operator delete(address); -} - DelayUserBucket::DelayUserBucket(Auth::User::Pointer aUser) : authUser(aUser) { debugs(77, 3, "DelayUserBucket::DelayUserBucket"); diff --git a/src/DelayUser.h b/src/DelayUser.h index 59feb18545..a3fd509756 100644 --- a/src/DelayUser.h +++ b/src/DelayUser.h @@ -24,11 +24,10 @@ /// \ingroup DelayPoolsAPI class DelayUserBucket : public RefCountable { + MEMPROXY_CLASS(DelayUserBucket); public: typedef RefCount Pointer; - void *operator new(size_t); - void operator delete (void *); void stats(StoreEntry *)const; DelayUserBucket(Auth::User::Pointer); @@ -40,11 +39,10 @@ public: /// \ingroup DelayPoolsAPI class DelayUser : public CompositePoolNode { + MEMPROXY_CLASS(DelayUser); public: typedef RefCount Pointer; - void *operator new(size_t); - void operator delete (void *); DelayUser(); virtual ~DelayUser(); virtual void stats(StoreEntry * sentry); @@ -59,10 +57,9 @@ private: /// \ingroup DelayPoolsInternal class Id:public DelayIdComposite { + MEMPROXY_CLASS(DelayUser::Id); public: - void *operator new(size_t); - void operator delete (void *); Id(RefCount, Auth::User::Pointer); ~Id(); virtual int bytesWanted (int min, int max) const; diff --git a/src/DelayVector.cc b/src/DelayVector.cc index 060a843bb9..cb9dc0d57e 100644 --- a/src/DelayVector.cc +++ b/src/DelayVector.cc @@ -15,20 +15,6 @@ #include "CommRead.h" #include "DelayVector.h" -void * -DelayVector::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (DelayVector); - return ::operator new (size); -} - -void -DelayVector::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (DelayVector); - ::operator delete (address); -} - DelayVector::DelayVector() { DelayPools::registerForUpdates (this); @@ -95,20 +81,6 @@ DelayVector::push_back(CompositePoolNode::Pointer aNode) pools.push_back(aNode); } -void * -DelayVector::Id::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (Id); - return ::operator new (size); -} - -void -DelayVector::Id::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (Id); - ::operator delete (address); -} - DelayVector::Id::Id(DelayVector::Pointer aDelayVector, CompositeSelectionDetails &details) : theVector(aDelayVector) { debugs(77, 3, "DelayVector::Id::Id"); diff --git a/src/DelayVector.h b/src/DelayVector.h index 2c701dc9b2..24e4900f87 100644 --- a/src/DelayVector.h +++ b/src/DelayVector.h @@ -16,11 +16,10 @@ /// \ingroup DelayPoolsAPI class DelayVector : public CompositePoolNode { + MEMPROXY_CLASS(DelayVector); public: typedef RefCount Pointer; - void *operator new(size_t); - void operator delete (void *); DelayVector(); virtual ~DelayVector(); virtual void stats(StoreEntry * sentry); @@ -36,11 +35,9 @@ private: /// \ingroup DelayPoolsInternal class Id:public DelayIdComposite { + MEMPROXY_CLASS(DelayVector::Id); public: - void *operator new(size_t); - void operator delete (void *); - Id (RefCount,CompositeSelectionDetails &); ~Id(); virtual int bytesWanted (int min, int max) const; diff --git a/src/Makefile.am b/src/Makefile.am index 84fa31f905..8589aa4b98 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -109,7 +109,6 @@ DELAY_POOL_ALL_SOURCE = \ DelayUser.h \ DelayVector.cc \ DelayVector.h \ - NullDelayId.cc \ NullDelayId.h \ ClientDelayConfig.cc \ ClientDelayConfig.h diff --git a/src/NullDelayId.cc b/src/NullDelayId.cc deleted file mode 100644 index b27d48eceb..0000000000 --- a/src/NullDelayId.cc +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 1996-2017 The Squid Software Foundation and contributors - * - * Squid software is distributed under GPLv2+ license and includes - * contributions from numerous individuals and organizations. - * Please see the COPYING and CONTRIBUTORS files for details. - */ - -/* DEBUG: section 77 Delay Pools */ - -#include "squid.h" - -#if USE_DELAY_POOLS -#include "DelayPools.h" -#include "NullDelayId.h" - -void * -NullDelayId::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (NullDelayId); - return ::operator new (size); -} - -void -NullDelayId::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (NullDelayId); - ::operator delete (address); -} - -#endif /* USE_DELAY_POOLS */ - diff --git a/src/NullDelayId.h b/src/NullDelayId.h index f0b5645128..0ef3ce03c6 100644 --- a/src/NullDelayId.h +++ b/src/NullDelayId.h @@ -12,15 +12,13 @@ #define NULLDELAYID_H #if USE_DELAY_POOLS -#include "base/RefCount.h" #include "DelayIdComposite.h" class NullDelayId : public DelayIdComposite { + MEMPROXY_CLASS(NullDelayId); public: - void *operator new(size_t); - void operator delete (void *); virtual int bytesWanted (int minimum, int maximum) const {return max(minimum,maximum);} virtual void bytesIn(int qty) {} diff --git a/src/delay_pools.cc b/src/delay_pools.cc index 4166e6df99..4014b56b05 100644 --- a/src/delay_pools.cc +++ b/src/delay_pools.cc @@ -40,17 +40,13 @@ #include "Store.h" #include "StoreClient.h" -/// \ingroup DelayPoolsInternal -long DelayPools::MemoryUsed = 0; - /// \ingroup DelayPoolsInternal class Aggregate : public CompositePoolNode { + MEMPROXY_CLASS(Aggregate); public: typedef RefCount Pointer; - void *operator new(size_t); - void operator delete (void *); Aggregate(); ~Aggregate(); virtual DelaySpec *rate() {return &spec;} @@ -69,10 +65,9 @@ private: /// \ingroup DelayPoolsInternal class AggregateId:public DelayIdComposite { + MEMPROXY_CLASS(Aggregate::AggregateId); public: - void *operator new(size_t); - void operator delete (void *); AggregateId (RefCount); virtual int bytesWanted (int min, int max) const; virtual void bytesIn(int qty); @@ -140,10 +135,9 @@ protected: /// \ingroup DelayPoolsInternal class Id:public DelayIdComposite { + MEMPROXY_CLASS(VectorPool::Id); public: - void *operator new(size_t); - void operator delete (void *); Id (RefCount, int); virtual int bytesWanted (int min, int max) const; virtual void bytesIn(int qty); @@ -157,10 +151,7 @@ protected: /// \ingroup DelayPoolsInternal class IndividualPool : public VectorPool { - -public: - void *operator new(size_t); - void operator delete(void *); + MEMPROXY_CLASS(IndividualPool); protected: virtual char const *label() const {return "Individual";} @@ -170,10 +161,7 @@ protected: /// \ingroup DelayPoolsInternal class ClassCNetPool : public VectorPool { - -public: - void *operator new(size_t); - void operator delete (void *); + MEMPROXY_CLASS(ClassCNetPool); protected: virtual char const *label() const {return "Network";} @@ -235,10 +223,9 @@ protected: /// \ingroup DelayPoolsInternal class Id:public DelayIdComposite { + MEMPROXY_CLASS(ClassCHostPool::Id); public: - void *operator new(size_t); - void operator delete (void *); Id (RefCount, unsigned char, unsigned char); virtual int bytesWanted (int min, int max) const; virtual void bytesIn(int qty); @@ -256,20 +243,6 @@ Aggregate::AggregateId::delayRead(DeferredRead const &aRead) theAggregate->delayRead(aRead); } -void * -CommonPool::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (CommonPool); - return ::operator new (size); -} - -void -CommonPool::operator delete(void *address) -{ - DelayPools::MemoryUsed -= sizeof(CommonPool); - ::operator delete(address); -} - CommonPool * CommonPool::Factory(unsigned char _class, CompositePoolNode::Pointer& compositeCopy) { @@ -400,34 +373,6 @@ ClassCBucket::initHostIndex (DelaySpec &rate, unsigned char index, unsigned char individuals.values[newIndex].init (rate); } -void * -CompositePoolNode::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (CompositePoolNode); - return ::operator new (size); -} - -void -CompositePoolNode::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (CompositePoolNode); - ::operator delete (address); -} - -void * -Aggregate::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (Aggregate); - return ::operator new (size); -} - -void -Aggregate::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (Aggregate); - ::operator delete (address); -} - Aggregate::Aggregate() { theBucket.init (*rate()); @@ -482,20 +427,6 @@ Aggregate::id(CompositeSelectionDetails &details) return new NullDelayId; } -void * -Aggregate::AggregateId::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (AggregateId); - return ::operator new (size); -} - -void -Aggregate::AggregateId::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (AggregateId); - ::operator delete (address); -} - Aggregate::AggregateId::AggregateId(RefCount anAggregate) : theAggregate(anAggregate) {} @@ -537,8 +468,6 @@ DelayPools::InitDelayData() DelayPools::delay_data = new DelayPool[pools()]; - DelayPools::MemoryUsed += pools() * sizeof(DelayPool); - eventAdd("DelayPools::Update", DelayPools::Update, NULL, 1.0, 1); } @@ -547,7 +476,6 @@ DelayPools::FreeDelayData() { eventDelete(DelayPools::Update, NULL); delete[] DelayPools::delay_data; - DelayPools::MemoryUsed -= pools() * sizeof(*DelayPools::delay_data); pools_ = 0; } @@ -610,19 +538,15 @@ std::vector DelayPools::toUpdate; void DelayPools::Stats(StoreEntry * sentry) { - unsigned short i; - storeAppendPrintf(sentry, "Delay pools configured: %d\n\n", DelayPools::pools()); - for (i = 0; i < DelayPools::pools(); ++i) { + for (unsigned short i = 0; i < DelayPools::pools(); ++i) { if (DelayPools::delay_data[i].theComposite().getRaw()) { storeAppendPrintf(sentry, "Pool: %d\n\tClass: %s\n\n", i + 1, DelayPools::delay_data[i].pool->theClassTypeLabel()); DelayPools::delay_data[i].theComposite()->stats (sentry); } else storeAppendPrintf(sentry, "\tMisconfigured pool.\n\n"); } - - storeAppendPrintf(sentry, "Memory Used: %d bytes\n", (int) DelayPools::MemoryUsed); } void @@ -679,20 +603,6 @@ VectorMap::insert (Key const key) return index; } -void * -IndividualPool::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (IndividualPool); - return ::operator new (size); -} - -void -IndividualPool::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (IndividualPool); - ::operator delete (address); -} - VectorPool::VectorPool() { DelayPools::registerForUpdates (this); @@ -799,20 +709,6 @@ VectorPool::id(CompositeSelectionDetails &details) return new Id(this, resultIndex); } -void * -VectorPool::Id::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (Id); - return ::operator new (size); -} - -void -VectorPool::Id::operator delete(void *address) -{ - DelayPools::MemoryUsed -= sizeof (Id); - ::operator delete (address); -} - VectorPool::Id::Id(VectorPool::Pointer aPool, int anIndex) : theVector (aPool), theIndex (anIndex) {} @@ -840,20 +736,6 @@ IndividualPool::makeKey(Ip::Address &src_addr) const return (ntohl(host.s_addr) & 0xff); } -void * -ClassCNetPool::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (ClassCNetPool); - return ::operator new (size); -} - -void -ClassCNetPool::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (ClassCNetPool); - ::operator delete (address); -} - unsigned int ClassCNetPool::makeKey(Ip::Address &src_addr) const { @@ -979,20 +861,6 @@ ClassCHostPool::id(CompositeSelectionDetails &details) return new Id (this, netIndex, hostIndex); } -void * -ClassCHostPool::Id::operator new(size_t size) -{ - DelayPools::MemoryUsed += sizeof (Id); - return ::operator new (size); -} - -void -ClassCHostPool::Id::operator delete (void *address) -{ - DelayPools::MemoryUsed -= sizeof (Id); - ::operator delete (address); -} - ClassCHostPool::Id::Id (ClassCHostPool::Pointer aPool, unsigned char aNet, unsigned char aHost) : theClassCHost (aPool), theNet (aNet), theHost (aHost) {}