aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/cpuset
Commit message (Collapse)AuthorAgeFilesLines
* cpuset(8): move to /bin/Enji Cooper2023-08-114-728/+0
| | | | | | | | | | | | | | | | | | | | | | Summary: This change moves /usr/bin/cpuset to /bin/cpuset so it is more readily available on hosts where the /usr partition might not be mounted at the time / has been mounted. Remove some complexity from rc.subr(8) since /bin is assumed to always be present if/when / is mounted. MFC after: 2 weeks MFC with: 0661f93892a2, 271d552379af Test Plan: - Test out rc.subr change. - Confirm that the installation logic does what's needed. Relnotes: yes (moving cpuset may impact strict file permissions/mode checking) Reviewers: kevans Subscribers: imp Differential Revision: https://reviews.freebsd.org/D40057
* Mark usage function as __dead2 in programs where it does not returnAlfonso Gregory2023-07-071-1/+1
| | | | | | | | In most cases, usage does not return, so mark them as __dead2. For the cases where they do return, they have not been marked __dead2. Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/735
* spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSDWarner Losh2023-05-121-1/+1
| | | | | | | | | The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
* Update/fix Makefile.depend for userlandSimon J. Gerraty2023-04-191-1/+1
|
* Revert "cpuset: add --count"Mateusz Guzik2023-02-162-65/+2
| | | | | | | | | | | | | | | | | | | | | The patch introduced a behavior change coming from getopt_long, namely the entire argument array would be parsed looking for opts, which affected uses spawning new processes without passing '--' to delimit where cpuset arguments end. [1] Apart from that turns out the change had a bug: using CPU_LEVEL_ROOT instead of CPU_LEVEL_WHICH, returning a different cpuset than intended. [2] The intended functionality is provided with nproc(1), which landed after this change. As such, revert for the time being. This reverts commit d9d5f2c042a51a9f0dd69eb1fc349efd81ffa483. Reported by: Mark Millard [1] Reported by: jbeich [2]
* Add nproc(1)Mateusz Guzik2023-02-081-0/+1
| | | | | | | | | | | This program prints the number of CPU threads it can run on, while respecting cpusets (or not, depending on switches). It aims to be compatible with nproc as found in GNU coreutils. Reviewed by: des Reviewed by: pstef Differential Revision: https://reviews.freebsd.org/D38386
* cpuset: add --countMateusz Guzik2023-02-042-2/+65
| | | | | | | | | | | | | | | | | | | | | | Can be used to count the number of hardware threads in the cpu set. For example: $ cpuset -g -p $$ pid 2440 mask: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 pid 2440 domain policy: first-touch mask: 0, 1 $ cpuset -g --count -p $$ 40 The intent is to replace calls to sysctl hw.ncpu and kern.smp.cpus which can be found in the tree, which are not adequate given existence of cpusets. Right now only -g -p combination is supported to reduce complexity. As anything else errors out, this can be expanded later as needed. Differential Revision: https://reviews.freebsd.org/D36351
* sys/bitset.h: reduce visibility of BIT_* macrosStefan Eßer2021-12-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add two underscore characters "__" to names of BIT_* and BITSET_* macros to move them to the implementation name space and to prevent a name space pollution due to BIT_* macros in 3rd party programs with conflicting parameter signatures. These prefixed macro names are used in kernel header files to define macros in e.g. sched.h, sys/cpuset.h and sys/domainset.h. If C programs are built with either -D_KERNEL (automatically passed when building a kernel or kernel modules) or -D_WANT_FREENBSD_BITSET (or this macros is defined in the source code before including the bitset macros), then all macros are made visible with their previous names, too. E.g., both __BIT_SET() and BIT_SET() are visible with either of _KERNEL or _WANT_FREEBSD_BITSET defined. The main reason for this change is that some 3rd party sources including sched.h have been found to contain conflicting BIT_* macros. As a work-around, parts of shed.h have been made conditional and depend on _WITH_CPU_SET_T being set when sched.h is included. Ports that expect the full functionality provided by sched.h need to be built with -D_WITH_CPU_SET_T. But this leads to conflicts if BIT_* macros are defined in that program, too. This patch set makes all of sched.h visible again without this parameter being passed and without any name space pollution due to BIT_* macros becoming visible when sched.h is included. This patch set will be backported to the STABLE branches, but ports will need to use -D_WITH_CPU_SET_T as long as there are supported releases that do not contain these patches. Reviewed by: kib, markj MFC after: 1 month Relnotes: yes Differential Revision: https://reviews.freebsd.org/D33235
* cpuset(1): Fix a typoGordon Bergling2020-10-101-1/+1
| | | | | | | | | - 'at at' -> 'at a' MFC after: 1 week Notes: svn path=/head/; revision=366611
* Fix EINVAL message when CPU binding information is requested for IRQ.Andrey V. Elsukov2020-10-091-1/+1
| | | | | | | | | | | | | | `cpuset -g -x N` along with requested information always prints message `cpuset: getdomain: Invalid argument'. The EINVAL is returned from kern_cpuset_getdomain(), since it doesn't expect CPU_LEVEL_WHICH and CPU_WHICH_IRQ parameters. To fix the error, do not call cpuset_getdomain() when `-x' is specified. MFC after: 1 week Notes: svn path=/head/; revision=366568
* cpuset(1): Fix some issues reported by mandocGordon Bergling2020-10-031-10/+10
| | | | | | | | | | - whitespace at end of input line - new sentence, new line MFC after: 1 week Notes: svn path=/head/; revision=366414
* cpuset(1): Update the usage message.Mark Johnston2020-08-171-6/+7
| | | | | | | | | | Parameters related to domain selection were not listed. MFC after: 1 week Sponsored by: Juniper Networks, Klara Inc. Notes: svn path=/head/; revision=364304
* Fix an off-by-one bug in the CPU and domain ID parser.Mark Johnston2019-09-011-2/+2
| | | | | | | | | | The "size" parameter is the size of the corresponding bit set, so the maximum CPU or domain index is size - 1. MFC after: 1 week Notes: svn path=/head/; revision=351671
* Missed a bit of doc change from r335921.Jamie Gritton2018-07-061-1/+1
| | | | | | | PR: 229266 Notes: svn path=/head/; revision=336035
* Allow jail names (not just IDs) to be specified for: cpuset(1), ipfw(8),Jamie Gritton2018-07-033-6/+11
| | | | | | | | | | | | | sockstat(1), ugidfw(8) These are the last of the jail-aware userland utilities that didn't work with names. PR: 229266 MFC after: 3 days Differential Revision: D16047 Notes: svn path=/head/; revision=335921
* Implement several enhancements to NUMA policies.Jeff Roberson2018-03-292-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | Add a new "interleave" allocation policy which stripes pages across domains with a stride or width keeping contiguity within a multi-page region. Move the kernel to the dedicated numbered cpuset #2 making it possible to assign kernel threads and memory policy separately from user. This also eliminates the need for the complicated interrupt binding code. Add a sysctl API for viewing and manipulating domainsets. Refactor some of the cpuset_t manipulation code using the generic bitset type so that it can be used for both. This probably belongs in a dedicated subr file. Attempt to improve the include situation. Reviewed by: kib Discussed with: jhb (cpuset parts) Tested by: pho (before review feedback) Sponsored by: Netflix, Dell/EMC Isilon Differential Revision: https://reviews.freebsd.org/D14839 Notes: svn path=/head/; revision=331723
* Document new NUMA related syscalls and utility options.Jeff Roberson2018-03-241-3/+25
| | | | | | | Sponsored by: Netflix, Dell/EMC Isilon Notes: svn path=/head/; revision=331508
* .Xr rctl(8) and cpuset(1).Edward Tomasz Napierala2018-02-261-2/+3
| | | | | | | | | PR: 225935 Submitted by: D. Ebdrup <debdrup at gmail.com> (earlier version) MFC after: 2 weeks Notes: svn path=/head/; revision=330024
* Implement 'domainset', a cpuset based NUMA policy mechanism. This allowsJeff Roberson2018-01-121-26/+127
| | | | | | | | | | | | | | | | | | | userspace to control NUMA policy administratively and programmatically. Implement domainset based iterators in the page layer. Remove the now legacy numa_* syscalls. Cleanup some header polution created by having seq.h in proc.h. Reviewed by: markj, kib Discussed with: alc Tested by: pho Sponsored by: Netflix, Dell/EMC Isilon Differential Revision: https://reviews.freebsd.org/D13403 Notes: svn path=/head/; revision=327895
* various: general adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-271-1/+3
| | | | | | | | | | | | | | | | | Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. No functional change intended. Notes: svn path=/head/; revision=326276
* DIRDEPS_BUILD: Update dependencies.Bryan Drewery2017-10-311-1/+0
| | | | | | | Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325188
* Fix markup for -j in cpuset(1) synopsisEric van Gyzen2016-07-291-2/+2
| | | | | | | | MFC after: 3 days Sponsored by: Dell Inc. Notes: svn path=/head/; revision=303520
* Add META_MODE support.Simon J. Gerraty2015-06-131-0/+18
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Off by default, build behaves normally. WITH_META_MODE we get auto objdir creation, the ability to start build from anywhere in the tree. Still need to add real targets under targets/ to build packages. Differential Revision: D2796 Reviewed by: brooks imp Notes: svn path=/head/; revision=284345
| * dirdeps.mk now sets DEP_RELDIRSimon J. Gerraty2015-06-081-2/+0
| | | | | | | | Notes: svn path=/projects/bmake/; revision=284172
| * Merge sync of headSimon J. Gerraty2015-05-272-18/+25
| |\ | |/ |/| | | Notes: svn path=/projects/bmake/; revision=283595
| * Merge head from 7/28Simon J. Gerraty2014-08-191-1/+1
| |\ | | | | | | | | | Notes: svn path=/projects/bmake/; revision=270164
| * | Updated dependenciesSimon J. Gerraty2014-05-161-1/+0
| | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=266219
| * | Updated dependenciesSimon J. Gerraty2014-05-101-0/+2
| | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=265802
| * | Updated dependenciesSimon J. Gerraty2013-03-111-0/+1
| | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=248169
| * | Updated dependenciesSimon J. Gerraty2013-02-161-2/+0
| | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=246868
| * | Sync FreeBSD's bmake branch with Juniper's internal bmake branch.Marcel Moolenaar2012-08-221-0/+19
| | | | | | | | | | | | | | | | | | | | | Requested by: Simon Gerraty <sjg@juniper.net> Notes: svn path=/projects/bmake/; revision=239572
* | | Document CPU_WHICH_DOMAIN and bump Dd for cpuset.1.John Baldwin2015-01-081-1/+1
| | | | | | | | | | | | | | | | | | | | | Missed in: r276829 Notes: svn path=/head/; revision=276849
* | | Create a cpuset mask for each NUMA domain that is available in theJohn Baldwin2015-01-082-17/+24
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | kernel via the global cpuset_domain[] array. To export these to userland, add a CPU_WHICH_DOMAIN level that can be used to fetch the mask for a specific domain. Add a -d flag to cpuset(1) that can be used to fetch the mask for a given domain. Differential Revision: https://reviews.freebsd.org/D1232 Submitted by: jeff (kernel bits) Reviewed by: adrian, jeff Notes: svn path=/head/; revision=276829
* | use .Mt to mark up email addresses consistently (part3)Baptiste Daroussin2014-06-231-1/+1
|/ | | | | | | | PR: 191174 Submitted by: Franco Fichtner <franco at lastsummer.de> Notes: svn path=/head/; revision=267773
* Add missing static keywords to cpuset(1)Ed Schouten2011-11-061-18/+18
| | | | Notes: svn path=/head/; revision=227160
* Add two more features to cpuset(1):John Baldwin2011-01-142-5/+43
| | | | | | | | | | | | - Add a new -C flag to create a new cpuset and move an existing pid into that set. - Allow 'all' to be specified for a cpu list (e.g. cpuset -s 1 -l all) which maps to the list of all CPUs in the system. MFC after: 2 weeks Notes: svn path=/head/; revision=217416
* Build usr.bin/ with WARNS=6 by default.Ed Schouten2010-01-021-1/+0
| | | | | | | Also add some missing $FreeBSD$ to keep svn happy. Notes: svn path=/head/; revision=201386
* Revert most part of 200420 as requested, as more review and polish isXin LI2009-12-131-0/+1
| | | | | | | needed. Notes: svn path=/head/; revision=200462
* Remove unneeded header includes from usr.bin/ except contributed code.Xin LI2009-12-111-1/+0
| | | | | | | Tested with: make universe Notes: svn path=/head/; revision=200420
* Sync manpage's synopsis with program's usage().Ruslan Ermilov2008-12-131-6/+6
| | | | | | | Trim whitespace at EOL. Notes: svn path=/head/; revision=186039
* MFp4:Bjoern A. Zeeb2008-11-292-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring in updated jail support from bz_jail branch. This enhances the current jail implementation to permit multiple addresses per jail. In addtion to IPv4, IPv6 is supported as well. Due to updated checks it is even possible to have jails without an IP address at all, which basically gives one a chroot with restricted process view, no networking,.. SCTP support was updated and supports IPv6 in jails as well. Cpuset support permits jails to be bound to specific processor sets after creation. Jails can have an unrestricted (no duplicate protection, etc.) name in addition to the hostname. The jail name cannot be changed from within a jail and is considered to be used for management purposes or as audit-token in the future. DDB 'show jails' command was added to aid debugging. Proper compat support permits 32bit jail binaries to be used on 64bit systems to manage jails. Also backward compatibility was preserved where possible: for jail v1 syscalls, as well as with user space management utilities. Both jail as well as prison version were updated for the new features. A gap was intentionally left as the intermediate versions had been used by various patches floating around the last years. Bump __FreeBSD_version for the afore mentioned and in kernel changes. Special thanks to: - Pawel Jakub Dawidek (pjd) for his multi-IPv4 patches and Olivier Houchard (cognet) for initial single-IPv6 patches. - Jeff Roberson (jeff) and Randall Stewart (rrs) for their help, ideas and review on cpuset and SCTP support. - Robert Watson (rwatson) for lots and lots of help, discussions, suggestions and review of most of the patch at various stages. - John Baldwin (jhb) for his help. - Simon L. Nielsen (simon) as early adopter testing changes on cluster machines as well as all the testers and people who provided feedback the last months on freebsd-jail and other channels. - My employer, CK Software GmbH, for the support so I could work on this. Reviewed by: (see above) MFC after: 3 months (this is just so that I get the mail) X-MFC Before: 7.2-RELEASE if possible Notes: svn path=/head/; revision=185435
* Support for CPU sets is going to appear in 7.1 before 8.0.John Baldwin2008-09-291-1/+1
| | | | | | | MFC after: 3 days Notes: svn path=/head/; revision=183464
* - Add support for interrupt bindig to cpuset(1). Interrupts are boundJeff Roberson2008-04-111-7/+19
| | | | | | | | | | by specifying the interrupt with -x <irq>. The irq number matches those displayed by vmstat -i. Sponsored by: Nokia Notes: svn path=/head/; revision=178093
* - When running a new command cause cpuset to operate on the per-thread maskJeff Roberson2008-03-122-4/+8
| | | | | | | | | | | | | | by default rather than the setmask. This is consistent with the linux tool and more consistent with the notion that the default level is the process level. The cpuset mask can still be modified by specifying the -c option. You can not set the per-thread and cpuset mask in a single command. - Update the man page to reflect this change. Contributed by: gallatin Notes: svn path=/head/; revision=177131
* Fix minor typo.Joel Dahl2008-03-111-2/+2
| | | | Notes: svn path=/head/; revision=177056
* - Remove the -i argument when running a command to simplify things aJeff Roberson2008-03-053-14/+177
| | | | | | | | | | | little bit and to prevent users from specifying a private mask that may later restrict other group changes. - Add a man page which brueffer generously contributed to. Sponsored by: Nokia Notes: svn path=/head/; revision=176812
* - Verify that when a user supplies a mask that is bigger than the kernelJeff Roberson2008-03-051-8/+7
| | | | | | | | | | | | | mask none of the upper bits are set. - Be more careful about enforcing the boundaries of masks and child sets. - Introduce a few more CPU_* macros for implementing these tests. - Change the cpusetsize argument to be bytes rather than bits to match other apis. Sponsored by: Nokia Notes: svn path=/head/; revision=176811
* Add a simple utility for manipulating cpusets. Man page will be availableJeff Roberson2008-03-022-0/+335
soon. - Lists of cpus may be specified with -l with ranges specified as low-high and commas between individual cpus and ranges. ie -l 0-2,4,6-8. - cpuset can modified -p pids, -t tids, or -s cpusetids. - cpuset can -g get the current mask for any of the above. Sponsored by: Nokia Notes: svn path=/head/; revision=176732