Re: [RFC] Multiprocessor Control Interfaces

Jason Baietto
2001-12-11T01:59:54Z

Some people have asked me for more information before they'll attempt
to download and play with this stuff, so here's the --help output from
the latest version of the run(1) command:

Usage: run [OPTIONS] { COMMAND [ARGS] | PROCESS_SPECIFIER }
Set scheduling parameters and CPU bias for a new process or a list
of existing processes.

OPTIONS can be one or more of the following options:

-b, --bias=LIST Set the CPU bias to the LIST of CPUs;
CPUs are numbered starting from 0
-s, --policy=POLICY Set the scheduling policy to POLICY
-P, --priority=LEVEL Set the scheduling priority to LEVEL
-q, --quantum=QUANTUM Set the SCHED_RR quantum to QUANTUM
-v, --version Output version information and exit
-h, --help Display this help and exit

PROCESS_SPECIFIER is exactly one of the following options:

-p, --pid=LIST Specify LIST of existing PIDs to modify
-g, --group=LIST Specify LIST of process groups to modify; all
existing processes in the groups will be modified
-u, --user=LIST Specify LIST of users to modify; all existing
processes owned by the users will be modified
-n, --name=LIST Specify LIST of existing process names to modify

Multiple comma separated values can be specified for all LISTs and ranges
are allowed where appropriate (e.g. "run -b 0,1-3 autopilot").

See the run(1) man page for more information.

Take care,
Jason

> Hello All,
>
> I'm currently working on adding multiprocessor control interfaces
> to Linux. My current efforts can be found here:
>
> http://www.ccur.com/realtime/oss
>
> These are clean-room implementations of similar tools that have
> been available in our proprietary *nix for quite some time, and
> so the interfaces have a fair amount of mileage under their belts.
> Note that the scope is somewhat wider than just MP.
>
> There has been some discussion of "chaff" and other interfaces
> recently on this list, so in an effort to hopefully move towards
> a standard more quickly I've gotten permission from my employer
> to GPL the code I've written. I'm very interested in comments
> and feedback on any or all of this work.
>
> Here's the README file from the package:
>
>
> This package contains:
>
> run(1)
> A multiprocessor control command line tool.
>
> mpadvise(3)
> A multiprocessor control library interface.
>
> These services rely upon Robert Love's CPU Affinity patch
> (version 2.4.16-1 was used for testing) which is available here:
>
> http://www.kernel.org/pub/linux/kernel/people/rml/cpu-affinity/v2.4/
>
> To build the code, simply unpack it and type "make". The code has
> been tested on Red Hat 7.1 and 7.2 systems, though it is still
> fairly new and almost certainly contains bugs.
>
> An attempt was made to abstract the "cpuset" representation of
> the current system in order to have binaries that in theory
> could work on systems with more than 32 cpus. For this to work,
> the run(1) command would need to be linked against a shared
> mpadvise(3) library (currently only a static library is made).
>
> This code is being released in the hopes that it will become
> the basis for the Linux multiprocessor control standard interfaces.
> I am very interested in getting feedback on this package,
> so please contact me via email or LKML if you have any.
>
> This source code is licensed under the GNU GPL Version 2.
> Copyright (C) 2001 Concurrent Computer Corporation
>
> --
> Jason Baietto
> jason.baietto@ccur.com
> http://www.ccur.com/realtime/oss