<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Still Life with Chicken &#187; tech</title>
	<atom:link href="http://www.kaccardi.net/blog/?feed=rss2&#038;cat=7" rel="self" type="application/rss+xml" />
	<link>http://www.kaccardi.net/blog</link>
	<description>miscellaneous ramblings from Menial Labor farm</description>
	<lastBuildDate>Mon, 12 Sep 2011 23:15:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Top 10 Runtime Power Management mistakes</title>
		<link>http://www.kaccardi.net/blog/?p=35</link>
		<comments>http://www.kaccardi.net/blog/?p=35#comments</comments>
		<pubDate>Mon, 12 Sep 2011 23:15:36 +0000</pubDate>
		<dc:creator>Kristen</dc:creator>
				<category><![CDATA[lpc]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kaccardi.net/blog/?p=35</guid>
		<description><![CDATA[Since I had more than one person ask if I could document this somewhere, here is my part of the presentation that Len and I did for LPC2011.  (yes, as requested I will also be submitting this as a patch to Documentation at some point soon) This past year I was tasked with enabling runtime [...]]]></description>
			<content:encoded><![CDATA[<p>Since I had more than one person ask if I could document this somewhere, here is my part of the presentation that Len and I did for<a title="LPC2011" href="http://linuxplumbersconf.org" target="_blank"> LPC2011</a>.  (yes, as requested I will also be submitting this as a patch to Documentation at some point soon)</p>
<p>This past year I was tasked with enabling runtime power management for most of the drivers for the Moorestown architecture for<a title="Meego" href="http://www.meego.com" target="_blank"> Meego</a>.  I was also the Meego kernel maintainer for the Moorestown architecture for a few months, and got to review many drivers during that time.  Below are the top 10 issues I found driver writers making (over and over and over again) while attempting to implement runtime power management.</p>
<ol>
<li>Not understanding the general concept of runtime power management.  Runtime power management is initiated by the kernel and transparent to user space.  YOU determine when you are not busy and sleep then, you don&#8217;t wait for someone to tell you to.</li>
<li>Not understanding what your subsystem does for runtime PM.  I saw many driver writers duplicating work that is done in their subsystem core.</li>
<li>Make sure you understand all the possible entry points to your driver.  Sysfs is an entry point.</li>
<li>Make sure you understand when you are actually touching hardware.</li>
<li>Make sure you understand the context in which you are being called during these entry points (i.e. are you called in interrupt context?).</li>
<li>For drivers who may have entry points called in interrupt context, you must ensure that the hardware is available without sleeping, otherwise use a work queue.</li>
<li>Ref counting during the irq handler does cost cycles.  This may be ok, depending on your device.  If you have to do ref counting during the irq handler, use a threaded irq handler if possible (see #6).</li>
<li>Have the correct granularity for your ref counting.  Depending on your hardware, there is likely some kind of performance penalty for entering a suspended state.  You many even lose device state.  Restoring can take time, so you want to make sure you are appropriately idle before allowing a suspend.</li>
<li>Unbalanced ref counting occurs when you do not pay attention to error paths.</li>
<li>Unbalanced ref counting can occur when you try to do something tricky with the ref counting to work around overly complex code paths (like setting your pm usage count directly to zero).  This will cost you hours and hours of debug time.  If it isn&#8217;t obvious where to increment/decrement your counter, you are doing something wrong.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.kaccardi.net/blog/?feed=rss2&#038;p=35</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mission Accomplished</title>
		<link>http://www.kaccardi.net/blog/?p=22</link>
		<comments>http://www.kaccardi.net/blog/?p=22#comments</comments>
		<pubDate>Mon, 22 Sep 2008 21:50:09 +0000</pubDate>
		<dc:creator>Kristen</dc:creator>
				<category><![CDATA[lpc]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.kaccardi.net/blog/?p=22</guid>
		<description><![CDATA[for real. I couldn&#8217;t have been happier with how the Linux Plumbers Conference went last week. I went back and looked at the original proposal that we had Arjan, Greg, and Randy present to the Linux Foundation, and we seem to have hit all our original goals. From conception we wanted this to be a [...]]]></description>
			<content:encoded><![CDATA[<p>for real.</p>
<p>I couldn&#8217;t have been happier with how the Linux Plumbers Conference went last week.  I went back and looked at the original proposal that we had Arjan, Greg, and Randy present to the Linux Foundation, and we seem to have hit all our original goals.  From conception we wanted this to be a &#8220;working&#8221; conference &#8211; and from the conversations in the hallways that I overheard, to the discussions in the microconfs that went on, I could see that people were indeed getting together, discussing issues and solving problems.  Conferences require a lot of time, effort, and money to do right, and it&#8217;s gratifying to feel that something useful will come out of this.</p>
<p>I think that now I can go back to blogging about duck poo and vegetables.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaccardi.net/blog/?feed=rss2&#038;p=22</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Things you should not do when running a professional conference</title>
		<link>http://www.kaccardi.net/blog/?p=21</link>
		<comments>http://www.kaccardi.net/blog/?p=21#comments</comments>
		<pubDate>Fri, 01 Aug 2008 15:35:35 +0000</pubDate>
		<dc:creator>Kristen</dc:creator>
				<category><![CDATA[ewww]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.kaccardi.net/blog/?p=21</guid>
		<description><![CDATA[#4 &#8211; list strippers or prostitutes as reasons to attend next year]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.linuxsymposium.org/2008/">#4</a> &#8211; list strippers or prostitutes as reasons to attend next year</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaccardi.net/blog/?feed=rss2&#038;p=21</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What is a Plumbers Conference?</title>
		<link>http://www.kaccardi.net/blog/?p=20</link>
		<comments>http://www.kaccardi.net/blog/?p=20#comments</comments>
		<pubDate>Mon, 28 Jul 2008 17:12:03 +0000</pubDate>
		<dc:creator>Kristen</dc:creator>
				<category><![CDATA[lpc]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.kaccardi.net/blog/?p=20</guid>
		<description><![CDATA[After spending a few days manning the Plumbers booth at OSCON, I thought I&#8217;d post the answer to the question that everyone seemed to want to know &#8211; What is a Linux Plumbers Conference? We came up with the word &#8220;Plumbing&#8221; to describe the low level infrastructure of a Linux System. This includes the Kernel, [...]]]></description>
			<content:encoded><![CDATA[<p>After spending a few days manning the Plumbers booth at OSCON, I thought I&#8217;d post the answer to the question that everyone seemed to want to know &#8211; What is a Linux Plumbers Conference?  We came up with the word &#8220;Plumbing&#8221; to describe the low level  infrastructure of a Linux System.  This includes the Kernel, desktop infrastructure like X and graphics libraries, system utilities like udev and hal, as well as essential libraries like glibc and friends.  These components interface with each other at times &#8211; some better than others.  We hope to provide a forum for people from these types of projects to get together and try to solve problems that are system wide or cross multiple project boundaries.</p>
<p>In addition to the topics to be discussed in the microconfs and the general talks (see http://linuxplumbersconf.org/program/schedule/), we will have &#8220;unconference&#8221; style talks.  We have several smaller rooms available for people to get together and work out specifics, talk about something they didn&#8217;t get on the schedule, or have a group hug.  These rooms can be reserved at the start of the conference.</p>
<p>August 18th the registration fee for Plumbers will increase to $300.  If you haven&#8217;t already registered, what are you waiting for?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaccardi.net/blog/?feed=rss2&#038;p=20</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
