Re: regression: 3a878c430fd6 ("tty: serial: msm: Add TX DMA support") drops data
From: Andy Shevchenko
Date: Thu Apr 21 2016 - 16:42:39 EST
On Thu, Apr 21, 2016 at 4:00 AM, Frank Rowand <frowand.list@xxxxxxxxx> wrote:
> On 4/20/2016 9:48 AM, Frank Rowand wrote:
>> On 4/19/2016 11:07 PM, Ivan Ivanov wrote:
>>>
>>>> On Apr 20, 2016, at 02:23, Frank Rowand <frowand.list@xxxxxxxxx> wrote:
>>>>
>>>> Hi Ivan,
>>>>
>>>> It appears that I have found a regression caused by
>>>> 3a878c430fd6 ("tty: serial: msm: Add TX DMA support").
>>>>
>>>> When I cat a file slightly larger than 126000 bytes on
>>>> the console, viewed via minicom connected to the serial
>>>> port, I am losing random chunks of data, almost always
>>>> three bytes in length. I have also seen a lost chunk
>>>> of two bytes.
>>>>
>>>> I am using the 8074 dragonboard, with the dts of
>>>> arch/arm/boot/dts/qcom-apq8074-dragonboard.dts.
>>>> The dts node is serial@f991e000, which has a
>>>> compatible of "qcom,msm-uartdm-v1.4", so is_uartdm
>>>> should be UARTDM_1P4.
>>>
>>> I donât remember what was biggest chunk, which DMA
>>> could carry, sorry. Are you using DMA or just PIO?
>>> Is this happening only with cat and terminal or even
>>> when you send data in other means. I believe that
>>> people from Linaro could help you better.
>>
>> I assumed you would be the person who would have the
>> information and would be able to help maintain the
>> code in question since you submitted this not small
>> patch. Do you have a pointer to the hardware
>> documentation of the DMA and uart? Who at Linaro
>> are you suggesting?
>>
>> Thanks for the questions, I'll look into them today.
>
> I switched from cat to several variations of dd and on
> the host side I tried using programs other than minicom.
>
> My symptoms have now changed to something else that I
> have seen in the past, but I am now suspicious of my
> environment. I'll reset and do some more tests.
>
> I'm not sure if the driver was in DMA or PIO mode, both
> before the change and after. This seems like a rather
> important question to answer, so I'll try to verify
> that tonight.
>
>>
>> One more observation that may provide an insight:
>> if I cat a file multiple times, the location of
>> the dropped chunks varies.
>>
>> In further testing I also found examples of single
>> bytes lost.
[Shrink and reshuffle Cc list a bit to leave UART related people mostly.]
There are currently issues with DMA and UART on some platforms.
Besides that Peter noticed the problem with latency how DMA tasklets
are handled.
I could add that for testing (and better user experience) we are
starving for fix to disable / enable DMA support runtime. Heikki or me
might help with that when we have a bit more time.
--
With Best Regards,
Andy Shevchenko