Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Alex Tomas                           2:5020/400     16 Dec 2002  02:09:17
 To : Valentin Nechayev
 Subject : Re: process stub. State: "Disk sleep" :(
 -------------------------------------------------------------------------------- 
 
 >>>>> Valentin Nechayev (VN) writes:
 
  AT> приведи пример, когда для этого обязательно нужно править VFS и
  AT> недостачно _правильно_ сделать драйвер.
 
  VN> Что есть "_правильно_ сделать драйвер"? Дать ему возможность
  VN> отказываться от операции по сигналу?
 
 драйвер должен понимать, что случилась некая беда и он не может 
 обработать запрос (в том числе в заданный промежуток времени).
 
 например, произошел submit_bh()/generic_make_request(), какой-то
 запрос ушел в aic7xxx/sym53c8xx, дальше он попал на target, который
 неожиданно сдох. в SCSI системе срабатывает timeout через N секунд,
 драйвер пытаеца восстановить связь с target'ом (reselect + reset message,
 если не получилось - BUS RESET и так далее), попробовал несколько
 раз - не выходит. значит он дергает completion с uptodate=0, который
 будит процесс стоящий в uninterruptible sleep на этом запросе.
 
 зачем здесь VFS'у что-то делать?
 
  AT> потом я тебе приведу пару примеров ...
 
  VN> Вынули дискету. Драйвер честно говорит "чё? я не я, корова не
  VN> моя" Система умирает с паникой.  Вариант той же позы -
  VN> смонтировать в r/w дискету с запретом записи (ползунок в углу
  VN> дискеты).  Hеоднократно замечалось на Linux и на FreeBSD (данных
  VN> по другим не имею).
 драйвер _должен_ понять, что media отсутствует и доложить об этом
 VFS'у через buffer completion routine. здесь есть пока только два
 неприятных момента:
 1) не все драйвера написаны правильно
 2) completion пока возвращает только бинарный статус (success/fail)
 
 а теперь мой пример:
 1) запрос ушел в sym53c8xx в виде sg-листа
 2) на LSI чипе закрутился DSP, выполняя SPI и взаимодействуя с таргетом.
 3) DSP свернуло крышу (там у них полно глюков, errata с десяткам пунктов)
 4) твой VFS хочет cancel'ить запросу, но host не может связаться с DSP
 
 что здесь делать? если ты его все же заканцелишь, то:
 1) VFS вернет кому надо ошибку
 2) через какое-то время DSP повторно ударится головой и оживет
 3) в соответствии с полученным sg-листом он чего-то насует в память, которая
    возможно уже отдана совсем другой подсистеме
 
 конечно, можно и такие ситуации обрабатывать, но стоит-ли овчинка выделки?
 тем более что VFS изначально ориентирована на _синхронные_ запросы (стандарнтые
 read/write), которые не могут _отменить_ себя.
 
 таким образом, я рассматриваю твой пример совершенно недостаточным для
 переписывания VFS.
 
 возможность управлять I/O на более тонком уровне заложена в AIO, который попал
 в 2.5 (правда пока лишь частично) и в котором _можно_ драйверу давать более
 тонкие указания. в том числе, io request cancel
 -- 
 пора
 
 --- ifmail v.2.15dev5
  * Origin: HOME (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: process stub. State: "Disk sleep" :(   Ilya Dikarev   13 Dec 2002 00:12:08 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   15 Dec 2002 12:13:02 
 Re: Re: process stub. State: "Disk sleep" :(   Alexandr S. Agranovsky   15 Dec 2002 13:24:06 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   15 Dec 2002 18:04:51 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   15 Dec 2002 14:04:00 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   15 Dec 2002 17:56:41 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   15 Dec 2002 18:01:17 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   15 Dec 2002 18:12:57 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   15 Dec 2002 18:28:08 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   15 Dec 2002 18:29:09 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   15 Dec 2002 19:15:02 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   15 Dec 2002 19:23:11 
 process stub. State: "Disk sleep" :(   Andrey Melnikov   15 Dec 2002 23:05:08 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 00:07:02 
 process stub. State: "Disk sleep" :(   Andrey Melnikov   16 Dec 2002 16:16:00 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 17:08:47 
 process stub. State: "Disk sleep" :(   Andrey Melnikov   16 Dec 2002 19:19:18 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 20:14:37 
 process stub. State: "Disk sleep" :(   Andrey Melnikov   16 Dec 2002 21:42:58 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 22:38:52 
 Re: process stub. State: "Disk sleep" :(   Aleksey Barabanov   17 Dec 2002 02:30:44 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   17 Dec 2002 02:33:48 
 Re: process stub. State: "Disk sleep" :(   Aleksey Barabanov   17 Dec 2002 11:35:19 
 Re: process stub. State: "Disk sleep" :(   Serg Oskin   17 Dec 2002 11:48:13 
 process stub. State: "Disk sleep" :(   Andrey Melnikov   16 Dec 2002 16:29:08 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 17:48:38 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   16 Dec 2002 19:19:33 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 19:25:46 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   17 Dec 2002 11:55:42 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   17 Dec 2002 14:15:51 
 process stub. State: "Disk sleep" :(   Andrey Melnikov   16 Dec 2002 21:49:16 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 22:42:25 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   16 Dec 2002 01:03:55 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 01:07:52 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   16 Dec 2002 01:32:10 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 02:09:17 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   16 Dec 2002 11:44:48 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 13:11:18 
 Re: Re: process stub. State: "Disk sleep" :(   Alexandr S. Agranovsky   16 Dec 2002 08:24:31 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   16 Dec 2002 11:22:34 
 Re: process stub. State: "Disk sleep" :(   Ramazan Jah-Far   17 Dec 2002 02:19:05 
 Re: process stub. State: "Disk sleep" :(   Valentin Nechayev   17 Dec 2002 11:55:41 
 Re: process stub. State: "Disk sleep" :(   Eugene Karpachov   16 Dec 2002 10:12:49 
 Re: process stub. State: "Disk sleep" :(   Alex Tomas   16 Dec 2002 13:12:50 
 Re: process stub. State: "Disk sleep" :(   Denis Dzyubenko   16 Dec 2002 18:43:22 
 process stub. State: "Disk sleep" :(   Vickenty Fesunov   15 Dec 2002 11:13:44 
Архивное /ru.linux/7590f6c73ecb.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional