qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Richard W.M. Jones" <rjones@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Teng-Feng Yang <shinrairis@gmail.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] TRIM/DISCARD/UNMAP support on qemu-nbd
Date: Tue, 7 Jan 2014 20:27:08 +0000	[thread overview]
Message-ID: <20140107202708.GB1273@redhat.com> (raw)
In-Reply-To: <52CC13D6.6000607@redhat.com>

On Tue, Jan 07, 2014 at 03:48:54PM +0100, Paolo Bonzini wrote:
> Il 02/01/2014 17:15, Richard W.M. Jones ha scritto:
> > 
> > My (possibly weak) understanding of the upstream qemu code is that
> > unmap/discard/trim is not supported in qcow2.  It is only supported in
> > raw files when using a POSIX-like host OS which has either of:
> > 
> >  - block devices supporting BLKDISCARDZEROES
> >  - files on XFS
> >  - files on other filesystems that support FALLOC_FL_PUNCH_HOLE (eg ext4)
> 
> It doesn't have to support BLKDISCARDZEROES, only BLKDISCARD.  I test it
> with scsi_debug using both lbprz=0 and lbprz=1 (which becomes
> BLKDISCARDZEROES unset and set respectively).
> 
> Otherwise this is correct.
> 
> > Having said that, I did some tests using libguestfs and I could not
> > show that unmap was working, either using raw or qcow2 (both on ext4),
> > with virtio-scsi, and recent kernel & qemu.  I did not see any errors,
> > but also I don't see what I'm doing wrong.
> 
> Can you share more?

Not much more what I said in the original email (especially see the
attached script which you can download from the bottom of this page:
https://lists.gnu.org/archive/html/qemu-devel/2014-01/msg00084.html )

Basically it tries to dd /dev/zero into the virtio-scsi device exposed
by qemu, then calls sg_unmap (there are two devices, it only unmaps
the first so we can hopefully see the difference), but it doesn't seem
to have any effect on the underlying file.  The underlying file is a
regular raw-format file on ext4.

I called sg_readcap/sg_vpd and we seem to have all the right
capability bits exposed.

This script won't work with regular libguestfs.  I compiled a special
appliance that had the sg tools included.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top

  reply	other threads:[~2014-01-07 20:27 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-30 11:58 [Qemu-devel] TRIM/DISCARD/UNMAP support on qemu-nbd Teng-Feng Yang
2014-01-02 16:15 ` Richard W.M. Jones
2014-01-07 14:48   ` Paolo Bonzini
2014-01-07 20:27     ` Richard W.M. Jones [this message]
2014-01-07 20:48       ` Paolo Bonzini
2014-01-07 21:22         ` Richard W.M. Jones
2014-01-08 22:11           ` Paolo Bonzini
2014-01-08 22:24             ` Richard W.M. Jones
2014-01-08 22:45               ` Paolo Bonzini
2014-01-08 22:53                 ` Richard W.M. Jones
2014-01-09  7:02                   ` Paolo Bonzini
2014-01-07 21:27         ` Richard W.M. Jones
2014-01-06  2:45 ` Stefan Hajnoczi

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=20140107202708.GB1273@redhat.com \
    --to=rjones@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=shinrairis@gmail.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 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).