Messages in this thread | ![/](/images/icornerl.gif) | | Subject | Re: [PATCH]Re: spin_locks without smp. | From | Alan Cox <> | Date | 10 Jan 2003 14:19:23 +0000 |
| |
On Fri, 2003-01-10 at 13:04, William Lee Irwin III wrote: > Okay, what I'm getting here is that the UP case already has preempt > disabled b/c the locks are taken in IRQ context?
The tx/timeout path isnt always in IRQ context. It may have pre-empt disabled I'm just playing safe
> The thing I don't get is how the spinlock bits cause horrendous > timing issues on UP that are different from SMP, esp. b/c they are > #ifdef'd elsewhere to do nothing but inc/dec preempt_count elsewhere. > There's a bit of "how did it happen" missing in my mind at least
Take a look at 8390.c for the whole how to do it SMP thing. That took 2 months to debug. For junk like the eexpress I've taken the attitude that people who stick on in an SMP box deserve what tkey get. OTOH lots of old single cpu boxes ues them and with the ifdef stuff in they are perfectly usable cards for firewalls, linux terminal server recycled PC's in schools and so forth.
> > preempt_disable() > > disable_irq() > > #ifdef CONFIG_SMP > > spin_lock_... > > #endif > > Hmm, the part I'm missing here is why folding the preempt_disable() > into the spin_lock() is wrong. Or is it the implicit local_irq_save() > that's the (massive performance) problem?
Its the implicit irqsave we need to avoid
> I'm tied up with 64GB at the moment so my wetware cpu cycles are really > totally unavailable for this. =(
Commiserations. I suspect the ethernet stuff is easier.
Alan
- 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/
| ![\](/images/icornerr.gif) |