Files
visor/pkg/hostarch/hostarch_arm64_64k.go
Ildar SafarovandIldar Safarov da03c78348 Replace panic with warning on arm64 page size mismatch
Change the behavior from panicking to printing a warning when the host
page size does not match the compiled page size on arm64. This applies
to both 4K and 64K page size variants.

Add runtime check at runsc startup to ensure host page size matches
the compiled page size, failing if they don't match.

Fixes #12717
2026-03-23 16:30:14 +00:00

37 lines
1.1 KiB
Go

// Copyright 2026 The gVisor Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//go:build arm64 && pagesize_64k
package hostarch
import "golang.org/x/sys/unix"
const (
// PageShift is the binary log of the system page size.
// 64K pages: 2^16 = 65536
PageShift = 16
// HugePageShift is the binary log of the system huge page size.
// For 64K pages: PageShift + (PageShift - 3) = 16 + 13 = 29
// This gives 512MB huge pages.
HugePageShift = 29
)
func init() {
if size := unix.Getpagesize(); size != PageSize {
println("WARNING: host page size mismatch - running on non-64K host")
}
}