qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: [PATCH v2] virtio-blk physical block size


From: Avi Kivity
Subject: [Qemu-devel] Re: [PATCH v2] virtio-blk physical block size
Date: Mon, 04 Jan 2010 09:02:57 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Thunderbird/3.0

On 01/04/2010 05:08 AM, Rusty Russell wrote:
On Tue, 29 Dec 2009 03:09:23 am Avi Kivity wrote:
This patch adds a physical block size attribute to virtio disks,
corresponding to /sys/devices/.../physical_block_size.  It is defined as
the request alignment which will not trigger RMW cycles.  This can be
important for modern disks which use 4K physical sectors (though they
still support 512 logical sectors), and for file-backed disk images (which
have both the underlying filesystem block size and their own allocation
granularity to consider).

Installers use this to align partitions to physical block boundaries.

Note the spec already defined blk_size as the performance rather than
minimum alignment.  However the driver interpreted this as the logical
block size, so I updated the spec to match the driver assuming the driver
predates the spec and that this is an error.
I thought this was what I was doing, but I have shown over and over that
I have no idea about block devices.

Our current driver treats BLK_SIZE as the logical and physical size (see
blk_queue_logical_block_size).

But we want them to be different.

I have no idea what "logical" vs. "physical" actually means.  Anyone?  Most
importantly, is it some Linux-internal difference or a real I/O-visible
distinction?

Yes.

Logical block size is the minimum block size the hardware will allow. Try to write less than that, and the hardware will laugh in your face.

Physical block size is the what the logical block size would have been is software didn't suck. In theory they should be the same, but since compatibility reaons clamp the logical block size to 512, they have to differ. A disk may have a physical block size of 4096 and emulate logical block size of 512 on top of that using read-modify-write.

Or so I understand it.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]