Skip to content

Commit 8715c43

Browse files
authored
Merge branch 'main' into fix-kib-name
2 parents 83b111e + 70d6e7f commit 8715c43

File tree

8 files changed

+70
-49
lines changed

8 files changed

+70
-49
lines changed

CHANGELOG.md

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

1111
### Added
1212

13+
- [#5048](https://github.com/firecracker-microvm/firecracker/pull/5048): Added
14+
support for [PVH boot mode](docs/pvh.md). This is used when an x86 kernel
15+
provides the appropriate ELF Note to indicate that PVH boot mode is supported.
16+
Linux kernels newer than 5.0 compiled with `CONFIG_PVH=y` set this ELF Note,
17+
as do FreeBSD kernels.
1318
- [#5065](https://github.com/firecracker-microvm/firecracker/pull/5065) Added
1419
support for Intel AMX (Advanced Matrix Extensions).
1520
- [#4731](https://github.com/firecracker-microvm/firecracker/pull/4731): Added
@@ -45,11 +50,6 @@ and this project adheres to
4550
kernels. For older kernels physical counter will still be passed to the guest
4651
unmodified. See more info
4752
[here](https://github.com/firecracker-microvm/firecracker/blob/main/docs/prod-host-setup.md#arm-only-vm-physical-counter-behaviour)
48-
- [#5048](https://github.com/firecracker-microvm/firecracker/pull/5048): Added
49-
support for [PVH boot mode](docs/pvh.md). This is used when an x86 kernel
50-
provides the appropriate ELF Note to indicate that PVH boot mode is supported.
51-
Linux kernels newer than 5.0 compiled with `CONFIG_PVH=y` set this ELF Note,
52-
as do FreeBSD kernels.
5353
- [#5088](https://github.com/firecracker-microvm/firecracker/pull/5088): Added
5454
AMD Genoa as a supported and tested platform for Firecracker.
5555

CREDITS.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Contributors to the Firecracker repository:
3636
- Alexandru Cihodaru <[email protected]>
3737
- Alexandru-Cezar Sardan <[email protected]>
3838
- Alin Dima <[email protected]>
39+
- Anatoli Babenia <[email protected]>
3940
- Andrea Manzini <[email protected]>
4041
- Andreea Florescu <[email protected]>
4142
- Andrei Casu-Pop <[email protected]>
@@ -73,6 +74,7 @@ Contributors to the Firecracker repository:
7374
- Chris Christensen <[email protected]>
7475
- Christian González <[email protected]>
7576
- Christopher Diehl <[email protected]>
77+
- Christos Katsakioris <[email protected]>
7678
7779
- Colin Percival <[email protected]>
7880
- Colton J. McCurdy <[email protected]>
@@ -125,6 +127,7 @@ Contributors to the Firecracker repository:
125127
- Iulian Barbu <[email protected]>
126128
- Ives van Hoorne <[email protected]>
127129
- Jack Thomson <[email protected]>
130+
- jackabald <[email protected]>
128131
- James Curtis <[email protected]>
129132
- James Turnbull <[email protected]>
130133
- Javier Romero <[email protected]>
@@ -142,6 +145,7 @@ Contributors to the Firecracker repository:
142145
- Julian Stecklina <[email protected]>
143146
- Justus Adam <[email protected]>
144147
- Ján Mochňak <[email protected]>
148+
145149
- karthik nedunchezhiyan <[email protected]>
146150
- KarthikVelayutham <[email protected]>
147151
- Kazuyoshi Kato <[email protected]>
@@ -156,6 +160,7 @@ Contributors to the Firecracker repository:
156160
- Liviu Berciu <[email protected]>
157161
158162
- lloydmeta <[email protected]>
163+
- longxiangqiao <[email protected]>
159164
- Lorenzo Fontana <[email protected]>
160165
- LOU Xun <[email protected]>
161166
- Lucas Zanela <[email protected]>
@@ -172,6 +177,7 @@ Contributors to the Firecracker repository:
172177
- Massimiliano Torromeo <[email protected]>
173178
- Matias Teragni <[email protected]>
174179
- Matt Wilson <[email protected]>
180+
- Matthew Buckingham-Bishop <[email protected]>
175181
- Matthew Schlebusch <[email protected]>
176182
- Max Wittek <[email protected]>
177183
- Mehrdad Arshad Rad <[email protected]>
@@ -212,6 +218,7 @@ Contributors to the Firecracker repository:
212218
213219
- Riccardo Mancini <[email protected]>
214220
- Richard Case <[email protected]>
221+
- River Phillips <[email protected]>
215222
- Rob Devereux <[email protected]>
216223
- Robert Grimes <[email protected]>
217224
- Rodrigue Chakode <[email protected]>
@@ -234,6 +241,7 @@ Contributors to the Firecracker repository:
234241
- Sripracha <[email protected]>
235242
- Stefan Nita <[email protected]>
236243
- StemCll <[email protected]>
244+
- Steven Wirges <[email protected]>
237245
- Sudan Landge <[email protected]>
238246
239247
- Takahiro Itazuri <[email protected]>
@@ -245,6 +253,7 @@ Contributors to the Firecracker repository:
245253
- timvisee <[email protected]>
246254
- Tobias Pfandzelter <[email protected]>
247255
- Tomas Valenta <[email protected]>
256+
- tommady <[email protected]>
248257
- Tomoya Iwata <[email protected]>
249258
- Trăistaru Andrei Cristian <[email protected]>
250259
- Tyler Anton <[email protected]>

FAQ.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,9 @@ mapping:
196196

197197
### How can I gracefully reboot the guest? How can I gracefully poweroff the guest?
198198

199-
Firecracker does not implement ACPI and PM devices, therefore operations like
200-
gracefully rebooting or powering off the guest are supported in unconventional
201-
ways.
199+
Firecracker does not virtualize guest power management, therefore operations
200+
like gracefully rebooting or powering off the guest are supported in
201+
unconventional ways.
202202

203203
Running the `poweroff` or `halt` commands inside a Linux guest will bring it
204204
down but Firecracker process remains unaware of the guest shutdown so it lives

docs/RELEASE_POLICY.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,9 @@ v3.1 will be patched since were the last two Firecracker releases and less than
9090

9191
| Release | Release Date | Latest Patch | Min. end of support | Official end of Support |
9292
| ------: | -----------: | -----------: | ------------------: | :------------------------------ |
93+
| v1.11 | 2025-03-18 | v1.11.0 | 2025-09-18 | Supported |
9394
| v1.10 | 2024-11-07 | v1.10.1 | 2025-05-07 | Supported |
94-
| v1.9 | 2024-09-02 | v1.9.1 | 2025-03-02 | Supported |
95+
| v1.9 | 2024-09-02 | v1.9.1 | 2025-03-02 | 2025-03-18 (v1.11 released) |
9596
| v1.8 | 2024-07-10 | v1.8.0 | 2025-01-10 | 2025-01-10 (end of 6mo support) |
9697
| v1.7 | 2024-03-18 | v1.7.0 | 2024-09-18 | 2024-09-18 (end of 6mo support) |
9798
| v1.6 | 2023-12-20 | v1.6.0 | 2024-06-20 | 2024-07-10 (v1.8 released) |

docs/getting-started.md

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -94,29 +94,44 @@ For simplicity, this guide will not use the [`jailer`](../src/jailer/).
9494
### Getting a rootfs and Guest Kernel Image
9595

9696
To successfully start a microVM, you will need an uncompressed Linux kernel
97-
binary, and an ext4 file system image (to use as rootfs). This guide uses a 5.10
98-
kernel image with a Ubuntu 24.04 rootfs from our CI:
97+
binary, and an ext4 file system image (to use as rootfs). This guide uses the
98+
latest kernel image and Ubuntu rootfs available in our CI for the latest
99+
release.
99100

100101
```bash
101102
ARCH="$(uname -m)"
102-
103-
latest=$(wget "http://spec.ccfc.min.s3.amazonaws.com/?prefix=firecracker-ci/v1.11/$ARCH/vmlinux-5.10&list-type=2" -O - 2>/dev/null | grep -oP "(?<=<Key>)(firecracker-ci/v1.11/$ARCH/vmlinux-5\.10\.[0-9]{1,3})(?=</Key>)")
103+
release_url="https://github.com/firecracker-microvm/firecracker/releases"
104+
latest_version=$(basename $(curl -fsSLI -o /dev/null -w %{url_effective} ${release_url}/latest))
105+
CI_VERSION=${latest_version%.*}
106+
latest_kernel_key=$(curl "http://spec.ccfc.min.s3.amazonaws.com/?prefix=firecracker-ci/$CI_VERSION/$ARCH/vmlinux-&list-type=2" \
107+
| grep -oP "(?<=<Key>)(firecracker-ci/$CI_VERSION/$ARCH/vmlinux-[0-9]+\.[0-9]+\.[0-9]{1,3})(?=</Key>)" \
108+
| sort -V | tail -1)
104109

105110
# Download a linux kernel binary
106-
wget "https://s3.amazonaws.com/spec.ccfc.min/${latest}"
111+
wget "https://s3.amazonaws.com/spec.ccfc.min/${latest_kernel_key}"
112+
113+
latest_ubuntu_key=$(curl "http://spec.ccfc.min.s3.amazonaws.com/?prefix=firecracker-ci/$CI_VERSION/$ARCH/ubuntu-&list-type=2" \
114+
| grep -oP "(?<=<Key>)(firecracker-ci/$CI_VERSION/$ARCH/ubuntu-[0-9]+\.[0-9]+\.squashfs)(?=</Key>)" \
115+
| sort -V | tail -1)
116+
ubuntu_version=$(basename $latest_ubuntu_key .sqashfs | grep -oE '[0-9]+\.[0-9]+')
107117

108118
# Download a rootfs
109-
wget -O ubuntu-24.04.squashfs.upstream "https://s3.amazonaws.com/spec.ccfc.min/firecracker-ci/v1.11/${ARCH}/ubuntu-24.04.squashfs"
119+
wget -O ubuntu-$ubuntu_version.squashfs.upstream "https://s3.amazonaws.com/spec.ccfc.min/$latest_ubuntu_key"
110120

111121
# Create an ssh key for the rootfs
112-
unsquashfs ubuntu-24.04.squashfs.upstream
122+
unsquashfs ubuntu-$ubuntu_version.squashfs.upstream
113123
ssh-keygen -f id_rsa -N ""
114124
cp -v id_rsa.pub squashfs-root/root/.ssh/authorized_keys
115-
mv -v id_rsa ./ubuntu-24.04.id_rsa
125+
mv -v id_rsa ./ubuntu-$ubuntu_version.id_rsa
116126
# create ext4 filesystem image
117127
sudo chown -R root:root squashfs-root
118-
truncate -s 400M ubuntu-24.04.ext4
119-
sudo mkfs.ext4 -d squashfs-root -F ubuntu-24.04.ext4
128+
truncate -s 400M ubuntu-$ubuntu_version.ext4
129+
sudo mkfs.ext4 -d squashfs-root -F ubuntu-$ubuntu_version.ext4
130+
131+
# Verify everything was correctly set up and print versions
132+
echo "Kernel: $(ls vmlinux-* | tail -1)"
133+
echo "Rootfs: $(ls *.ext4 | tail -1)"
134+
echo "SSH Key: $(ls *.id_rsa | tail -1)"
120135
```
121136

122137
### Getting a Firecracker Binary
@@ -241,7 +256,7 @@ sudo curl -X PUT --unix-socket "${API_SOCKET}" \
241256
}" \
242257
"http://localhost/boot-source"
243258

244-
ROOTFS="./ubuntu-24.04.ext4"
259+
ROOTFS="./$(ls *.ext4 | tail -1)"
245260

246261
# Set rootfs
247262
sudo curl -X PUT --unix-socket "${API_SOCKET}" \
@@ -282,14 +297,16 @@ sudo curl -X PUT --unix-socket "${API_SOCKET}" \
282297
# started before we attempt to SSH into it.
283298
sleep 2s
284299

300+
KEY_NAME=./$(ls *.id_rsa | tail -1)
301+
285302
# Setup internet access in the guest
286-
ssh -i ./ubuntu-24.04.id_rsa [email protected] "ip route add default via 172.16.0.1 dev eth0"
303+
ssh -i $KEY_NAME [email protected] "ip route add default via 172.16.0.1 dev eth0"
287304

288305
# Setup DNS resolution in the guest
289-
ssh -i ./ubuntu-24.04.id_rsa [email protected] "echo 'nameserver 8.8.8.8' > /etc/resolv.conf"
306+
ssh -i $KEY_NAME [email protected] "echo 'nameserver 8.8.8.8' > /etc/resolv.conf"
290307

291308
# SSH into the microVM
292-
ssh -i ./ubuntu-24.04.id_rsa [email protected]
309+
ssh -i $KEY_NAME [email protected]
293310

294311
# Use `root` for both the login and password.
295312
# Run `reboot` to exit.

docs/kernel-policy.md

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,31 @@ related changes.
77

88
We are continuously validating the currently supported Firecracker releases (as
99
per [Firecracker’s release policy](../docs/RELEASE_POLICY.md)) using a
10-
combination of:
11-
12-
- host linux kernel versions 5.10, and 6.1;
13-
- guest linux kernel versions 5.10 and 6.1. Guest linux kernels 4.14 are
14-
deprecated with Firecracker v1.9 and we will drop support for them with
15-
Firecracker v1.10.
10+
combination of all supported host and guest kernel versions in the table below.
1611

1712
While other versions and other kernel configs might work, they are not
1813
periodically validated in our test suite, and using them might result in
1914
unexpected behaviour. Starting with release `v1.0` each major and minor release
2015
will specify the supported kernel versions.
2116

22-
Once a kernel version is officially enabled, it is supported for a **minimum of
23-
2 years**. Adding support for a new kernel version will result in a Firecracker
24-
release only if compatibility changes are required.
17+
Once a kernel version is officially added, it is supported for a **minimum of 2
18+
years**. At least 2 major guest and host versions will be supported at any time.
19+
When support is added for a third kernel version, the oldest will be deprecated
20+
and removed in a following release, after its minimum end of support date.
21+
22+
### Host Kernel
23+
24+
| Host kernel | Min. version | Min. end of support |
25+
| ----------: | -----------: | ------------------: |
26+
| v5.10 | v1.0.0 | 2024-01-31 |
27+
| v6.1 | v1.5.0 | 2025-10-12 |
28+
29+
### Guest Kernel
2530

26-
| Host kernel | Guest kernel v4.14 (deprecated) | Guest kernel v5.10 | Guest kernel v6.1 | Min. end of support |
27-
| ----------: | :-----------------------------: | :----------------: | :---------------: | ------------------: |
28-
| v5.10 | Y (deprecated) | Y | Y | 2024-01-31 |
29-
| v6.1 | Y (deprecated) | Y | Y | 2025-10-12 |
31+
| Guest kernel | Min. version | Min. end of support |
32+
| -----------: | -----------: | ------------------: |
33+
| v5.10 | v1.0.0 | 2024-01-31 |
34+
| v6.1 | v1.9.0 | 2026-09-02 |
3035

3136
The guest kernel configs used in our validation pipelines can be found
3237
[here](../resources/guest_configs/) while a breakdown of the relevant guest

docs/snapshotting/snapshot-support.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -126,17 +126,6 @@ The snapshot functionality is still in developer preview due to the following:
126126

127127
### Limitations
128128

129-
- Currently on aarch64 platforms only lower 128 bits of any register are saved
130-
due to the limitations of `get/set_one_reg` from `kvm-ioctls` crate that
131-
Firecracker uses to interact with KVM. This creates an issue with newer
132-
aarch64 CPUs with support for registers with width greater than 128 bits,
133-
because these registers will be truncated before being stored in the snapshot.
134-
This can lead to uVM failure if restored from such snapshot. Because registers
135-
wider than 128 bits are usually used in SVE instructions, the best way to
136-
mitigate this issue is to ensure that the software run in uVM does not use SVE
137-
instructions during snapshot creation. An alternative way is to use
138-
[CPU templates](../cpu_templates/cpu-templates.md) to disable SVE related
139-
features in uVM.
140129
- High snapshot latency on 5.4+ host kernels due to cgroups V1. We strongly
141130
recommend to deploy snapshots on cgroups V2 enabled hosts for the implied
142131
kernel versions -

tools/release-notes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@
2121
iterator = iter(changelog_lines)
2222

2323
for line in iterator:
24-
if line.startswith(f"## \\[{cur_version}\\]"):
24+
if line.startswith(f"## [{cur_version}]"):
2525
break
2626
else:
2727
print(f"Could not find changelog entry for version {cur_version}!")
2828
sys.exit(1)
2929

3030
for line in iterator:
31-
if line.startswith("## \\["):
31+
if line.startswith("## ["):
3232
break
3333

3434
if line.startswith("#"):

0 commit comments

Comments
 (0)