diff --git a/src/runtime/pkg/utils/schedcore.go b/src/runtime/pkg/utils/schedcore.go index c35fecef4a..c395b2bd47 100644 --- a/src/runtime/pkg/utils/schedcore.go +++ b/src/runtime/pkg/utils/schedcore.go @@ -5,10 +5,6 @@ package utils -import ( - "golang.org/x/sys/unix" -) - // PidType is the type of provided pid value and how it should be treated type PidType int @@ -24,13 +20,3 @@ const ( // ProcessGroup affects all processes in the group ProcessGroup PidType = pidTypeProcessGroupId ) - -// Create a new sched core domain -func Create(t PidType) error { - return unix.Prctl(unix.PR_SCHED_CORE, unix.PR_SCHED_CORE_CREATE, 0, uintptr(t), 0) -} - -// ShareFrom shares the sched core domain from the provided pid -func ShareFrom(pid uint64, t PidType) error { - return unix.Prctl(unix.PR_SCHED_CORE, unix.PR_SCHED_CORE_SHARE_FROM, uintptr(pid), uintptr(t), 0) -} diff --git a/src/runtime/pkg/utils/schedcore_linux.go b/src/runtime/pkg/utils/schedcore_linux.go new file mode 100644 index 0000000000..73c4d8f55e --- /dev/null +++ b/src/runtime/pkg/utils/schedcore_linux.go @@ -0,0 +1,20 @@ +// Copyright (c) 2023 Apple Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// + +package utils + +import ( + "golang.org/x/sys/unix" +) + +// Create a new sched core domain +func Create(t PidType) error { + return unix.Prctl(unix.PR_SCHED_CORE, unix.PR_SCHED_CORE_CREATE, 0, uintptr(t), 0) +} + +// ShareFrom shares the sched core domain from the provided pid +func ShareFrom(pid uint64, t PidType) error { + return unix.Prctl(unix.PR_SCHED_CORE, unix.PR_SCHED_CORE_SHARE_FROM, uintptr(pid), uintptr(t), 0) +} diff --git a/src/runtime/pkg/utils/schedcore_other.go b/src/runtime/pkg/utils/schedcore_other.go new file mode 100644 index 0000000000..d19c70dee8 --- /dev/null +++ b/src/runtime/pkg/utils/schedcore_other.go @@ -0,0 +1,22 @@ +// Copyright (c) 2023 Apple Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// + +//go:build !linux + +package utils + +import ( + "errors" +) + +// Create a new sched core domain +func Create(t PidType) error { + return errors.New("schedcore not available on non-Linux platforms") +} + +// ShareFrom shares the sched core domain from the provided pid +func ShareFrom(pid uint64, t PidType) error { + return errors.New("schedcore not available on non-Linux platforms") +}