From d148a25b48c5bc102aac11be1f7f060586722bcf Mon Sep 17 00:00:00 2001 From: Ophestra Date: Tue, 15 Sep 2026 16:59:18 +0900 Subject: pkg: expose kvm device This greatly improves vm test performance. Signed-off-by: Ophestra --- fhs/abs.go | 2 ++ fhs/fhs.go | 2 ++ pkg/exec.go | 7 ++++++- pkg/internal/testtool/main.go | 4 ++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/fhs/abs.go b/fhs/abs.go index 7adde1db..5d061567 100644 --- a/fhs/abs.go +++ b/fhs/abs.go @@ -40,6 +40,8 @@ var ( AbsDev = unsafeAbs(Dev) // AbsDevShm is [DevShm] as [check.Absolute]. AbsDevShm = unsafeAbs(DevShm) + // AbsDevKvm is [DevKvm] as [check.Absolute]. + AbsDevKvm = unsafeAbs(DevKvm) // AbsProc is [Proc] as [check.Absolute]. AbsProc = unsafeAbs(Proc) // AbsProcSys is [ProcSys] as [check.Absolute]. diff --git a/fhs/fhs.go b/fhs/fhs.go index 6d098d0c..b526dc6f 100644 --- a/fhs/fhs.go +++ b/fhs/fhs.go @@ -35,6 +35,8 @@ const ( // DevShm is the place for POSIX shared memory segments, as created via // shm_open(3). DevShm = "/dev/shm/" + // DevKvm is the KVM system device. + DevKvm = "/dev/kvm" // Proc points to a virtual kernel file system exposing the process list and // other functionality. Proc = "/proc/" diff --git a/pkg/exec.go b/pkg/exec.go index b40ae84b..fe099ac9 100644 --- a/pkg/exec.go +++ b/pkg/exec.go @@ -601,7 +601,12 @@ func (a *execArtifact) makeContainer( fhs.AbsTmp, std.BindWritable|std.BindEnsure, ) - z.Proc(fhs.AbsProc).Dev(fhs.AbsDev, true) + z. + Proc(fhs.AbsProc). + DevWritable(fhs.AbsDev, true). + Tmpfs(fhs.AbsDevShm, 0, 01777). + Bind(fhs.AbsDevKvm, fhs.AbsDevKvm, std.BindOptional|std.BindDevice). + Remount(fhs.AbsDev, syscall.MS_RDONLY) return } diff --git a/pkg/internal/testtool/main.go b/pkg/internal/testtool/main.go index edffab7e..80f87435 100644 --- a/pkg/internal/testtool/main.go +++ b/pkg/internal/testtool/main.go @@ -259,6 +259,10 @@ func main() { next() } + if m.Next != nil && m.Next.Root == "/kvm" { + next() + } + if m.Next != nil { log.Println("unexpected extra mount entries") for m.Next != nil { -- cgit v1.3.1