Re: [LART] pc_keyb.c changes

george anzinger
2001-12-01T01:05:59Z

"David C. Hansen" wrote:
>
> Alexander Viro wrote:
>
> > Could the person who switched from BKL to spin_lock_irqsave() in
> > pc_keyb.c please share whatever the hell he had been smoking? Free clue:
> > disabling interrupts for long intervals to improve scalability is right up
> > there with fighting for peace and fucking for virginity.
> As I slowly raise my hand to take, um credit....
>
> This is definitely one of the drivers I to take a second look at, now
> that I know about the BKL being held for block and char device opens.
> Do you have any ideas how else to do this safely since aux_count is
> referenced during an interrupt?
>
Um, staying as far away from that bit of source as possible, I will
offer:

It depends on how it is referenced. If it is just a counter, you may be
able to just make it atomic. If it needs to "stick" for a little
longer, then consider if there are many readers and only a few writers,
in which case look at the read/write_lockirq code, however, this does
have the down side of irq off. BKL did not protect against interrupts,
so one wonders if the irq bit is needed at all.
--
George george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Real time sched: http://sourceforge.net/projects/rtsched/