Thread (25 messages) 25 messages, 3 authors, 2020-03-27

Re: vhost changes (batched) in linux-next after 12/13 trigger random crashes in KVM guests after reboot

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2020-02-11 13:58:24
Also in: kvm, linux-next, lkml

Possibly related (same subject, not in this thread)

On Tue, Feb 11, 2020 at 02:04:54PM +0100, Eugenio Pérez wrote:
On Mon, 2020-02-10 at 12:01 +0100, Christian Borntraeger wrote:
quoted
On 10.02.20 10:47, Eugenio Perez Martin wrote:
quoted
Hi Christian.

I'm not able to reproduce the failure with eccb852f1fe6bede630e2e4f1a121a81e34354ab commit. Could you add more data?
Your configuration (libvirt or qemu line), and host's dmesg output if any?

Thanks!
If it was not obvious, this is on s390x, a big endian system.
Hi Christian. Thank you very much for your fast responses.

Could you try this patch on top of eccb852f1fe6bede630e2e4f1a121a81e34354ab?

Thanks!
quoted
From 71d0f9108a18aa894cc0c0c1c7efbad39f465a27 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= <
eperezma@redhat.com>
Date: Tue, 11 Feb 2020 13:19:10 +0100
Subject: [PATCH] vhost: fix return value of vhost_get_vq_desc

Before of the batch change, it was the chain's head. Need to keep that
way or we will not be able to free a chain of descriptors.
I think it's cleaner to have all descriptors in the chain
have the same id.
quoted hunk ↗ jump to hunk
Fixes: eccb852f1fe6 ("vhost: batching fetches")
---
 drivers/vhost/vhost.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index b5a51b1f2e79..fc422c3e5c08 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -2409,12 +2409,11 @@ int vhost_get_vq_desc(struct vhost_virtqueue *vq,
 			*out_num += ret;
 		}
 
-		ret = desc->id;
-
 		if (!(desc->flags & VRING_DESC_F_NEXT))
 			break;
 	}
 
+	ret = vq->descs[vq->first_desc].id;
 	vq->first_desc = i + 1;
 
 	return ret;
-- 
2.18.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help