Operating systems, development tools, and professional services
for connected embedded systems

Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation

ap

ap

Manage adaptive partitions

Syntax:

Adaptive partitioning options for the ap utility:

ap [-v...] [show] <partition_path>

ap [-v...] show  [proc/<pid/>partition_path]
         [partition_path ...]

ap [-v...] create [<psuedo_partition_path | -p] <real_partition_path> [extra_options...]

ap [-v...] delete <partition_path>

ap [-v...] spawn <partition_path>|<partition_id> <executable_name>


ap [-v...] modify [-b budget] [-B critical_budget] partition_name

ap [-v...] modify [-y bankruptcy_policy ...] [-S scheduling_policy...]
           [-s security_policy ...] [-w windowsize_ms]



Options specific to scheduler partitions:

ap [-v...] create -b budget [-B critical_budget] partition_name

ap [-v...] modify <real_scheduler_partition_path> [options]

ap [-v...] modify [-b budget] [-B critical_budget] partition_name

ap [-v...] modify [-y bankruptcy_policy ...] [-S scheduling_policy...] [-s security_policy ...] [-w windowsize_ms]

ap [-v...] move /partition/sched/<from> /partition/sched/<to> [<pid>]

ap [-v...] show [-d delay] [-f shorthand] [-l] [partition_name ...]

Runs on:

Neutrino

Options:

-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 thread 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" for SchedCtl() in the Neutrino Library Reference.

-s security_policy ...
Specify one or more security policies to add to the partitioned 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 for SchedCtl() in the Neutrino Library Reference.


Note: Once you modify a security policy, they can't be removed.

-v...
Be verbose. More v's means more verbosity and details. For example, to display more information with the show command for scheduler partitions:
  • -v -- displays 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 -- displays 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.

Note: For scheduler partitions, 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. For a scheduler partition, 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" for SchedCtl() in the Neutrino Library Reference.

Description:

Use the ap 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.


Note: You can't include slashes (/) in a partition name.

To launch an application into a partition, use the -Xaps option to the on command.

Use create to make a new partition.

Examples:

Use the modify command to modify the attributes of an existing partition. Only real partitions can be modified.

Use the show command to display information about a real scheduler partition. The show command is optional.

Examples:

Create a partition called Drivers with a budget of 20% and a critical budget of 5 milliseconds:

ap create -b 20 -B 5 Drivers

Change the Drivers partition's budget to 25% and its critical budget to 7 milliseconds:

ap modify -b 25 -B 7 Drivers

Specify a bankruptcy policy of recommended and a security policy of root_makes_partitions for the entire system:

ap modify -y recommended -s root_makes_partitions

Display the amount of the budget and critical budget that the partitions are using, every 2 seconds:

ap show -l -d 20 -f usage

Since usage is the default shorthand for the -f option, the above command is the same as:

ap show -l -d 20

See also:

on, pidin

SchedCtl() in the Neutrino Library Reference

Adaptive Partitioning User's Guide