On 25.04.19 09:15, C Smith wrote:
Hi Jan,

Your patch worked somewhat but not completely. It prevents my app from stalling forever, but I caugh the serial transmission itself stalling on the oscilloscope for quite a long time. My 72 byte TX packet from the xenomai periodic task gets cut in half and there is no transmission for 7msec, then the transmission resumes. (I'll send you a screenshot)

What is driver and application state during that phase? Who is waiting on what? This will be the key to resolve that issue as I'm not yet seeing another mistake in the driver.

(Note that I am on xeno 2.6.5 so I merged your 3.x patch above into 16550A.c manually.)

I'm currently doing a 12 hour test of your patch plus mine. In my patch I check during every RX interrupt to see if I need to call rt_16550_tx_fill() too. I know that doesn't work for others but my traffic is full duplex so this test will tell us something if it works and maybe we can ultimately get the same behavior without my hack.

Also, I made the /.rx_timeout/.tx_timeout /change Jeff found, and it had the obvious effect. I can make a patch for xeno 2.6.5 if you want. But I'll point out that this fix may break peoples code functionally, so it may be a bad idea to fix it on 2.x. Older code was written with a dependence on a truly different timeout. It broke my app to fix this because there was suddenly a new unexpected timeout. What's your policy on this issue?

The 2.6 repo won't be touched anymore, it's officially dead. If course, you can share your patch on the list in case there are other remaining users.

Jan

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

Reply via email to