LLNL / umap

User-space Page Management
GNU Lesser General Public License v2.1
104 stars 22 forks source link

Userfaultfd returns ENOMEM with > 900 active regision #91

Open mcfadden8 opened 5 years ago

mcfadden8 commented 5 years ago

We are seeing the following error when attempting to register more than 900 regions with userfaultfd:

Tue Aug 27 13:57:55 PDT 2019
./db_bench --benchmarks=fillseq --num=40000000 --threads=24
LevelDB:    version 1.22
Date:       Tue Aug 27 13:57:55 2019
CPU:        96 * AMD EPYC 7401 24-Core Processor
CPUCache:   512 KB
Values:     100 bytes each (50 bytes after compression)
Entries:    40000000
RawSize:    4425.0 MB (estimated)
FileSize:   2517.7 MB (estimated)
WARNING: Snappy compression is not enabled
------------------------------------------------
100869:100900 [ERROR][/home/martymcf/.sessions/altus/src/umap/src/umap/Uffd.cpp:266]: register_region ioctl(UFFDIO_REGISTER) failed: Cannot allocate memoryNumber of regions is: 950
terminate called after throwing an instance of 'Umap::Exception'
  what():  ! UMAP Exception [/home/martymcf/.sessions/altus/src/umap/src/umap/Uffd.cpp:266]:  register_region ioctl(UFFDIO_REGISTER) failed: Cannot allocate memoryNumber of regions is: 950
/home/martymcf/run_db_bench.sh: line 39: 100869 Aborted                 (core dumped) ./db_bench --benchmarks=fillseq --num=$blocks --threads=$threads