regression: 3a878c430fd6 ("tty: serial: msm: Add TX DMA support") drops data
Subsystems (2)
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.
Do you have any thoughts on what might be going wrong, or what I can do to debug this?
Thanks,
Frank
Quoted 14 lines · Frank Rowand
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.
Quoted 5 lines
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", sois_uartdmshould beUARTDM_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.
Regards,
Ivan--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 20 lines · Ivan Ivanov
Quoted 14 lines · Frank Rowand
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.
Quoted 5 lines
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", sois_uartdmshould beUARTDM_1P4.
Quoted 5 lines
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.
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.
Thanks,
Frank
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 27 lines · Frank Rowand
Quoted 20 lines · Ivan Ivanov
Quoted 14 lines · Frank Rowand
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.
Quoted 5 lines
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", sois_uartdmshould beUARTDM_1P4.Quoted 5 lines
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.
Quoted 8 lines
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.
Quoted 13 lines
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.
Thanks,
Frank
Quoted 40 lines · Frank Rowand
Quoted 27 lines · Frank Rowand
Quoted 20 lines · Ivan Ivanov
Quoted 14 lines · Frank Rowand
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.
Quoted 5 lines
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", sois_uartdmshould beUARTDM_1P4.Quoted 5 lines
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.
Quoted 8 lines
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.
Quoted 16 lines
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.
Quoted 7 lines
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.
Signature · 2 lines
With Best Regards, Andy Shevchenko
Quoted 2 lines · Andy Shevchenko
Quoted 1 line · Frank Rowand
On 4/20/2016 9:48 AM, Frank Rowand wrote:
< snip >
Quoted 4 lines
Quoted 4 lines
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.
I was in PIO mode.
I found the problem and submitted a fix.
[PATCH 0/2] tty: serial: msm_serial regression and add info message [PATCH 1/2] tty: serial: msm_serial regression fix data corruption [PATCH 2/2] tty: serial: msm_serial add info message
< snip >
-Frank