Why rttest allocates 8GB of memory?
Hello, i'm going thru rttest ulitity and was wondering why "lock_and_prefault_dynamic()" always locks 8GB of heap memory?
Steps to reproduce:
1. Build as described in README.md
2. Set unlimited memlock user - memlock -1
in /etc/security/limits.conf
, relogin
3. Run ./example_loop -i 10000
4. In separate terminal check memory usage by top
(RES column)
8GB also mentioned in Real-Time-Programming
From what i understand lock_and_prefault_dynamic()
sets allocation options (no trim, no mmap) and then allocates memory in 64*4k chunks until allocation hits NO page faults. The question is why it's always 8GB?
I'm testing on NVIDIA Jetson AGX Xavier which has 16GB ram.
EDIT:
also checked on google cloud VM with 32GB of total ram (no swap). Getting same number 8GB
My Xavier ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 62481
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 81920
cpu time (seconds, -t) unlimited
max user processes (-u) 62481
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited