cvs commit: src/sys/conf files src/sys/kern init_main.c
kern_cpuset.c kern_thread.c syscalls.master src/sys/sys _types.h
cpuset.h proc.h types.h src/lib/libc/sys Symbol.map
Jeff Roberson
jeff at FreeBSD.org
Sun Mar 2 07:39:23 UTC 2008
jeff 2008-03-02 07:39:22 UTC
FreeBSD src repository
Modified files:
sys/conf files
sys/kern init_main.c kern_thread.c syscalls.master
sys/sys _types.h types.h proc.h
lib/libc/sys Symbol.map
Added files:
sys/kern kern_cpuset.c
sys/sys cpuset.h
Log:
Add cpuset, an api for thread to cpu binding and cpu resource grouping
and assignment.
- Add a reference to a struct cpuset in each thread that is inherited from
the thread that created it.
- Release the reference when the thread is destroyed.
- Add prototypes for syscalls and macros for manipulating cpusets in
sys/cpuset.h
- Add syscalls to create, get, and set new numbered cpusets:
cpuset(), cpuset_{get,set}id()
- Add syscalls for getting and setting affinity masks for cpusets or
individual threads: cpuid_{get,set}affinity()
- Add types for the 'level' and 'which' parameters for the cpuset. This
will permit expansion of the api to cover cpu masks for other objects
identifiable with an id_t integer. For example, IRQs and Jails may be
coming soon.
- The root set 0 contains all valid cpus. All thread initially belong to
cpuset 1. This permits migrating all threads off of certain cpus to
reserve them for special applications.
Sponsored by: Nokia
Discussed with: arch, rwatson, brooks, davidxu, deischen
Reviewed by: antoine
Revision Changes Path
1.10 +15 -0 src/lib/libc/sys/Symbol.map
1.1275 +1 -0 src/sys/conf/files
1.291 +2 -0 src/sys/kern/init_main.c
1.1 +907 -0 src/sys/kern/kern_cpuset.c (new)
1.266 +5 -1 src/sys/kern/kern_thread.c
1.238 +13 -0 src/sys/kern/syscalls.master
1.24 +3 -0 src/sys/sys/_types.h
1.1 +146 -0 src/sys/sys/cpuset.h (new)
1.504 +2 -1 src/sys/sys/proc.h
1.98 +4 -0 src/sys/sys/types.h
More information about the cvs-src
mailing list