Запись потоков в NFS мешает другим потокамLinux

Ответить Пред. темаСлед. тема
Anonymous
 Запись потоков в NFS мешает другим потокам

Сообщение Anonymous »


Во встроенном приложении я использую дистрибутив Linux на базе Yocto с исправлениями RT. Один поток записывает данные в файл в файловой системе NFS, а другой поток раз в секунду запускает хроническое отслеживание с помощью popen.

Проблема в том, что хроническое отслеживание не возвращает результат в течение 100 мс, если оба потока выполняются в одном приложении. Однако если каждый поток выполняется в своем собственном процессе, он работает как положено. Насколько я понял, в Linux CFS (полностью справедливый планировщик) не имеет значения, принадлежат ли потоки одному и тому же процессу или нет.

Я ожидаю, что выполнение обоих потоков в одном процессе должно быть таким же, как выполнение каждого потока в отдельном процессе.
[*]Я пробовал без патчей RT, поведение было таким же. [*]Я пробовал ядро ​​4.x, 5.x и 6.x с тем же результатом. [*]Я пробовал писать в CIFS вместо NFS, результат тот же. [*]Запись на SD-карту работает как положено. [*]Запись в файловую систему sshfs работает должным образом.
Кто-нибудь знает, что здесь происходит? Есть ли какие-то параметры ядра, которые следует изменить? Какие-то ограничения в этом процессе?

Есть ли хороший способ устранить эту проблему?

Код, воспроизводящий проблему:
#include #include #include bool сделано {ложь}; std::строковый путь; команда bool (const char * cmd) { std::array буфер; std::строковый результат; авто труба = popen (cmd, «r»); если (!труба) { std::cout
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Имеет ли Java автоматический доступ ко всем потокам?
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как передать httpcontext дочерним потокам в функции асинхронного опроса
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как передать HttpContext дочерним потокам в функции асинхронного опроса
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как передать HttpContext дочерним потокам в функции асинхронного опроса
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Многопоточность Java позволяет потокам завершаться в том же порядке, в котором они запускались, но запускаться в одно и
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»