Speaker
David Matlack
(Google)
Description
The Live Update Orchestrator (LUO) can preserve memfds across kexec. But a memfd has no path, so it can't replace a file on tmpfs, such as VMM binaries on hosts without local storage. Preserving a tmpfs file's contents is easy. Retrieving it is hard: LUO always returns a new anonymous file, with no way to give it a mount, path or mount options.
This talk compares three proposals:
- RETRIEVE_INTO_FD: userspace recreates the mount and directories, and the kernel fills an empty file.
- tmpfs mount and file handlers: the kernel preserves and recreates the mount and the files in its root directory.
- Retrieve as memfd, then move: retrieve a memfd and move its folios into tmpfs with an extended splice(SPLICE_F_MOVE).
We weigh the new uAPI, ABI and kernel code each one needs against what it supports. The goal is to agree on a direction for upstream.
Author
David Matlack
(Google)