Messages in this thread | | | Date | Fri, 11 Jan 2002 12:00:40 +0000 | From | Arjan van de Ven <> | Subject | Re: [patch] O(1) scheduler, -H5 |
| |
Andi Kleen wrote: > > Russell King <rmk@arm.linux.org.uk> writes: > > > > The serial driver (old or new) open/close functions are one of the worst > > offenders of the global-cli-and-hold-kernel-lock-and-schedule problem. > > I'm currently working on fixing this in the new serial driver. > > When they hold the kernel lock in addition to the global cli() before > schedule() it should be ok. Only the behaviour of code not holding > kernel lock but global cli and calling schedule() has changed.
well the biggest serial.c offender is block_til_ready of course... oh and there's quite some dusty old code that does
save_flags(); cli();
while (some_condition) sleep_on(&queue);
eg not re-disabling interrupts after the sleep_on()..... to the point where just about every use of sleep_on/interruptible_sleep_on is buggy except in serial.c ;( - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |