Хотелось бы услышать предложения как бы это получше сделать. Навскидку варианты: 1) использовать оригинальную страницу для ввода-вывода и в b_end_io расшифровывать поблочно(для readpage). Если во время b_end_io разрешены прерывания, то, как мне кажется, можно легко переполнить стек ядра (файловая система может жить на 16-64 дисках), если прерывания запрещены, то могут теряться прерывания, кроме того, поскольку шифрование тяжелое, то могут возникать неприятные задержки, даже если ядро поддерживает вытеснение кроме того, kmap_atomic(bh_kmap_irq) может в первом случае в какой-то момент не спроецировать страницу. 2) (для readpage) в b_end_io помещать буфера в очереди и вне контекста прерывания их обрабатывать (расшифровывать) По-моему, это будет слишком медленно (лишнее переключение контекста). 3) совершать операции над страницами синхронно (readpage, prepare-/commit- write), используя для ввода-вывода теневую страницу. Так я реализовал сейчас, но проблема в том, что readahead становится синхронным. Как бы получить разумный компромисс между безопасностью и производительностью?
Ответ на:
комментарий
от signal11
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от signal11
Ответ на:
комментарий
от signal11
Ответ на:
комментарий
от signal11
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.