Показать сообщение отдельно
  #12  
Старый 17.05.2021, 14:45
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: hostapd и wpa_supplicatnt в OpenWRT

Eugene Grosbein написал(а) к Eugene Muzychenko в May 21 04:18:11 по местному времени:

16 мая 2021, воскресенье, в 15:28 NOVT, Eugene Muzychenko написал(а):

EG>> очень сильно сомневаюсь, что это поддерживаемая официально
EG>> конфигурация - одновременно работать точкой доступа и клиентом другой
EG>> точки доступа на одном чипе.
EM> Я тоже сомневался, пока вдруг не обнаружил, что оно работает, причем стабильно
EM> и отлично. Но после перезагрузки повторить не удалось - hostapd стабильно
EM> ругается, что не может установить параметры драйверу. Больше всего это похоже на
EM> гонки, когда оба демона хотят драйвер, но не синхронизируют свой доступ к нему.

Это не называется "работает стабильно и отлично" :-)

EG>> Возможно, что теоретически это как-то и можно совмещать на одной
EG>> частоте, даже если игнорировать вопрос коллизий, но это пришлось
EG>> бы кодить очень аккуратно с учётом "разделения" чипа между процессами.
EM> Судя по тому, что оно стабильно работало несколько часов под нагрузкой,
EM> проблема с разделением возникает только на этапе инициализации.

Несколько часов это ни о чём. Мне приходилось дебажить проблему
подобного рода: библиотека неатомарно увеличивает внутренний
счетчик уникальных положительных целых id и если процесс,
её использующий a) долгоживущий и b) многотредовый,
то раз в несколько месяцев (в зависимости от интенсивности
нагрузки) случалось так, что один тред увеличивал счетчик
до INT_MAX, затем параллельно второй тред опять инкрементировал
знаковое целое, получая -1 и либа возвращала значение -1,
зарезервированное для сигнализации ошибки, а errno оставался 0,
потому как никакой сисколл ошибку не возвращал. Что ломало
логику работы приложения, которое на такую подляну никак не рассчитывало.

Простое использование атомиков убрало проблему, но чтобы она случилась,
требовалось два миллиарда инкрементов и долгое время.
А у тебя "несколько часов" :-)

Eugene
--- slrn/1.0.3 (FreeBSD)
Ответить с цитированием