• Frederic Weisbecker's avatar
    kmod: use system_unbound_wq instead of khelper · 90f02303
    Frederic Weisbecker authored
    We need to launch the usermodehelper kernel threads with the widest
    affinity and this is partly why we use khelper.  This workqueue has
    unbound properties and thus a wide affinity inherited by all its children.
    
    Now khelper also has special properties that we aren't much interested in:
    ordered and singlethread.  There is really no need about ordering as all
    we do is creating kernel threads.  This can be done concurrently.  And
    singlethread is a useless limitation as well.
    
    The workqueue engine already proposes generic unbound workqueues that
    don't share these useless properties and handle well parallel jobs.
    
    The only worrysome specific is their affinity to the node of the current
    CPU.  It's fine for creating the usermodehelper kernel threads but those
    inherit this affinity for longer jobs such as requesting modules.
    
    This patch proposes to use these node affine unbound workqueues assuming
    that a node is sufficient to handle several parallel usermodehelper
    requests.
    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>
    90f02303
main.c 24.7 KB