[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] scsi-disk: Don't enlarge min_io_size to max_
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH v2] scsi-disk: Don't enlarge min_io_size to max_io_size |
Date: |
Wed, 28 Mar 2018 13:37:13 +1100 |
User-agent: |
Mutt/1.9.2 (2017-12-15) |
On Wed, Mar 28, 2018 at 12:41:41AM +0800, Fam Zheng wrote:
> Some backends report big max_io_sectors. Making min_io_size the same
> value in this case will make it impossible for guest to align memory,
> therefore the disk may not be usable at all.
>
> Do not enlarge them when they are zero.
>
> Reported-by: David Gibson <address@hidden>
> Signed-off-by: Fam Zheng <address@hidden>
Tested-by: David Gibson <address@hidden>
With this patch applied, I was able to successfully install a ppc64le
guest again.
>
> ---
>
> v2: Leave the values alone if zero. [Paolo]
> At least we can consult block layer for a slightly more sensible
> opt_io_size, but that's for another patch.
> ---
> hw/scsi/scsi-disk.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
> index f5ab767ab5..f8ed8cf2b4 100644
> --- a/hw/scsi/scsi-disk.c
> +++ b/hw/scsi/scsi-disk.c
> @@ -714,10 +714,12 @@ static int scsi_disk_emulate_inquiry(SCSIRequest *req,
> uint8_t *outbuf)
>
> /* min_io_size and opt_io_size can't be greater than
> * max_io_sectors */
> - min_io_size =
> - MIN_NON_ZERO(min_io_size, max_io_sectors);
> - opt_io_size =
> - MIN_NON_ZERO(opt_io_size, max_io_sectors);
> + if (min_io_size) {
> + min_io_size = MIN(min_io_size, max_io_sectors);
> + }
> + if (opt_io_size) {
> + opt_io_size = MIN(opt_io_size, max_io_sectors);
> + }
> }
> /* required VPD size with unmap support */
> buflen = 0x40;
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature