Skip to content

Conversation

@MegaManSec
Copy link
Contributor

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.

@MegaManSec MegaManSec requested a review from bsdjhb as a code owner September 12, 2024 16:19
@bsdimp bsdimp self-assigned this Oct 4, 2024
@bsdimp bsdimp added the needs-review Someone should look at this before proceeding label Oct 4, 2024
Copy link
Member

@bsdjhb bsdjhb left a 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.

@emaste
Copy link
Member

emaste commented Oct 4, 2024

Note: any IOMMU context will remain lost for any enabled vmm devices.

Even if this isn't a new issue from your change, should we have this noted somewhere?

@MegaManSec
Copy link
Contributor Author

MegaManSec commented Oct 4, 2024

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.

Yes, MSR lock refers to MSR_IA32_FEATURE_CONTROL and specifically the IA32_FEATURE_CONTROL_LOCK bit. I will change the commit message to state that the contents MSR_IA32_FEATURE_CONTROL needs to be restored.

@MegaManSec
Copy link
Contributor Author

MegaManSec commented Oct 4, 2024

Note: any IOMMU context will remain lost for any enabled vmm devices.

Even if this isn't a new issue from your change, should we have this noted somewhere?

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.

bsdimp pushed a commit to kimminss0/freebsd-src that referenced this pull request Nov 29, 2024
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
kimminss0 and others added 9 commits November 29, 2024 14:38
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
@freebsd-git freebsd-git merged commit e8d027b into freebsd:main Nov 29, 2024
42 of 51 checks passed
bsdjhb pushed a commit to bsdjhb/cheribsd that referenced this pull request Oct 30, 2025
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-review Someone should look at this before proceeding

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants