Skip to content

Commit 22b83e6

Browse files
committed
docs: update recommendation on ENOMEM
The recommendation to patch and recompile a kernel is quite extreme. Instead, let's suggest some more mild approaches. Signed-off-by: Pablo Barbáchano <[email protected]>
1 parent 8c26dcf commit 22b83e6

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

FAQ.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,9 +237,12 @@ contiguous pages.
237237

238238
Possible mitigations are:
239239

240-
- Track the failing allocations in the `dmesg` output and rebuild the host
241-
kernel so as to use `vmalloc` instead of `kmalloc` for them.
242240
- Reduce memory pressure on the host.
241+
- Maybe the host has memory but it's too fragmented for the kernel to use. The
242+
allocation above of order 6 means the kernel could not find 2^6
243+
**consecutive** pages. One way to mitigate memory fragmentation is to [set a
244+
higher value](https://linuxhint.com/vm_min_free_kbytes_sysctl/) for `vm.min_free_kbytes`
245+
- Or investigate other [mitigations](https://savvinov.com/2019/10/14/memory-fragmentation-the-silent-performance-killer/)
243246

244247
### How can I configure and start a microVM without sending API calls?
245248

@@ -258,6 +261,13 @@ If the microVM was not configured in terms of memory size through an API request
258261
the host needs to meet the minimum requirement in terms of free memory size,
259262
namely 128 MB of free memory which the microVM defaults to.
260263

264+
This may be related to "We are seeing page allocation failures ..." above. To
265+
validate, run this:
266+
267+
```sh
268+
sudo dmesg | grep "page allocation failure"
269+
```
270+
261271
### Firecracker fails to start and returns "Resource busy" error
262272

263273
If another hypervisor like VMware or VirtualBox is running on the host and

0 commit comments

Comments
 (0)