Thread (16 messages) 16 messages, 4 authors, 2023-06-05

Re: [syzbot] [kvm?] [net?] [virt?] general protection fault in vhost_work_queue

From: Stefano Garzarella <sgarzare@redhat.com>
Date: 2023-05-31 07:29:29
Also in: kvm, lkml, virtualization

On Tue, May 30, 2023 at 6:30 PM [off-list ref] wrote:
On 5/30/23 11:17 AM, Stefano Garzarella wrote:
quoted
On Tue, May 30, 2023 at 11:09:09AM -0500, Mike Christie wrote:
quoted
On 5/30/23 11:00 AM, Stefano Garzarella wrote:
quoted
I think it is partially related to commit 6e890c5d5021 ("vhost: use
vhost_tasks for worker threads") and commit 1a5f8090c6de ("vhost: move
worker thread fields to new struct"). Maybe that commits just
highlighted the issue and it was already existing.
See my mail about the crash. Agree with your analysis about worker->vtsk
not being set yet. It's a bug from my commit where I should have not set
it so early or I should be checking for

if (dev->worker && worker->vtsk)

instead of

if (dev->worker)
Yes, though, in my opinion the problem may persist depending on how the
instructions are reordered.
Ah ok.
quoted
Should we protect dev->worker() with an RCU to be safe?
For those multiple worker patchsets Jason had asked me about supporting
where we don't have a worker while we are swapping workers around. To do
that I had added rcu around the dev->worker. I removed it in later patchsets
because I didn't think anyone would use it.

rcu would work for your case and for what Jason had requested.
Yeah, so you already have some patches?

Do you want to send it to solve this problem?

Thanks,
Stefano
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help