<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Eyecandy mutexes!</title>
	<atom:link href="http://dom.as/2009/02/15/eyecandy-mutexes/feed/" rel="self" type="application/rss+xml" />
	<link>http://dom.as/2009/02/15/eyecandy-mutexes/</link>
	<description></description>
	<lastBuildDate>Sat, 17 Dec 2011 20:14:59 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Mark Callaghan</title>
		<link>http://dom.as/2009/02/15/eyecandy-mutexes/#comment-1470</link>
		<dc:creator><![CDATA[Mark Callaghan]]></dc:creator>
		<pubDate>Mon, 16 Feb 2009 13:33:50 +0000</pubDate>
		<guid isPermaLink="false">http://dammit.lt/?p=367#comment-1470</guid>
		<description><![CDATA[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://dom.as/2009/02/15/eyecandy-mutexes/#comment-1469</link>
		<dc:creator><![CDATA[Domas Mituzas]]></dc:creator>
		<pubDate>Mon, 16 Feb 2009 10:11:58 +0000</pubDate>
		<guid isPermaLink="false">http://dammit.lt/?p=367#comment-1469</guid>
		<description><![CDATA[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://dom.as/2009/02/15/eyecandy-mutexes/#comment-1468</link>
		<dc:creator><![CDATA[Mark Callaghan]]></dc:creator>
		<pubDate>Sun, 15 Feb 2009 15:20:21 +0000</pubDate>
		<guid isPermaLink="false">http://dammit.lt/?p=367#comment-1468</guid>
		<description><![CDATA[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>

