From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Mon, 25 May 2009 19:09:37 +0000 Subject: Re: Good news for threading! Message-Id: List-Id: References: <4A1AA131.7000202@tuffmail.co.uk> In-Reply-To: <4A1AA131.7000202@tuffmail.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: linux-hotplug@vger.kernel.org On Mon, May 25, 2009 at 15:46, Alan Jenkins wrote: > I solved one of the reservations that held me back on threaded udevd.  I > still have some other concerns to work on, but I'm feeling much more > optimistic now. > > Replacing processes with threads reduced page faults (copy-on-write) by > 60-80%, but that _still_ left over 10% of udevd time in page fault overhead. > > I've discovered I can reduce this overhead much further by marking thread > stacks with MADV_DONTFORK.  When a thread needs to fork an external program, > it can temporarily unmark its own thread stack. > > Disclaimer: I have no idea why this should reduce the number of page faults. >  I could be getting something horribly wrong.  But even if it's wrong, at > least it gives me a new angle on this problem. Do you have numbers for the difference of threaded vs. non-threaded, for: time (udevadm trigger; udevadm settle) when no rules are active? On my box it's ~0.6 seconds for the non-threaded udevd and ~460 devices, when I move all rules out of the way. Thanks, Kay