From b3042426d0d710e883bfa4cb6905e9e9de0d867c Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Tue, 10 Jul 2018 22:00:20 +0000 Subject: Remove bits of the old NUMA. Remove numactl(1), edit numa(4) to bring it some closer to reality, provide libc ABI shims for old NUMA syscalls. Noted and reviewed by: brooks (previous version) Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D16142 --- lib/libc/sys/Makefile.inc | 2 - lib/libc/sys/compat-stub.c | 2 + lib/libc/sys/numa_getaffinity.2 | 197 ---------------------------------------- 3 files changed, 2 insertions(+), 199 deletions(-) delete mode 100644 lib/libc/sys/numa_getaffinity.2 (limited to 'lib') diff --git a/lib/libc/sys/Makefile.inc b/lib/libc/sys/Makefile.inc index 82a4a7884da5..31b0af4b7d82 100644 --- a/lib/libc/sys/Makefile.inc +++ b/lib/libc/sys/Makefile.inc @@ -258,7 +258,6 @@ MAN+= abort2.2 \ nanosleep.2 \ nfssvc.2 \ ntp_adjtime.2 \ - numa_getaffinity.2 \ open.2 \ pathconf.2 \ pdfork.2 \ @@ -430,7 +429,6 @@ MLINKS+=mount.2 nmount.2 \ MLINKS+=mq_receive.2 mq_timedreceive.2 MLINKS+=mq_send.2 mq_timedsend.2 MLINKS+=ntp_adjtime.2 ntp_gettime.2 -MLINKS+=numa_getaffinity.2 numa_setaffinity.2 MLINKS+=open.2 openat.2 MLINKS+=pathconf.2 fpathconf.2 MLINKS+=pathconf.2 lpathconf.2 diff --git a/lib/libc/sys/compat-stub.c b/lib/libc/sys/compat-stub.c index 3e3a5bb45760..2031b7dc4c20 100644 --- a/lib/libc/sys/compat-stub.c +++ b/lib/libc/sys/compat-stub.c @@ -54,3 +54,5 @@ __sym_compat(symbol, __compat_enosys ## symbol, version) __compat_nosys(netbsd_lchown, FBSD_1.0); __compat_nosys(netbsd_msync, FBSD_1.0); +__compat_nosys(numa_getaffinity, FBSD_1.4); +__compat_nosys(numa_setaffinity, FBSD_1.4); diff --git a/lib/libc/sys/numa_getaffinity.2 b/lib/libc/sys/numa_getaffinity.2 deleted file mode 100644 index efb78e988210..000000000000 --- a/lib/libc/sys/numa_getaffinity.2 +++ /dev/null @@ -1,197 +0,0 @@ -.\" Copyright (c) 2008 Christian Brueffer -.\" Copyright (c) 2008 Jeffrey Roberson -.\" Copyright (c) 2015 Adrian Chadd -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $FreeBSD$ -.\" -.Dd May 7, 2015 -.Dt NUMA_GETAFFINITY 2 -.Os -.Sh NAME -.Nm numa_getaffinity , -.Nm numa_setaffinity -.Nd manage NUMA affinity -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In sys/param.h -.In sys/numa.h -.Ft int -.Fn numa_getaffinity "cpuwhich_t which" "id_t id" "struct vm_domain_policy_entry *policy" -.Ft int -.Fn numa_setaffinity "cpuwhich_t which" "id_t id" "const struct vm_domain_policy_entry *policy" -.Sh DESCRIPTION -.Fn numa_getaffinity -and -.Fn numa_setaffinity -allow the manipulation of NUMA policies available to processes and threads. -These functions may manipulate NUMA policies that contain many processes -or affect only a single object. -.Pp -Valid values for the -.Fa which -argument are documented in -.Xr cpuset 2 . -These arguments specify which object set are used. -Only -.Dv CPU_WHICH_TID -and -.Dv CPU_WHICH_PID -can be manipulated. -.Pp -The -.Fa policy -entry contains a vm_domain_policy_entry with the following fields: -.Bd -literal -struct vm_domain_policy_entry { - vm_domain_policy_type_t policy; /* VM policy */ - int domain; /* VM domain, if applicable */ -} -.Ed -.Fa vm_domain_policy_type_t policy -is one these: -.Bl -tag -width VM_POLICY_NONE -.It Dv VM_POLICY_NONE -Reset the domain back to none. -Any parent object NUMA domain policy will apply. -The only valid value for -.Dv domain -is -1. -.It Dv VM_POLICY_ROUND_ROBIN -Select round-robin policy. -Pages will be allocated round-robin from each VM domain in order. -The only valid value for -.Dv domain -is -1. -.It Dv VM_POLICY_FIXED_DOMAIN -Select fixed-domain only policy. -Pages will be allocated from the given -.Dv domain -which must be set to a valid VM domain. -Pages will not be allocated from another domain if -.Dv domain -is out of free pages. -.It Dv VM_POLICY_FIXED_DOMAIN_ROUND_ROBIN -Select fixed-domain only policy. -Pages will be allocated from -.Dv domain -which must be set to a valid VM domain. -If page allocation fails, pages will be round-robin -allocated from another domain if -.Dv domain -is out of free pages. -.It Dv VM_POLICY_FIRST_TOUCH -Select first-touch policy. -Pages will be allocated from the NUMA domain which the thread -is currently scheduled upon. -Pages will not be allocated from another domain if the current domain -is out of free pages. -The only valid value for -.Dv domain -is -1. -.It Dv VM_POLICY_FIRST_TOUCH_ROUND_ROBIN -Select first-touch policy. -Pages will be allocated from the NUMA domain which the thread -is currently scheduled upon. -Pages will be allocated round-robin from another domain if the -current domain is out of free pages. -The only valid value for -.Dv domain -is -1. -.El -.Pp -Note that the VM might assign some pages from other domains. -For example, if an existing page allocation is covered by a superpage -allocation. -.Pp -.Fn numa_getaffinity -retrieves the -NUMA policy from the object specified by -.Fa which -and -.Fa id -and stores it in the space provided by -.Fa policy . -.Pp -.Fn numa_setaffinity -attempts to set the NUMA policy for the object specified by -.Fa which -and -.Fa id -to the policy in -.Fa policy . -.Sh RETURN VALUES -.Rv -std -.Sh ERRORS -.Va errno -can contain these error codes: -.Bl -tag -width Er -.It Bq Er EINVAL -The -.Fa level -or -.Fa which -argument was not a valid value. -.It Bq Er EINVAL -The -.Fa policy -argument specified when calling -.Fn numa_setaffinity -did not contain a valid policy. -.It Bq Er EFAULT -The policy pointer passed was invalid. -.It Bq Er ESRCH -The object specified by the -.Fa id -and -.Fa which -arguments could not be found. -.It Bq Er ERANGE -The -.Fa domain -in the given policy -was out of the range of possible VM domains available. -.It Bq Er EPERM -The calling process did not have the credentials required to complete the -operation. -.El -.Sh SEE ALSO -.Xr cpuset 1 , -.Xr numactl 1 , -.Xr cpuset 2 , -.Xr cpuset_getaffinity 2 , -.Xr cpuset_getid 2 , -.Xr cpuset_setaffinity 2 , -.Xr cpuset_setid 2 , -.Xr pthread_affinity_np 3 , -.Xr pthread_attr_affinity_np 3 , -.Xr numa 4 -.Sh HISTORY -The -.Nm -family of system calls first appeared in -.Fx 11.0 . -.Sh AUTHORS -.An Adrian Chadd Aq Mt adrian@FreeBSD.org -- cgit v1.2.3