Re: [PATCH] Lock 7 is cpuidle specific, use non-generic value for locking

From: Lina Iyer
Date: Fri Mar 13 2015 - 17:27:56 EST


On Fri, Mar 13 2015 at 14:02 -0600, Andy Gross wrote:
On Thu, Mar 12, 2015 at 04:16:00PM -0600, Lina Iyer wrote:

<snip>

>It looks like the remote side unlocks it too? It doesn't seem like this
>will work with the framework very well. The framework has a kernel
>spinlock attached to the hwspinlock so when we lock the hwspinlock we
>also lock the kernel spinlock and we only release the kernel spinlock
>when the kernel unlocks the hwspinlock. In this case it seems like
>cpuidle wants to have it's own kernel spinlock and just use the trylock
>loop part of __hwspin_lock_timeout() without taking any kernel side
>locks. Plus it wants to write a specific value to the lock.
>
Right.
Just noticed that part of the hwspinlock. Yes SCM unlocks the
hwspinlock. So I cannot hold any lock in Linux. May need changes in the
hwspinlock framework. Seems like an additional flag in hwspinlock to not
lock any in the trylock path work work. Hmm....

Or a specific EXPORT function for this one usecase which is unlike anyone elses
usage.

I think, this can be handled well within the QCOM driver. I will submit
a patch for it and we can discuss then later. For now, this will work
fine as is.

Lina


--
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/