Amarisoft

About TRX port #0 underflows/overflows

Table of Contents

underflow/overflows message means that IQ samples arrive to SDR card too early or too late. This will affect the generated signal and will break air communications.

Troubleshoot

You can use "t cpu" command and check the rx/tx min value. When the value is close to zero (or even negative), it means that your HW is not designed to support such config.

Here an example of good real time performances without underflows/overflow:

You can face 2 different situations. The first one when the rx/tx min value is constantly too low leading to underflow messages every 2 seconds or it can happen intermitently.

CPU clock is not running at expected speed

Here are several way to control CPU frequency and ensure it is running at highest speed and no frequency throttling will affect the performances.
Note that depending on your Linux flavours, some tweaks may not have any impact.

Check current frequency

First you may check the actual CPU/cores frequency.
For that you may use lscpu command but the provided information may not exactly reflect the real frequency

To have a precise measure, use cpupower utility (Available with kernel-tools package under Fedora):

$ cpupower monitor | Nehalem || Mperf || Idle_Stats CPU| C3 | C6 | PC3 | PC6 || C0 | Cx | Freq || POLL | C1 | C1E | C6 0| 0.00| 0.00| 0.00| 0.00|| 0.01| 99.99| 4515|| 0.00| 99.99| 0.00| 0.00 18| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4490|| 0.00|100.00| 0.00| 0.00 1| 0.00| 0.00| 0.00| 0.00|| 0.01| 99.99| 4496|| 0.00|100.00| 0.00| 0.00 19| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4493|| 0.00|100.00| 0.00| 0.00 2| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4532|| 0.00|100.00| 0.00| 0.00 20| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4497|| 0.00|100.00| 0.00| 0.00 3| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4526|| 0.00|100.00| 0.00| 0.00 21| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4520|| 0.00|100.00| 0.00| 0.00 4| 0.00| 0.00| 0.00| 0.00|| 0.01| 99.99| 4502|| 0.00| 99.99| 0.00| 0.00 22| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4507|| 0.00|100.00| 0.00| 0.00 ... 31| 0.00| 0.00| 0.00| 0.00|| 0.01| 99.99| 4514|| 0.00| 99.99| 0.00| 0.00 14| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4511|| 0.00|100.00| 0.00| 0.00 32| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4515|| 0.00|100.00| 0.00| 0.00 15| 0.00| 0.00| 0.00| 0.00|| 0.03| 99.97| 4500|| 0.00| 99.97| 0.00| 0.00 33| 0.00| 0.00| 0.00| 0.00|| 0.01| 99.99| 4509|| 0.00| 99.99| 0.00| 0.00 16| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4486|| 0.00|100.00| 0.00| 0.00 34| 0.00| 0.00| 0.00| 0.00|| 0.00|100.00| 4469|| 0.00|100.00| 0.00| 0.00 17| 0.00| 0.00| 0.00| 0.00|| 0.01| 99.99| 4505|| 0.00| 99.99| 0.00| 0.00 35| 0.00| 0.00| 0.00| 0.00|| 0.01| 99.99| 4502|| 0.00| 99.99| 0.00| 0.00

Here we can see all cores are running at 4.5GHz

Note that you should check that your system is not loaded (Stop lte service) to avoid bad interpretation

Configure CPU governor

make sure that CPU governor is set to performance:

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor performance performance performance ... performance performance performance

If it is not the case, you should run the script ./lte_init.sh available under /root/enb or /root/ue folder.

Use tuned service

After installing tuned package, you may configure it this way:

Start service

$ service tuned start

List profiles

$ tuned-adm profile Available profiles: - accelerator-performance - Throughput performance based tuning with disabled higher latency STOP states - amarisoft - Amarisoft optimization version - balanced - General non-specialized tuned profile - desktop - Optimize for the desktop use-case - hpc-compute - Optimize for HPC compute workloads - intel-sst - Configure for Intel Speed Select Base Frequency - latency-performance - Optimize for deterministic performance at the cost of increased power consumption - network-latency - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance - network-throughput - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks - optimize-serial-console - Optimize for serial console use. - powersave - Optimize for low power consumption - throughput-performance - Broadly applicable tuning that provides excellent performance across a variety of common server workloads - virtual-guest - Optimize for running inside a virtual guest - virtual-host - Optimize for running KVM guests Current active profile: amarisoft

Select your profile:

$ tuned-adm profile <profile name>

Amarisoft provides a tuned profile. You will find it in ots software package as amarisoft-tuned.profile file. To use it you need to create /usr/lib/tuned/amarisoft directory and copy this file inside as tuned.conf.

$ mkdir -p /usr/lib/tuned/amarisoft $ cp amarisoft-tuned.profile /usr/lib/tuned/amarisoft/tuned.conf

Amarisoft product CPU speeds

BIOS

Note that BIOS can have an impact on CPU frequency and override any OS related config.

CPU mitigations

To speed up your system, you may disable CPU vulnerabilities mitigations that could increase a bit the system performances. This can be done by adding mitigations=off to your system command line in grub (GRUB_CMDLINE_LINUX).

Check memory hardware configuration

For optimal performances, the system should have as much RAM bank as supported memory channels by the CPU.
You can use lsmem command to control it.

Ex: