[Devel] [PATCH VZ10 v9 0/8] Add per-VE failcount support
Vladimir Riabchun
vladimir.riabchun at virtuozzo.com
Tue Sep 15 20:22:28 MSK 2026
This patchset introduces per-VE failcount support.
We have several resources, that have per-VE limits,
the users might want to know what limit hits make
operations fail.
- Patch 1 is cosmetic, nothing special.
- Patches 2-4 change mount number and limit processing,
unifying it with other resources. VE selftest is updated
in patch 3.
- Patch 5 greatly reduces the amount of copy-pasted code
by introducing some useful macros.
- Patch 6 adds per-VE failcount file.
- Patch 7 fixes kernel log leak to containers from interrupts.
- Patch 8 introduces new VE selftest, that checks mounts
accounting, limits and failcount updates.
NOTE: for running new selftest this change should be applied on
top of "[PATCH VZ10 v2 0/3] Improvements for ve selftests" patchset.
https://virtuozzo.atlassian.net/browse/VSTOR-135520
Changes since v8:
- Added new patch 7 to fix logs leakage from interrupts.
We are fine if we miss some failure logs in container
dmesg - CT can check failcounts anyway, and bringing
new ratelimited printks with specified VE is too hard
for such a small thing.
- Selftest in patch 8 got major rework:
1. Correct mmap error handling.
2. Dropped mnt_cost value. Let's force 1, it is expected
value in fresh mount+VE namespaces.
3. Proper solution for pending mount destructions. It used
to be just sleep(1) which may not be enoght on loaded
machines. Instead, issue rcu_barrier and wait on mnt_avail_nr.
Since we forced mnt_cost == 1, it know precisely what the
new value should be.
Vladimir Riabchun (8):
ve/ve.{h,c}: Farewell to spaces as indents
ve/fs: Rework per-ve mount count
selftests/ve: Update ve_ns_owner_test
ve: Move from global VE mounts limit to per-VE limit
ve/ve.c: Generate VE resource accessors using macros
ve: Introduce per-VE failcount
ve/printk: Don't use ve log outside task context
selftests/ve: Add mount accounting selftest
fs/aio.c | 1 +
fs/namespace.c | 80 ++-
include/linux/ve.h | 35 +-
kernel/bpf/syscall.c | 1 +
kernel/printk/printk.c | 7 +-
kernel/ve/ve.c | 277 ++++-----
kernel/ve/veowner.c | 19 -
net/core/dev.c | 10 +-
net/core/neighbour.c | 3 +-
net/core/net_namespace.c | 4 +-
tools/testing/selftests/ve/.gitignore | 1 +
tools/testing/selftests/ve/Makefile | 1 +
.../selftests/ve/ve_mount_accounting_test.c | 550 ++++++++++++++++++
tools/testing/selftests/ve/ve_ns_owner_test.c | 37 +-
tools/testing/selftests/ve/ve_selftest.h | 21 +
15 files changed, 822 insertions(+), 225 deletions(-)
create mode 100644 tools/testing/selftests/ve/ve_mount_accounting_test.c
--
2.47.1
More information about the Devel
mailing list