<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Eyecandy mutexes!</title>
	<atom:link href="http://mituzas.lt/2009/02/15/eyecandy-mutexes/feed/" rel="self" type="application/rss+xml" />
	<link>http://mituzas.lt/2009/02/15/eyecandy-mutexes/</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 21:52:54 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
	<item>
		<title>By: Mark Callaghan</title>
		<link>http://mituzas.lt/2009/02/15/eyecandy-mutexes/comment-page-1/#comment-188875</link>
		<dc:creator>Mark Callaghan</dc:creator>
		<pubDate>Mon, 16 Feb 2009 13:33:50 +0000</pubDate>
		<guid isPermaLink="false">http://dammit.lt/?p=367#comment-188875</guid>
		<description>We avoid blobs as much as possibe. I think that Innodb has special code paths for large allocations which blobs might use.</description>
		<content:encoded><![CDATA[<p>We avoid blobs as much as possibe. I think that Innodb has special code paths for large allocations which blobs might use.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Domas Mituzas</title>
		<link>http://mituzas.lt/2009/02/15/eyecandy-mutexes/comment-page-1/#comment-188874</link>
		<dc:creator>Domas Mituzas</dc:creator>
		<pubDate>Mon, 16 Feb 2009 10:11:58 +0000</pubDate>
		<guid isPermaLink="false">http://dammit.lt/?p=367#comment-188874</guid>
		<description>damnit, to figure out where the problem was happening I rebuilt 5.1.30 with -fno-inline and now I&#039;m hitting mem_pool mutexes, rather than ut_malloc one. Debugging inlined functions has always been pain :) Maybe I had some specific situation/edge case, where it was being hit, but I reproduced it on both 4.0 and 5.1 (I&#039;m not sure I even have anything else on this Solaris box). 

Will try to understand what is happening in code path more. 

Yes, I was using dtrace plockstat thing here.

The workload was BLOB reading en-masse. :)</description>
		<content:encoded><![CDATA[<p>damnit, to figure out where the problem was happening I rebuilt 5.1.30 with -fno-inline and now I&#8217;m hitting mem_pool mutexes, rather than ut_malloc one. Debugging inlined functions has always been pain :) Maybe I had some specific situation/edge case, where it was being hit, but I reproduced it on both 4.0 and 5.1 (I&#8217;m not sure I even have anything else on this Solaris box). </p>
<p>Will try to understand what is happening in code path more. </p>
<p>Yes, I was using dtrace plockstat thing here.</p>
<p>The workload was BLOB reading en-masse. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Callaghan</title>
		<link>http://mituzas.lt/2009/02/15/eyecandy-mutexes/comment-page-1/#comment-188870</link>
		<dc:creator>Mark Callaghan</dc:creator>
		<pubDate>Sun, 15 Feb 2009 15:20:21 +0000</pubDate>
		<guid isPermaLink="false">http://dammit.lt/?p=367#comment-188870</guid>
		<description>Domas, 
Looking at the code for 5.0.67 and based on the call stack that you provide, the call chain is mem_heap_create_block -&gt; mem_area_alloc -&gt; ut_malloc -&gt; ut_malloc_low. There are a couple of things to note:
  * mem_area_alloc/mem_area_free is protected by a separate mutex that can be hot
  * mem_area_alloc only calls ut_malloc when the mem_pool_t runs out of memory
  * most of us don&#039;t get to use dtrace. Were you using it?
  * I have not had see the ut_malloc mutex get hot. What workload did you use?
  * the Google patch changes mem_area_malloc/mem_area_free to call malloc/free directly. Even without tcmalloc, most system libraries are probably better than what is provided by mem_area_alloc/mem_area_free/mem_pool_t for multithreaded usage</description>
		<content:encoded><![CDATA[<p>Domas,<br />
Looking at the code for 5.0.67 and based on the call stack that you provide, the call chain is mem_heap_create_block -&gt; mem_area_alloc -&gt; ut_malloc -&gt; ut_malloc_low. There are a couple of things to note:<br />
  * mem_area_alloc/mem_area_free is protected by a separate mutex that can be hot<br />
  * mem_area_alloc only calls ut_malloc when the mem_pool_t runs out of memory<br />
  * most of us don&#8217;t get to use dtrace. Were you using it?<br />
  * I have not had see the ut_malloc mutex get hot. What workload did you use?<br />
  * the Google patch changes mem_area_malloc/mem_area_free to call malloc/free directly. Even without tcmalloc, most system libraries are probably better than what is provided by mem_area_alloc/mem_area_free/mem_pool_t for multithreaded usage</p>
]]></content:encoded>
	</item>
</channel>
</rss>
