Thread (15 messages) 15 messages, 6 authors, 2011-02-04

Re: [PATCH v4 1/4] drivers: hwspinlock: add framework

From: Ohad Ben-Cohen <hidden>
Date: 2011-02-01 06:21:06
Also in: linux-arm-kernel, lkml

On Tue, Feb 1, 2011 at 1:38 AM, Andrew Morton [off-list ref] wrote:
It's a little irritating having two hwspinlock.h's.
hwspinlock_internal.h wold be a conventional approach.  But it's not a
big deal.
...
quoted
+/**
+ * __hwspin_lock_timeout() - lock an hwspinlock with timeout limit
+ * @hwlock: the hwspinlock to be locked
+ * @timeout: timeout value in jiffies
hm, why in jiffies?

The problem here is that lazy programmers will use

       hwspin_lock_timeout(lock, 10, ...)

and their code will work happily with HZ=100 but will explode with HZ=1000.

IOW, this interface *requires* that all callers perform a
seconds-to-jiffies conversion before calling hwspin_lock_timeout().  So
why not reduce their effort and their ability to make mistakes by
defining the API to take seconds?
I considered that, but then decided to use jiffies in order to be
consistent with wait_event_timeout/schedule_timeout (although I don't
return the remaining jiffies in case the lock is taken before the
timeout elapses), and also to allow user-selected granularity.

But I do kind of like the idea of not using jiffies. We can probably
even move to msecs, since anyway this is an error condition, and
people who needs a quick check should just use the trylock() version.

I'll do a quick respin of the patches with that and the
hwspinlock_internal.h comment above.

Thanks,
Ohad.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help