From: Mikko Perttunen <cyndis@kapsi.fi>
To: Jassi Brar <jassisinghbrar@gmail.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>,
Greg KH <gregkh@linuxfoundation.org>,
Thierry Reding <thierry.reding@gmail.com>,
Jon Hunter <jonathanh@nvidia.com>,
Devicetree List <devicetree@vger.kernel.org>,
linux-serial@vger.kernel.org, linux-tegra@vger.kernel.org, ",
linux-arm-kernel"@lists.infradead.org, ",
linux-arm-kernel"@lists.infradead.org,
linux-mediatek@lists.infradead.org,
srv_heupstream <linux-mediatek@lists.infradead.org>,
srv_heupstream <linux-arm-kernel@lists.infradead.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 3/8] mailbox: Add transmit done by blocking option
Date: Wed, 8 Aug 2018 17:34:12 +0300 [thread overview]
Message-ID: <b5a91f9e-c3ff-371c-d355-4a5e8a147796@kapsi.fi> (raw)
In-Reply-To: <CABb+yY2mpNV186=M2anmZANgMOra4JM7ybyUT4yCxhqAG6-AZg@mail.gmail.com>
On 08/08/2018 05:10 PM, Jassi Brar wrote:
> On Wed, Aug 8, 2018 at 5:08 PM, Mikko Perttunen <cyndis@kapsi.fi> wrote:
>>
>>
>> On 04.08.2018 13:45, Mikko Perttunen wrote:
>>>
>>> On 08/03/2018 03:54 PM, Jassi Brar wrote:
>>>>
>>>> On Mon, Jul 2, 2018 at 5:10 PM, Mikko Perttunen <mperttunen@nvidia.com>
>>>> wrote:
>>>>>
>>>>> Add a new TXDONE option, TXDONE_BY_BLOCK. With this option, the
>>>>> send_data function of the mailbox driver is expected to block until
>>>>> the message has been sent. The new option is used with the Tegra
>>>>> Combined UART driver to minimize unnecessary overhead when transmitting
>>>>> data.
>>>>>
>>>> 1) TXDONE_BY_BLOCK flag :-
>>>> Have you tried setting the flag mbox_chan->mbox_client->tx_block
>>>> ?
>>>
>>>
>>> No - I suppose I should have done that. I'm a bit concerned about overhead
>>> as send_data may be called thousands of times per second, so I tried to make
>>> it as close as possible to the downstream driver that just pokes the mailbox
>>> register directly.
>>
>>
>> I tried using polling in the mailbox framework. Some printing is done from
>> atomic context so it seems tx_block cannot be used -
>> wait_for_completion_timeout understandably does not work in atomic context.
>> I also tried without tx_block, in which case I got some horribly garbled
>> output, but "Try increasing MBOX_TX_QUEUE_LEN" was readable there.
>>
>> Any opinions?
>>
> The problems arise because your hardware (SM) supports TXDONE_BY_POLL,
> but your client drives it by TXDONE_BY_ACK because the older DB
> channels are so.
>
> Please populate SM channels as a separate controller than DB.
> The DB controller, as is, run by ACK method.
> The SM controller should be run by polling, i.e, set txdone_poll =
> true and the poll period small enough. The virtual tty client driver
> should be able to safely set tx_block from appropriate context.
>
Sorry, I should have clarified that I already split up the controllers.
The SM controller has txdone_poll = true. I didn't adjust txpoll_period
so I guess it's zero.
Mikko
next prev parent reply other threads:[~2018-08-08 14:34 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-02 11:40 [PATCH v3 0/8] Tegra Combined UART driver Mikko Perttunen
2018-07-02 11:40 ` [PATCH v3 1/8] dt-bindings: tegra186-hsp: Add shared interrupts Mikko Perttunen
2018-07-02 12:37 ` Thierry Reding
2018-07-02 11:40 ` [PATCH v3 2/8] dt-bindings: serial: Add bindings for nvidia,tegra194-tcu Mikko Perttunen
2018-07-02 12:51 ` Thierry Reding
2018-07-02 11:40 ` [PATCH v3 3/8] mailbox: Add transmit done by blocking option Mikko Perttunen
2018-07-02 13:09 ` Thierry Reding
2018-07-10 15:49 ` Thierry Reding
2018-08-03 12:54 ` Jassi Brar
2018-08-04 10:45 ` Mikko Perttunen
2018-08-08 11:38 ` Mikko Perttunen
2018-08-08 14:10 ` Jassi Brar
2018-08-08 14:34 ` Mikko Perttunen [this message]
2018-08-08 14:39 ` Jassi Brar
2018-08-08 14:46 ` Mikko Perttunen
2018-08-09 8:49 ` Mikko Perttunen
2018-08-09 9:26 ` Jassi Brar
2018-07-02 11:40 ` [PATCH v3 4/8] mailbox: tegra-hsp: Refactor in preparation of mailboxes Mikko Perttunen
2018-07-02 13:12 ` Thierry Reding
2018-07-02 11:40 ` [PATCH v3 5/8] mailbox: tegra-hsp: Add support for shared mailboxes Mikko Perttunen
2018-07-02 13:13 ` Thierry Reding
2018-07-02 11:40 ` [PATCH v3 6/8] serial: Add Tegra Combined UART driver Mikko Perttunen
2018-07-02 13:18 ` Thierry Reding
2018-07-02 13:30 ` Mikko Perttunen
2018-07-02 13:47 ` Thierry Reding
2018-07-03 6:40 ` Mikko Perttunen
2018-07-02 11:40 ` [PATCH v3 7/8] arm64: tegra: Add nodes for tcu on Tegra194 Mikko Perttunen
2018-07-02 11:40 ` [PATCH v3 8/8] arm64: tegra: Mark tcu as primary serial port on Tegra194 P2888 Mikko Perttunen
2018-07-02 14:03 ` [PATCH v3 0/8] Tegra Combined UART driver Thierry Reding
2018-07-02 14:07 ` Greg KH
2018-07-02 14:17 ` Thierry Reding
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=b5a91f9e-c3ff-371c-d355-4a5e8a147796@kapsi.fi \
--to=cyndis@kapsi.fi \
--cc=", linux-arm-kernel"@lists.infradead.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=jassisinghbrar@gmail.com \
--cc=jonathanh@nvidia.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=mperttunen@nvidia.com \
--cc=thierry.reding@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®