Skip to content

vm: enable memory advice syscalls - #33

Open
zbarsky-openai wants to merge 1 commit into
hermeticbuild:mainfrom
zbarsky-openai:zbarsky/kernel-advice-syscalls
Open

zbarsky-openai wants to merge 1 commit into
hermeticbuild:mainfrom
zbarsky-openai:zbarsky/kernel-advice-syscalls

Conversation

@zbarsky-openai

Copy link
Copy Markdown

Node/V8 actions fail inside the VM with:

# Fatal error in , line 0
# Check failed: 0 == ret.

A direct guest probe identifies the missing kernel operations:

madvise-normal: result=-1 errno=38 (ENOSYS)
madvise-dontneed: result=-1 errno=38 (ENOSYS)
madvise-free: result=-1 errno=38 (ENOSYS)

The compact kernels use allnoconfig, and Linux gates these operations on
CONFIG_ADVISE_SYSCALLS. Enable it in both ARM64 and x86_64 kernels.
The repaired ARM64 guest supports all three advice modes, runs ordinary
V8 JIT and WebAssembly without special Node flags, and successfully builds
and verifies a complete Vite application. Both architecture configurations
resolve with memory-advice syscalls enabled.

Node/V8 actions fail inside the VM with:

```text
# Fatal error in , line 0
# Check failed: 0 == ret.
```

A direct guest probe identifies the missing kernel operations:

```text
madvise-normal: result=-1 errno=38 (ENOSYS)
madvise-dontneed: result=-1 errno=38 (ENOSYS)
madvise-free: result=-1 errno=38 (ENOSYS)
```

The compact kernels use `allnoconfig`, and Linux gates these operations on
`CONFIG_ADVISE_SYSCALLS`. Enable it in both ARM64 and x86_64 kernels.
The repaired ARM64 guest supports all three advice modes, runs ordinary
V8 JIT and WebAssembly without special Node flags, and successfully builds
and verifies a complete Vite application. Both architecture configurations
resolve with memory-advice syscalls enabled.
dzbarsky added a commit that referenced this pull request Sep 14, 2026
Enable CONFIG_ADVISE_SYSCALLS in the ARM64 and x86_64 VM kernels.
The compact kernels use allnoconfig, which otherwise disables madvise
and fadvise. Node/V8 requires madvise and fails when it returns ENOSYS.

Apply the configuration change from PR #33.

Validation: bazel build and bazel test //... passed with --config=remote
and Linux-glibc target and host platforms (78 targets, 2 tests). The
macOS Virtualization.framework suite passed with tools/e2e.sh vm.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant