Skip to content

Commit 7150b2e

Browse files
authored
Merge branch 'main' into benchmark-fix
2 parents bfc4d9c + fe3ba28 commit 7150b2e

File tree

5 files changed

+27
-14
lines changed

5 files changed

+27
-14
lines changed

.github/CODEOWNERS

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# All markdown files
2-
*.md @xmarcalx @kalyazin @pb8o
2+
*.md @xmarcalx @kalyazin @pb8o @Manciukic
33

44
# But not the ones in docs/
55
docs/*.md
66

77
# Except these specific ones
8-
docs/getting-started.md @xmarcalx @kalyazin @pb8o
9-
docs/prod-host-setup.md @xmarcalx @kalyazin @pb8o
8+
docs/getting-started.md @xmarcalx @kalyazin @pb8o @Manciukic
9+
docs/prod-host-setup.md @xmarcalx @kalyazin @pb8o @Manciukic
1010

1111
# Also cover all "*policy*.md" documents
12-
**/*policy*.md @xmarcalx @kalyazin @pb8o
13-
**/*POLICY*.md @xmarcalx @kalyazin @pb8o
12+
**/*policy*.md @xmarcalx @kalyazin @pb8o @Manciukic
13+
**/*POLICY*.md @xmarcalx @kalyazin @pb8o @Manciukic
1414

1515
# Also these non-md files in the repository root
16-
THIRD_PARTY @xmarcalx @kalyazin @pb8o
17-
LICENSE @xmarcalx @kalyazin @pb8o
18-
NOTICE @xmarcalx @kalyazin @pb8o
19-
PGP-KEY.asc @xmarcalx @kalyazin @pb8o
16+
THIRD_PARTY @xmarcalx @kalyazin @pb8o @Manciukic
17+
LICENSE @xmarcalx @kalyazin @pb8o @Manciukic
18+
NOTICE @xmarcalx @kalyazin @pb8o @Manciukic
19+
PGP-KEY.asc @xmarcalx @kalyazin @pb8o @Manciukic

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ and this project adheres to
3030
- [#4790](https://github.com/firecracker-microvm/firecracker/pull/4790): v1.9.0
3131
was missing most of the debugging information in the debuginfo file, due to a
3232
change in the Cargo defaults. This has been corrected.
33+
- [#4826](https://github.com/firecracker-microvm/firecracker/pull/4826): Add
34+
missing configuration of tap offload features when restoring from a snapshot.
35+
Setting the features was previously
36+
[moved](https://github.com/firecracker-microvm/firecracker/pull/4680/commits/49ed5ea4b48ccd98903da037368fa3108f58ac1f)
37+
from net device creation to device activation time, but it was not reflected
38+
in the restore path. This was leading to inability to connect to the restored
39+
VM if the offload features were used.
3340

3441
## \[1.9.0\]
3542

MAINTAINERS.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
Firecracker is maintained by a dedicated team within Amazon:
44

5-
- Alexandra Iordache <[email protected]>
65
- Babis Chalios <[email protected]>
7-
- Diana Popa <[email protected]>
86
- Egor Lazarchuk <[email protected]>
9-
- Jonathan Woollett-Light <jcawl@amazon.com>
7+
- Jack Thomson <jackabt@amazon.com>
108
- Marco Cali <[email protected]>
119
- Nikita Kalyazin <[email protected]>
1210
- Pablo Barbachano <[email protected]>
1311
- Patrick Roy <[email protected]>
12+
- Riccardo Mancini <[email protected]>
1413
- Takahiro Itazuri <[email protected]>

src/vmm/src/devices/virtio/net/device.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,7 @@ impl Net {
665665

666666
/// Builds the offload features we will setup on the TAP device based on the features that the
667667
/// guest supports.
668-
fn build_tap_offload_features(guest_supported_features: u64) -> u32 {
668+
pub fn build_tap_offload_features(guest_supported_features: u64) -> u32 {
669669
let add_if_supported =
670670
|tap_features: &mut u32, supported_features: u64, tap_flag: u32, virtio_flag: u32| {
671671
if supported_features & (1 << virtio_flag) != 0 {

src/vmm/src/devices/virtio/net/persist.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use std::sync::{Arc, Mutex};
1010
use serde::{Deserialize, Serialize};
1111

1212
use super::device::Net;
13-
use super::NET_NUM_QUEUES;
13+
use super::{TapError, NET_NUM_QUEUES};
1414
use crate::devices::virtio::device::DeviceState;
1515
use crate::devices::virtio::persist::{PersistError as VirtioStateError, VirtioDeviceState};
1616
use crate::devices::virtio::queue::FIRECRACKER_MAX_QUEUE_SIZE;
@@ -65,6 +65,8 @@ pub enum NetPersistError {
6565
VirtioState(#[from] VirtioStateError),
6666
/// Indicator that no MMDS is associated with this device.
6767
NoMmdsDataStore,
68+
/// Setting tap interface offload flags failed: {0}
69+
TapSetOffload(TapError),
6870
}
6971

7072
impl Persist<'_> for Net {
@@ -129,6 +131,11 @@ impl Persist<'_> for Net {
129131
net.acked_features = state.virtio_state.acked_features;
130132

131133
if state.virtio_state.activated {
134+
let supported_flags: u32 = Net::build_tap_offload_features(net.acked_features);
135+
net.tap
136+
.set_offload(supported_flags)
137+
.map_err(NetPersistError::TapSetOffload)?;
138+
132139
net.device_state = DeviceState::Activated(constructor_args.mem);
133140
}
134141

0 commit comments

Comments
 (0)