Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ default SDK image:
.. csv-table::
:header: "Latencies","CPU 0","CPU 1","CPU 2","CPU 3"

"Minimum (us)","5","5","5","5"
"Average (us)","6","6","6","6"
"Maximum (us)","31","29","30","30"
"Minimum (us)","4","4","4","5"
"Average (us)","5","5","5","5"
"Maximum (us)","35","45","34","38"

.. image:: img/rt-cpu-method-all-latency-histogram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 46 additions & 1 deletion source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,49 @@
System Benchmarks
*****************

|
Stress-ng and Cyclic Test

Check warning on line 39 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Headings] Use sentence-style capitalization in 'Stress-ng and Cyclic Test'. Raw Output: {"message": "[RedHat.Headings] Use sentence-style capitalization in 'Stress-ng and Cyclic Test'.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 39, "column": 1}}}, "severity": "INFO"}
=========================

.. _RT-linux-performance:

stress-ng (next-generation) will stress test a embedded platform in
various selectable ways. It was designed to exercise various physical

Check warning on line 45 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.PassiveVoice] 'was designed' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice. Raw Output: {"message": "[RedHat.PassiveVoice] 'was designed' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 45, "column": 29}}}, "severity": "INFO"}
subsystems as well as the various operating system kernel interfaces.

Check warning on line 46 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsWarnings] Consider using 'and' rather than 'as well as' unless updating existing content that uses the term. Raw Output: {"message": "[RedHat.TermsWarnings] Consider using 'and' rather than 'as well as' unless updating existing content that uses the term.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 46, "column": 12}}}, "severity": "WARNING"}
stress-ng can also measure test throughput rates; this can be useful to
observe performance changes across different operating system or types
of hardware.

Cyclictest is most commonly used for benchmarking RT systems. It is one
of the most frequently used tools for evaluating the relative

Check warning on line 52 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.SimpleWords] Use simple language. Consider using 'often' rather than 'frequently'. Raw Output: {"message": "[RedHat.SimpleWords] Use simple language. Consider using 'often' rather than 'frequently'.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 52, "column": 13}}}, "severity": "INFO"}
performance of real-time systems. Some performance tests which use

Check warning on line 53 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsSuggestions] Depending on the context, consider using 'that' or ', which' rather than 'which'. Raw Output: {"message": "[RedHat.TermsSuggestions] Depending on the context, consider using 'that' or ', which' rather than 'which'.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 53, "column": 58}}}, "severity": "INFO"}
Cyclictest are System benchmarking, Latency debugging with tracing and
-approximating application performance.

Test commands used for running stress-ng and cyclictest together

.. code:: console

stress-ng --cpu-method=all -c 4 &
cyclictest -m -Sp80 -D6h -h400 -i200 -M -q

The following summarizes the latencies observed using the yocto based
default SDK image:

.. note::

A known issue in this SDK release is affecting this benchmark.
Using OP-TEE's PRNG drivers rather than the hardware accelerated TRNG

Check warning on line 70 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'TRNG') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'TRNG') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 70, "column": 69}}}, "severity": "INFO"}

Check warning on line 70 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'PRNG') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'PRNG') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 70, "column": 19}}}, "severity": "INFO"}

Check warning on line 70 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'TEE') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'TEE') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 70, "column": 13}}}, "severity": "INFO"}
drivers restores the context switch latencies to the values you see
here.

More information on switching to the PRNG drivers can be found in the

Check warning on line 74 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'PRNG') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'PRNG') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 74, "column": 41}}}, "severity": "INFO"}

Check warning on line 74 in source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsSuggestions] Depending on the context, consider using 'information about' rather than 'information on'. Raw Output: {"message": "[RedHat.TermsSuggestions] Depending on the context, consider using 'information about' rather than 'information on'.", "location": {"path": "source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst", "range": {"start": {"line": 74, "column": 9}}}, "severity": "INFO"}
Foundational Components section, here :ref:`building-optee-with-prng`

.. csv-table::
:header: "Latencies","CPU 0","CPU 1"

"Minimum (usec)","4","4"
"Average (usec)","7","6"
"Maximum (usec)","68","72"

.. image:: img/rt-cpu-method-all-latency-histogram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 46 additions & 1 deletion source/devices/AM62PX/linux/RT_Linux_Performance_Guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,49 @@ https://e2e.ti.com/ or https://support.ti.com/
System Benchmarks
*****************

|
Stress-ng and Cyclic Test
Comment thread
praneethbajjuri marked this conversation as resolved.

.. _RT-linux-performance:

stress-ng (next-generation) will stress test a embedded platform in various selectable ways.
It was designed to exercise various physical subsystems as well as the various
operating system kernel interfaces. stress-ng can also measure test throughput rates;
this can be useful to observe performance changes across different operating system or types of hardware.

Cyclictest is most commonly used for benchmarking RT systems.
It is one of the most frequently used tools for evaluating the relative performance of real-time systems.
Some performance tests which use Cyclictest are System benchmarking, Latency debugging with tracing and
approximating application performance.

Test commands used for running stress-ng and cyclictest together

.. code:: console

stress-ng --cpu-method=all -c 4 &
cyclictest -m -Sp80 -D6h -h400 -i200 -M -q

The following summarizes the latencies observed using the yocto based
default SDK image

.. note::

Using the OP-TEE TRNG driver can impact this benchmark's performance due to
frequent context switching between Normal World (Linux) and Secure World (OP-TEE),
that occurs when the kernel's hardware random number generator interface
(hwrng) requests entropy from the secure TRNG to replenish the Linux entropy
pool.

The Linux TRNG driver can mitigate these latency spikes. This involves
enabling the Pseudo RNG driver in OP-TEE as documented in the Foundational
Components section: :ref:`building-optee-with-prng`, and enabling the RNG
node in the Linux kernel device tree. This way the HW TRNG is accessed from
the kernel itself.

.. csv-table::
:header: "Latencies","CPU 0","CPU 1","CPU 2","CPU 3"

"Minimum (usec)","4","4","4","4"
"Average (usec)","5","5","5","5"
"Maximum (usec)","39","42","44","47"

.. image:: img/rt-cpu-method-all-latency-histogram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 46 additions & 1 deletion source/devices/AM64X/linux/RT_Linux_Performance_Guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,52 @@ https://e2e.ti.com/ or https://support.ti.com/
System Benchmarks
*****************

|
Stress-ng and Cyclic Test
=========================

.. _RT-linux-performance:

stress-ng (next-generation) will stress test a embedded platform in
various selectable ways. It was designed to exercise various physical
subsystems as well as the various operating system kernel interfaces.
stress-ng can also measure test throughput rates; this can be useful to
observe performance changes across different operating system or types
of hardware.

Cyclictest is most commonly used for benchmarking RT systems. It is one
of the most frequently used tools for evaluating the relative
performance of real-time systems. Some performance tests which use
Cyclictest are System benchmarking, Latency debugging with tracing and
-approximating application performance.

Test commands used for running stress-ng and cyclictest together

.. code:: console

stress-ng --cpu-method=all -c 4 &
cyclictest -m -Sp80 -D6h -h400 -i200 -M -q

The following summarizes the latencies observed using the yocto based
default SDK image:

.. note::

A known issue in this SDK release is affecting this benchmark.
Using OP-TEE's PRNG drivers rather than the hardware accelerated TRNG
drivers restores the context switch latencies to the values you see
here.

More information on switching to the PRNG drivers can be found in the
Foundational Components section, here :ref:`building-optee-with-prng`

.. csv-table::
:header: "Latencies","CPU 0","CPU 1"

"Minimum (usec)","5","5"
"Average (usec)","7","8"
"Maximum (usec)","69","77"

.. image:: img/rt-cpu-method-all-latency-histogram.png

LMBench
=======
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading