Some questions regarding block device semantics

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I have been unable to find the answer to the following questions regarding
the semantics of block devices:

1) I noticed the concepts of "logical block size", "physical block size",
   and "soft block size" (cf. blkdev_ioctl() in block/ioctl.c). The
   meanings of the first two are documented in
   blk_queue_logical_block_size() and blk_queue_physical_block_size() in
   block/blk-settings.c . However, what is the soft block size used for?
   Is it historical and superseded by the logical and physical block
   sizes?

2) If two concurrent writes requests (i.e., both are submitted by some
   client and only then do both complete) to the same block device
   intersect, are there any guarantees regarding the content of the
   affected region after the writes complete? What about concurrent writes
   to the same logical block? And physical block?

3) Are there any guarantees regarding the content of a logical block that
   was being written (i.e., for which a write request was submitted but
   not yet completed) when a crash occurred? What about a write to a
   physical block? Also, what if the write was a FUA write?

Is someone able to clarify me on this? I apologize if these questions are
too basic for this mailing list or if I missed any relevant documentation.

Thanks,
Alberto Faria



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux