[Devel] unlock range
Pavel Shilovsky
piastryyy на gmail.com
Пн Сен 26 14:04:00 MSD 2011
26 сентября 2011 г. 13:15 пользователь Alexander Morozov
<amorozov на etersoft.ru> написал:
>> Кэширование блокировок после завершения разработки будет
>> пробрасываться в ядра со strictcache (там он необходим при работе
>> через ntdll) - 2.6.32, 2.6.35, 2.6.37, 2.6.38, 2.6.39, 3.0 и
>> последующие. В то же время во все ядра будет прокинуть исправленную
>> семантику работы вызова unlock. Поэтому, нужно протестировать оба
>> варианта для CIFS.
>
> Я так понимаю, что для всех ядер в случае cifs надо напрямую отправлять
> запросы на блокирование/разблокирование драйверу cifs. Т.е. никакой проверки
> версии тут добавлять не надо.
Для разблокирования - да. Для блокирования можно и проверить наличие
блокировок, препятствующих установке - хуже не будет. То бишь нужно
только немного изменить код функции unlock в WINE.
>
>> 1. WINE ( блокировки CIFS через ntdll ) + CIFS ( без режима
>> кэширования блокировок ) опции: direct,forcemand
>> 2. WINE ( блокировки CIFS через ntdll ) + CIFS ( c режимом кэширования
>> блокировок ) опции: strictcache,forcemand
>
> Мне кажется, что первый вариант не имеет смысла без strictcache.
> Но если strictcache не будет на всех ядрах, то, видимо, надо будет всё же
> сделать это:
>> >> 1. WINE ( блокировки CIFS через wineserver ) + CIFS ( без режима
>> >> кэширования блокировок )
>
> Сейчас второй вариант выбирается установкой переменной окружения
> WINECIFSWITHOUTPIDFORWARD=yes
> Думаю, для тестирования этого достаточно, проверку версии тут пока не буду
> добавлять.
>
В случае direct нам никто не мешает использовать ntdll в WINE для
установки блокировки прямо сейчас. Проблемы есть только в случае
strictcache, что я и собираюсь решить добавлением режима кэширования
блокировок. Поэтому актуальным для тестирования остаются варианты:
1. WINE ( блокировки CIFS через ntdll ) + CIFS ( без режима
кэширования блокировок ) опции: direct,forcemand
2. WINE ( блокировки CIFS через ntdll ) + CIFS ( c режимом
кэшированияблокировок ) опции: strictcache,forcemand
первый из которых сэмулирует поведение ядер, у которых нет режима
strictcache, второй - с наличием этого режима.
То есть, я имею ввиду, что все ядра смогут нормально работать с
установкой блокировок через ntdll, только одни будут использовать
strictcache + режим кэширования блокировок, а другие - direct. Таким
образом никаких проверок на версию ядра в WINE не потребуется.
--
Best regards,
Pavel Shilovsky.
Подробная информация о списке рассылки Devel