|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 16 Dec 2002 01:03:55 To : Andrey Melnikov Subject : Re: process stub. State: "Disk sleep" :( -------------------------------------------------------------------------------- >>> Andrey Melnikov wrote: AT>> очевидно, что это бредовое предложение. и про VFS тоже. AT>> даже смешно очень. систему дизайнили так, что D - по-определению AT>> не может проснуться запросто так, разработчики принимают это во внимание. AM> Хорошо - а HАКОЙХЕР (c) немецкий фамилиё, ему дали так уснуть ? Дабы оно AM> висело, глазам мешало и дисками шуршало ? Очень просто. Или не просто. Когда разрабатывали первые unix, была сделана масса упрощений конструкции. Фактически, только одни упрощения (по сравнению, например, с Multics) и были сделаны. Hекоторые из них уже исправлены, некоторые - аукаются нам до сих пор. Так вот, в числе оных упрощений было сделано следующее: - У драйверов отнята функциональность отмены операции со стороны вышележащих уровней. Заказал чтение блока - и сиди жди до посинения. Он тебе уже не нужен - ничем не можем помочь, надо было думать раньше. - Hа BIO layer (это уровень над драйверами блочных устройств, выполняющий чтение/запись и кэширование операций с FS) - аналогично, отнята возможность отмены операции. - Убрано адекватное реагирование на ошибки чтения/записи на уровне драйверов FS. Для сравнения - это как в досе или винде (9x), если не установлен обработчик критической ошибки, на экран плюется "abort/retry/ignore". Да, так было проще. Да, до определенного момента это себя более-менее оправдывало - это при юниксовой-то нише, которая десяток лет не выходила за пределы систем подготовки текстов, флейма в usenet и игры в startrek. Когда строили VFS, этот путь был успешно продолжен :( Уровень VFS во многих случаях просто не рассчитан на ошибки нижележащего уровня, драйвера отдельных FS - туда же. В результате, невовремя вынутая дискета может стоить panic'а, а умерший NFS сервер - мертвого зависа всех, работавших с его диском. (Да, soft и intr к mount_nfs придумали, но сам факт, что их надо было придумывать, показателен.) Теперь чтобы исправить - надо начинать с драйверов - честно признать, что вся нынешняя схема работы с ними - бред, и для начала сделать возможность отмены операции. Принципиальных сложностей тут нет никаких, но любой шаг или даже робкий голос - натыкается на мощный хор пуристов "у нас все работает, и железо надо использовать правильное, и вообще у тебя прописки нет"... (Все это я говорил тут не раз. C AT эту тему обсуждать невозможно: на "дизайн не позволяет, и это плохо" он отвечает "все это бред, потому что дизайн не позволяет". Случай клинический.) -netch- --- ifmail v.2.15dev5 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/7368ef8a4846.html, оценка из 5, голосов 10
|