git: 9a5a5c1576b4 - main - pvscsi: Advertise maxio of 256k.
Warner Losh
imp at FreeBSD.org
Thu Apr 22 17:24:33 UTC 2021
The branch main has been updated by imp:
URL: https://cgit.FreeBSD.org/src/commit/?id=9a5a5c1576b4ce308a97e0bce887261701ae3edc
commit 9a5a5c1576b4ce308a97e0bce887261701ae3edc
Author: Warner Losh <imp at FreeBSD.org>
AuthorDate: 2021-04-21 18:10:42 +0000
Commit: Warner Losh <imp at FreeBSD.org>
CommitDate: 2021-04-22 17:23:29 +0000
pvscsi: Advertise maxio of 256k.
While the PV SCSI SG list can handle 512k of SG entries, it can only do
so for I/O that's aligned to 4k or better. newfs_msdos does unaligned
I/O, so triggers too long for host errors in cam when a 512k I/O is
attempted. Prefer power of 2 256k to the absolute maximum 508k, though
that can be revisited should the latter show to give significant
performance improvement.
MFC After: 3 days
Tested by: darius on discord (508k version of patch)
Sponsored by: Netflix
---
sys/dev/vmware/pvscsi/pvscsi.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sys/dev/vmware/pvscsi/pvscsi.c b/sys/dev/vmware/pvscsi/pvscsi.c
index 3ca905313897..ad32d2ab4959 100644
--- a/sys/dev/vmware/pvscsi/pvscsi.c
+++ b/sys/dev/vmware/pvscsi/pvscsi.c
@@ -1423,7 +1423,8 @@ finish_ccb:
strlcpy(cpi->sim_vid, "VMware", SIM_IDLEN);
strlcpy(cpi->hba_vid, "VMware", HBA_IDLEN);
strlcpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN);
- cpi->maxio = PVSCSI_MAX_SG_ENTRIES_PER_SEGMENT * PAGE_SIZE;
+ /* Limit I/O to 256k since we can't do 512k unaligned I/O */
+ cpi->maxio = (PVSCSI_MAX_SG_ENTRIES_PER_SEGMENT / 2) * PAGE_SIZE;
cpi->protocol = PROTO_SCSI;
cpi->protocol_version = SCSI_REV_SPC2;
cpi->transport = XPORT_SAS;
More information about the dev-commits-src-all
mailing list