From: Hannes Reinecke <hare@suse.de>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: Paul Brook <paul@codesourcery.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [sneak preview] major scsi overhaul
Date: Thu, 26 Nov 2009 11:57:01 +0100 [thread overview]
Message-ID: <4B0E5EFD.6060701@suse.de> (raw)
In-Reply-To: <4B0E3B90.5080001@redhat.com>
Gerd Hoffmann wrote:
> Hi,
>
>>> Answering large requests with "Illegal request, Invalid field in CDB"
>>> doesn't makes linux try smaller requests, instead it reports I/O errors
>>> to the syslog.
>>>
>>> Hmm.
>>>
>> Can't we just put residuals to good use here?
>> Ie finish up the request up to the size we can handle, and return the
>> original request with the transfer size set correctly.
>
> I'll try.
>
>> Should be straightforward to implement, one would assume.
>
> The infrastructure and the HBAs have to handle that already. It
> frequently happens with MODE SENSE for example (guest passing a 256 byte
> buffer and we have less data to fill in). So it should be easy.
>
>> And we could probably encapsulate it entirely within the bdrv
>> as don't actually need to expose those limits when the block
>> driver layer is handling it correctly.
>
> Hmm, I don't think so. SG_IO just returns EINVAL.
>
Yes, but we can hook into scsi_generic_map() to cap the resulting
iovec to the limits of the underlying block device.
Then we submit an iovec which matches the capabilities of the
underlying device.
Of course we should take care to update the resulting xferlen
values to match the actualy submitted data, but that should
be easily done.
Then the guest would see a partial request and retry the
remainder of the request, which (possibly after some iterations)
would result in all data transferred, albeit at a lower speed.
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare@suse.de +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)
next prev parent reply other threads:[~2009-11-26 10:57 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-06 23:09 [Qemu-devel] [sneak preview] major scsi overhaul Gerd Hoffmann
2009-11-07 15:22 ` Blue Swirl
2009-11-09 9:08 ` Gerd Hoffmann
2009-11-09 12:37 ` Avi Kivity
2009-11-09 13:03 ` Gerd Hoffmann
2009-11-09 13:17 ` Avi Kivity
2009-11-09 13:39 ` Gerd Hoffmann
2009-11-09 13:48 ` Avi Kivity
2009-11-09 20:38 ` Blue Swirl
2009-11-09 21:25 ` Gerd Hoffmann
2009-11-11 4:06 ` Paul Brook
2009-11-11 9:41 ` Gerd Hoffmann
2009-11-11 14:13 ` Paul Brook
2009-11-11 15:26 ` Gerd Hoffmann
2009-11-11 16:38 ` Paul Brook
2009-11-16 16:35 ` Gerd Hoffmann
2009-11-16 18:53 ` Paul Brook
2009-11-16 21:50 ` Gerd Hoffmann
2009-11-24 11:59 ` Gerd Hoffmann
2009-11-24 13:51 ` Paul Brook
2009-11-25 16:37 ` Gerd Hoffmann
2009-11-26 7:31 ` Hannes Reinecke
2009-11-26 8:25 ` Gerd Hoffmann
2009-11-26 10:57 ` Hannes Reinecke [this message]
2009-11-26 11:04 ` Gerd Hoffmann
2009-11-26 11:20 ` Hannes Reinecke
2009-11-26 14:21 ` Gerd Hoffmann
2009-11-26 14:27 ` Hannes Reinecke
2009-11-26 14:37 ` Gerd Hoffmann
2009-11-26 15:50 ` Hannes Reinecke
2009-11-27 11:08 ` Gerd Hoffmann
2009-12-02 13:47 ` Gerd Hoffmann
2009-12-07 8:28 ` Hannes Reinecke
2009-12-07 8:50 ` Gerd Hoffmann
2009-11-16 19:08 ` Ryan Harper
2009-11-16 20:40 ` Gerd Hoffmann
2009-11-16 21:45 ` Ryan Harper
2009-11-11 11:21 ` [Qemu-devel] " Gerd Hoffmann
2009-11-11 11:52 ` Hannes Reinecke
2009-11-11 13:02 ` Gerd Hoffmann
2009-11-11 13:30 ` Hannes Reinecke
2009-11-11 14:37 ` Gerd Hoffmann
2009-11-12 9:54 ` Hannes Reinecke
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=4B0E5EFD.6060701@suse.de \
--to=hare@suse.de \
--cc=kraxel@redhat.com \
--cc=paul@codesourcery.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 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).