From: Karolina Stolarek <karolina.stolarek@oracle.com>
To: qemu-devel@nongnu.org
Cc: "Michael S . Tsirkin" <mst@redhat.com>,
Stefano Garzarella <sgarzare@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>, Fam Zheng <fam@euphon.net>,
Mike Christie <michael.christie@oracle.com>
Subject: Re: [PATCH 0/2] virtio-scsi: Flexible max_target and max_lun params
Date: Mon, 8 Dec 2025 13:18:33 +0100 [thread overview]
Message-ID: <ea2be9b3-1d79-4f2c-8a64-9ece50a3f343@oracle.com> (raw)
In-Reply-To: <cover.1763999544.git.karolina.stolarek@oracle.com>
Hi,
On 25/11/2025 12:01, Karolina Stolarek wrote:
> Currently, the maximum number of targets is set and dictated
> by virtio-scsi. On probe, the driver walks through all possible
> targets to discover which of them are available. In the process,
> it sends INQUIRY commands to request device information, also
> querying devices that don't exist. This can be observed in
> a guest with a single scsi-hd device and verbose SCSI logging
> enabled:
A gentle ping on this one.
All the best,
Karolina
>
> scsi 0:0:0:0: scsi scan: REPORT LUN scan
> scsi 0:0:0:0: scsi scan: device exists on 0:0:0:0
> scsi 0:0:1:0: scsi scan: INQUIRY pass 1 length 36
> scsi 0:0:1:0: scsi scan: INQUIRY failed with code 0x40000
> (...)
> scsi 0:0:255:0: scsi scan: INQUIRY pass 1 length 36
> scsi 0:0:255:0: scsi scan: INQUIRY failed with code 0x40000
>
> In the vhost-scsi backend, without the kernel patch [1], the issue
> is far more noticeable. Each command queued up for a non-existing
> target triggers vq_error(), registered by
> vhost_virtqueue_error_notifier(), resulting in a flood of
> "vhost vring error in virtqueue X" messages when booting up a VM.
> Even with the [1] patch in place, we are still sending commands
> to phantom targets with no way of limiting the scan. The first
> patch in the series addresses this issue by introducing "max_target"
> property for virtio-scsi and vhost-scsi devices. A user gets
> an option to specify how many targets are used by the guest,
> and to stop scanning before hitting VIRTIO_SCSI_MAX_TARGET.
>
> A similar issue can be seen with Logical Units in the existing
> devices. By default, the SCSI Host Adapter instance expects
> 8 LUNs, and some drivers assume this to be the actual number
> of exposed LUNs. This results in executing SCSI commands that
> refer to non-existing Logical Units. This can be easily observed
> when using vhost-scsi backend, as such messages appear in
> the host's dmesg when booting up a guest:
>
> TARGET_CORE[vhost]: Detected NON_EXISTENT_LUN Access for 0x00000001 from
> naa.5001405277e02c68
> TARGET_CORE[vhost]: Detected NON_EXISTENT_LUN Access for 0x00000002 from
> naa.5001405277e02c68
> TARGET_CORE[vhost]: Detected NON_EXISTENT_LUN Access for 0x00000003 from
> naa.5001405277e02c68
> TARGET_CORE[vhost]: Detected NON_EXISTENT_LUN Access for 0x00000004 from
> naa.5001405277e02c68
> TARGET_CORE[vhost]: Detected NON_EXISTENT_LUN Access for 0x00000005 from
> naa.5001405277e02c68
> TARGET_CORE[vhost]: Detected NON_EXISTENT_LUN Access for 0x00000006 from
> naa.5001405277e02c68
> TARGET_CORE[vhost]: Detected NON_EXISTENT_LUN Access for 0x00000007 from
> naa.5001405277e02c68
>
> The second patch provides a way to say how many LUNs are actually
> there by setting "max_lun" property in virtio-scsi and vhost-scsi
> devices. If neither property is defined, max_target and max_lun are
> set to the default values, making these definitions optional.
>
> ----------------------------
> [1] -
> https://lore.kernel.org/virtualization/20250607171815.111030-1-michael.christie@oracle.com/T/#u
>
> Karolina Stolarek (2):
> virtio-scsi: Make max_target value configurable
> virtio-scsi: Make max_lun value configurable
>
> hw/scsi/vhost-scsi.c | 4 +++
> hw/scsi/virtio-scsi.c | 46 +++++++++++++++++++--------------
> include/hw/virtio/virtio-scsi.h | 2 ++
> 3 files changed, 33 insertions(+), 19 deletions(-)
>
prev parent reply other threads:[~2025-12-08 12:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-25 11:01 [PATCH 0/2] virtio-scsi: Flexible max_target and max_lun params Karolina Stolarek
2025-11-25 11:01 ` [PATCH 1/2] virtio-scsi: Make max_target value configurable Karolina Stolarek
2025-12-08 13:54 ` Alex Bennée
2025-12-10 16:55 ` Karolina Stolarek
2025-11-25 11:01 ` [PATCH 2/2] virtio-scsi: Make max_lun " Karolina Stolarek
2025-12-08 12:18 ` Karolina Stolarek [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ea2be9b3-1d79-4f2c-8a64-9ece50a3f343@oracle.com \
--to=karolina.stolarek@oracle.com \
--cc=fam@euphon.net \
--cc=michael.christie@oracle.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sgarzare@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).