• Frederic Weisbecker's avatar
    kmod: handle UMH_WAIT_PROC from system unbound workqueue · bb304a5c
    Frederic Weisbecker authored
    The UMH_WAIT_PROC handler runs in its own thread in order to make sure
    that waiting for the exec kernel thread completion won't block other
    usermodehelper queued jobs.
    
    On older workqueue implementations, worklets couldn't sleep without
    blocking the rest of the queue.  But now the workqueue subsystem handles
    that.  Khelper still had the older limitation due to its singlethread
    properties but we replaced it to system unbound workqueues.
    
    Those are affine to the current node and can block up to some number of
    instances.
    
    They are a good candidate to handle UMH_WAIT_PROC assuming that we have
    enough system unbound workers to handle lots of parallel usermodehelper
    jobs.
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Rik van Riel <riel@redhat.com>
    Reviewed-by: default avatarOleg Nesterov <oleg@redhat.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    bb304a5c
kmod.c 18.9 KB