ppp: implemented delayed unit close via unit cache

News of development process
Post Reply
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

ppp: implemented delayed unit close via unit cache

Post by Dmitry »

commit c73bda7c792a850dc24dc22cf6065eaaad717b69
Author: Dmitry Kozlov <xeb@mail.ru>
Date: Wed Oct 22 19:23:02 2014 +0400

ppp: implemented delayed unit close via unit cache

Due to kernel slowly destroys interfaces closing unit file descriptor blocks working threads which causes overall stuck.
Thus (if unit-cache option is not zero) do not close unit file descriptor immediatly, but put it into unit cache.
Additional helper thread was introduced which closes descriptors from unit cache which overruns configured unit cache size.
---
Т.к ядро медленно удаляет интерфейсы, закрытие файловых дескрипторов связанных с ппп интерфейсом приводит к тому, что рабочие потоки блокируются в ожидании, что, в свою очередь, приводит к общему подвисанию работы демона.
Этим патчем закрытие файловых дескрипторов интерфейса не происходит в контексте рабочего потока, а переносится в вспомогательный поток через unit-cache.
Т.е. рабочий поток не закрывает сам дескриптор, а ложит его в unit cache, а вспомогательный поток берёт эти дескрипторы из кэша и закрывает их неспеша, к тому-же вновь подключающиесе тоже не тратят время на создание новых интерфейсов, а берут из кэша, что увеличивает общую отзывчивость системы.
Напоминаю, кол-во дескрипторов которые хранятся в кэше (не закрываются) указываеются в параметре unit-cache.
Если unit-cache=0, то весь этот функционал выключается и работает как раньше, т.е. рабочие потоки сами закрывают дескрипторы.
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: ppp: implemented delayed unit close via unit cache

Post by dimka88 »

То есть это актуально только тем кто использует модуль ipoe.ko судя из wiki
Wiki wrote:актуально только для сессий которые используют вспомогательный модуль ядра
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: ppp: implemented delayed unit close via unit cache

Post by Dmitry »

этот патч пока касается только ппп
в ипое тоже есть unit cache, но он работает пока по старой схеме, т.е. в конфиге указываете сколько хранить в кэше, а всё что свыше закрывается в контексте рабочего потока, что так-же может вызывать блокировки
для ипое тоже будет патч, там немного сложней, надо подумать как быть с поднятыми по монитору вланами
либо пусть уже висят всё время, либо закрывать их так-же через кэш, но тут надо более акуратно с синхронизацией, т.к. пока он в кэше и ещё не закрыт может опять активность появиться
Post Reply