Re: [PATCH NCR5380 updates
From: Alan Cox <hidden>
Date: 2003-11-19 22:28:10
On Maw, 2003-11-18 at 10:26, Christoph Hellwig wrote:
- use schedule_delayed_work() instead of the global timer for the
coroutinesDefinitely good
- use dev_id field in the isr instead of searching the global list
of hosts (g_NCR5380 had to be updated to pass in that one for
this change)Makes sense
- use spinlocks even in the non-interrupt driven case, with SMP
and PREEMPT that's needed these daysMake sure they don't disable interrupts. If you take an IRQ disabling spinlock you might as well go home because those code paths can take ages to run). Without locking its actually best to ignore the IRQ on any SMP box and poll because of the chip design. Think of the coroutine as a thread running on the host CPU pretending to be most of the scsi controller.. The locks are guarding the interrupt handler paths against the command issue path (which is single threaded via run_main) so I strongly disagree with your belief that it needs changing. The chip is also quite happy to wait ages for the host machine to do something, its 'hi-tech' technology from the era of 4Mhz processors being quick. Your changes as proposed would make NCR5380 unusable.