From 08409578774a351ecf67f70d560b64603e4c7a45 Mon Sep 17 00:00:00 2001 From: danbugs Date: Tue, 30 Jun 2026 06:28:25 +0000 Subject: [PATCH 1/6] chore: bump unikraft and app-elfloader to proto/vfork branches Signed-off-by: danbugs --- examples/dotnet-http/kraft.yaml | 8 ++++---- examples/dotnet-nativeaot/kraft.yaml | 8 ++++---- examples/dotnet/kraft.yaml | 8 ++++---- examples/go-http/kraft.yaml | 8 ++++---- examples/go/kraft.yaml | 8 ++++---- examples/helloworld-c/kraft.yaml | 8 ++++---- examples/hostfs-posix-c/kraft.yaml | 8 ++++---- examples/hostfs-posix-py/kraft.yaml | 8 ++++---- examples/multifn-c/kraft.yaml | 8 ++++---- examples/networking-py/kraft.yaml | 8 ++++---- examples/nodejs/kraft.yaml | 8 ++++---- examples/powershell/kraft.yaml | 8 ++++---- examples/python-agent-driver/kraft.yaml | 17 +++++++++++------ examples/python-agent/kraft.yaml | 8 ++++---- examples/python-tools/kraft.yaml | 8 ++++---- examples/python/kraft.yaml | 8 ++++---- examples/rust/kraft.yaml | 8 ++++---- examples/shell/kraft.yaml | 8 ++++---- 18 files changed, 79 insertions(+), 74 deletions(-) diff --git a/examples/dotnet-http/kraft.yaml b/examples/dotnet-http/kraft.yaml index 37c6ed0..977c820 100644 --- a/examples/dotnet-http/kraft.yaml +++ b/examples/dotnet-http/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: dotnet-http-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -90,8 +90,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/dotnet-nativeaot/kraft.yaml b/examples/dotnet-nativeaot/kraft.yaml index f5c2b2d..a7e2a30 100644 --- a/examples/dotnet-nativeaot/kraft.yaml +++ b/examples/dotnet-nativeaot/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: dotnet-nativeaot-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: CONFIG_PLAT_HYPERLIGHT: 'y' CONFIG_PAGING: 'n' @@ -56,8 +56,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/dotnet/kraft.yaml b/examples/dotnet/kraft.yaml index b2b0a3b..9d7e87b 100644 --- a/examples/dotnet/kraft.yaml +++ b/examples/dotnet/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: dotnet-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -78,8 +78,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/go-http/kraft.yaml b/examples/go-http/kraft.yaml index d06b787..73bb118 100644 --- a/examples/go-http/kraft.yaml +++ b/examples/go-http/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: go-http-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -79,8 +79,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/go/kraft.yaml b/examples/go/kraft.yaml index 547d6d7..046daec 100644 --- a/examples/go/kraft.yaml +++ b/examples/go/kraft.yaml @@ -3,8 +3,8 @@ specification: '0.6' name: go-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -64,8 +64,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/helloworld-c/kraft.yaml b/examples/helloworld-c/kraft.yaml index 36e45f2..613ba6c 100644 --- a/examples/helloworld-c/kraft.yaml +++ b/examples/helloworld-c/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: helloworld-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: CONFIG_PLAT_HYPERLIGHT: 'y' CONFIG_PAGING: 'n' @@ -55,8 +55,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/hostfs-posix-c/kraft.yaml b/examples/hostfs-posix-c/kraft.yaml index d2f937f..80686e9 100644 --- a/examples/hostfs-posix-c/kraft.yaml +++ b/examples/hostfs-posix-c/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: hostfs-posix-c-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -71,8 +71,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/hostfs-posix-py/kraft.yaml b/examples/hostfs-posix-py/kraft.yaml index ec17d14..fbc0e8a 100644 --- a/examples/hostfs-posix-py/kraft.yaml +++ b/examples/hostfs-posix-py/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: hostfs-posix-py-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -76,8 +76,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/multifn-c/kraft.yaml b/examples/multifn-c/kraft.yaml index cc98096..c62dcad 100644 --- a/examples/multifn-c/kraft.yaml +++ b/examples/multifn-c/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: multifn-c-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: CONFIG_PLAT_HYPERLIGHT: 'y' CONFIG_PAGING: 'n' @@ -49,8 +49,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/networking-py/kraft.yaml b/examples/networking-py/kraft.yaml index 67531a4..d44912a 100644 --- a/examples/networking-py/kraft.yaml +++ b/examples/networking-py/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: networking-py-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -72,8 +72,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/nodejs/kraft.yaml b/examples/nodejs/kraft.yaml index 4639e1a..e3f6391 100644 --- a/examples/nodejs/kraft.yaml +++ b/examples/nodejs/kraft.yaml @@ -3,8 +3,8 @@ specification: '0.6' name: nodejs-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -74,8 +74,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/powershell/kraft.yaml b/examples/powershell/kraft.yaml index 8d3bcc9..806d44d 100644 --- a/examples/powershell/kraft.yaml +++ b/examples/powershell/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: powershell-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -86,8 +86,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/python-agent-driver/kraft.yaml b/examples/python-agent-driver/kraft.yaml index 425b327..80c8b80 100644 --- a/examples/python-agent-driver/kraft.yaml +++ b/examples/python-agent-driver/kraft.yaml @@ -2,14 +2,15 @@ specification: '0.6' name: python-agent-driver-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: CONFIG_PLAT_HYPERLIGHT: 'y' CONFIG_PAGING: 'n' CONFIG_LIBUKVMEM: 'n' CONFIG_LIBUKINTCTLR_HYPERLIGHT: 'y' CONFIG_HYPERLIGHT_MAX_GUEST_LOG_LEVEL: 4 + CONFIG_LIBSYSCALL_SHIM_STRACE: 'n' CONFIG_LIBUKPRINT_KLVL_CRIT: 'y' CONFIG_LIBUKPRINT_PRINT_TIME: 'n' @@ -70,21 +71,25 @@ unikraft: CONFIG_LIBPOSIX_PROCESS_ARCH_PRCTL: 'y' CONFIG_LIBPOSIX_PROCESS_MULTIPROCESS: 'y' - CONFIG_LIBPOSIX_PROCESS_EXECVE: 'y' CONFIG_LIBPOSIX_PROCESS_SIGNAL: 'y' + CONFIG_LIBPOSIX_PROCESS_EXECVE: 'y' CONFIG_LIBUKBINFMT: 'y' - CONFIG_APPELFLOADER_MULTIPROCESS: 'y' CONFIG_APPELFLOADER_ELF_BINFMT: 'y' CONFIG_LIBCONTEXT: 'y' CONFIG_LIBCONTEXT_CLEAR_TBSS: 'y' + CONFIG_APPELFLOADER_MULTIPROCESS: 'y' + CONFIG_LIBPOSIX_FDTAB_MULTITAB: 'n' + CONFIG_STACK_SIZE_PAGE_ORDER: 10 + CONFIG_LIBUKDEBUG_ENABLE_ASSERT: 'n' + libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/python-agent/kraft.yaml b/examples/python-agent/kraft.yaml index d627dc3..dccb200 100644 --- a/examples/python-agent/kraft.yaml +++ b/examples/python-agent/kraft.yaml @@ -2,8 +2,8 @@ specification: '0.6' name: python-agent-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -88,8 +88,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/python-tools/kraft.yaml b/examples/python-tools/kraft.yaml index 53de59f..d969197 100644 --- a/examples/python-tools/kraft.yaml +++ b/examples/python-tools/kraft.yaml @@ -3,8 +3,8 @@ specification: '0.6' name: python-tools-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -66,8 +66,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/python/kraft.yaml b/examples/python/kraft.yaml index dba5357..f47b947 100644 --- a/examples/python/kraft.yaml +++ b/examples/python/kraft.yaml @@ -3,8 +3,8 @@ specification: '0.6' name: python-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -67,8 +67,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/rust/kraft.yaml b/examples/rust/kraft.yaml index 962a7e9..19411ac 100644 --- a/examples/rust/kraft.yaml +++ b/examples/rust/kraft.yaml @@ -3,8 +3,8 @@ specification: '0.6' name: rust-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -62,8 +62,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging diff --git a/examples/shell/kraft.yaml b/examples/shell/kraft.yaml index 242745b..fba267e 100644 --- a/examples/shell/kraft.yaml +++ b/examples/shell/kraft.yaml @@ -3,8 +3,8 @@ specification: '0.6' name: shell-hyperlight unikraft: - source: https://github.com/unikraft/unikraft.git - version: plat-hyperlight + source: https://github.com/danbugs/unikraft.git + version: proto/vfork kconfig: # Platform CONFIG_PLAT_HYPERLIGHT: 'y' @@ -65,8 +65,8 @@ unikraft: libraries: app-elfloader: - source: https://github.com/unikraft/app-elfloader.git - version: plat-hyperlight + source: https://github.com/danbugs/app-elfloader.git + version: proto/vfork libelf: source: https://github.com/unikraft/lib-libelf.git version: staging From cb7ad70fd1e1d75ad679ddb96467099d7d787d00 Mon Sep 17 00:00:00 2001 From: danbugs Date: Tue, 30 Jun 2026 06:28:29 +0000 Subject: [PATCH 2/6] chore: remove pydriver-run binary in favor of pyhl Signed-off-by: danbugs --- host/Cargo.toml | 4 -- host/src/bin/pydriver_run.rs | 79 ------------------------------------ 2 files changed, 83 deletions(-) delete mode 100644 host/src/bin/pydriver_run.rs diff --git a/host/Cargo.toml b/host/Cargo.toml index 8c04c31..97b5021 100644 --- a/host/Cargo.toml +++ b/host/Cargo.toml @@ -23,10 +23,6 @@ path = "src/main.rs" name = "multifn-test" path = "src/bin/multifn_test.rs" -[[bin]] -name = "pydriver-run" -path = "src/bin/pydriver_run.rs" - [[bin]] name = "pyhl" path = "src/bin/pyhl.rs" diff --git a/host/src/bin/pydriver_run.rs b/host/src/bin/pydriver_run.rs deleted file mode 100644 index 448f83c..0000000 --- a/host/src/bin/pydriver_run.rs +++ /dev/null @@ -1,79 +0,0 @@ -//! pydriver-run — run a Python script through hl_pydriver. -//! -//! Boots the sandbox once, calls "run" with the script's contents. -//! First call pays the Py_Initialize + warm-up import cost (~2 s); -//! the driver registers an FC-aware callback during that call, so -//! every subsequent call (via --repeat N or snapshot_now + loop) is -//! just the user's code + dispatch overhead. -//! -//! Usage: -//! pydriver-run [--repeat N] -//! -//! With --repeat, after the first (warmup + code) call we -//! `snapshot_now()` to capture the post-warmup state, then restore + -//! call_named for each remaining iteration so we can actually -//! *measure* the warm-path cost on runs 2..N. - -use anyhow::{anyhow, Result}; -use hyperlight_unikraft::Sandbox; -use std::path::PathBuf; -use std::time::Instant; - -fn main() -> Result<()> { - let mut args = std::env::args().skip(1); - let kernel = args - .next() - .ok_or_else(|| anyhow!("usage: pydriver-run