[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