From: Stefan Hajnoczi <stefanha@redhat.com>
To: vrozenfe@redhat.com, yvugenfi@redhat.com, mdean@redhat.com
Cc: target-devel@vger.kernel.org, linux-scsi@vger.kernel.org,
pbonzini@redhat.com, jasowang@redhat.com, mst@redhat.com,
sgarzare@redhat.com, virtualization@lists.linux-foundation.org,
Mike Christie <michael.christie@oracle.com>
Subject: Re: [PATCH v2 0/2] vhost-scsi: Fix IO hangs when using windows
Date: Wed, 12 Jul 2023 10:26:56 -0400 [thread overview]
Message-ID: <20230712142656.GB215287@fedora> (raw)
In-Reply-To: <6b53b833-3c71-2bd9-8fd8-757ecda75c53@oracle.com>
[-- Attachment #1: Type: text/plain, Size: 2228 bytes --]
On Tue, Jul 11, 2023 at 04:01:22PM -0500, Mike Christie wrote:
> On 7/11/23 1:34 PM, Stefan Hajnoczi wrote:
> > On Sun, Jul 09, 2023 at 03:28:57PM -0500, Mike Christie wrote:
> >> The following patches were made over Linus's tree and fix an issue
> >> where windows guests will send iovecs with offset/lengths that result
> >> in IOs that are not aligned to 512. The LIO layer will then send them
> >> to Linux's FS/block layer but it requires 512 byte alignment, so
> >> depending on the FS/block driver being used we will get IO errors or
> >> hung IO.
> >>
> >> The following patches have vhost-scsi detect when windows sends these
> >> IOs and copy them to a bounce buffer. It then does some cleanup in
> >> the related code.
> >
> > Hang on, virtio-scsi is a SCSI HBA and READs/WRITEs submitted must
> > follow the usual constraints on SCSI block limits. Would Windows send
> > mis-aligned I/O to a non-virtio-scsi SCSI HBA?
>
> It's like linux where you can config settings like that.
>
> > > Are you sure this is not a bug in the Windows guest driver where block
> > limits are being misconfigured?
>
> From what our windows dev told us the guest drivers like here:
>
> https://github.com/virtio-win
>
> don't set the windows AlignmentMask to 512. They tried that and it
> resulted in windows crash dump crashing because it doesn't like the
> hard alignment requirement.
>
> We thought other apps would have trouble as well, so we tried to add
> bounce buffer support to the windows driver, but I think people thought
> it was going to be uglier than this patch and in the normal alignment
> case might also affect performance. There was some windows driver/layering
> and buffer/cmd details that I don't fully understand and took their word
> for because I don't know a lot about windows.
>
> In the end we still have to add checks to vhost-scsi to protect against
> bad drivers, so we thought we might as well just add bounce buffer support
> to vhost-scsi.
CCing virtio-win developers so they can confirm how the vioscsi driver
is supposed to handle request alignment.
My expectation is that the virtio-scsi device will fail mis-aligned I/O
requests.
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Stefan Hajnoczi <stefanha@redhat.com>
To: vrozenfe@redhat.com, yvugenfi@redhat.com, mdean@redhat.com
Cc: linux-scsi@vger.kernel.org, mst@redhat.com,
virtualization@lists.linux-foundation.org,
target-devel@vger.kernel.org, pbonzini@redhat.com
Subject: Re: [PATCH v2 0/2] vhost-scsi: Fix IO hangs when using windows
Date: Wed, 12 Jul 2023 10:26:56 -0400 [thread overview]
Message-ID: <20230712142656.GB215287@fedora> (raw)
In-Reply-To: <6b53b833-3c71-2bd9-8fd8-757ecda75c53@oracle.com>
[-- Attachment #1.1: Type: text/plain, Size: 2228 bytes --]
On Tue, Jul 11, 2023 at 04:01:22PM -0500, Mike Christie wrote:
> On 7/11/23 1:34 PM, Stefan Hajnoczi wrote:
> > On Sun, Jul 09, 2023 at 03:28:57PM -0500, Mike Christie wrote:
> >> The following patches were made over Linus's tree and fix an issue
> >> where windows guests will send iovecs with offset/lengths that result
> >> in IOs that are not aligned to 512. The LIO layer will then send them
> >> to Linux's FS/block layer but it requires 512 byte alignment, so
> >> depending on the FS/block driver being used we will get IO errors or
> >> hung IO.
> >>
> >> The following patches have vhost-scsi detect when windows sends these
> >> IOs and copy them to a bounce buffer. It then does some cleanup in
> >> the related code.
> >
> > Hang on, virtio-scsi is a SCSI HBA and READs/WRITEs submitted must
> > follow the usual constraints on SCSI block limits. Would Windows send
> > mis-aligned I/O to a non-virtio-scsi SCSI HBA?
>
> It's like linux where you can config settings like that.
>
> > > Are you sure this is not a bug in the Windows guest driver where block
> > limits are being misconfigured?
>
> From what our windows dev told us the guest drivers like here:
>
> https://github.com/virtio-win
>
> don't set the windows AlignmentMask to 512. They tried that and it
> resulted in windows crash dump crashing because it doesn't like the
> hard alignment requirement.
>
> We thought other apps would have trouble as well, so we tried to add
> bounce buffer support to the windows driver, but I think people thought
> it was going to be uglier than this patch and in the normal alignment
> case might also affect performance. There was some windows driver/layering
> and buffer/cmd details that I don't fully understand and took their word
> for because I don't know a lot about windows.
>
> In the end we still have to add checks to vhost-scsi to protect against
> bad drivers, so we thought we might as well just add bounce buffer support
> to vhost-scsi.
CCing virtio-win developers so they can confirm how the vioscsi driver
is supposed to handle request alignment.
My expectation is that the virtio-scsi device will fail mis-aligned I/O
requests.
Stefan
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
[-- Attachment #2: Type: text/plain, Size: 183 bytes --]
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2023-07-12 14:28 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-09 20:28 [PATCH v2 0/2] vhost-scsi: Fix IO hangs when using windows Mike Christie
2023-07-09 20:28 ` Mike Christie
2023-07-09 20:28 ` [PATCH v2 1/2] vhost-scsi: Fix alignment handling with windows Mike Christie
2023-07-09 20:28 ` Mike Christie
2023-07-09 20:28 ` [PATCH v2 2/2] vhost-scsi: Rename vhost_scsi_iov_to_sgl Mike Christie
2023-07-09 20:28 ` Mike Christie
2023-07-10 5:52 ` [PATCH v2 0/2] vhost-scsi: Fix IO hangs when using windows Michael S. Tsirkin
2023-07-10 5:52 ` Michael S. Tsirkin
2023-07-11 1:36 ` michael.christie
2023-07-11 1:36 ` michael.christie
2023-07-11 18:34 ` Stefan Hajnoczi
2023-07-11 18:34 ` Stefan Hajnoczi
2023-07-11 21:01 ` Mike Christie
2023-07-11 21:01 ` Mike Christie
2023-07-12 14:26 ` Stefan Hajnoczi [this message]
2023-07-12 14:26 ` Stefan Hajnoczi
2023-07-12 16:05 ` Mike Christie
2023-07-12 16:05 ` Mike Christie
2023-07-13 5:55 ` Vadim Rozenfeld
2023-07-13 14:07 ` Stefan Hajnoczi
2023-07-13 14:07 ` Stefan Hajnoczi
2023-07-13 14:03 ` Stefan Hajnoczi
2023-07-13 14:03 ` 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=20230712142656.GB215287@fedora \
--to=stefanha@redhat.com \
--cc=jasowang@redhat.com \
--cc=linux-scsi@vger.kernel.org \
--cc=mdean@redhat.com \
--cc=michael.christie@oracle.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=sgarzare@redhat.com \
--cc=target-devel@vger.kernel.org \
--cc=virtualization@lists.linux-foundation.org \
--cc=vrozenfe@redhat.com \
--cc=yvugenfi@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.