-
Notifications
You must be signed in to change notification settings - Fork 292
CA-413587: Checking feature for old FreeBSD driver #6599
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CA-413587: Checking feature for old FreeBSD driver #6599
Conversation
I do not understand which exact assumptions are broken by the commit. Is it that the driver does not advertise these features in xenstore, but FreeBSD+driver actually supports them, therefore they should be allowed? Does If that's the case, the driver is buggy. |
|
For context, the current revert will mean that VMs with explicit This is the reason for 6118d47 ("make cant_suspend_reason critical") |
I've spoken to Roger Pau, the maintainer of the FreeBSD driver. This is an issue with the guest driver used by netscaler, he fixed the issue last year for the upstream drivers: https://cgit.freebsd.org/src/commit/sys/dev/xen/control/control.c?id=9dd5105f22a2276cf099f0e10e318294fcc4f6a7 This means that xapi will need some sort of workaround until netscaler decides to update the driver :/ Don't you have some sort of stick to make them include the patch? |
Apparently so. We have a test failure because of this. Indeed this was a Netscaler VM. So we need a different plan to handle this, or the "can't suspend" case. |
|
Here's an alternative fix that will keep old FreeBSD happy and will not allow suspend for VM's with data/cant_suspend_reason: master...last-genius:xen-api:asv/freebsd-feature |
If a fix went upstream for FreeBSD just last year, then this will mean that there are probably many FreeBSD VMs out there in the world (Netscaler and others), which we still need to support for the time being. |
|
The logic implementing this would benefit from a longer explanation. It probably makes sense when you wrapped your head around it but reading the code coming just in, it's more magic than logic. Maybe explain how Windows and FreeBSD differ to motivate the logic. |
3e09dd3 to
c7c4ecf
Compare
|
Update the PR as the following solutions:
I'm running the testcase for netscaler and BST+BVT for ring3. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me aside from a comment nitpick
The FreeBSD driver used by NetScaler supports all power actions. However, older versions of the FreeBSD driver do not explicitly advertise these support. As a result, xapi does not attempt to signal these power actions. To address this as a workaround, all power actions should be permitted for FreeBSD guests. Additionally, virtual machines with an explicit `data/cant_suspend_reason` set aren't allowed to suspend, which would crash Windows and other UEFI VMs. Signed-off-by: Bengang Yuan <[email protected]>
c7c4ecf to
6732c89
Compare
The FreeBSD driver used by NetScaler supports all power actions. However, older versions of the FreeBSD driver do not explicitly advertise these support. As a result, xapi does not attempt to signal these power actions.
This Free BSD driver issue has been fixed by this commit: 9dd5105
However, there may be many FreeBSD VMs running there which still have this issue. To address this as a workaround, all power actions should be permitted for FreeBSD guests.
Additionally, virtual machines with an explicit
data/cant_suspend_reasonset aren't allowed to suspend, which would crash Windows and other UEFI VMs.