public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [sched patch] more sync wakeups, 2.6.5-rc3-mm1
@ 2004-03-30 18:54 Ingo Molnar
  2004-03-30 20:38 ` Ingo Molnar
  0 siblings, 1 reply; 2+ messages in thread
From: Ingo Molnar @ 2004-03-30 18:54 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel


the attached patch extends sync wakeups to the process sys_exit() path
too: the chldwait wakeup can be done sync, since we know that the
process is going to exit (and thus deschedule).

the most visible effect of this change is strace's behavior on SMP
systems: it now stays on a single CPU, together with the traced child. 
(previously it would run in parallel to the child, bouncing around
madly.)

compiled & tested.

	Ingo

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [sched patch] more sync wakeups, 2.6.5-rc3-mm1
  2004-03-30 18:54 [sched patch] more sync wakeups, 2.6.5-rc3-mm1 Ingo Molnar
@ 2004-03-30 20:38 ` Ingo Molnar
  0 siblings, 0 replies; 2+ messages in thread
From: Ingo Molnar @ 2004-03-30 20:38 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 513 bytes --]


(patch attached now.)

* Ingo Molnar <mingo@elte.hu> wrote:

> the attached patch extends sync wakeups to the process sys_exit() path
> too: the chldwait wakeup can be done sync, since we know that the
> process is going to exit (and thus deschedule).
> 
> the most visible effect of this change is strace's behavior on SMP
> systems: it now stays on a single CPU, together with the traced child. 
> (previously it would run in parallel to the child, bouncing around
> madly.)
> 
> compiled & tested.
> 
> 	Ingo

[-- Attachment #2: sched-more-sync-wakeups.patch --]
[-- Type: text/plain, Size: 516 bytes --]

--- linux/kernel/signal.c.orig	
+++ linux/kernel/signal.c	
@@ -1386,12 +1386,12 @@ static inline void __wake_up_parent(stru
 	 * Fortunately this is not necessary for thread groups:
 	 */
 	if (p->tgid == tsk->tgid) {
-		wake_up_interruptible(&tsk->wait_chldexit);
+		wake_up_interruptible_sync(&tsk->wait_chldexit);
 		return;
 	}
 
 	do {
-		wake_up_interruptible(&tsk->wait_chldexit);
+		wake_up_interruptible_sync(&tsk->wait_chldexit);
 		tsk = next_thread(tsk);
 		if (tsk->signal != parent->signal)
 			BUG();

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-03-30 20:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-30 18:54 [sched patch] more sync wakeups, 2.6.5-rc3-mm1 Ingo Molnar
2004-03-30 20:38 ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox