DOC ONLY: fix g2 build documentation
Removed a broken paragraph, replaced it with a link. Some nuisance white-space cleanups courtesy of emacs: (add-hook 'before-save-hook 'delete-trailing-whitespace) Change-Id: Ib348107c2dc0df8249461591015347d7b4f6fa4a Signed-off-by: Dave Barach <dave@barachs.net>
This commit is contained in:
@ -26,7 +26,7 @@ of files: rule/function definitions, and target lists.
|
|||||||
- Build target lists come from CMakeLists.txt files found in subdirectories, which are named in the SUBDIRS list in .../src/CMakeLists.txt
|
- Build target lists come from CMakeLists.txt files found in subdirectories, which are named in the SUBDIRS list in .../src/CMakeLists.txt
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# subdirs - order matters
|
# subdirs - order matters
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@ -46,7 +46,7 @@ of files: rule/function definitions, and target lists.
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
- The vpp cmake configuration hierarchy discovers the list of plugins to be built by searching for subdirectories in .../src/plugins which contain CMakeLists.txt files
|
- The vpp cmake configuration hierarchy discovers the list of plugins to be built by searching for subdirectories in .../src/plugins which contain CMakeLists.txt files
|
||||||
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -61,13 +61,13 @@ of files: rule/function definitions, and target lists.
|
|||||||
get_filename_component(dir ${f} DIRECTORY)
|
get_filename_component(dir ${f} DIRECTORY)
|
||||||
add_subdirectory(${dir})
|
add_subdirectory(${dir})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
How to write a plugin CMakeLists.txt file
|
How to write a plugin CMakeLists.txt file
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
It's really quite simple. Follow the pattern:
|
It's really quite simple. Follow the pattern:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
add_vpp_plugin(mactime
|
add_vpp_plugin(mactime
|
||||||
SOURCES
|
SOURCES
|
||||||
@ -83,7 +83,7 @@ It's really quite simple. Follow the pattern:
|
|||||||
|
|
||||||
API_TEST_SOURCES
|
API_TEST_SOURCES
|
||||||
mactime_test.c
|
mactime_test.c
|
||||||
)
|
)
|
||||||
|
|
||||||
Adding a target elsewhere in the source tree
|
Adding a target elsewhere in the source tree
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
@ -92,9 +92,11 @@ Within reason, adding a subdirectory to the SUBDIRS list in
|
|||||||
.../src/CMakeLists.txt is perfectly OK. The indicated directory will
|
.../src/CMakeLists.txt is perfectly OK. The indicated directory will
|
||||||
need a CMakeLists.txt file.
|
need a CMakeLists.txt file.
|
||||||
|
|
||||||
|
.. _building-g2:
|
||||||
|
|
||||||
Here's how we build the g2 event data visualization tool:
|
Here's how we build the g2 event data visualization tool:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
option(VPP_BUILD_G2 "Build g2 tool." OFF)
|
option(VPP_BUILD_G2 "Build g2 tool." OFF)
|
||||||
if(VPP_BUILD_G2)
|
if(VPP_BUILD_G2)
|
||||||
@ -134,7 +136,7 @@ how the top-level Makefile and .../build-root/Makefile set all of the
|
|||||||
cmake arguments. One strategy to enable an optional component is fairly
|
cmake arguments. One strategy to enable an optional component is fairly
|
||||||
obvious. Add -DVPP_BUILD_G2=ON to vpp_cmake_args.
|
obvious. Add -DVPP_BUILD_G2=ON to vpp_cmake_args.
|
||||||
|
|
||||||
That would work, of course, but it's not a particularly elegant solution.
|
That would work, of course, but it's not a particularly elegant solution.
|
||||||
|
|
||||||
Tinkering with build options: ccmake
|
Tinkering with build options: ccmake
|
||||||
------------------------------------
|
------------------------------------
|
||||||
@ -151,25 +153,25 @@ Here's approximately what you'll see:
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
CCACHE_FOUND /usr/bin/ccache
|
CCACHE_FOUND /usr/bin/ccache
|
||||||
CMAKE_BUILD_TYPE
|
CMAKE_BUILD_TYPE
|
||||||
CMAKE_INSTALL_PREFIX /scratch/vpp-gate/build-root/install-vpp-nati
|
CMAKE_INSTALL_PREFIX /scratch/vpp-gate/build-root/install-vpp-nati
|
||||||
DPDK_INCLUDE_DIR /scratch/vpp-gate/build-root/install-vpp-nati
|
DPDK_INCLUDE_DIR /scratch/vpp-gate/build-root/install-vpp-nati
|
||||||
DPDK_LIB /scratch/vpp-gate/build-root/install-vpp-nati
|
DPDK_LIB /scratch/vpp-gate/build-root/install-vpp-nati
|
||||||
MBEDTLS_INCLUDE_DIR /usr/include
|
MBEDTLS_INCLUDE_DIR /usr/include
|
||||||
MBEDTLS_LIB1 /usr/lib/x86_64-linux-gnu/libmbedtls.so
|
MBEDTLS_LIB1 /usr/lib/x86_64-linux-gnu/libmbedtls.so
|
||||||
MBEDTLS_LIB2 /usr/lib/x86_64-linux-gnu/libmbedx509.so
|
MBEDTLS_LIB2 /usr/lib/x86_64-linux-gnu/libmbedx509.so
|
||||||
MBEDTLS_LIB3 /usr/lib/x86_64-linux-gnu/libmbedcrypto.so
|
MBEDTLS_LIB3 /usr/lib/x86_64-linux-gnu/libmbedcrypto.so
|
||||||
MUSDK_INCLUDE_DIR MUSDK_INCLUDE_DIR-NOTFOUND
|
MUSDK_INCLUDE_DIR MUSDK_INCLUDE_DIR-NOTFOUND
|
||||||
MUSDK_LIB MUSDK_LIB-NOTFOUND
|
MUSDK_LIB MUSDK_LIB-NOTFOUND
|
||||||
PRE_DATA_SIZE 128
|
PRE_DATA_SIZE 128
|
||||||
VPP_API_TEST_BUILTIN ON
|
VPP_API_TEST_BUILTIN ON
|
||||||
VPP_BUILD_G2 OFF
|
VPP_BUILD_G2 OFF
|
||||||
VPP_BUILD_PERFTOOL OFF
|
VPP_BUILD_PERFTOOL OFF
|
||||||
VPP_BUILD_VCL_TESTS ON
|
VPP_BUILD_VCL_TESTS ON
|
||||||
VPP_BUILD_VPPINFRA_TESTS OFF
|
VPP_BUILD_VPPINFRA_TESTS OFF
|
||||||
|
|
||||||
CCACHE_FOUND: Path to a program.
|
CCACHE_FOUND: Path to a program.
|
||||||
Press [enter] to edit option Press [d] to delete an entry CMake Version 3.10.2
|
Press [enter] to edit option Press [d] to delete an entry CMake Version 3.10.2
|
||||||
Press [c] to configure
|
Press [c] to configure
|
||||||
Press [h] for help Press [q] to quit without generating
|
Press [h] for help Press [q] to quit without generating
|
||||||
|
@ -16,7 +16,7 @@ A typical event definition and logging call looks like this:
|
|||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
ELOG_TYPE_DECLARE (e) =
|
ELOG_TYPE_DECLARE (e) =
|
||||||
{
|
{
|
||||||
.format = "tx-msg: stream %d local seq %d attempt %d",
|
.format = "tx-msg: stream %d local seq %d attempt %d",
|
||||||
.format_args = "i4i4i4",
|
.format_args = "i4i4i4",
|
||||||
@ -35,7 +35,7 @@ pretty-prints enumerated values:
|
|||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
ELOG_TYPE_DECLARE (e) =
|
ELOG_TYPE_DECLARE (e) =
|
||||||
{
|
{
|
||||||
.format = "get_or_create: %s",
|
.format = "get_or_create: %s",
|
||||||
.format_args = "t4",
|
.format_args = "t4",
|
||||||
@ -104,17 +104,10 @@ highly scalable, supporting O(1e7 events) and O(1e3 discrete display "tracks").
|
|||||||
G2 displays binary data generated by the vppinfra "elog.[ch]" logger component,
|
G2 displays binary data generated by the vppinfra "elog.[ch]" logger component,
|
||||||
and also supports the CPEL file format, as described in this section.
|
and also supports the CPEL file format, as described in this section.
|
||||||
|
|
||||||
Building
|
Building G2
|
||||||
--------------
|
-----------
|
||||||
|
|
||||||
.. code-block:: console
|
This link describes :ref:`how to build G2 <building-g2>`
|
||||||
|
|
||||||
$ cd build-root
|
|
||||||
$ make g2-install
|
|
||||||
$ ./install-native/g2/bin/g2 --help
|
|
||||||
g2 [--ticks-per-us <value>][--cpel-input <filename>] [--clib-input <filename]>
|
|
||||||
G2 (x86_64 GNU/Linux) major version 3.0
|
|
||||||
Built Wed Feb 3 10:58:12 EST 2016
|
|
||||||
|
|
||||||
Setting the Display Preferences
|
Setting the Display Preferences
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
@ -131,7 +124,7 @@ Simply un-comment one of the stanzas shown below, or experiment as desired.
|
|||||||
* event_selector_lines=20
|
* event_selector_lines=20
|
||||||
* drawbox_height=800
|
* drawbox_height=800
|
||||||
* drawbox_width=600
|
* drawbox_width=600
|
||||||
*
|
*
|
||||||
* new mac w/ no monitor:
|
* new mac w/ no monitor:
|
||||||
* event_selector_lines=20
|
* event_selector_lines=20
|
||||||
* drawbox_height=1200
|
* drawbox_height=1200
|
||||||
@ -141,7 +134,7 @@ Simply un-comment one of the stanzas shown below, or experiment as desired.
|
|||||||
* drawbox_width=1200
|
* drawbox_width=1200
|
||||||
* drawbox_height=1000
|
* drawbox_height=1000
|
||||||
* event_selector_lines=25
|
* event_selector_lines=25
|
||||||
*
|
*
|
||||||
* for making screenshots on a Macbook Pro
|
* for making screenshots on a Macbook Pro
|
||||||
* drawbox_width=1200
|
* drawbox_width=1200
|
||||||
* drawbox_height=600
|
* drawbox_height=600
|
||||||
@ -152,36 +145,36 @@ Screen Taxonomy
|
|||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
Here is an annotated G2 viewer screenshot, corresponding to activity during BGP
|
Here is an annotated G2 viewer screenshot, corresponding to activity during BGP
|
||||||
prefix download. This data was captured on a Cisco IOS-XR system:
|
prefix download. This data was captured on a Cisco IOS-XR system:
|
||||||
|
|
||||||
.. figure:: /_images/g21.jpg
|
.. figure:: /_images/g21.jpg
|
||||||
:scale: 75%
|
:scale: 75%
|
||||||
|
|
||||||
|
|
||||||
The viewer has two main scrollbars: the horizontal axis scrollbar shifts the main
|
The viewer has two main scrollbars: the horizontal axis scrollbar shifts the main
|
||||||
drawing area in time; the vertical axis changes the set of visible process traces.
|
drawing area in time; the vertical axis changes the set of visible process traces.
|
||||||
The zoomin / zoomout operators change the time scale.
|
The zoomin / zoomout operators change the time scale.
|
||||||
|
|
||||||
The event selector PolyCheckMenu changes the set of displayed events.
|
The event selector PolyCheckMenu changes the set of displayed events.
|
||||||
Using these tools -- and some patience -- you can understand a given event log.
|
Using these tools -- and some patience -- you can understand a given event log.
|
||||||
|
|
||||||
Mouse Gestures
|
Mouse Gestures
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
G2 has three fairly sophisticated mouse gesture interfaces, which are worth describing
|
G2 has three fairly sophisticated mouse gesture interfaces, which are worth describing
|
||||||
in detail. First, a left mouse click on a display event pops up a per-event detail box.
|
in detail. First, a left mouse click on a display event pops up a per-event detail box.
|
||||||
|
|
||||||
.. figure:: /_images/g22.jpg
|
.. figure:: /_images/g22.jpg
|
||||||
:scale: 75%
|
:scale: 75%
|
||||||
|
|
||||||
A left mouse click on an event detail box closes it.
|
A left mouse click on an event detail box closes it.
|
||||||
To zoom to a region of the display, press and hold the left mouse button, then drag
|
To zoom to a region of the display, press and hold the left mouse button, then drag
|
||||||
right or left until the zoom-fence pair appears:
|
right or left until the zoom-fence pair appears:
|
||||||
|
|
||||||
.. figure:: /_images/g23.jpg
|
.. figure:: /_images/g23.jpg
|
||||||
:scale: 75%
|
:scale: 75%
|
||||||
|
|
||||||
When the zoom operation completes, the display is as follows:
|
When the zoom operation completes, the display is as follows:
|
||||||
|
|
||||||
.. figure:: /_images/g24.jpg
|
.. figure:: /_images/g24.jpg
|
||||||
|
|
||||||
@ -193,7 +186,7 @@ Time Ruler
|
|||||||
To use a time ruler, press and hold the right mouse button; drag right or left
|
To use a time ruler, press and hold the right mouse button; drag right or left
|
||||||
until the ruler measures the region of interest. If the time axis scale is coarse,
|
until the ruler measures the region of interest. If the time axis scale is coarse,
|
||||||
event boxes can have significant width in time, so use a "reference point" in
|
event boxes can have significant width in time, so use a "reference point" in
|
||||||
each event box when using the time ruler.
|
each event box when using the time ruler.
|
||||||
|
|
||||||
.. figure:: /_images/g25.jpg
|
.. figure:: /_images/g25.jpg
|
||||||
:scale: 75%
|
:scale: 75%
|
||||||
@ -202,12 +195,12 @@ Event Selection
|
|||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
Changing the Event Selector setup controls the set of points displayed in an
|
Changing the Event Selector setup controls the set of points displayed in an
|
||||||
obvious way. Here, we suppress all events except "this thread is now running on the CPU":
|
obvious way. Here, we suppress all events except "this thread is now running on the CPU":
|
||||||
|
|
||||||
.. figure:: /_images/g26.jpg
|
.. figure:: /_images/g26.jpg
|
||||||
:scale: 75%
|
:scale: 75%
|
||||||
|
|
||||||
Same setup, with all events displayed:
|
Same setup, with all events displayed:
|
||||||
|
|
||||||
.. figure:: /_images/g27.jpg
|
.. figure:: /_images/g27.jpg
|
||||||
:scale: 75%
|
:scale: 75%
|
||||||
@ -237,12 +230,12 @@ example, if one selects an event which means "thread running on the CPU" the fir
|
|||||||
N displayed traces will be the first M threads to run (N <= M; a thread may run
|
N displayed traces will be the first M threads to run (N <= M; a thread may run
|
||||||
more than once. This feature addresses analytic problems caused by the finite size of the drawing area.
|
more than once. This feature addresses analytic problems caused by the finite size of the drawing area.
|
||||||
|
|
||||||
In standard (NoChaseEvent) mode, it looks like only BGP threads 5 and 9 are active:
|
In standard (NoChaseEvent) mode, it looks like only BGP threads 5 and 9 are active:
|
||||||
|
|
||||||
.. figure:: /_images/g28.jpg
|
.. figure:: /_images/g28.jpg
|
||||||
:scale: 75%
|
:scale: 75%
|
||||||
|
|
||||||
After pressing the ChaseEvent button, we see a different picture:
|
After pressing the ChaseEvent button, we see a different picture:
|
||||||
|
|
||||||
.. figure:: /_images/g29.jpg
|
.. figure:: /_images/g29.jpg
|
||||||
:scale: 75%
|
:scale: 75%
|
||||||
@ -270,7 +263,7 @@ Hotkeys
|
|||||||
-------------
|
-------------
|
||||||
|
|
||||||
G2 supports the following hotkey actions, supposedly (circa 1996) Quake-like
|
G2 supports the following hotkey actions, supposedly (circa 1996) Quake-like
|
||||||
according to the feature's original author:
|
according to the feature's original author:
|
||||||
|
|
||||||
+----------------------+--------------------------------------------------------+
|
+----------------------+--------------------------------------------------------+
|
||||||
| Key | Function |
|
| Key | Function |
|
||||||
|
Reference in New Issue
Block a user