From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 References: <2ade719a-84c7-c53d-9895-a5e6eea354a3@siemens.com> <5CBCCE3F.5090000@freyder.net> In-Reply-To: From: C Smith Date: Thu, 25 Apr 2019 00:15:05 -0700 Message-ID: Subject: Re: rt_dev_send() stalls periodic task Content-Type: text/plain; charset="UTF-8" List-Id: Discussions about the Xenomai project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka , Xenomai List Cc: Steve Freyder , w1@codecraftsmen.org 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) (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?