On Mon, May 25, 2009 at 15:46, Alan Jenkins <alan-jenkins@xxxxxxxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html