<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 27, 2015 at 9:28 PM, Alex Rousskov <span dir="ltr"><<a href="mailto:rousskov@measurement-factory.com" target="_blank">rousskov@measurement-factory.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">On 08/27/2015 08:58 AM, Kinkie wrote:<br>
<br>
>   this patch turns StoreEntry into MEMPROXY_CLASS, getting rid of the<br>
> default constructors.<br>
>   In the process, it turns hash_link into a class, giving it a default<br>
> constructor in order to support nonzeroing pools.<br>
>   The old custom allocator also gave a nonstandard chunk size; that<br>
> tweak should not be necessary anymore.<br>
<br>
</span>Can you explain why that tweak should not be necessary any more?<br></blockquote><div><br></div><div>It was discussed on IRC (log edited for clarity, date is 2015-08-20)<br><br><span class=""><yadi> AFAIK its optimized for cache_mem holding StoreEntry 
objects without either going over the configured cache_mem limit or 
badly restricting object count when many 0-byte objects are present.</span><br><span class="">so som sort of dynamic pool size thing needs to be 
created. then String, MemBuf, SBuf, and StoreEntry can use it for their 
pools.<br>...<br></span><yadi> <span class="">looking at StoreEntry itelf Im not clear on why it 
needs 2MB chunks in the first place. maybe its just that we have so many
 in the air all the time it would mean avoiding long list of chunks in 
the allocator state.</span> <br><span class=""><yadi> lifeless, have any idea on this? its sort of early Squid-3 or Squid-2 era stuff<br></span></div><div><span class=""><lifeless> </span><span class="">storeentry having a 2MB chunk is relatively recent AFAIK, post-2004<br></span></div><div><span class=""><lifeless> </span><span class="">I'd bet its an optimisation patch though<br></span></div><div><span class=""><yadi> </span><span class="">lifeless: I tracked the 2MB Storeentry chunk back toa a patch by Duane in 1998 documented "adding", </span><span class=""><span class="">for squid 1.2.beta12 it seems</span><br></span></div><div><span class=""><yadi> </span><span class="">kinkie: I think this calls for an experimental targeted conversion with lots of tests on what behaviour is affected.<br></span><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I have no objections related to the patch, but FYI:<br>
<br>
> $ <a href="http://find-bad-changes.pl" rel="noreferrer" target="_blank">find-bad-changes.pl</a> < /tmp/mempools-nozero-storeentry.patch<br>
> src/store.cc:307: Unnecessary code change of: -    mem_obj(NULL),<br>
> src/store.cc:308:                     ... to: +    mem_obj(nullptr),<br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">    Francesco</div>
</div></div>