LINUX.ORG.RU

Гарантируется ли у операций с блочными устройствами выравнивание по началу блока?

 , ,


0

1

Пишу nbd-сервер, столкнулся с такой проблемой:

На практике (пока) все операции чтения/записи блочного устройства выровнены по началу блока.

Можно ли на это дело полагаться?

Буду также благодарен ссылке на документацию по этой проблеме.

★★★★★

Последнее исправление: derlafff (всего исправлений: 1)

Не знаю, может лучше заранее устанавливать на начало блока, самому, лишняя операция будет только.

charly_one
()

Вот тут видно http://lxr.free-electrons.com/source/include/linux/blkdev.h что подозрительно много слова «offset», есть там комменты о смещении относительно блоков... Я бы не полагался на это выравнивание, но может быть я не верно понял про какое смещение шла речь.

I-Love-Microsoft ★★★★★
()

Можно ли на это дело полагаться?

Если блочное устройство будет читать/писать юзерспейс - я бы не стал.

tailgunner ★★★★★
()
Ответ на: комментарий от derlafff

Попробуй dd читать с невыровненного адреса. Если все чтения проходят через bio - ядро выравняет адрес и на это можно полагаться. Если не заморачиваться на direct io.

tailgunner ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft
// Размер блока: 4096
2016/12/27 11:25:50 Read request: 512 bytes offset 0
2016/12/27 11:25:50 ... finished read request: 512 bytes offset 0
2016/12/27 11:25:50 Read request: 512 bytes offset 1024
2016/12/27 11:25:51 ... finished read request: 512 bytes offset 1024
2016/12/27 11:25:51 Read request: 512 bytes offset 512
2016/12/27 11:25:51 ... finished read request: 512 bytes offset 512
2016/12/27 11:25:51 Read request: 1024 bytes offset 1024
2016/12/27 11:25:51 ... finished read request: 1024 bytes offset 1024
2016/12/27 11:25:51 Read request: 1024 bytes offset 8192

А вот и ответ — не гарантируется. Всякое dd красиво читало с начала блока, а стоило в фат форматнуть устройство — всё, печаль :(

Всем спасибо

derlafff ★★★★★
() автор топика
Последнее исправление: derlafff (всего исправлений: 2)
Ответ на: комментарий от tailgunner

При чтении через dd адреса выравниваются.

При монтировании фата — уже нифига. Спасибо всем.

derlafff ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.