Consider a system on the heterogeneous computing ARM big.LITTLE
architecture, e.g., ODROID-HC1 powered by Samsung Exynos 5 Octa 5422.
As the Bitcoin Core is a highly computationally intensive application, the usage of ultra-low power and slower LITTLE
cores could lead to a substantial lagging and errors (see: bitcoin/bitcoin#16008).
Also there are report about other flaws in LITTLE
cores design.
The suggested solution of the described problem is to force the CPU core affinity of the Bitcoin Core processes. On Linux this could be achieved by the taskset
command:
# In Samsung Exynos 5 Octa 5422 CPU cores from 0 to 3 are `LITTLE', and from 4 to 7 are `big'.
# Launch bitcoind with the forced affinity to all of the `big' cores.
/usr/bin/taskset --cpu-list 4-7 /usr/local/bin/bitcoind -daemon
# Run functional tests from the repository root directory.
taskset --cpu-list 4-7 ./test/functional/test_runner.py