Czy tryb niskiego opóźnienia jest bezpieczny w przypadku portów szeregowych Linux?

Czy korzystanie z trybu tty low_latency z portami szeregowymi Linux jest bezpieczne? Thetty_flip_buffer_push funkcja jest udokumentowana, że ​​"nie może być wywoływana z kontekstu IRQ, jeśli ustawiono port-> low_latency." Niemniej jednak wiele sterowników portu szeregowego niskiego poziomu wywołuje go z ISR, niezależnie od tego, czy flaga jest ustawiona. Na przykładSterownik mpc52xx wywołuje bufor odwracający bezwarunkowo po każdym odczytaniu z FIFO.

Konsekwencją bufora odwracania o niskiej latencji w ISR jest to, że sterownik dyscypliny linii jest wprowadzany w kontekście IRQ. Moim celem jest uzyskanie opóźnienia wynoszącego jedną milisekundę lub mniej, odczyt z szybkiego portu szeregowego mpc52xx. Ustawienie low_latency zapewnia cel opóźnienia, ale również narusza udokumentowany warunek wstępny dla tty_flip_buffer_push.

questionAnswers(2)

yourAnswerToTheQuestion