Messages in this thread |  | | Date | Mon, 12 Feb 2001 11:32:13 +0100 | From | Pavel Machek <> | Subject | Re: [OT] Major Clock Drift |
| |
Hi!
> > > Why are interrupts being disabled for vesafb scrolling anyway ? > > > > Console writes happen under spin_lock_irq(console_lock). > > > > The only reason for this which I can see: the kernel > > can call printk() from interrupt context. > > We certainly need to be able to call printk from interrupt context so that > bit is in itself reasonable, but not the cost. > > Suppose vesafb did something like this, dropping the printk lock > > if(test_and_set_bit(0, &vesafb_lock)) > { > if(in_interrupt()) > { > // remember which bit of the dmesg ring to queue > queued_writes=1; > return; > } > }
Unfortunately, that means that if machine crashes in interrupt, it may "loose" printk message. That is considered bad (tm). Pavel
-- I'm pavel@ucw.cz. "In my country we have almost anarchy and I don't care." Panos Katsaloulis describing me w.r.t. patents at discuss@linmodems.org - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |