From: Frederic Danis <frederic.danis-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Andy Shevchenko
<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Peter Hurley
<peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>,
Heikki Krogerus
<heikki.krogerus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org
Cc: linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-bluetooth-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] Revert "serial: 8250_dma: don't bother DMA with small transfers"
Date: Tue, 6 Oct 2015 11:17:32 +0200 [thread overview]
Message-ID: <561391AC.8050905@linux.intel.com> (raw)
In-Reply-To: <1443689736.8361.322.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
[ + Greg Kroah-Hartman ]
On 01/10/2015 10:55, Andy Shevchenko wrote:
> On Wed, 2015-09-30 at 16:11 -0400, Peter Hurley wrote:
>> [ + Heikko ]
>>
>> On 09/30/2015 10:12 AM, Andy Shevchenko wrote:
>>> On Wed, 2015-09-30 at 09:52 -0400, Peter Hurley wrote:
>>>> [ + Andy Shevchenko ]
>>>>
>>>> On 09/30/2015 08:46 AM, Frederic Danis wrote:
>>>>> This reverts commit 9119fba0cfeda6d415c9f068df66838a104b87cb.
>>>> Hi Frederic,
>>>>
>>>> It's customary to mail the commit author in patches which revert
>>>> their work.
>>>>
>>>>> This commit prevents from sending "big" file using Bluetooth.
>>>>> When sending a lot of data quickly through the Bluetooth
>>>>> interface,
>>>>> and
>>>>> after a variable amount of data sent, transfer fails with
>>>>> error:
>>>>> kernel: [ 415.247453] Bluetooth: hci0 hardware error 0x00
> Frederic, I forgot to ask how exactly the hw setup looks like?
>
> The message above is not present in the kernel (the closest what I
> found is
>
> drivers/bluetooth/btintel.c:98: BT_ERR("%s: Hardware error 0x%2.2x",
> hdev->name, code);
>
> which makes me think you have USB BT adapter attached to the same
> machine. Am I wrong?
>
>>>> Hmmm, was there any other information regarding why this
>>>> happened?
>>> Frederic informed us privately about this issue.
>> Ok, except no one else knows that.
>>
>> Least of all Greg, since the revert wasn't even addressed to him
>> either :/
> Agree, it's better to inform all parties about the problem.
>
>>> I tried to hunt the
>>> root cause but mostly (there was one observation but apparently
>>> seems
>>> it is not related to this issue) nothing looks wrong.
>>>
>>>> Eg., did the driver mistakenly re-order i/o (DMA occurred after
>>>> PIO)?
>>> I have few tracing dumps which Frederic provides to me, but I
>>> couldn't
>>> see such a problem. Maybe I missed it.
>> Ok.
>>
>>> My commit 9119fba0cfed introduces interleaved IO (DMA/PIO) which
>>> makes
>>> it like DMA -> PIO -> DMA -> ...
>> I realize that. However interleaving DMA and PIO _must_ be supported
>> by the platform to enable DMA for 8250 serial devices anway.
>>
>> When Heikki added DMA support to the 8250 driver, he left out
>> important
>> functionality which requires interleaved DMA and PIO.
>>
>> When I fix that omission, platforms using DMA that shouldn't be are
>> going
>> to get broken anyway.
>>
>> Regards,
>> Peter Hurley
>>
>>>> Or, might there be some race condition in the dmaengine driver on
>>>>
>>>> this
>>>> platform?
>>> There is [1] might be a clue, though I don't think it's directly
>>> related.
>>>
>>> [1] http://www.spinics.net/lists/linux-spi/msg01151.html
>>> The change prevents interleaved DMA/PIO IO.
>>>
>>>> Regards,
>>>> Peter Hurley
>>>>
>>>>> Found on T100TA.
>>>>>
>>>>> After reverting this commit, send works fine for any file size.
>>>>>
>>>>> Signed-off-by: Frederic Danis <frederic.danis-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
>>>>> ---
>>>>> drivers/tty/serial/8250/8250_dma.c | 4 ----
>>>>> 1 file changed, 4 deletions(-)
>>>>>
>>>>> diff --git a/drivers/tty/serial/8250/8250_dma.c
>>>>> b/drivers/tty/serial/8250/8250_dma.c
>>>>> index 21d01a4..e508939 100644
>>>>> --- a/drivers/tty/serial/8250/8250_dma.c
>>>>> +++ b/drivers/tty/serial/8250/8250_dma.c
>>>>> @@ -80,10 +80,6 @@ int serial8250_tx_dma(struct uart_8250_port
>>>>> *p)
>>>>> return 0;
>>>>>
>>>>> dma->tx_size = CIRC_CNT_TO_END(xmit->head, xmit->tail,
>>>>>
>>>>> UART_XMIT_SIZE);
>>>>> - if (dma->tx_size < p->port.fifosize) {
>>>>> - ret = -EINVAL;
>>>>> - goto err;
>>>>> - }
>>>>>
>>>>> desc = dmaengine_prep_slave_single(dma->txchan,
>>>>> dma->tx_addr + xmit
>>>>> ->tail,
>>>>>
--
Frederic Danis Open Source Technology Center
frederic.danis-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org Intel Corporation
next prev parent reply other threads:[~2015-10-06 9:17 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-30 12:46 [PATCH] Revert "serial: 8250_dma: don't bother DMA with small transfers" Frederic Danis
[not found] ` <1443617191-21013-1-git-send-email-frederic.danis-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-09-30 13:52 ` Peter Hurley
[not found] ` <560BE919.9020803-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
2015-09-30 14:12 ` Andy Shevchenko
[not found] ` <1443622344.8361.304.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-09-30 20:11 ` Peter Hurley
[not found] ` <560C420B.4030007-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
2015-10-01 8:55 ` Andy Shevchenko
[not found] ` <1443689736.8361.322.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-01 10:44 ` Marcel Holtmann
2015-10-06 9:17 ` Frederic Danis [this message]
[not found] ` <561391AC.8050905-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-06 9:34 ` Greg KH
[not found] ` <20151006093432.GA9876-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-10-06 9:48 ` Frederic Danis
[not found] ` <561398E2.4080902-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-06 10:22 ` Greg KH
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=561391AC.8050905@linux.intel.com \
--to=frederic.danis-vuqaysv1563yd54fqh9/ca@public.gmane.org \
--cc=andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=heikki.krogerus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=linux-bluetooth-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=peter-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.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 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).