Summary: | bhyve crashes host kernel: panic: rendezvous not in progress | ||
---|---|---|---|
Product: | Base System | Reporter: | Bjoern A. Zeeb <bz> |
Component: | bhyve | Assignee: | Corvin Köhne <corvink> |
Status: | Closed FIXED | ||
Severity: | Affects Only Me | CC: | bz, corvink |
Priority: | --- | Keywords: | crash |
Version: | CURRENT | ||
Hardware: | Any | ||
OS: | Any |
Description
Bjoern A. Zeeb
2022-11-15 10:00:59 UTC
Could you please try if https://reviews.freebsd.org/D37390 solves your issue? I am on it; should know by the end of the day or tomorrow morning. I noticed that vmm doesn't reset vm->rendezvous_req_cpus at the end of a rendezvous. So, my patch shouldn't work. I'm working on a correct patch. A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=fde8ce889201bf7fe86d7a3b3dfe2abf27cd2d73 commit fde8ce889201bf7fe86d7a3b3dfe2abf27cd2d73 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2022-11-17 06:51:51 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2022-11-21 07:19:36 +0000 vmm: remove unneccessary rendezvous assertion When a vcpu sees that a rendezvous is in progress, it exits and tries to handle the rendezvous. The vcpu doesn't check if it's part of the rendezvous or not. If the vcpu isn't part of the rendezvous, the rendezvous could be done before it reaches the assertion. This will cause a panic. The assertion isn't needed at all because vm_handle_rendezvous properly handles a spurious rendezvous. So, we can just remove it. PR: 267779 Reviewed by: jhb, markj Tested by: bz Approved by: manu (mentor) MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D37417 sys/amd64/vmm/vmm.c | 3 --- 1 file changed, 3 deletions(-) A commit in branch stable/13 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=59339f3a16c0aacbdb789b8600365f576a6a6a31 commit 59339f3a16c0aacbdb789b8600365f576a6a6a31 Author: Corvin Köhne <corvink@FreeBSD.org> AuthorDate: 2022-11-17 06:51:51 +0000 Commit: Corvin Köhne <corvink@FreeBSD.org> CommitDate: 2022-11-29 13:53:09 +0000 vmm: remove unneccessary rendezvous assertion When a vcpu sees that a rendezvous is in progress, it exits and tries to handle the rendezvous. The vcpu doesn't check if it's part of the rendezvous or not. If the vcpu isn't part of the rendezvous, the rendezvous could be done before it reaches the assertion. This will cause a panic. The assertion isn't needed at all because vm_handle_rendezvous properly handles a spurious rendezvous. So, we can just remove it. PR: 267779 Reviewed by: jhb, markj Tested by: bz Approved by: manu (mentor) MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D37417 (cherry picked from commit fde8ce889201bf7fe86d7a3b3dfe2abf27cd2d73) sys/amd64/vmm/vmm.c | 2 -- 1 file changed, 2 deletions(-) |