-
Notifications
You must be signed in to change notification settings - Fork 3.1k
vmm: Correctly suspend and resume the vmm driver. #1419
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
Conversation
bsdjhb
left a comment
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.
I think it might be good to be explicit that the contents of MSR_IA32_FEATURE_CONTROL need to be restored in resume (I think that's what "MSR lock" is referring to?) in the log message.
Even if this isn't a new issue from your change, should we have this noted somewhere? |
Yes, MSR lock refers to |
Probably (and I may have used the incorrect terminology about "IOMMU context"). FWIW, using vmm with a pci device on my system stalls the system completely upon its use after a resume (more details: https://joshua.hu/brcmfmac-bcm43602-suspension-shutdown-hanging-freeze-linux-freebsd-wifi-bug-pci-passthru) -- when I'm passthru'ing the device to a Linux VM, I have to "remove" the device inside the VM before a suspension, otherwise the system crashes (just completely freezes/stalls) after resume and the device is used again. As far as I could tell when debugging a bit more lately, the irq (at least) of the device is lost on resume, which results in the system freezing when the device is interacted with. |
a08a850 to
0013456
Compare
Previously, VMXON would be executed on a resume, contrary to proper initalization. The contents of MSR_IA32_FEATURE_CONTROL may be lost on suspension, therefore must be restored. Likewise, the VMX Enable bit may be cleared upon suspend, requiring it to be re-set. Concretely disable VMX on suspend, and re-enable it on resume. Note: any IOMMU context will remain lost for any enabled vmm devices. Signed-off-by: Joshua Rogers <Joshua@Joshua.Hu> Reviewed by: jhb,imp Pull Request: freebsd#1419
0013456 to
3411f89
Compare
Correct `xatrr_to_extattr` to `xattr_to_extattr`. Signed-off-by: Minseo Kim <kimminss0@outlook.kr> Reviewed by: imp,emaste,markj Pull Request: freebsd#1533
MFC after: 3 days Reviewed by: imp Pull Request: freebsd#1521
The bcnt_fwd and bcnt_rev fields are the byte counters, while the pcnt_fwd and pcnt_rev fields are the packet counters. Fix the comments that were swapped around. Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com> Reviewed by: jlduran,imp Pull Request: freebsd#1517
Previously, VMXON would be executed on a resume, contrary to proper initalization. The contents of MSR_IA32_FEATURE_CONTROL may be lost on suspension, therefore must be restored. Likewise, the VMX Enable bit may be cleared upon suspend, requiring it to be re-set. Concretely disable VMX on suspend, and re-enable it on resume. Note: any IOMMU context will remain lost for any enabled vmm devices. Signed-off-by: Joshua Rogers <Joshua@Joshua.Hu> Reviewed by: jhb,imp Pull Request: freebsd#1419
+ increase history consistency by adding "first appeared" + remove a skipped new paragraph macro to quiet linter + tag spdx MFC after: 3 days History source: www.in-ulm.de/~mascheck/various/ash/#bsd Reviewed by: mhorne,imp Pull Request: freebsd#1440
Preserve over 40 years of "call UNIX" BSD heritage while answering "one line about what it does" e.g. "how do I get a serial console?" "% apropos serial" MFC after: 3 days Reported by: imp Reviewed by: imp Pull Request: freebsd#1423
While trying to resolve some custom installer issues, we found that using conscontrol(8) or setting kern.always_console_output=0 in sysctrl.conf(5) did not always prevent console output. This is in part because some areas of the kernel were outputting to the console device without checking the status of the setting. These changes enforce checking of the value in both locations where console output occurs from kernel and init(8) based callouts. Details on changes: - Moves check for mute to earlier in sequence to silence kernel output even if EARLY_PRINTF is defined. - Modifies call prf_putbuf() and prf_putchar() in subr_prf.c to strip TOCONS flag if muting is enabled, to honor the setting at print level. This is a rather simple change, which increases areas where flags to silence console output are honored. We have been running this change since 10/23 in-house without issue. (Patching prior to 14.0 also required making cn_mute non-static.) Signed-off-by: Craig.Woodward@redcom.com Reviewed by: imp Pull Request: freebsd#1407
With the %b format specifier we need enough space to write a uintmax_t in binary. Reviewed by: imp Pull Request: freebsd#1400
Printing the file name doesn't make sense since mkstemp failing means that the file wasn't created. Also add a test case for this. Co-authored-by: Jose Luis Duran <jlduran@gmail.com> Reviewed by: imp,jhb Pull Request: freebsd#1383
3411f89 to
e8d027b
Compare
Previously, VMXON would be executed on a resume, contrary to proper initalization. The contents of MSR_IA32_FEATURE_CONTROL may be lost on suspension, therefore must be restored. Likewise, the VMX Enable bit may be cleared upon suspend, requiring it to be re-set. Concretely disable VMX on suspend, and re-enable it on resume. Note: any IOMMU context will remain lost for any enabled vmm devices. Signed-off-by: Joshua Rogers <Joshua@Joshua.Hu> Reviewed by: jhb,imp Pull Request: freebsd/freebsd-src#1419
Previously, VMXON would be executed on a resume, contrary to proper initalization. The MSR lock may be lost on suspension, therefore must be taken again. Likewise, the VMX Enable bit may be cleared upon suspend, requiring to be re-set.
Concretely disable VMX on suspend, and re-enable it on resume.
Note: any IOMMU context will remain lost for any enabled vmm devices.