Page 2 of 3
Re: Дисковый кэш.
Posted: Sat Apr 02, 2011 11:07 pm
by Serge
Чтение /bdX/ ядро->bios->usb->флешка. Когда ты вынимаешь флешку биос её теряет до перезагрузки.
Re: Дисковый кэш.
Posted: Sat Apr 02, 2011 11:09 pm
by Asper
Так ведь находит же и без перезагрузки.
Re: Дисковый кэш.
Posted: Sun Apr 03, 2011 12:19 am
by Serge
То есть можно вынуть флешку, снова её вставить и потом пролистать 500Мб файл ? А если флешку не вставлять снова файлы читаются ?.
Re: Дисковый кэш.
Posted: Sun Apr 03, 2011 12:22 am
by Asper
Ага можно. Причём флешка при этом активно сигнализирует о чтении световым индикатором.
Upd:
Если флешку не вставлять, то читаются только те файлы, что были до этого прочитаны при вставленной флешке, по-видимому они читаются из кэша.
Re: Дисковый кэш.
Posted: Sun Apr 03, 2011 12:25 am
by Serge
Очень интересная биос.
Re: Дисковый кэш.
Posted: Sun Apr 03, 2011 12:29 am
by Asper
Проверял на Thinkpad R51 (EHCI+UHCI), не помню сейчас названия BIOS. Завтра проверю на M4A78-VN и eBox-3300MX (EHCI+OHCI).
Re: Дисковый кэш.
Posted: Sun Apr 03, 2011 12:46 am
by Serge
Могу предположить что каталоги остаются в кеше. И ядро не видит новых файлов.
Re: Дисковый кэш.
Posted: Sun Apr 03, 2011 12:49 am
by Asper
Вот-вот и я так думаю. Причём я не нашёл никакой возможности обновить кэш без перезагрузки.
Re: Дисковый кэш.
Posted: Sun Apr 03, 2011 12:57 am
by Serge
Чтение большого файла может перезаписать кеш. В теории. Но я не знаю какой там алгоритм работы.
Re: Дисковый кэш.
Posted: Sun Apr 03, 2011 1:03 am
by Asper
Хм... надо будет попробовать (в понедельник).
Re: Дисковый кэш.
Posted: Mon Apr 04, 2011 9:13 am
by Mario
Кеш не более 1 Мб на физическое устройство, если никто не менял пропорции. Для надежной очистки нужно реализовать функцию сброса кеша, однако с точки зрения безопасности это еще одна уязвимость. Не фатальная конечно - просто может снизить производительность работы с устройством.
Re: Дисковый кэш.
Posted: Mon Apr 04, 2011 10:10 am
by SoUrcerer
Как уже многим наверное известно, пишу программу для просмотра iso-образов. Обращение к файловой системе на bd-диске дает падение программы. Запускаю программу еще раз - теперь список файлов на диске получается, но обращение к файлу снова вызывает падение программы. Запускаю в третий раз - теперь файл открывается отлично.
Это могут быть проблемы с кэшем, или лучше еще раз пристально посмотреть на код работы с ФС?
Re: Дисковый кэш.
Posted: Mon Apr 04, 2011 10:21 am
by Mario
Для надежности надо гарантировать, что с HD устройствами код работает корректно, а потом уже разбираться с BD.
Re: Дисковый кэш.
Posted: Mon Apr 04, 2011 11:02 am
by SoUrcerer
Упс, было старое ядро (1734). При обращении к hd все было хорошо, при обращении к hd после bd - тоже хорошо, при обращении к bd без hd - плохо (падало с eax 9b800 ebx f597 ecx 1 edx 0d8d0000 esi 0d8d0000 edi fb0e ebp 28 eip 74b1 esp 113c40 постоянно).
С последней сборкой таких проблем не наблюдается.
Re: Дисковый кэш.
Posted: Mon Apr 04, 2011 11:47 am
by CleverMouse
Судя по
viewtopic.php?p=31693#p31693 , проблемы с BD вызваны использованием newlib - которая использует TLS и селектор fs - вместо menuetlibc.