From: s-anna@ti.com (Suman Anna)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv3 00/14] drivers: mailbox: framework creation
Date: Mon, 29 Apr 2013 10:32:20 -0500 [thread overview]
Message-ID: <517E9284.1010209@ti.com> (raw)
In-Reply-To: <517B2E55.4070708@linaro.org>
Hi Andy,
On 04/26/2013 08:48 PM, Andy Green wrote:
> On 27/04/13 09:04, the mail apparently from Suman Anna included:
>
> Hi Suman -
>
>> Even though both the scenarios look very similar, I believe there are
>> some slight differences. All the devices belonging to a controller may
>> not be of the same type (meaning, intended towards the same remote or be
>> used interchangeably with one another). It is definitely possible if you
>> have a similar scenario to the DMA physical channels and your remote
>> rx interrupt can identify the device/channel to process. This would be
>> very much dependent on the architecture of a controller. The particular
>> example that I have in mind is s/w clients between the same set of
>> remote and host entities using the same device - the send part is anyway
>> arbitrated by the controller, and the same received message can be
>> delivered to the clients, with the clients making the decision whether
>> the packet belongs to them or not. I agree that all remote-ends will not
>> be able to cope up intermixed requests, but isn't this again a
>> controller architecture dependent?
>
> Maybe it's helpful to describe our situation more concretely, because
> the problem is not coming from "the architecture of the [mailbox]
> controller".
Thanks for explaining the usecase. I do think that similar approaches
will become more common (TI AM335 has something similar as well - though
it is related to suspend). The right word should have been "controller
functional integration", I said it as s/w architecture or usage model.
In your case, it is clear that you need time-shared exclusive access,
whereas I am talking about simultaneous-shared usecases.
>
> In the SoC we work on clock and subsystem power control registers, a
> serial bus, and some other assets are not directly accessible from
> Linux. We must ask a coprocessor to operate these for us, using the
> mailbox.
>
> So at any one time, the clock driver or voltagedomain driver for the SoC
> may want to own the mailbox and perform one or more operations over it
> synchronously, in some cases on the remote side involving transactions
> on a serial bus. We don't want other transactions to be occurring while
> we wait for the serial bus to complete what the driver who started that
> asked for, for example.
>
> We can cope with this by having an outer driver mediate access to the
> mailbox. But then there are multiple sync primitives like completions
> and notifiers per operation, because your core already does this.
>
> In short the FIFO + sync operations approach your core implements
> doesn't fit our use case. That can be our problem, in which case we'll
> live with the outer mediation driver on top of the mailbox, or it can be
> a sign the fixed choice of FIFO + sync operations in your core did not
> quite hit the nail on the head to really model all the facets of legit
> mailbox usage.
I agree that the current code doesn't address this usage. The changes
(should have them ready in the next couple of days) I am working on
actually makes this conditional.
>
> At least, this real scenario should be interesting to think about before
> rejecting ^^
No, I didn't reject anything, we are dealing with two contrasting
usecases dependent on the functional integration, and we have to find a
middle ground.
regards
Suman
WARNING: multiple messages have this Message-ID (diff)
From: Suman Anna <s-anna@ti.com>
To: Andy Green <andy.green@linaro.org>
Cc: Jassi Brar <jaswinder.singh@linaro.org>,
Loic PALLARDY <loic.pallardy@st.com>,
Jassi Brar <jassisinghbrar@gmail.com>,
"Ohad Ben-Cohen (ohad@wizery.com)" <ohad@wizery.com>,
Stephen Rothwell <sfr@canb.auug.org.au>,
Russell King <linux@arm.linux.org.uk>,
Arnd Bergmann <arnd@arndb.de>, Tony Lindgren <tony@atomide.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Linus Walleij <linus.walleij@linaro.org>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"Omar Ramirez Luna (omar.ramirez@copitl.com)"
<omar.ramirez@copitl.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCHv3 00/14] drivers: mailbox: framework creation
Date: Mon, 29 Apr 2013 10:32:20 -0500 [thread overview]
Message-ID: <517E9284.1010209@ti.com> (raw)
In-Reply-To: <517B2E55.4070708@linaro.org>
Hi Andy,
On 04/26/2013 08:48 PM, Andy Green wrote:
> On 27/04/13 09:04, the mail apparently from Suman Anna included:
>
> Hi Suman -
>
>> Even though both the scenarios look very similar, I believe there are
>> some slight differences. All the devices belonging to a controller may
>> not be of the same type (meaning, intended towards the same remote or be
>> used interchangeably with one another). It is definitely possible if you
>> have a similar scenario to the DMA physical channels and your remote
>> rx interrupt can identify the device/channel to process. This would be
>> very much dependent on the architecture of a controller. The particular
>> example that I have in mind is s/w clients between the same set of
>> remote and host entities using the same device - the send part is anyway
>> arbitrated by the controller, and the same received message can be
>> delivered to the clients, with the clients making the decision whether
>> the packet belongs to them or not. I agree that all remote-ends will not
>> be able to cope up intermixed requests, but isn't this again a
>> controller architecture dependent?
>
> Maybe it's helpful to describe our situation more concretely, because
> the problem is not coming from "the architecture of the [mailbox]
> controller".
Thanks for explaining the usecase. I do think that similar approaches
will become more common (TI AM335 has something similar as well - though
it is related to suspend). The right word should have been "controller
functional integration", I said it as s/w architecture or usage model.
In your case, it is clear that you need time-shared exclusive access,
whereas I am talking about simultaneous-shared usecases.
>
> In the SoC we work on clock and subsystem power control registers, a
> serial bus, and some other assets are not directly accessible from
> Linux. We must ask a coprocessor to operate these for us, using the
> mailbox.
>
> So at any one time, the clock driver or voltagedomain driver for the SoC
> may want to own the mailbox and perform one or more operations over it
> synchronously, in some cases on the remote side involving transactions
> on a serial bus. We don't want other transactions to be occurring while
> we wait for the serial bus to complete what the driver who started that
> asked for, for example.
>
> We can cope with this by having an outer driver mediate access to the
> mailbox. But then there are multiple sync primitives like completions
> and notifiers per operation, because your core already does this.
>
> In short the FIFO + sync operations approach your core implements
> doesn't fit our use case. That can be our problem, in which case we'll
> live with the outer mediation driver on top of the mailbox, or it can be
> a sign the fixed choice of FIFO + sync operations in your core did not
> quite hit the nail on the head to really model all the facets of legit
> mailbox usage.
I agree that the current code doesn't address this usage. The changes
(should have them ready in the next couple of days) I am working on
actually makes this conditional.
>
> At least, this real scenario should be interesting to think about before
> rejecting ^^
No, I didn't reject anything, we are dealing with two contrasting
usecases dependent on the functional integration, and we have to find a
middle ground.
regards
Suman
next prev parent reply other threads:[~2013-04-29 15:32 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-13 3:23 [PATCHv3 00/14] drivers: mailbox: framework creation Suman Anna
2013-03-13 3:23 ` Suman Anna
2013-03-13 3:23 ` Suman Anna
2013-03-21 11:39 ` Linus Walleij
2013-03-21 11:39 ` Linus Walleij
2013-03-21 23:22 ` Stephen Rothwell
2013-03-21 23:22 ` Stephen Rothwell
2013-03-21 23:22 ` Stephen Rothwell
2013-03-21 23:37 ` Anna, Suman
2013-03-21 23:37 ` Anna, Suman
2013-04-21 2:40 ` Jassi Brar
2013-04-21 2:40 ` Jassi Brar
2013-04-22 15:56 ` Anna, Suman
2013-04-22 15:56 ` Anna, Suman
2013-04-23 4:51 ` Jassi Brar
2013-04-23 4:51 ` Jassi Brar
2013-04-23 19:20 ` Anna, Suman
2013-04-23 19:20 ` Anna, Suman
2013-04-23 23:30 ` Andy Green
2013-04-23 23:30 ` Andy Green
2013-04-24 4:39 ` Jassi Brar
2013-04-24 4:39 ` Jassi Brar
2013-04-24 8:08 ` Loic PALLARDY
2013-04-24 8:08 ` Loic PALLARDY
2013-04-24 8:56 ` Jassi Brar
2013-04-24 8:56 ` Jassi Brar
2013-04-24 23:16 ` Suman Anna
2013-04-24 23:16 ` Suman Anna
2013-04-25 5:20 ` Jassi Brar
2013-04-25 5:20 ` Jassi Brar
2013-04-25 22:29 ` Suman Anna
2013-04-25 22:29 ` Suman Anna
2013-04-25 23:51 ` Andy Green
2013-04-25 23:51 ` Andy Green
2013-04-26 3:46 ` Jassi Brar
2013-04-26 3:46 ` Jassi Brar
2013-04-27 1:04 ` Suman Anna
2013-04-27 1:04 ` Suman Anna
2013-04-27 1:48 ` Andy Green
2013-04-27 1:48 ` Andy Green
2013-04-29 15:32 ` Suman Anna [this message]
2013-04-29 15:32 ` Suman Anna
2013-04-27 4:51 ` Jassi Brar
2013-04-27 4:51 ` Jassi Brar
2013-04-27 18:05 ` [PATCH 1/3] mailbox: rename pl320-ipc specific mailbox.h jaswinder.singh at linaro.org
2013-04-27 18:05 ` jaswinder.singh
2013-04-29 12:46 ` Mark Langsdorf
2013-04-29 12:46 ` Mark Langsdorf
2013-04-27 18:14 ` [RFC 2/3] mailbox: Introduce a new common API jassisinghbrar
2013-05-04 2:20 ` Suman Anna
2013-05-04 2:20 ` Suman Anna
2013-05-04 19:08 ` Jassi Brar
2013-05-04 19:08 ` Jassi Brar
2013-05-06 23:45 ` Suman Anna
2013-05-06 23:45 ` Suman Anna
2013-05-07 7:40 ` Jassi Brar
2013-05-07 7:40 ` Jassi Brar
2013-05-07 21:48 ` Suman Anna
2013-05-07 21:48 ` Suman Anna
2013-05-08 5:44 ` Jassi Brar
2013-05-08 5:44 ` Jassi Brar
2013-05-09 1:25 ` Suman Anna
2013-05-09 1:25 ` Suman Anna
2013-05-09 16:35 ` Jassi Brar
2013-05-09 16:35 ` Jassi Brar
2013-05-10 0:18 ` Suman Anna
2013-05-10 0:18 ` Suman Anna
2013-05-10 10:06 ` Jassi Brar
2013-05-10 10:06 ` Jassi Brar
2013-05-10 16:41 ` Suman Anna
2013-05-10 16:41 ` Suman Anna
2013-04-27 18:14 ` [RFC 3/3] mailbox: pl320: Introduce common API driver jassisinghbrar
2013-04-29 16:44 ` Suman Anna
2013-04-29 16:44 ` Suman Anna
2013-04-29 16:57 ` Jassi Brar
2013-04-29 16:57 ` Jassi Brar
2013-04-29 17:06 ` Mark Langsdorf
2013-04-29 17:06 ` Mark Langsdorf
2013-04-29 17:28 ` Jassi Brar
2013-04-29 17:28 ` Jassi Brar
2013-04-29 16:00 ` [PATCHv3 00/14] drivers: mailbox: framework creation Suman Anna
2013-04-29 16:00 ` Suman Anna
2013-04-29 16:49 ` Jassi Brar
2013-04-29 16:49 ` Jassi Brar
2013-04-24 7:39 ` Loic PALLARDY
2013-04-24 7:39 ` Loic PALLARDY
2013-04-24 7:59 ` Jassi Brar
2013-04-24 7:59 ` Jassi Brar
2013-04-24 8:39 ` Loic PALLARDY
2013-04-24 8:39 ` Loic PALLARDY
Reply instructions:
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:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=517E9284.1010209@ti.com \
--to=s-anna@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.