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.

Test Runs

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, CPUFW BranchElapsed ASNMemory ConsumedDesync Errors
x86-windows, i3FW-17714.9M slots132K slots/MiB
113 MiB
877K slots/error
17 errors
x86-windows, i3develop16.0M slots

133K slots/MiB
121 MiB

593K slots/error
27 errors
x86-windows, i7FW-17726.3M slots

199K slots/MiB
132 MiB

560K slots/error
47 errors
amd64-windows, i7FW-17727.7M slots73.8K slots/MiB
375 MiB
577K slots/error
48 errors
amd64-windows, i7FW-17727.2M slots73.9K slots/MiB
369 MiB
567K slots/error
48 errors
amd64-windows, i3FW-17715.7M slots73.7K slots/MiB
214 MiB
563K slots/error
28 errors
amd64-linux, i5FW-17712.6M slots68.6K slots/MiB
184 MiB

843K slots/error
15 errors

amd64-linux, i5FW-17710.5M slots68.9K slots/MiB
152MiB
955K slots/error
11 errors
amd64-linux, i5develop10.5M slots

68.7K slots/MiB
153 MiB

501K slots/error
21 errors

The first run of amd64-windows on the i3 CPU 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.

Discussion

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.