Привет! Я тут переписал ueventd от слова совсем и как следствие изменились и эвенты и их обработка. ueventd теперь работает немного сложнее: * Очередей может быть несколько. Их можно создавать и удалять динамически. * Эвенты в каждой очереди обрабатываются последовательно в блокирующем режиме т.е. пока текущий обработчик не завершится следующий вызван не будет. * Эвенты в разных очередях обрабатываются параллельно. * Эвенты - это всегда файл с значениями вида 'NAME="VALUE"\n'. Сервер обрабатывает эвенты используя обработчики. Они могут быть написаны либо на shell, либо на lua (меня отговорили от schema). Для второго случая действует правило: один файл => один обработчик. В lua-файле должна быть функция main, которая будет вызвана для каждого эвента. Обработчики можно добавлять/удалять динамически. При вызове обработчика эвенты читаются и передаются через переменные окружения. Соответственно, поменялись все обработчики. В фиче network каждый интерфейс обрабатывается параллельно. На моих тестах я получил прирост к скорости, но буду благодарен за дополнительное тестирование. -- Rgrds, legion
Привет! 14.06.2019 11:12, Alexey Gladkov пишет: > Привет! > > Я тут переписал ueventd от слова совсем и как следствие изменились и > эвенты и их обработка. > > ueventd теперь работает немного сложнее: > > * Очередей может быть несколько. Их можно создавать и удалять динамически. > * Эвенты в каждой очереди обрабатываются последовательно в блокирующем > режиме т.е. пока текущий обработчик не завершится следующий вызван не > будет. > * Эвенты в разных очередях обрабатываются параллельно. > * Эвенты - это всегда файл с значениями вида 'NAME="VALUE"\n'. > > Сервер обрабатывает эвенты используя обработчики. Они могут быть написаны > либо на shell, либо на lua (меня отговорили от schema). Для второго случая > действует правило: один файл => один обработчик. В lua-файле должна быть > функция main, которая будет вызвана для каждого эвента. Обработчики можно > добавлять/удалять динамически. > > При вызове обработчика эвенты читаются и передаются через переменные > окружения. Если через переменные окружения, значит, эвентам должно быть всё равно, что в этих файлах и в каком они формате? > Соответственно, поменялись все обработчики. В фиче network каждый > интерфейс обрабатывается параллельно. Больше гонок хороших и разных! :-) > На моих тестах я получил прирост к скорости, но буду благодарен за > дополнительное тестирование. Часть без железа прогоню в эти два выходных -- тогда отпишусь. С железом на следующей неделе постараюсь, но пока не обещаю. -- Best regards, Leonid Krivoshein.
On Fri, Jun 14, 2019 at 12:51:59PM +0300, Leonid Krivoshein wrote: > > При вызове обработчика эвенты читаются и передаются через переменные > > окружения. > > Если через переменные окружения, значит, эвентам должно быть всё равно, > что в этих файлах и в каком они формате? Эвент-файлы читаются сервером. Так что нет, не всё равно. > > > Соответственно, поменялись все обработчики. В фиче network каждый > > интерфейс обрабатывается параллельно. > > Больше гонок хороших и разных! :-) Я это переписывал не потому что могу. Параллельность нужна будет для будущих шагов. Без этого сложно реализовать обработку некоторых схем расположения рута. > > На моих тестах я получил прирост к скорости, но буду благодарен за > > дополнительное тестирование. > > Часть без железа прогоню в эти два выходных -- тогда отпишусь. С железом > на следующей неделе постараюсь, но пока не обещаю. Спасибо! -- Rgrds, legion
14.06.2019 15:29, Alexey Gladkov пишет: > On Fri, Jun 14, 2019 at 12:51:59PM +0300, Leonid Krivoshein wrote: >>> При вызове обработчика эвенты читаются и передаются через переменные >>> окружения. >> Если через переменные окружения, значит, эвентам должно быть всё равно, >> что в этих файлах и в каком они формате? > Эвент-файлы читаются сервером. Так что нет, не всё равно. Просто уточняю для дальнейшего документирования. Здесь видно противоречие: всё-таки через переменные окружения или надо сами файлы парсить? > [...] >>> На моих тестах я получил прирост к скорости, но буду благодарен за >>> дополнительное тестирование. >> Часть без железа прогоню в эти два выходных -- тогда отпишусь. С железом >> на следующей неделе постараюсь, но пока не обещаю. > Спасибо! Мы тестируем то же самое задание или надо собирать из твоего мастера? -- Best regards, Leonid Krivoshein.
14.06.2019 15:29, Alexey Gladkov пишет:
> On Fri, Jun 14, 2019 at 12:51:59PM +0300, Leonid Krivoshein wrote:
>
>>> На моих тестах я получил прирост к скорости, но буду благодарен за
>>> дополнительное тестирование.
>> Часть без железа прогоню в эти два выходных -- тогда отпишусь. С железом
>> на следующей неделе постараюсь, но пока не обещаю.
> Спасибо!
Взял старую сизифную вирталку с LXDE, обновил rpm, потом apt, затем
полностью её обновил, собрал локально и в задании #232125 с небольшим
исправлением твой последний мастер, поставил новый make-initrd. Обновил
на ядро un-def и получил полностью незагружаемую систему. Долго висела
именно на Starting ueventd service [FAILED] (с самого начала). Потом
выдала rdshell.
--
Best regards,
Leonid Krivoshein.
15.06.2019 20:57, Leonid Krivoshein пишет:
> Взял старую сизифную вирталку с LXDE, обновил rpm, потом apt, затем
> полностью её обновил, собрал локально и в задании #232125 с небольшим
> исправлением твой последний мастер, поставил новый make-initrd.
> Обновил на ядро un-def и получил полностью незагружаемую систему.
> Долго висела именно на Starting ueventd service [FAILED] (с самого
> начала). Потом выдала rdshell.
>
Локализовал по-максимуму. Плимут не влияет, un-def тоже не влияет. С
2.2.10 проблем нет. Регрессия именно в 2.2.11 уже на старте ueventd.
Конфиг дефолтный. Сеть специально пока не поднимал. В одном из
rdsheel'ов отхватил такое:
rdshell: The waiting time expired!
setsid: can't execute '-c': No such file or directory
И больше ни слова. Хотелось бы надеяться, что демоны за консоль
подрались, но не оно. :-) В принципе shell есть, можно подебажить.
Загрузка EFI'шная в qemu, если это важно. Могу выгрузить образ initrd,
если надо.
--
Best regards,
Leonid Krivoshein.
On Fri, Jun 14, 2019 at 08:58:11PM +0300, Leonid Krivoshein wrote: > Просто уточняю для дальнейшего документирования. Здесь видно > противоречие: всё-таки через переменные окружения или надо сами файлы > парсить? Сервер парсит эвент-файл и загружает переменные из него в env хэндлеров. Этот механизм одинаков как для шелл-скриптов, так и для lua-хэндлеров. Переменные из эвент-файла будут доступны через env. > > [...] > >>> На моих тестах я получил прирост к скорости, но буду благодарен за > >>> дополнительное тестирование. > >> Часть без железа прогоню в эти два выходных -- тогда отпишусь. С железом > >> на следующей неделе постараюсь, но пока не обещаю. > > Спасибо! > > Мы тестируем то же самое задание или надо собирать из твоего мастера? Моё задание стухло. Нужно собирать из мастера. -- Rgrds, legion
16.06.2019 15:22, Alexey Gladkov пишет:
> [...]
> Моё задание стухло. Нужно собирать из мастера.
#232125, но не фурычит.
--
Best regards,
Leonid Krivoshein.
On Sat, Jun 15, 2019 at 09:42:27PM +0300, Leonid Krivoshein wrote:
>
> 15.06.2019 20:57, Leonid Krivoshein пишет:
> > Взял старую сизифную вирталку с LXDE, обновил rpm, потом apt, затем
> > полностью её обновил, собрал локально и в задании #232125 с небольшим
> > исправлением твой последний мастер, поставил новый make-initrd.
> > Обновил на ядро un-def и получил полностью незагружаемую систему.
> > Долго висела именно на Starting ueventd service [FAILED] (с самого
> > начала). Потом выдала rdshell.
> >
>
> Локализовал по-максимуму. Плимут не влияет, un-def тоже не влияет. С
> 2.2.10 проблем нет. Регрессия именно в 2.2.11 уже на старте ueventd.
> Конфиг дефолтный. Сеть специально пока не поднимал. В одном из
> rdsheel'ов отхватил такое:
>
> rdshell: The waiting time expired!
> setsid: can't execute '-c': No such file or directory
>
> И больше ни слова. Хотелось бы надеяться, что демоны за консоль
> подрались, но не оно. :-) В принципе shell есть, можно подебажить.
> Загрузка EFI'шная в qemu, если это важно. Могу выгрузить образ initrd,
> если надо.
Что-то в пакете совсем не так пошло. Попробую всё собрать с нуля у себя.
Я не трогал то место откуда это сообщение появилось.
--
Rgrds, legion
On Sat, Jun 15, 2019 at 09:42:27PM +0300, Leonid Krivoshein wrote:
> Локализовал по-максимуму. Плимут не влияет, un-def тоже не влияет. С
> 2.2.10 проблем нет. Регрессия именно в 2.2.11 уже на старте ueventd.
> Конфиг дефолтный. Сеть специально пока не поднимал. В одном из
> rdsheel'ов отхватил такое:
>
> rdshell: The waiting time expired!
> setsid: can't execute '-c': No such file or directory
Собрал себе локальный образ и всё загрузилось на железе на моей машине.
--
Rgrds, legion