vmsig: management daemon, runtime endpoint lifecycle, roster, discovery, in-tree drivers, packaging

- core: runtime attach/detach of a per-endpoint adapter trio (runtime-safe add_adapter + vmsig_core_detach_endpoint, deferred reap)
- roster: VMSIG_EV_ROSTER + CAP_ROSTER, retained per-endpoint and replayed to late subscribers
- discovery: inotify trigger dir, vmid/endpoint slot allocator, host probe; vmsigd daemon with config + per-uid admission
- input driver and vgpu perception built in-tree; vgpu perception as a separate library
- memctx: own the supplied ro_fd (closed at detach)
- deb packaging: install rules, systemd unit, tmpfiles, default config
This commit is contained in:
2026-06-22 17:25:06 +03:00
parent 0d387a4249
commit 9bde398b6c
55 changed files with 4703 additions and 61 deletions
+27
View File
@@ -0,0 +1,27 @@
# vmsigd.conf — vmsig management daemon configuration.
# Installed as a dpkg conffile (operator edits are preserved across upgrades).
# Control listener the consumer dials. '@' prefix => abstract namespace.
socket = /run/vmsig/vmsigd.sock
# Discovery namespace: a VM is managed iff its guest-RAM backing file appears here as
# vm-<vmid>-ram. The daemon owns this directory (created at boot via tmpfiles).
watch = /dev/shm/vmsig
# Inventory source of truth (read on demand; not watched) and the QMP socket directory.
pve_conf = /etc/pve/qemu-server
qmp_dir = /var/run/qemu-server
# vmid<->endpoint slot persistence (tmpfs; re-derived per daemon restart). "" => off.
slots = /dev/shm/vmsig/.slots
# ---- Admission policy: one [grant uid=N] stanza per local uid. -----------------------
# Entitlements are COARSE (the control enforces per-user caps behind the grant). `vmids`
# is either `*` (all VMs) or a list of vmids; it is translated to endpoint bits at connect
# time. `caps` is a comma list of: observe,input,lifecycle,power,vm,memctx,memwrite,roster.
#
# Example (edit before enabling the service):
# [grant uid=0]
# vmids = *
# caps = observe,input,lifecycle,power,vm,memctx,memwrite,roster
# arb_prio = 100