Messages in this thread | | | From | Inaky Perez-Gonzalez <> | Subject | Re: [patch 0/2] semaphores: add down_interruptible_timeout() and asm-generic/semaphore.h | Date | Mon, 26 Feb 2007 16:54:17 -0800 |
| |
On Monday 26 February 2007 16:33, Christoph Hellwig wrote: > On Mon, Feb 26, 2007 at 04:13:38PM -0800, inaky@linux.intel.com wrote: > > Introduce down_interruptible_timeout() using timers to make the waiter > > stop waiting by simulating a signal (see first patch for more > > details). As well introduce asm-generic/semaphore.h and make other > > architectures use it too. > > What do you want this for? Do you really need a full counting semaphore > or do you actually want a mutex?
Yeah, I need semaphore. This is a hw register that says when the hw is ready to accept a new command. Code that wants to send commands has to down the semaphore and then send it. When hw is ready to get a new command, it sends and IRQ and the IRQ up()s the semaphore.
Now, we don't want to hang on that down() forever if the hw spaces out. If we get a timeout, we can try recovery actions (like resetting it, for sake of being polite).
I use this in the WHCI Ultra Wide Band radio controller code (coming soon to a hw store near you).
Cristoph, I still wonder how the hell you do it to spot every message that comes into lkml -- I bet you have a cluster of employees using your name doing it... :)
-- Inaky - 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/
| |