mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/2] vhost-scsi: preserve event ordering and fix fallback deadlock
@ 2026-09-15  9:42 physicalmtea
  2026-09-15  9:42 ` [PATCH 1/2] vhost-scsi: preserve event ordering physicalmtea
  2026-09-15  9:42 ` [PATCH 2/2] vhost-scsi: do not relock event vq mutex on send_evt fallback physicalmtea
  0 siblings, 2 replies; 4+ messages in thread
From: physicalmtea @ 2026-09-15  9:42 UTC (permalink / raw)
  To: mst
  Cc: jasowangio, michael.christie, pbonzini, stefanha, eperezma, nab,
	asias, virtualization, kvm, netdev, linux-kernel

From: Jia Jia <physicalmtea@gmail.com>

The vhost-scsi event list is populated with llist_add(), but completion
walks the detached list without reversing it.

Trigger: concurrent hotplug (ln -s). Each event is inserted at the
head of the pending list. Multiple events must already be stacked on
the llist before the vhost worker runs
vhost_scsi_complete_events(false). The whole list is then detached
and walked directly, so later-enqueued events are delivered to the
guest first.

Queued hotplug and hotunplug events can therefore be delivered in
reverse order.  Fix that ordering first, then fix the fallback path
that can relock the event virtqueue mutex while already holding it.

Patch 2 is based on patch 1 because both changes update the event
completion path. The first patch is otherwise independent of the
fallback deadlock.

Sashiko AI flagged this while reviewing
the vhost-scsi event queue fix.
This is a pre-existing self-deadlock. It was reproduced in a
follow-up test.

Trigger: vq->worker == NULL. vhost_vq_work_queue() then returns false,
and a subsequent vhost_scsi_do_plug() call deadlocks. I do not know what
normal condition gets us here; the normal vhost-scsi worker detach/reset
paths do not reach this code. The only reproduction I could come up with
was killing the vhost-scsi worker. This still looks like a low-probability
condition.

Jia Jia (2):
  vhost-scsi: preserve event ordering
  vhost-scsi: do not relock event vq mutex on send_evt fallback

 drivers/vhost/scsi.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-09-15 21:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-15  9:42 [PATCH 0/2] vhost-scsi: preserve event ordering and fix fallback deadlock physicalmtea
2026-09-15  9:42 ` [PATCH 1/2] vhost-scsi: preserve event ordering physicalmtea
2026-09-15 21:00   ` Mike Christie
2026-09-15  9:42 ` [PATCH 2/2] vhost-scsi: do not relock event vq mutex on send_evt fallback physicalmtea

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®