Manage adaptive scheduler partitions
aps show [-d delay] [-f shorthand] [-l] [-v...]
[partition_name ...]
aps create -b budget [-B critical_budget] partition_name
aps modify [-b budget] [-B critical_budget] partition_name
aps modify [-y bankruptcy_policy ...] [-S scheduling_policy...]
[-s security_policy ...] [-w windowsize_ms]
Neutrino
- -B milliseconds
- Specify the critical CPU budget, in milliseconds.
The default is 0.
- -b budget
- Specify the CPU budget as a percentage.
- -d delay
- The delay period, in tenths of a second, when using the -l
option.
The default is 50.
- -f shorthand
- Display the information specified by shorthand:
- all — all the below
- overall_stats — information about the last
bankruptcy
- scheduler — parameters for the thread scheduler, including
the current security setting, bankruptcy policy, and the size of the
averaging window
- partitions — information about the partitions,
including their names, IDs, parent IDs, budgets, critical budgets,
and the process and thread IDs of the last thread to go bankrupt
- usage — the amount of budget and critical budget
that each partition is currently using
The default is usage.
- -l
- (“el”) Loop mode; display the information at the interval
specified by the -d option.
- -S scheduling_policy …
- Specify the policies for the adaptive partitioning scheduler.
Each scheduling_policy must be one of:
- normal
- freetime_by_ratio
- bmp_safety
The default is normal.
For more information about the policies, see
“Scheduling policies”
in the entry for SchedCtl() in the
Neutrino Library Reference.
- -s security_policy …
- Specify the security policies to add to the system.
Each security_policy must be one of:
- root0_overall
- root_makes_partitions
- sys_makes_partitions
- parent_modifies
- nonzero_budgets
- root_makes_critical
- sys_makes_critical
- root_joins
- sys_joins
- parent_joins
- join_self_only
- partitions_locked
- recommended
- flexible
- basic
- none
The default is none.
For more information about the policies, see the description of
SCHED_APS_ADD_SECURITY
in the entry for SchedCtl() in the
Neutrino Library Reference.
|
Once you've added a security policy, you can't remove it, except by
rebooting the system.
|
- -v...
- Be verbose; display more information with the show command:
- -v — display the budget usage over the last
averaging window, window 2 (typically 10 times the length of the
averaging window), and window 3 (typically 100 times the length of the
averaging window)
- -vv — display the budget usage and critical budget
usage over the last averaging window, window 2, and window 3
- -w windowsize_ms
- Set the size of the averaging window, in milliseconds, for the system.
You can set the window size to any value from 8 ms to 400 ms.
|
If you change the tick size of the system at runtime, do so before defining
the adaptive partitioning scheduler's window size.
That's because Neutrino converts the window size from milliseconds to
clock ticks for internal use.
|
For more information, see
“Choosing the window size”
in the System Considerations chapter of the
Adaptive Partitioning User's Guide.
- -y bankruptcy_policy …
- Set the bankruptcy policy for the system to the specified items.
Each bankruptcy_policy must be one of:
- cancel_budget — set the offending partition's
critical budget to zero, which forces the
partition to be scheduled by its percentage CPU budget only.
This also means that a second bankruptcy can't occur.
- log — not currently implemented.
- reboot — cause the system to crash with a brief
message identifying the offending partition.
This is the most severe response, suggested for use while
testing a product, to make sure bankruptcies are never ignored.
You probably shouldn't use this option in your finished product.
- basic — deliver bankruptcy-notification events and
make the partition out-of-budget for the rest of the scheduling window
(nominally 100 ms).
- recommended — the combination of
cancel_budget and log.
- none — do nothing.
The default is basic.
For more information about the policies, see
“Handling bankruptcy”
in the entry for SchedCtl() in the
Neutrino Library Reference.
Use the aps command to create, modify, and query
adaptive partitions from the command line, as well as to set the
averaging window, and the security and bankruptcy policies for the entire
system.
|
You can't include slashes (/) in a partition name. |
To launch an application into a partition, use the -Xaps option
to the
on
command.
Create a partition called Drivers with a budget of 20%
and a critical budget of 5 milliseconds:
aps create -b 20 -B 5 Drivers
Change the Drivers partition's budget to 25% and its critical
budget to 7 milliseconds:
aps modify -b 25 -B 7 Drivers
Specify a bankruptcy policy of recommended and a
security policy of root_makes_partitions for the entire system:
aps modify -y recommended -s root_makes_partitions
Display the amount of the budget and critical budget that the partitions
are using, every 2 seconds:
aps show -l -d 20 -f usage
Since usage is the default shorthand for the -f option,
the above command is the same as:
aps show -l -d 20
on,
pidin
SchedCtl()
in the Neutrino Library Reference
Adaptive Partitioning User's Guide