qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org,
	virtualization@lists.linux-foundation.org
Subject: [Qemu-devel] Re: [PATCH v2] virtio-blk physical block size
Date: Mon, 04 Jan 2010 09:02:57 +0200	[thread overview]
Message-ID: <4B4192A1.3030801@redhat.com> (raw)
In-Reply-To: <201001041338.52621.rusty@rustcorp.com.au>

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	other threads:[~2010-01-04  7:03 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1262018363-15871-1-git-send-email-avi@redhat.com>
2010-01-04  3:08 ` [Qemu-devel] Re: [PATCH v2] virtio-blk physical block size Rusty Russell
2010-01-04  7:02   ` Avi Kivity [this message]
2010-01-05 20:18     ` Jamie Lokier
2010-01-04  8:30   ` Christoph Hellwig
2010-01-05 12:56     ` Rusty Russell
2010-01-05 12:58       ` Avi Kivity
2010-01-05 20:16         ` Jamie Lokier
2010-01-08 15:40           ` Christoph Hellwig
2010-01-10 12:35             ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B4192A1.3030801@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rusty@rustcorp.com.au \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).