Skip to content

Commit d4a9090

Browse files
committed
Merge remote-tracking branch 'upstream/main'
2 parents 4c3a1e5 + 1320786 commit d4a9090

File tree

72 files changed

+1673
-1236
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+1673
-1236
lines changed

.buildkite/common.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,26 @@
1313
import subprocess
1414
from pathlib import Path
1515

16-
DEFAULT_INSTANCES = {
17-
"c5n.metal": "x86_64", # Intel Skylake
18-
"m5n.metal": "x86_64", # Intel Cascade Lake
19-
"m6i.metal": "x86_64", # Intel Icelake
20-
"m6a.metal": "x86_64", # AMD Milan
21-
"m6g.metal": "aarch64", # Graviton2
22-
"m7g.metal": "aarch64", # Graviton3
23-
}
16+
DEFAULT_INSTANCES = [
17+
"c5n.metal", # Intel Skylake
18+
"m5n.metal", # Intel Cascade Lake
19+
"m6i.metal", # Intel Icelake
20+
"m6a.metal", # AMD Milan
21+
"m6g.metal", # Graviton2
22+
"m7g.metal", # Graviton3
23+
]
2424

2525
DEFAULT_PLATFORMS = [
2626
("al2", "linux_5.10"),
2727
("al2023", "linux_6.1"),
2828
]
2929

3030

31+
def get_arch_for_instance(instance):
32+
"""Return instance architecture"""
33+
return "x86_64" if instance[2] != "g" else "aarch64"
34+
35+
3136
def overlay_dict(base: dict, update: dict):
3237
"""Overlay a dict over a base one"""
3338
base = base.copy()
@@ -145,7 +150,7 @@ def __call__(self, parser, namespace, value, option_string=None):
145150
"--instances",
146151
required=False,
147152
nargs="+",
148-
default=DEFAULT_INSTANCES.keys(),
153+
default=DEFAULT_INSTANCES,
149154
)
150155
COMMON_PARSER.add_argument(
151156
"--platforms",
@@ -288,7 +293,7 @@ def _adapt_group(self, group):
288293
step["command"] = prepend + step["command"]
289294
if self.shared_build is not None:
290295
step["depends_on"] = self.build_key(
291-
DEFAULT_INSTANCES[step["agents"]["instance"]]
296+
get_arch_for_instance(step["agents"]["instance"])
292297
)
293298
return group
294299

@@ -323,7 +328,7 @@ def build_group_per_arch(self, label, *args, **kwargs):
323328
if set_key:
324329
for step in grp["steps"]:
325330
step["key"] = self.build_key(
326-
DEFAULT_INSTANCES[step["agents"]["instance"]]
331+
get_arch_for_instance(step["agents"]["instance"])
327332
)
328333
return self.add_step(grp, depends_on_build=depends_on_build)
329334

.buildkite/pipeline_cpu_template.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class BkStep(str, Enum):
2323
cpu_template_test = {
2424
"rdmsr": {
2525
BkStep.COMMAND: [
26-
"tools/devtool -y test --no-build -- -m nonci -n4 --dist worksteal integration_tests/functional/test_cpu_features.py -k 'test_cpu_rdmsr' "
26+
"tools/devtool -y test --no-build -- -m nonci -n4 --dist worksteal integration_tests/functional/test_cpu_features_x86_64.py -k 'test_cpu_rdmsr' "
2727
],
2828
BkStep.LABEL: "📖 rdmsr",
2929
"instances": ["c5n.metal", "m5n.metal", "m6a.metal", "m6i.metal"],
@@ -34,13 +34,13 @@ class BkStep(str, Enum):
3434
"tools/devtool -y test --no-build -- -m no_block_pr integration_tests/functional/test_cpu_template_helper.py -k test_guest_cpu_config_change",
3535
],
3636
BkStep.LABEL: "🖐️ fingerprint",
37-
"instances": DEFAULT_INSTANCES.keys(),
37+
"instances": DEFAULT_INSTANCES,
3838
"platforms": DEFAULT_PLATFORMS,
3939
},
4040
"cpuid_wrmsr": {
4141
"snapshot": {
4242
BkStep.COMMAND: [
43-
"tools/devtool -y test --no-build -- -m nonci -n4 --dist worksteal integration_tests/functional/test_cpu_features.py -k 'test_cpu_wrmsr_snapshot or test_cpu_cpuid_snapshot'",
43+
"tools/devtool -y test --no-build -- -m nonci -n4 --dist worksteal integration_tests/functional/test_cpu_features_x86_64.py -k 'test_cpu_wrmsr_snapshot or test_cpu_cpuid_snapshot'",
4444
"mkdir -pv tests/snapshot_artifacts_upload/{instance}_{os}_{kv}",
4545
"sudo mv tests/snapshot_artifacts/* tests/snapshot_artifacts_upload/{instance}_{os}_{kv}",
4646
],
@@ -52,7 +52,7 @@ class BkStep(str, Enum):
5252
BkStep.COMMAND: [
5353
"buildkite-agent artifact download tests/snapshot_artifacts_upload/{instance}_{os}_{kv}/**/* .",
5454
"mv tests/snapshot_artifacts_upload/{instance}_{os}_{kv} tests/snapshot_artifacts",
55-
"tools/devtool -y test --no-build -- -m nonci -n4 --dist worksteal integration_tests/functional/test_cpu_features.py -k 'test_cpu_wrmsr_restore or test_cpu_cpuid_restore'",
55+
"tools/devtool -y test --no-build -- -m nonci -n4 --dist worksteal integration_tests/functional/test_cpu_features_x86_64.py -k 'test_cpu_wrmsr_restore or test_cpu_cpuid_restore'",
5656
],
5757
BkStep.LABEL: "📸 load snapshot artifacts created on {instance} {snapshot_os} {snapshot_kv} to {restore_instance} {restore_os} {restore_kv}",
5858
BkStep.TIMEOUT: 30,

.buildkite/pipeline_cross.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
instances_x86_64 = ["c5n.metal", "m5n.metal", "m6i.metal", "m6a.metal"]
2222
instances_aarch64 = ["m7g.metal"]
2323
commands = [
24-
"./tools/devtool -y sh ./tools/create_snapshot_artifact/main.py",
25-
"mkdir -pv snapshots/{instance}_{kv}",
26-
"sudo chown -Rc $USER: snapshot_artifacts",
27-
"mv -v snapshot_artifacts/* snapshots/{instance}_{kv}",
24+
"./tools/devtool -y test --no-build -- -m nonci -n4 integration_tests/functional/test_snapshot_phase1.py",
25+
# punch holes in mem snapshot tiles and tar them so they are preserved in S3
26+
"find test_results/test_snapshot_phase1 -type f -name mem |xargs -P4 -t -n1 fallocate -d",
27+
"mv -v test_results/test_snapshot_phase1 snapshot_artifacts",
28+
"mkdir -pv snapshots",
29+
"tar cSvf snapshots/{instance}_{kv}.tar snapshot_artifacts",
2830
]
2931
pipeline.build_group(
3032
"📸 create snapshots",
@@ -80,10 +82,10 @@
8082
k_val = pytest_keyword_for_instance.get(dst_instance, "")
8183
step = {
8284
"command": [
83-
f"buildkite-agent artifact download snapshots/{src_instance}_{src_kv}/* .",
84-
f"mv -v snapshots/{src_instance}_{src_kv} snapshot_artifacts",
85+
f"buildkite-agent artifact download snapshots/{src_instance}_{src_kv}.tar .",
86+
f"tar xSvf snapshots/{src_instance}_{src_kv}.tar",
8587
*pipeline.devtool_test(
86-
pytest_opts=f"-m nonci {k_val} integration_tests/functional/test_snapshot_restore_cross_kernel.py",
88+
pytest_opts=f"-m nonci -n4 {k_val} integration_tests/functional/test_snapshot_restore_cross_kernel.py",
8789
),
8890
],
8991
"label": f"🎬 {src_instance} {src_kv} ➡️ {dst_instance} {dst_kv}",

.github/pull_request_template.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,20 @@ Certificate of Origin and signing off your commits, please check
1515

1616
## PR Checklist
1717

18+
- [ ] I have read and understand [CONTRIBUTING.md][3].
19+
- [ ] I have run `tools/devtool checkstyle` to verify that the PR passes the
20+
automated style checks.
21+
- [ ] I have described what is done in these changes, why they are needed, and
22+
how they are solving the problem in a clear and encompassing way.
23+
- [ ] I have updated any relevant documentation (both in code and in the docs)
24+
in the PR.
25+
- [ ] I have mentioned all user-facing changes in `CHANGELOG.md`.
1826
- [ ] If a specific issue led to this PR, this PR closes the issue.
19-
- [ ] The description of changes is clear and encompassing.
20-
- [ ] Any required documentation changes (code and docs) are included in this
21-
PR.
22-
- [ ] API changes follow the [Runbook for Firecracker API changes][2].
23-
- [ ] User-facing changes are mentioned in `CHANGELOG.md`.
24-
- [ ] All added/changed functionality is tested.
25-
- [ ] New `TODO`s link to an issue.
26-
- [ ] Commits meet
27-
[contribution quality standards](https://github.com/firecracker-microvm/firecracker/blob/main/CONTRIBUTING.md#contribution-quality-standards).
27+
- [ ] When making API changes, I have followed the
28+
[Runbook for Firecracker API changes][2].
29+
- [ ] I have tested all new and changed functionalities in unit tests and/or
30+
integration tests.
31+
- [ ] I have linked an issue to every new `TODO`.
2832

2933
______________________________________________________________________
3034

CHANGELOG.md

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,33 @@ and this project adheres to
1010

1111
### Added
1212

13+
### Changed
14+
15+
- [#4913](https://github.com/firecracker-microvm/firecracker/pull/4913): Removed
16+
unnecessary fields (`max_connections` and `max_pending_resets`) from the
17+
snapshot format, bumping the snapshot version to 5.0.0. Users need to
18+
regenerate snapshots.
19+
20+
### Deprecated
21+
22+
### Removed
23+
24+
### Fixed
25+
26+
- [#4921](https://github.com/firecracker-microvm/firecracker/pull/4921): Fixed
27+
swagger `CpuConfig` definition to include missing aarch64-specific fields.
28+
29+
## \[1.10.1\]
30+
31+
### Changed
32+
33+
- [#4907](https://github.com/firecracker-microvm/firecracker/pull/4907): Bumped
34+
the snapshot version to 4.0.0, so users need to regenerate snapshots.
35+
36+
## \[1.10.0\]
37+
38+
### Added
39+
1340
- [#4834](https://github.com/firecracker-microvm/firecracker/pull/4834): Add
1441
`VIRTIO_NET_F_RX_MRGBUF` support to the `virtio-net` device. When this feature
1542
is negotiated, guest `virtio-net` driver can perform more efficient memory
@@ -33,10 +60,6 @@ and this project adheres to
3360

3461
### Changed
3562

36-
- [#4875](https://github.com/firecracker-microvm/firecracker/pull/4875):
37-
Increase default queue size for the `virtio-net` device from 256 to 512. This
38-
decreases wait time between guest and vmm threads for network packets
39-
processing and allows for more throughput.
4063
- [#4844](https://github.com/firecracker-microvm/firecracker/pull/4844): Upgrade
4164
`virtio-net` device to use `readv` syscall to avoid unnecessary memory copies
4265
on RX path, increasing the RX performance.

0 commit comments

Comments
 (0)