From: Bjorn Andersson <firstname.lastname@example.org>
To: Suman Anna <email@example.com>
Cc: Fabien DESSENNE <firstname.lastname@example.org>,
Ohad Ben-Cohen <email@example.com>,
Rob Herring <firstname.lastname@example.org>,
Mark Rutland <email@example.com>,
Maxime Coquelin <firstname.lastname@example.org>,
Alexandre TORGUE <email@example.com>,
Jonathan Corbet <firstname.lastname@example.org>,
Benjamin GAIGNARD <email@example.com>
Subject: Re: [PATCH 0/6] hwspinlock: allow sharing of hwspinlocks
Date: Tue, 6 Aug 2019 11:21:28 -0700 [thread overview]
Message-ID: <20190806182128.GD26807@tuxbook-pro> (raw)
On Tue 06 Aug 10:38 PDT 2019, Suman Anna wrote:
> Hi Fabien,
> On 8/5/19 12:46 PM, Bjorn Andersson wrote:
> > On Mon 05 Aug 01:48 PDT 2019, Fabien DESSENNE wrote:
> >> On 01/08/2019 9:14 PM, Bjorn Andersson wrote:
> >>> On Wed 13 Mar 08:50 PDT 2019, Fabien Dessenne wrote:
> >> B/ This would introduce some inconsistency between the two 'request' API
> >> which are hwspin_lock_request() and hwspin_lock_request_specific().
> >> hwspin_lock_request() looks for an unused lock, so requests for an exclusive
> >> usage. On the other side, request_specific() would request shared locks.
> >> Worst the following sequence can transform an exclusive usage into a shared
> > There is already an inconsistency in between these; as with above any
> > system that uses both request() and request_specific() will be suffering
> > from intermittent failures due to probe ordering.
> >> one:
> >> -hwspin_lock_request() -> returns Id#0 (exclusive)
> >> -hwspin_lock_request() -> returns Id#1 (exclusive)
> >> -hwspin_lock_request_specific(0) -> returns Id#0 and makes Id#0 shared
> >> Honestly I am not sure that this is a real issue, but it's better to have it
> >> in mind before we take ay decision
> Wouldn't it be actually simpler to just introduce a new specific API
> variant for this, similar to the reset core for example (it uses a
> separate exclusive API), without having to modify the bindings at all.
> It is just a case of your driver using the right API, and the core can
> be modified to use the additional tag semantics based on the API. It
> should avoid any confusion with say using a different second cell value
> for the same lock in two different nodes.
But this implies that there is an actual need to hold these locks
exclusively. Given that they are (except for the raw case) all wrapped
by Linux locking primitives there shouldn't be a problem sharing a lock
(except possibly for the raw case).
I agree that we shouldn't specify this property in DT - if anything it
should be a variant of the API.
> If you are sharing a hwlock on the Linux side, surely your driver should
> be aware that it is a shared lock. The tag can be set during the first
> request API, and you look through both tags when giving out a handle.
Why would the driver need to know about it?
> Obviously, the hwspin_lock_request() API usage semantics always had the
> implied additional need for communicating the lock id to the other peer
> entity, so a realistic usage is most always the specific API variant. I
> doubt this API would be of much use for the shared driver usage. This
> also implies that the client user does not care about specifying a lock
> in DT.
Afaict if the lock are shared then there shouldn't be a problem with
some clients using the request API and others request_specific(). As any
collisions would simply mean that there are more contention on the lock.
With the current exclusive model that is not possible and the success of
the request_specific will depend on probe order.
But perhaps it should be explicitly prohibited to use both APIs on the
same hwspinlock instance?
next prev parent reply other threads:[~2019-08-06 18:20 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-13 15:50 [PATCH 0/6] hwspinlock: allow sharing of hwspinlocks Fabien Dessenne
2019-03-13 15:50 ` [PATCH 1/6] dt-bindings: hwlock: add support of shared locks Fabien Dessenne
2019-03-28 15:24 ` Rob Herring
2019-03-13 15:50 ` [PATCH 2/6] hwspinlock: allow sharing of hwspinlocks Fabien Dessenne
2019-07-31 9:22 ` Loic PALLARDY
2019-03-13 15:50 ` [PATCH 3/6] dt-bindings: hwlock: update STM32 #hwlock-cells value Fabien Dessenne
2019-03-28 15:26 ` Rob Herring
2019-03-13 15:50 ` [PATCH 4/6] ARM: dts: stm32: Add hwspinlock node for stm32mp157 SoC Fabien Dessenne
2019-03-28 15:26 ` Rob Herring
2019-03-13 15:50 ` [PATCH 5/6] ARM: dts: stm32: Add hwlock for irqchip on stm32mp157 Fabien Dessenne
2019-03-13 15:50 ` [PATCH 6/6] ARM: dts: stm32: hwlocks for GPIO for stm32mp157 Fabien Dessenne
2019-08-01 19:14 ` [PATCH 0/6] hwspinlock: allow sharing of hwspinlocks Bjorn Andersson
2019-08-05 8:48 ` Fabien DESSENNE
2019-08-05 17:46 ` Bjorn Andersson
2019-08-06 7:43 ` Fabien DESSENNE
2019-08-06 17:38 ` Suman Anna
2019-08-06 18:21 ` Bjorn Andersson [this message]
2019-08-06 21:30 ` Suman Anna
2019-08-07 8:39 ` Fabien DESSENNE
2019-08-07 16:19 ` Suman Anna
2019-08-08 12:52 ` Fabien DESSENNE
2019-08-08 15:37 ` Bjorn Andersson
2019-08-26 13:30 ` Fabien DESSENNE
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).