Skip to content

Commit b3bb242

Browse files
authored
Merge branch 'main' into allow-snapshot-tap-changes
2 parents 5f347e2 + 4b6c9b3 commit b3bb242

File tree

4 files changed

+26
-13
lines changed

4 files changed

+26
-13
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ and this project adheres to
4242
`mem_size_mib` and `track_dirty_pages` being mandatory for all
4343
`PATCH /machine-config` requests. Now, they can be omitted which leaves these
4444
parts of the machine configuration unchanged.
45+
- [#5007](https://github.com/firecracker-microvm/firecracker/pull/5007): Fixed
46+
watchdog softlockup warning on x86_64 guests when a vCPU is paused during GDB
47+
debugging.
4548

4649
## [1.10.1]
4750

Cargo.lock

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/snapshot-editor/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ vmm = { path = "../vmm" }
2222
vmm-sys-util = "0.12.1"
2323

2424
[target.'cfg(target_arch = "aarch64")'.dependencies]
25-
clap-num = "1.0.2"
25+
clap-num = "1.2.0"
2626

2727
[features]
2828
tracing = ["log-instrument", "fc_utils/tracing", "vmm/tracing"]

src/vmm/src/vstate/vcpu/mod.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,16 @@ impl Vcpu {
319319
// If the emulation requests a pause lets do this
320320
#[cfg(feature = "gdb")]
321321
Ok(VcpuEmulation::Paused) => {
322+
// Calling `KVM_KVMCLOCK_CTRL` to make sure the guest softlockup watchdog
323+
// does not panic on resume, see https://docs.kernel.org/virt/kvm/api.html .
324+
// We do not want to fail if the call is not successful, because depending
325+
// that may be acceptable depending on the workload.
326+
#[cfg(target_arch = "x86_64")]
327+
if let Err(err) = self.kvm_vcpu.fd.kvmclock_ctrl() {
328+
METRICS.vcpu.kvmclock_ctrl_fails.inc();
329+
warn!("KVM_KVMCLOCK_CTRL call failed {}", err);
330+
}
331+
322332
return StateMachine::next(Self::paused);
323333
}
324334
// Emulation errors lead to vCPU exit.

0 commit comments

Comments
 (0)