doc: fix tools docs formatting and clarity

This continues the editing from PR #276 with formatting and clarity
edits to have these tool documents blend in with the rest of the ACRN
documentation.  It also builds on PR #307 that set up the doc build
infrastructure to allow leaving these tool docs within the tools/
folder.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
This commit is contained in:
David B. Kinder 2018-05-29 15:54:57 -07:00 committed by David Kinder
parent adcfe03482
commit 50324e5876
4 changed files with 195 additions and 161 deletions

View File

@ -5,5 +5,6 @@ Tools
.. toctree:: .. toctree::
:glob: :glob:
:maxdepth: 1
tools/** tools/**

View File

@ -1,34 +1,26 @@
``acrnctl`` .. _acrnctl:
===========
acrnctl
#######
DESCRIPTION Description
___________ ***********
``acrnctl``: The ``acrnctl`` tool can help user create, delete, launch and stop UOSs. The ``acrnctl`` tool helps users create, delete, launch, and stop a User
It runs under Service OS, and UOSs should be based on ``acrn-dm`` OS (UOS). The tool runs under the Service OS, and UOSs should be based
on ``acrn-dm``.
USAGE
_____
To see what it can do, just run: Usage
*****
:: You can see the available ``acrnctl`` commands by running:
# acrnctl .. code-block:: none
or
::
# acrnctl help # acrnctl help
you may see:
::
support: support:
list list
start start
@ -37,62 +29,72 @@ you may see:
add add
Use acrnctl [cmd] help for details Use acrnctl [cmd] help for details
There are examples: Here are some usage examples:
(1) add a VM Add a VM
Each time you can just add one VM. Suppose you have an UOS ========
launch script, such as launch_UOS.sh
you can run: The ``add`` command lets you add a VM by specifying a
script that will launch a UOS, for example ``launch_UOS.sh``:
:: .. code-block:: none
# acrnctl add launch_UOS.sh -U 1 # acrnctl add launch_UOS.sh -U 1
vm1-14:59:30 added vm1-14:59:30 added
Note that, launch script shoud be able to launch ONE UOS. If Note that the launch script must only launch one UOS instance.
it fail, it is better to print some error logs, to tell user The VM name is important. ``acrnctl`` searches VMs by their
the reason, so that he knows how to solve it. names so duplicate VM names are not allowed. If the
The vmname is important, the acrnctl searchs VMs by their launch script changes the VM name at launch time, ``acrnctl``
names. so duplicated VM names are not allowed. Beside, if the will not recognize it.
launch script changes VM name at launch time, acrnctl will
not recgonize it.
(2) delete VMs Delete VMs
==========
:: Use the ``delete`` command with a VM name to delete that VM:
.. code-block:: none
# acrnctl del vm1-14:59:30 # acrnctl del vm1-14:59:30
(3) show VMs List VMs
========
:: Use the ``list`` command to display VMs and their state:
.. code-block:: none
# acrnctl list # acrnctl list
vm1-14:59:30 untracked vm1-14:59:30 untracked
vm-yocto stop vm-yocto stopped
vm-android stop vm-android stopped
(4) start VM Start VM
========
you can start a vm with 'stop' status, each time can start If a VM is in a ``stopped`` state, you can start it with the ``start``
one VM. command:
:: .. code-block:: none
# acrnctl start vm-yocto # acrnctl start vm-yocto
(5) stop VM Stop VM
=======
you can stop VMs, if their status is not 'stop' Use the ``stop`` command to stop one or more running VM:
:: .. code-block:: none
# acrnctl stop vm-yocto vm1-14:59:30 vm-android # acrnctl stop vm-yocto vm1-14:59:30 vm-android
BUILD Build and Install
_____ *****************
:: Source code for ``acrnctl`` is in the ``tools/acrn-manager`` folder.
Change to that folder and run:
.. code-block:: none
# make # make
# make install

View File

@ -1,43 +1,55 @@
``acrnlog`` .. _acrnlog:
===========
DESCRIPTION acrnlog
########### #######
``acrnlog`` is a userland tool to capture ACRN hypervisor log, it runs as an
SOS service at boot. It captures two kinds of logs:
- log of current running; Description
***********
- log of last running if crashed and logs remaining. ``acrnlog`` is a userland tool used to capture a ACRN hypervisor log. It runs as an
SOS service at boot, capturing two kinds of logs:
The path to save log files is ``/tmp/acrnog/``, so the log files would be lost - log of the currently running hypervisor
after reset. - log of last running hypervisor if it crashed and the logs remain.
USAGE Log files are saved in ``/tmp/acrnlog/``, so the log files would be lost
##### after a system reset.
The ``acrnlog`` tool is launched as a service at boot, with 4 1MB log files limited.
To change the log file limitation:
- temporary change: Usage
Stop the ``acrnlog`` service: *****
:: The ``acrnlog`` tool is launched as a service at boot, and limited to
supporting four 1MB log files by default. You can change this log file
limitation temporarily or permanently.
Temporary log file changes
==========================
You can temporarily change the log file setting by following these
steps:
1. Stop the ``acrnlog`` service:
.. code-block:: none
# systemctl disable acrnlog # systemctl disable acrnlog
Restart ``acrnlog`` running in backgroud with size and number of files. 2. Restart ``acrnlog``, running in the background, and specify the new
For example: number of log files and their size (in MB). For example:
:: .. code-block:: none
# acrnlog -n 8 -s 4 & # acrnlog -n 8 -s 4 &
Use ``get_loglevel``/``set_loglevel`` to query and change the hypervisor loglevel. You can use ``get_loglevel`` and ``set_loglevel`` to query and change
the hypervisor loglevel.
The ``mem_loglevel`` controls log to be saved using ``acrnlog``, while The ``mem_loglevel`` command controls the log to be saved using
``console_loglevel`` controls log to output to console. For example: ``acrnlog``, while the ``console_loglevel`` command controls the log
output to the console. For example:
:: .. code-block:: none
ACRN:\>get_loglevel ACRN:\>get_loglevel
console_loglevel: 2, mem_loglevel: 4 console_loglevel: 2, mem_loglevel: 4
@ -45,19 +57,38 @@ The ``mem_loglevel`` controls log to be saved using ``acrnlog``, while
ACRN:\>get_loglevel ACRN:\>get_loglevel
console_loglevel: 2, mem_loglevel: 5 console_loglevel: 2, mem_loglevel: 5
- permanent change: Permanent log file changes
Edit ``/usr/lib/systemd/system/acrnlog.service`` to attached the ``-n`` and ``-s`` options to the ``ExecStart`` cmd, and restart the service. For example: ==========================
:: You can also permanently change the log file settings by
editing ``/usr/lib/systemd/system/acrnlog.service`` and use the ``-n``
and ``-s`` options on the ``ExecStart`` cmd, and restart the service.
For example, ``acrnlog.service`` could have these parameters added:
.. code-block:: none
ExecStart=/usr/bin/acrnlog -n 8 -s 4 ExecStart=/usr/bin/acrnlog -n 8 -s 4
and then restart the service with:
BUILD & INSTALL .. code-block:: none
##################
:: # systemctl daemon-reload
# systemctl restart acrnlog
Build and Install
*****************
Source code for the ``acrnlog`` tools is in the ``tools/acrnlog``
folder. Build and install the tools from source using:
.. code-block:: none
# make # make
# make install
copy acrnlog to ``/usr/bin/`` and copy ``acrnlog.service`` to ``/usr/lib/systemd/system/`` and if you changed the ``acrnlog.service`` file, install it using:
.. code-block:: none
# cp acrnlog.service /usr/lib/systemd/system/

View File

@ -1,73 +1,73 @@
``acrntrace`` .. _acrntrace:
==============
DESCRIPTION acrntrace
########### #########
``acrntrace``: is a tool running on SOS, to capture trace data. Description
scripts directory includes scripts to analyze the trace data. ***********
USAGE ``acrntrace`` is a tool running on the Service OS (SOS) to capture trace data.
##### A ``scripts`` directory includes scripts to analyze the trace data.
Capture trace data on SOS Usage
*****
1) Launch ``acrntrace`` 1. On the SOS, clear buffers before starting a trace, with:
Capture buffered trace data: .. code-block:: none
::
# acrntrace
or clear buffer before tracing start:
::
# acrntrace -c # acrntrace -c
Trace files are created under ``/tmp/acrntrace/``, directory name with time string eg: ``20171115-101605`` #. Start capturing buffered trace data with:
2) To stop acrntrace .. code-block:: none
:: # acrntrace
# q <enter> Trace files are created under ``/tmp/acrntrace/``, with a
date-time-based directory name such as ``20171115-101605``
3) Copy the trace data to linux pc #. When done, stop a running ``acrntrace``, with:
:: .. code-block:: none
# scp -r /tmp/acrntrace/20171115-101605/ xxx@10.239.142.239:/home/xxxx/trace_data q <enter>
#. Analysis of the collected data is done on a Linux PC, so you'll need
to copy the collected trace data to your Linux system (using ``scp`` is
recommended):
**Analyze the trace data on Linux PC** .. code-block:: none
1) Run the python script to analyze the ``vm_exits``: # scp -r /tmp/acrntrace/20171115-101605/ \
username@hostname:/home/username/trace_data
:: Replace username and hostname with appropriate values.
# acrnalyze.py -i /home/xxxx/trace_data/20171115-101605/0 -o /home/xxxx/trac #. On the Linux system, run the provided python2 script to analyze the
e_data/20171115-101605/cpu0 --vm_exit ``vm_exits`` (currently only vm_exit analysis is supported):
- "--vm_exit" specify the analysis to do, currently, only vm_exit analysis
is supported.
- A preprocess would be taken out to make the trace data start and end with
an VM_ENTER, and a copy of original data file is saved with suffix ".orig";
- Analysis report would be given on the std output and in a csv file with
name specified via "-o outpu_file";
Script usage:
[Usage] acrnalyze.py [options] [value] ...
[options]
-h: print this message
-i, --ifile=[string]: input file
-o, --ofile=[string]: output file
--vm_exit: to generate vm_exit report
The scripts require bash and python2. .. code-block:: none
BUILD # acrnalyze.py -i /home/xxxx/trace_data/20171115-101605/0 \
##### -o /home/xxxx/trace_data/20171115-101605/cpu0 --vm_exit
:: - A preprocess makes some changes to the datafile for processing but
a copy of the original data file is saved with suffix ``.orig``.
- Analysis report is written to stdout, or to a CSV file if
a filename is specified using ``-o filename``.
- The scripts require bash and python2.
Build and Install
*****************
The source files for ``acrntrace`` are in the ``tools/acrntrace`` folder,
and can be built and installed using:
.. code-block:: none
# make # make
# make install
The processing scripts are in ``tools/acrntrace/scripts`` and need to be
copied to and run on your Linux system.