diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-09-15 16:59:18 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-09-15 18:42:24 +0900 |
| commit | d148a25b48c5bc102aac11be1f7f060586722bcf (patch) | |
| tree | 1f7a41924a6b84741d7c05b6b850938c05561c84 | |
| parent | ae39b54d79de36a5ba22ca24e3ba150f230c327b (diff) | |
pkg: expose kvm device
This greatly improves vm test performance.
Signed-off-by: Ophestra <cat@gensokyo.uk>
| -rw-r--r-- | fhs/abs.go | 2 | ||||
| -rw-r--r-- | fhs/fhs.go | 2 | ||||
| -rw-r--r-- | pkg/exec.go | 7 | ||||
| -rw-r--r-- | pkg/internal/testtool/main.go | 4 |
4 files changed, 14 insertions, 1 deletions
@@ -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]. @@ -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 { |
