|
|
Subscribe / Log in / New account

OpenSolaris governing board threatens dissolution (The H)

OpenSolaris governing board threatens dissolution (The H)

Posted Jul 18, 2010 20:04 UTC (Sun) by cmccabe (guest, #60281)
In reply to: OpenSolaris governing board threatens dissolution (The H) by johill
Parent article: OpenSolaris governing board threatens dissolution (The H)

You're right-- not all spinlocks do disable interrupts. I was just replying to trasz's accusation that disabling interrupts in spinlocks was a crazy, Linux-only idea. I guess I was kind of feeding the troll, sigh.

Traditionally in Linux you used spin_lock_irqsave when you needed to modify the same variable in an interrupt handler as in some other kernel code.

I know that lately there's been a move towards threaded IRQ handlers and less use of CLI / STI. The PREEMPT_RT patchset, which I've used previously at work, replaces most spinlocks with mutexes in order to get better maximum latency performance. It would be interesting to see a comparison between Linux + PREEMPT_RT and Solaris's architecture. As far as I know, the selling point for these architectural changes is reduced latency rather than greater throughput-- which, again, is contrary to what trasz is saying.


to post comments

OpenSolaris governing board threatens dissolution (The H)

Posted Aug 6, 2010 9:29 UTC (Fri) by trasz (guest, #45786) [Link]

I never said disabling interrupts in spinlocks was crazy - I said systems using interrupt threads and fully functional mutexes don't need to disable interrupts, because there is nothing wrong with interrupt thread blocking on mutex.

As for the speed comparisons - take a look at FreeBSD. It has spinlocks - which disable interrupts - but their use is discouraged, because they _are_ slower. If threaded interrupts handlers in Linux result in worse performance, this might be caused by poor implementation.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds