qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Stefan Priebe - Profihost AG <s.priebe@profihost.ag>
Cc: josh.durgin@inktank.com, qemu-devel@nongnu.org, sage@newdream.net
Subject: Re: [Qemu-devel] scsi-hd with discard_granularity and unmap results in Aborted Commands
Date: Mon, 19 Nov 2012 13:24:07 +0100	[thread overview]
Message-ID: <50AA24E7.7010009@redhat.com> (raw)
In-Reply-To: <50AA1CE7.7090100@profihost.ag>

Il 19/11/2012 12:49, Stefan Priebe - Profihost AG ha scritto:
>>
>> It still causes hangs no?  Though it works apart from that.
> 
> iscsi/libiscsi and discards works fine since your latest patches:
> 1bd075f29ea6d11853475c7c42734595720c3ac6
> cfb3f5064af2d2e29c976e292c9472dfe9d61e31
> 27cbd828c617944c0f9603763fdf4fa87e7ad923
> b20909195745c34a819aed14ae996b60ab0f591f

Does the console still hang though?

> But in rbd it starts to cancel the discard requests. Both using the same
> guest and host kernel with the same QEMU version.

rbd's cancellation is broken like libiscsi's was.  So the cancellation
succeeds apparently, but it is subject to the same race introduced in
commit 64e69e8 (iscsi: Fix NULL dereferences / races between task
completion and abort, 2012-08-15) for libiscsi.

It risks corruption in case the following happens:

        guest                  qemu                 rbd server
=========================================================================
        send write 1 -------->
                               send write 1 ------>
        cancel write 1 ------>
                               cancel write 1 ---->
           <------------------ cancelled
        send write 2 -------->
                               send write 2 ------>
                                   <--------------- completed write 2
           <------------------ completed write 2
                                   <--------------- completed write 1

Here, the guest would see write 2 superseding write 1, when in fact the
outcome could have been the opposite.  The right behavior is to return
only after the target says whether the cancellation was done or not.
For libiscsi, it was implemented by the commits you mention.

Paolo

  reply	other threads:[~2012-11-19 12:24 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-18 21:49 [Qemu-devel] [PATCH RFT 0/3] iscsi: fix NULL dereferences / races between task completion and abort Paolo Bonzini
2012-08-18 21:49 ` [Qemu-devel] [PATCH 1/3] iscsi: move iscsi_schedule_bh and iscsi_readv_writev_bh_cb Paolo Bonzini
2012-08-18 21:49 ` [Qemu-devel] [PATCH 2/3] iscsi: simplify iscsi_schedule_bh Paolo Bonzini
2012-08-18 21:49 ` [Qemu-devel] [PATCH 3/3] iscsi: fix races between task completion and abort Paolo Bonzini
2012-08-19  7:55 ` [Qemu-devel] [PATCH RFT 0/3] iscsi: fix NULL dereferences / " Stefan Priebe
2012-08-19 13:11   ` Paolo Bonzini
2012-08-19 19:22     ` Stefan Priebe - Profihost AG
2012-08-20  7:22       ` Paolo Bonzini
2012-08-20  7:34         ` Stefan Priebe - Profihost AG
2012-08-20  8:08           ` Paolo Bonzini
2012-08-20  8:12             ` Stefan Priebe - Profihost AG
2012-08-20 22:36               ` ronnie sahlberg
2012-08-21  7:22                 ` Stefan Priebe - Profihost AG
2012-08-21  7:30                   ` Paolo Bonzini
2012-11-06  8:41                     ` [Qemu-devel] scsi-hd with discard_granularity and unmap results in Aborted Commands Stefan Priebe - Profihost AG
2012-11-06 22:42                       ` Paolo Bonzini
2012-11-07 18:57                         ` Stefan Priebe
2012-11-18 22:00                         ` Stefan Priebe
2012-11-19  8:10                           ` Paolo Bonzini
2012-11-19  9:36                             ` Stefan Priebe - Profihost AG
2012-11-19  9:54                               ` Paolo Bonzini
2012-11-19  9:59                                 ` Stefan Priebe - Profihost AG
2012-11-19 10:06                                   ` Paolo Bonzini
2012-11-19 10:13                                     ` Stefan Priebe - Profihost AG
2012-11-19 10:23                                       ` Paolo Bonzini
2012-11-19 10:30                                         ` Stefan Priebe - Profihost AG
2012-11-19 10:36                                           ` Paolo Bonzini
2012-11-19 10:57                                             ` Stefan Priebe - Profihost AG
2012-11-19 11:16                                               ` Paolo Bonzini
2012-11-19 11:49                                                 ` Stefan Priebe - Profihost AG
2012-11-19 12:24                                                   ` Paolo Bonzini [this message]
2012-11-19 13:01                                                     ` Stefan Priebe - Profihost AG
2012-11-19 13:06                                                       ` Paolo Bonzini
2012-11-19 14:16                                                         ` Stefan Priebe - Profihost AG
2012-11-19 14:32                                                           ` Paolo Bonzini
2012-11-19 14:28                                                         ` Stefan Priebe - Profihost AG
2012-11-19 14:41                                                           ` Paolo Bonzini
2012-11-19 14:48                                                             ` Stefan Priebe - Profihost AG
2012-11-19 15:03                                                               ` Paolo Bonzini
2012-11-19 15:04                                                             ` Stefan Priebe - Profihost AG
2012-11-19 15:22                                                               ` Paolo Bonzini
2012-11-19 15:58                                                                 ` Stefan Priebe - Profihost AG

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=50AA24E7.7010009@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=josh.durgin@inktank.com \
    --cc=qemu-devel@nongnu.org \
    --cc=s.priebe@profihost.ag \
    --cc=sage@newdream.net \
    /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).