// here is the code i used to test the mlockall caused xruns #include #include #include #include #define INTERVALS 8 int main (int argc, char *argv[]) { if (argc < 2) { std::cout << "how many kbytes you want allocated and mlockall'ed?" << std::endl; } std::stringstream stream(argv[1]); int kbytes, error = 0, i, chunk; stream >> kbytes; char *mem = new char[kbytes*1024]; std::cout << "filling with 0's" << std::endl; for (int i = 0; i < kbytes*1024; ++i) { mem[i] = 0; } std::cout << "ok, you want " << kbytes << "kb of memory mlocked. going for it.." << std::endl; chunk = kbytes*1024/INTERVALS; for (i = 0; i < INTERVALS; i++) error |= mlock(mem + i*chunk, chunk); if (error != 0) { std::cout << "mlock error" << std::endl; } else { std::cout << "mlock successfull" << std::endl;} }