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: Tue, 23 Apr 2019 23:53:46 -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 Cc: Steve Freyder , "xenomai@xenomai.org" Thanks very much Jan, I'll try your patch tomorrow. In the meantime it may confirm your suspicions to hear this : I hacked the xeno_16550A.c driver to poll the transmit buffer every time there was an RX interrupt (I have a bidirectional application). If there was any data waiting just call the TX interrupt routine again. Essentially: if (ctx->out_npend > 0) rt_16550_tx_interrupt(ctx) With this modified driver I was able to stream data successfully without any stalls for 8+ hours. An oscilloscope showed there were only occasional delays in sending the data, like an extra 800us. That seems to confirm that the UART is still functioning OK at the hardware level during the problem, it just needs to be "reminded" to transmit. Your patch may be all it needs... -C Smith