Skip to contentSkip to conversation

Affinity of call_usermode_helper fix

PATCH New Rusty Russell 1 participant 1 message Jan 30, 2004

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Affinity of call_usermode_helper fix

Vatsa and I noticed this.

call_usermode_helper uses keventd, so the process created inherits its cpus_allowed mask. Unset it.

Name: call_usermode_helper Without Being Bound To A Specific CPU
Author: Rusty Russell
Status: Booted on 2.6.2-rc2-bk2

D: call_usermode_helper uses keventd, so the process created inherits
D: its cpus_allowed mask. Unset it.

kernel/kmod.c +2 -0
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .6951-linux-2.6.2-rc2-bk2/kernel/kmod.c .6951-linux-2.6.2-rc2-bk2.updated/kernel/kmod.c
@@ -168,6 +168,8 @@ static int ____call_usermodehelper(void 
 	recalc_sigpending();
 	spin_unlock_irq(&current->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);

--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.