On OE-A 5.2/5.3., if you build everything, I have frequently seen over 24GB ( that was just compiling 2 elements QT and something else) in use and once hit 32G….. I think the read.me says 24GB ….so you guys need a swap
There is no one fixed amount of RAM you need to build OpenViX.
It depends on some values in your
site.conf file which, if you don't change them, seem to get set according to the number of logical processors your development system has.
These are the default values on my, rather ancient, development system:
Code:
BB_NUMBER_THREADS = "4"
PARALLEL_MAKE = "-j 4"
The first one says run up to 4 bitbakes in parallel. The second one says that certain things that bitbakes may do (compilation mainly I think) can use up to 4 threads.
However you don't need both things to happen together for all your logical processors to be busy. Just one bitbake using 4 threads will keep my 4 logical processors busy.
Similarly so will 4 bitbakes running in patrallel each only using 1 thread.
The default values are intended to try and ensure that all your logical processors are busy as much as possible so that big builds get done as quickly as possible.
The maximum amount of RAM you need during a build, (or might need if the most complex parts happen to be being built at the same time) is, I think, proportional to the product of the two numbers.
However, if you are running out of RAM (or of RAM + swap) there is a fair amount of scope to reduce these values without it actually slowing the build down too much. Likewise, if your build is slow because of a lot a swapping you can reduce these values and your build may actually speed up.
I find that reducing the PARALLEL_MAKE value really doesn't slow things as much as you would think, so you can reduce that down, even down to 2 and the effect on long builds is not as much as you would think.
The BB_NUMBER_THREADS value can be reduced too, but I think that slows things down more than reducing PARALLEL_MAKE.
If you have enough RAM then increasing BB_NUMBER_THREADS may actually make things go a little faster by making it so less of the time waiting for disk I/O is wasted.