diff options
author | Warner Losh <imp@FreeBSD.org> | 2021-04-21 18:10:42 +0000 |
---|---|---|
committer | Alexander Motin <mav@FreeBSD.org> | 2022-10-19 17:47:45 +0000 |
commit | f51c1d1dd595ce51059489d7e1248ff6ba39664a (patch) | |
tree | 975b78dec5008f6f769775866e50d86d6ede5553 | |
parent | d074059e9814726ff57e7ccb09125fb958382e40 (diff) | |
download | src-f51c1d1dd595ce51059489d7e1248ff6ba39664a.tar.gz src-f51c1d1dd595ce51059489d7e1248ff6ba39664a.zip |
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
(cherry picked from commit 9a5a5c1576b4ce308a97e0bce887261701ae3edc)
-rw-r--r-- | sys/dev/vmware/pvscsi/pvscsi.c | 3 |
1 files changed, 2 insertions, 1 deletions
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; |