On Fri, Aug 2, 2013 at 6:15 PM, Leif Hedstrom <l...@ogre.com> wrote: > > On Aug 2, 2013, at 12:01 PM, Yongming Zhao <ming....@gmail.com> wrote: > > > I'd like to enable that reclaimable free list by default building & > installation, can we? > > I'd prefer not for v3.3.5 / 3.4.0. If you still do, I'd absolutely insist > on it being off by default. We do not have enough data points for the > usefulness of this feature, and what impact it might have on other systems > / platforms / services (or e.g. NUMA). > > As you know, I still don't buy the reasons why reclaiming memory is > necessary. It feels like a duct tape solution to an unknown problem (why is > it allocating more memory than you want it to? Why are you running other > applications / tools that are competing for memory? How do you avoid for > the two to not compete for the same memory?). >
The reason of why reclaming memory is need is that: In the freelist, there are different size blocks: 1KB, 2KB, 4KB, 8KB, ... different size block will be placed into different list. suppose at some time, 2KB block is hot, so ATS will allocate many 2KB blocks and put them into 2KB-list. After a while, 4KB block becomes hot, then ATS will allocate many 4KB blocks and put them into 4KB-list. ... 8KB ... ... 16KB ... .... .... .... After ATS running a long time, the number of allocated blocks in each list will reach the *peek* level, but at some time, *not all* block is hot! The blocks which not hot, but have been allocated at *peek* level, is the root cause of memory wast. That is why reclaiming memory is necessary for ATS, and why reclaimable-freelist patch can take effect. > > All my $.01 of course. > > -- Leif > > -- Yunkai Zhang Work at Taobao