Мне нужно передать несколько мегабайт данных в секунду из модуля Linux-Kernel в User-Space, и я не хочу пропускать какое-либо сообщение из модуля, если Я читал оттуда. Каков наилучший способ сделать это?Лучший способ передачи больших данных из ядра в пользовательское пространство
Существует довольно мало возможных решений для этого: Named-Pipes, Proc-File и Block-Device Но я не уверен, какой из них выбрать, а какой обещает лучшая производительность, так как я являюсь новичком-новичком.
В настоящий момент я использую кольцевой буфер (с винтовыми зажимами) в модуле ядра для хранения сообщений, и если файл Proc-файла читается, я помещаю данные из Ring-Buffer в Proc-File; на стороне пользователя У меня есть программа, которая запускает cat /proc/procfile
несколько раз и показывает результат. Проблема с этим решением является то, что вместо того, чтобы
СООБЩЕНИЕ 1 СООБЩЕНИЯ 2 СООБЩЕНИЯ 3
на выходе, я вижу (иногда, раз в несколько тысяч сообщений)
СООБЩЕНИЕ 1 MESSMESSAGE3