@@ -4131,6 +4131,19 @@
\end_layout
\begin_layout Description
+VIRTIO_BLK_F_PHYS_BLK_SIZE(7) Physical block size of disk (writes aligned
+ to this will not trigger read-modify-write cycles) is in
+\begin_inset Quotes erd
+\end_inset
+
+phys_blk_size
+\begin_inset Quotes erd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
VIRTIO_BLK_F_SECTOR_MAX
\begin_inset space ~
\end_inset
@@ -4214,6 +4227,11 @@
\begin_layout Plain Layout
+ u32 phys_blk_size;
+\end_layout
+
+\begin_layout Plain Layout
+
};
\end_layout
@@ -4241,9 +4259,9 @@
\begin_layout Enumerate
If the VIRTIO_BLK_F_BLK_SIZE feature is negotiated, the blk_size field can
- be read to determine the optimal sector size for the driver to use.
+ be read to determine the sector size for the driver to use.
This does not effect the units used in the protocol (always 512 bytes),
- but awareness of the correct value can effect performance.
+ but requests must be aligned to this size.
\end_layout
\begin_layout Enumerate
@@ -4257,6 +4275,13 @@
No requests should be submitted which go beyond this limit.
\end_layout
+\begin_layout Enumerate
+If the VIRTIO_BLK_F_PHYS_BLK_SIZE feature is negotiated, the phys_blk_size
+ field should be read to determine the hardware block size.
+ Smaller writes are liable to require read-modify-write cycles on behalf
+ of the underlying hardware, however they are still supported.
+\end_layout
+
\begin_layout Section*
Device Operation
\end_layout