Re: [PATCH] kobject: don't block for each kobject_uevent

From: Greg KH
Date: Thu Mar 19 2009 - 20:16:34 EST


On Thu, Mar 19, 2009 at 09:09:05AM -0700, Arjan van de Ven wrote:
> From d44701ae98a2c43a898dd7a7765d8894fd2e6caa Mon Sep 17 00:00:00 2001
> From: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
> Date: Thu, 19 Mar 2009 09:02:17 -0700
> Subject: [PATCH] kobject: don't block for each kobject_uevent
>
> Right now, the kobject_uevent code blocks for each uevent that's being generated,
> due to using (for hystoric reasons) UHM_WAIT_EXEC as flag to call_usermode_helper().
> Specifically, the effect is that each uevent that is being sent causes the code to
> wake up keventd, then block until keventd has processed the work. Needless to say,
> this happens many times during the system boot.
>
> This patches changes that to UHN_NO_WAIT (brilliant name for a constant btw) so
> that we only schedule the work to fire the uevent message, but do not wait for
> keventd to process the work.
>
> This removes one of the bottlenecks during boot; each one of them is only a small
> effect, but the sum of them does add up.

A faster/easier way to remove this issue is to just set the kernel
helper application to "" in the kernel config. That's what sane distros
do :)

Not to say this patch will not help things, just overall, it doesn't do
much, as your kernel shouldn't even be taking this codepath on modern
distros. If it is, I suggest filing a bug against that distro.

I'll queue it up.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/