Представлен набор патчей для асинхронной инициализации устройств в Linux
Суть проблемы состоит в том, что некоторые устройства работают достаточно медленно. Поэтому вызов probe() при сканировании и инициализации устройств может занимать весьма ощутимое время. В этот момент загрузка системы приостанавливается и система не делает ничего полезного вплоть до завершения инициализации устройства, что является неоптимальным с точки зрения времени запуска системы.
Предложенный патч отличается от предыдущих вариантов подобных патчей тем, что старается сохранить точки синхронизации, используемые драйверами в процессе загрузки, что минимизирует побочные эффекты от перехода на асинхронный режим. Кроме того, реализован интерфейс, через который драйвер может отказаться от асинхронной инициализации.
Для экспериментаторов доступен дополнительный, "бескомпромиссный" вариант патча, когда все драйверы принудительно используют асинхронный режим инициализации. Автор смог успешно загрузить систему на основе RockChip в полностью асинхронном режиме. Тем не менее, эксперименты показали, что некоторые драйверы не работают корректно в таком режиме и использовать данный вариант патча можно только на свой страх и риск.
Источник: http://www.opennet.ru/opennews/art.shtml?num=41521
|
0 | Tweet | Нравится |
|