* [Qemu-devel] [PATCH] scsi-disk: provide "max write same length" for block limits VPD page
@ 2014-12-05 13:00 Ming Lei
2014-12-05 15:51 ` Paolo Bonzini
0 siblings, 1 reply; 2+ messages in thread
From: Ming Lei @ 2014-12-05 13:00 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini; +Cc: Ming Lei
Since QEMU claims to support UNMAP, WRITE SAME and WRITE SAME 16
in the LBP VPD page, it is better to provide "max write same length"
in response for block limits VPD page because:
- T10 SBC-3 doesn't describe priority explicitly when all three
are enabled
- host driver may prefer WRITE/WRITE 16, then try to parse
"max write same length"
Signed-off-by: Ming Lei <ming.lei@canonical.com>
---
hw/scsi/scsi-disk.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 2f75d7d..b15bf4f 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -674,6 +674,20 @@ static int scsi_disk_emulate_inquiry(SCSIRequest *req, uint8_t *outbuf)
outbuf[29] = (unmap_sectors >> 16) & 0xff;
outbuf[30] = (unmap_sectors >> 8) & 0xff;
outbuf[31] = unmap_sectors & 0xff;
+
+ /*
+ * maximum write same length, just borrow max unmap
+ * count because write same command need to support
+ * unmap
+ */
+ outbuf[36] = 0;
+ outbuf[37] = 0;
+ outbuf[38] = 0;
+ outbuf[39] = 0;
+ outbuf[40] = (max_unmap_sectors >> 24) & 0xff;
+ outbuf[41] = (max_unmap_sectors >> 16) & 0xff;
+ outbuf[42] = (max_unmap_sectors >> 8) & 0xff;
+ outbuf[43] = max_unmap_sectors & 0xff;
break;
}
case 0xb2: /* thin provisioning */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [Qemu-devel] [PATCH] scsi-disk: provide "max write same length" for block limits VPD page
2014-12-05 13:00 [Qemu-devel] [PATCH] scsi-disk: provide "max write same length" for block limits VPD page Ming Lei
@ 2014-12-05 15:51 ` Paolo Bonzini
0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2014-12-05 15:51 UTC (permalink / raw)
To: Ming Lei, qemu-devel
On 05/12/2014 14:00, Ming Lei wrote:
> Since QEMU claims to support UNMAP, WRITE SAME and WRITE SAME 16
> in the LBP VPD page, it is better to provide "max write same length"
> in response for block limits VPD page because:
>
> - T10 SBC-3 doesn't describe priority explicitly when all three
> are enabled
> - host driver may prefer WRITE/WRITE 16, then try to parse
> "max write same length"
>
> Signed-off-by: Ming Lei <ming.lei@canonical.com>
> ---
> hw/scsi/scsi-disk.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
> index 2f75d7d..b15bf4f 100644
> --- a/hw/scsi/scsi-disk.c
> +++ b/hw/scsi/scsi-disk.c
> @@ -674,6 +674,20 @@ static int scsi_disk_emulate_inquiry(SCSIRequest *req, uint8_t *outbuf)
> outbuf[29] = (unmap_sectors >> 16) & 0xff;
> outbuf[30] = (unmap_sectors >> 8) & 0xff;
> outbuf[31] = unmap_sectors & 0xff;
> +
> + /*
> + * maximum write same length, just borrow max unmap
> + * count because write same command need to support
> + * unmap
> + */
> + outbuf[36] = 0;
> + outbuf[37] = 0;
> + outbuf[38] = 0;
> + outbuf[39] = 0;
> + outbuf[40] = (max_unmap_sectors >> 24) & 0xff;
> + outbuf[41] = (max_unmap_sectors >> 16) & 0xff;
> + outbuf[42] = (max_unmap_sectors >> 8) & 0xff;
> + outbuf[43] = max_unmap_sectors & 0xff;
> break;
> }
> case 0xb2: /* thin provisioning */
>
There is support for splitting write_zeroes requests in the block layer,
so this is a problem elsewhere in the stack. It could be in QEMU block/
or in Linux. Let's analyze it in the linux-scsi thread.
Paolo
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-12-05 15:51 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-05 13:00 [Qemu-devel] [PATCH] scsi-disk: provide "max write same length" for block limits VPD page Ming Lei
2014-12-05 15:51 ` Paolo Bonzini
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.