From: Rusty Russell Vatsa and I noticed this. call_usermode_helper uses keventd, so the process created inherits its cpus_allowed mask. Unset it. --- kernel/kmod.c | 2 ++ 1 files changed, 2 insertions(+) diff -puN kernel/kmod.c~call_usermodehelper-affinity-fix kernel/kmod.c --- 25/kernel/kmod.c~call_usermodehelper-affinity-fix 2004-02-11 21:15:31.000000000 -0800 +++ 25-akpm/kernel/kmod.c 2004-02-11 21:15:31.000000000 -0800 @@ -158,6 +158,8 @@ static int ____call_usermodehelper(void recalc_sigpending(); spin_unlock_irq(¤t->sighand->siglock); + /* We can run anywhere, unlike our parent keventd(). */ + set_cpus_allowed(current, CPU_MASK_ALL); retval = -EPERM; if (current->fs->root) retval = execve(sub_info->path, sub_info->argv,sub_info->envp); _