During development of the simulation cross-compile framework, we saw a significant number of desynchronization errors when running the simulation. We also saw process memory usage increase. This page provides test results to quantify these issues and decide whether to issue a pull request for the cross-compilation work.
Based on these results, I plan to proceed with the pull request. However, I recommend the amd64-windows firmware be labeled experimental and that we solicit user feedback. I also plan to file a bug for the memory usage.
A simulation test run used a three-mote simulation, with two nodes one hop away from the RPL root. The link quality between each node to the root was set to a 1.0 PDR. Each test run lasted approximately six hours. We used the OpenVisualizer develop_SW-112 branch to run the simulation.
Guide to table columns:
- Arch-OS, CPU Firmware architecture, and the Intel CPU architecture on which the test was run. Windows tests were run on Windows 7.
- FW Branch Most tests run on the FW-177i branch of the kb2ma repository, but a couple of runs used the current openwsn-fw develop branch.
- Elapsed ASN Difference between ASN at end vs. start of run, on RPL root.
- Memory Consumed Process memory use as reported by Windows Task Manager or Linux pidstat. Top value is normalized on elapsed ASN.
- Desync Errors Count of desynchronization errors reported in OpenVisualizer log. Top value is normalized on elapsed ASN.
|Arch-OS, CPU||FW Branch||Elapsed ASN||Memory Consumed||Desync Errors|
|x86-windows, i3||FW-177||14.9M slots||132K slots/MiB|
|x86-windows, i7||FW-177||26.3M slots|
|amd64-windows, i7||FW-177||27.7M slots||73.8K slots/MiB|
|amd64-windows, i7||FW-177||27.2M slots||73.9K slots/MiB|
|amd64-windows, i3||FW-177||15.7M slots||73.7K slots/MiB|
|amd64-linux, i5||FW-177||12.6M slots||68.6K slots/MiB|
|amd64-linux, i5||FW-177||10.5M slots||68.9K slots/MiB|
|amd64-linux, i5||develop||10.5M slots|
The first run of amd64-windows on the i3 CPU (not in the table above) failed after around four hours. When we observed the run after six hours, ASN was not increasing, but process memory was fluctuating within a few KB, and CPU usage was 0. There was no output on the terminal to indicate an error occurred.
The x86-windows FW-177 firmware performed no worse than the develop firmware. The error rate on the amd64-windows was consistently at 500K - 600K slots/error, but some of the x86-windows and amd64-linux runs showed this same error rate.
There is clearly a memory leak in the OpenVisualizer process, regardless of the firmware used, architecture, or operating system.
It is surprising that the i5-based Linux simulations ran significantly slower than the i3-based Windows simulations.