Messages in this thread Patch in this message | | | Date | Fri, 17 Mar 2000 16:16:27 -0800 | From | Jun Sun <> | Subject | [PATCH] unnecessary blocking interrupts in exit_notify() |
| |
Linus,
Would you please take this patch? It improves interrupt responsiveness, especially important for embedded systems.
*. It removes the unnecessary blocking of interrupt in exit_notify(). *. In NIST POSIX test on a PII 266 machine, this function blocks interrupts for 450 us. The number is much larger in the same test on a slower powerpc machine. *. No effect on performance (it actually improves performance slightly) *. Tested and verified on my workstation and the target machine.
Regards.
Jun--- linux-2.3.99-pre1/kernel/exit.c Mon Mar 13 14:56:06 2000 +++ linux/kernel/exit.c Fri Mar 17 15:58:15 2000 @@ -360,7 +360,7 @@ * jobs, send them a SIGHUP and then a SIGCONT. (POSIX 3.2.2.2) */ - write_lock_irq(&tasklist_lock); + write_lock(&tasklist_lock); while (current->p_cptr != NULL) { p = current->p_cptr; current->p_cptr = p->p_osptr; @@ -384,15 +384,15 @@ (p->session == current->session)) { int pgrp = p->pgrp; - write_unlock_irq(&tasklist_lock); + write_unlock(&tasklist_lock); if (is_orphaned_pgrp(pgrp) && has_stopped_jobs(pgrp)) { kill_pg(pgrp,SIGHUP,1); kill_pg(pgrp,SIGCONT,1); } - write_lock_irq(&tasklist_lock); + write_lock(&tasklist_lock); } } - write_unlock_irq(&tasklist_lock); + write_unlock(&tasklist_lock); if (current->leader) disassociate_ctty(1);
| |