The user-level tool can be also used for benchmarking purpose, in fact it is possible to pass an INI files that contains commands to the tool. The list of the available commands and sections can be found below.
- Section: group
- install=group_name: install a new group with "group_name" as descriptor
- loadDescriptor=group_name: load an existing group with "group_name" descriptor
- loadID=ID: load an existing group with id equal to ID
- Section: message
- write=message: write the message "message" into the previously loaded group
- read=size_to_read: read "size_to_read" bytes from a previously loaded group
- delay=value: set the delay of the currently loaded group to "value"
- revoke_delay=1: revoke all the delayed message of the current group
- flush=1: insert all the delayed message into the FIFO queue
- Section: synch
- sleep=1: put the current process on sleep
- awake=1: awake all the process of a group which was previously put on sleep
- Section: config
- max_message_size=value: set the 'max_message_size' param to "value"
- max_storage_size=value: set the 'max_storage_size' param to "value"
- garbage_collector_ratio=value: set the 'garbage_collector_ratio' param to "value"
- include_structure_size=value: set the 'include_structure_size' param to "value" (0 or 1)
- read_test=1: read sequentially all the group's parameters from sysfs (useful for performance checks)
- Section: security
- strict_mode=value: set the strict mode flag to "value" (0 or 1)
- change_owner=PID: change the current group's owner to "PID"
- Section: testing
- fork=value: fork the current process in order to generate up to "value" childs. Very useful to test concurrency access.
See the "config.ini" file inside the tool directory for an example.