All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Richard W.M. Jones" <rjones@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] fstrim & upstream kernel not working
Date: Fri, 14 Mar 2014 12:42:16 +0000	[thread overview]
Message-ID: <20140314124216.GQ1346@redhat.com> (raw)
In-Reply-To: <5322F670.50906@redhat.com>

On Fri, Mar 14, 2014 at 01:30:40PM +0100, Paolo Bonzini wrote:
> Il 13/03/2014 22:49, Richard W.M. Jones ha scritto:
> >- Is there any reason why virtio-scsi doesn't emulate WRITE SAME?
> 
> Yes, the reason is that you're using QEMU 1.7. :)
> 
> >- Can you see where ext4 issues the zeroout/write same call?  AFAICT
> >it is still issuing discards, but these are getting turned into
> >zeroout/write same by some sort of block layer magic that I can't
> >quite follow.
> 
> That's provisioning_mode, which is writesame_16 with QEMU 1.7 and
> unmap with QEMU 2.0.

Got it.

This morning I was trying kernel from git + qemu from git together.
This works, sort of.

Firstly I tightened up the automated tests[1] of trimming.  Previously
we just tested that >= 1 block was freed in the host file.  Now I'm
checking that >= 512 KB is freed.  This change revealed that fstrim
was only trimming about 64 KB from the host file (although -o discard
and blkdiscard tests[1] work as expected).

I worked around this in any case by rearranging the test [2]:

Doing:

  rm /a_big_file
  fstrim /
  sync
  umount /
  [shut down qemu]

would only trim 64 KB on the host.

Doing:

  rm /a_big_file
  umount /                         # added
  mount -o nodiscard /dev/sda /    # added
  fstrim /
  sync
  umount /
  [shut down qemu]

would trim the expected amount (around 10 MB).

I've no idea why this is (looks like an ext4/kernel bug to me), but in
any case the tests now use the second method[2].

Rich.

[1] https://github.com/libguestfs/libguestfs/tree/master/tests/discard
[2] https://github.com/libguestfs/libguestfs/commit/accf1b66aa835714690a2979e990c49243875dab

-- 
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-03-14 12:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-13 21:49 [Qemu-devel] fstrim & upstream kernel not working Richard W.M. Jones
2014-03-14 12:30 ` Paolo Bonzini
2014-03-14 12:42   ` Richard W.M. Jones [this message]
2014-03-14 12:47     ` Paolo Bonzini
2014-03-14 13:24       ` Richard W.M. Jones
2014-03-14 13:28         ` Paolo Bonzini
2014-03-14 13:34           ` Richard W.M. Jones

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=20140314124216.GQ1346@redhat.com \
    --to=rjones@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.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 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.