[Bug 267539] Bhyve virtio-scsi warnings about illegal SCSI tag reuse
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 267539] Bhyve virtio-scsi warnings about illegal SCSI tag reuse"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 267539] Bhyve virtio-scsi warnings about illegal SCSI tag reuse"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 267539] Bhyve virtio-scsi warnings about illegal SCSI tag reuse"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 267539] Bhyve virtio-scsi warnings about illegal SCSI tag reuse"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 267539] Bhyve virtio-scsi warnings about illegal SCSI tag reuse"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 03 Nov 2022 12:57:14 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=267539
Bug ID: 267539
Summary: Bhyve virtio-scsi warnings about illegal SCSI tag
reuse
Product: Base System
Version: 13.1-RELEASE
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: bhyve
Assignee: virtualization@FreeBSD.org
Reporter: crest@rlwinm.de
Created attachment 237838
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=237838&action=edit
Replace the virtio_scsi tags with an atomic 32 bit counter.
I'm running FreeBSD 13.1/amd64 both as bhyve host and guest. The guests access
to block storage is provided via virtio-scsi backed by local ZVOLs. Under heavy
disk I/O (e.g. fio benchmarks on a UFS file system of ~30GB) I get these
warnings every few seconds inside the guest:
(da1:vtscsi0:0:0:1): WRITE(10). CDB: 2a 00 00 cc 17 88 00 00 08 00
(da1:vtscsi0:0:0:1): CAM status: SCSI Status Error
(da1:vtscsi0:0:0:1): SCSI status: Check Condition
(da1:vtscsi0:0:0:1): SCSI sense: ILLEGAL REQUEST asc:4d,af ((null))
(da1:vtscsi0:0:0:1): Retrying command (per sense data)
(da1:vtscsi0:0:0:1): WRITE(10). CDB: 2a 00 00 cc f6 30 00 00 08 00
(da1:vtscsi0:0:0:1): CAM status: SCSI Status Error
(da1:vtscsi0:0:0:1): SCSI status: Check Condition
(da1:vtscsi0:0:0:1): SCSI sense: ILLEGAL REQUEST asc:4d,20 ((null))
(da1:vtscsi0:0:0:1): Retrying command (per sense data)
(da1:vtscsi0:0:0:1): WRITE(10). CDB: 2a 00 00 30 ad 20 00 00 08 00
(da1:vtscsi0:0:0:1): CAM status: SCSI Status Error
(da1:vtscsi0:0:0:1): SCSI status: Check Condition
(da1:vtscsi0:0:0:1): SCSI sense: ILLEGAL REQUEST asc:4d,f6 ((null))
(da1:vtscsi0:0:0:1): Retrying command (per sense data)
The SCSI sense code reported (ILLEGAL REQUEST asc:4d,XX) decodes to the illegal
reuse of a tag value that's already pending. I looked into the virtio_scsi
guest driver and it uses the pointer a struct csio (casted to a 64bit
uintptr_t) as SCSI tag, but on the host side inside CTL SCSI tags are truncated
to 32 bit. I suspect this causes pointers with identical lower 32 bits to map
to the same tag as seen by CTL, but an attempt to patch the virtio_scsi guest
driver to use an atomic 32 bit counter (cargo culting the iSCSI tag handling)
instead didn't solve the problem. I still attached the experimental patch.
--
You are receiving this mail because:
You are the assignee for the bug.