All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Peter Lieven <pl@kamp.de>
Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH 06/11] scsi-disk: correctly implement WRITE SAME
Date: Wed, 13 Nov 2013 10:38:58 +0100	[thread overview]
Message-ID: <528348B2.6030202@redhat.com> (raw)
In-Reply-To: <EB98E028-04E8-4FF6-BDF6-2035AB73866B@kamp.de>

Il 13/11/2013 07:18, Peter Lieven ha scritto:
>> > The WRITE SAME command is implemented incorrectly.  WRITE SAME with the
>> > UNMAP bit set should _not_ unmap the sectors unless the written data
>> > matches the payload of the WRITE SAME command; currently, QEMU is not
>> > looking at the payload at all.
>> > 
>> > Thus, fetch the data to be written from the input buffer.  If it is
>> > all zeroes, we can use the write_zeroes call (possibly with the new
>> > MAY_UNMAP flag).  Otherwise, do as many write cycles as needed, covering
>> > 512k at a time to avoid allocating lots of memory for the bounce
>> > buffer.
> 
> Would it make sense to add a bdrv_write_same or is the use case for
> WRITE SAME with non-zero payload too rare?

It would, but it is definitely very rare, probably so much that we need
not care.  Linux only invokes it for zero payloads.

Also, for zero payload there are additional benefits.  First, supporting
WRITE SAME with UNMAP if the host has LBPRZ=1 or analogous.  Second,
using zero clusters in qcow2/qed/vmdk.

> And secondly would it make sense to add an optimal request size field
> to the BlockLimits?

The optimal request size is not particularly useful if it is not visible
to the guest, unfortunately.  But we cannot pass values arbitrarily to
the guest because they would change if the backing storage changed (e.g.
from NFS to local, or from raw to qcow2).

So I'm not sure who would actually use the optimal request size.

Paolo

  reply	other threads:[~2013-11-13  9:39 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-12 15:49 [Qemu-devel] [PATCH 00/11] block & scsi: write_zeroes support through the whole stack Paolo Bonzini
2013-11-12 15:49 ` [Qemu-devel] [PATCH 01/11] block: generalize BlockLimits handling to cover bdrv_aio_discard too Paolo Bonzini
2013-11-13  6:07   ` Peter Lieven
2013-11-12 15:49 ` [Qemu-devel] [PATCH 02/11] block: add flags to BlockRequest Paolo Bonzini
2013-11-12 15:49 ` [Qemu-devel] [PATCH 03/11] block: add bdrv_aio_write_zeroes Paolo Bonzini
2013-11-12 15:49 ` [Qemu-devel] [PATCH 04/11] scsi-disk: catch write protection errors in UNMAP Paolo Bonzini
2013-11-12 15:49 ` [Qemu-devel] [PATCH 05/11] scsi-disk: reject ANCHOR=1 for UNMAP and WRITE SAME commands Paolo Bonzini
2013-11-13 19:03   ` Eric Blake
2013-11-12 15:49 ` [Qemu-devel] [PATCH 06/11] scsi-disk: correctly implement WRITE SAME Paolo Bonzini
2013-11-13  6:18   ` Peter Lieven
2013-11-13  9:38     ` Paolo Bonzini [this message]
2013-11-12 15:49 ` [Qemu-devel] [PATCH 07/11] block: handle ENOTSUP from discard in generic code Paolo Bonzini
2013-11-12 15:49 ` [Qemu-devel] [PATCH 08/11] raw-posix: implement write_zeroes with MAY_UNMAP for files Paolo Bonzini
2013-11-13  6:27   ` Peter Lieven
2013-11-13  6:30     ` Peter Lieven
2013-11-12 15:49 ` [Qemu-devel] [PATCH 09/11] raw-posix: implement write_zeroes with MAY_UNMAP for block devices Paolo Bonzini
2013-11-13  6:29   ` Peter Lieven
2013-11-13  9:44     ` Paolo Bonzini
2013-11-13 14:14       ` Peter Lieven
2013-11-13 14:39         ` Paolo Bonzini
2013-11-13 14:45           ` Peter Lieven
2013-11-12 15:49 ` [Qemu-devel] [PATCH 10/11] raw-posix: add support for write_zeroes on XFS and " Paolo Bonzini
2013-11-12 15:49 ` [Qemu-devel] [PATCH 11/11] qemu-iotests: 033 is fast Paolo Bonzini

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=528348B2.6030202@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pl@kamp.de \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.