I won't apply this version, please send v2 with the changes below.
On Fri, 13 Nov 2026 16:08:43 +0100, Pavel Tikhomirov wrote:
> Pavel Tikhomirov (2):
> fs/aio: restore the AIO ring of the dumped size in a pseudosuper VE
> selftests/ve: check the AIO ring size in a pseudosuper VE
The ring sizing is right: with the CPU heuristic skipped, CRIU's
(nr - 2) / 2 gets back the dumped ring for any page count and CPU
counts, and the host, running CTs and restores to a node with fewer
CPUs are unchanged. What to change for v2:
1. Patch 1, code: a restored ring below this node's minimum must not
lose slots in the per-CPU caches. E.g. mark such a context in
ioctx_alloc() and let put_reqs_available() and
__get_reqs_available() use ctx->reqs_available directly for it.
If you keep the cache, the commit message must state the real
bound instead of "slightly less reliable".
2. Patch 1, commit message and comment: the VE is pseudosuper not only
for the restore. vzctl sets ve.pseudosuper on every CT start and
clears it just before it execs init. Say "while the CT is being
started or restored", or similar.
3. Patch 1, commit message: say what fails without the patch: CRIU's
restore_aio_ring() reports "wrong aio" and the migration is
aborted.
4. Patch 2: read the CPU count from /sys/devices/system/cpu/possible,
the mask the kernel uses, not sysconf(_SC_NPROCESSORS_CONF).
5. Patch 2: do not leave the VE cgroup behind when FIXTURE_SETUP fails
after make_ve(), and use ASSERT_EQ for set_pseudosuper().
Separate patches, not needed for v2 (I created a task):
1. vz misses mainline b44341e39d856 ("aio: avoid request count
overflow in ioctx_alloc()"), which touches the lines next to
patch 1.
https://virtuozzo.atlassian.net/browse/VSTOR-155110
Details are in the replies to the patches.
--
Konstantin Khorenko,
Virtuozzo Linux Kernel Team
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel