Precise timing in ldisc? tty_put_char() in hrtimer context?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,
i am implementing niche rs485-based serial protocol as a tty line
discipline linux module. Requirement is to hit transmission window
with precision in low hundreds of microseconds (eg. +-200 uS).
Transmit window starts 500 uS after message is received.

It seems that hardware driver calls tty_receive_buf2() with sufficient
latency, so my idea was to start hrtimer using hrtimer_start() inside
of tty_receive_buf2(). And then in hrtimer handler call
for(...){tty_put_char(tty,...)} or tty->ops->write(), but it seems not
to be a good practice according to my online research. They say it's
recommended to call tty_put_char() from workqueue, but documentation
also says that calling a workqueue might introduce latency of couple
milliseconds, since it's scheduled thread context.

What would you suggest to handle such a strict timing requirements
between RX and TX data?

Thank you

Best regards
      Tomas Mudrunka




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux