From: Steinar H. Gunderson Date: Mon, 16 May 2016 11:26:11 +0000 (+0200) Subject: Lock everything in system memory for better realtime behavior. X-Git-Tag: 1.3.0~11 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=688a3fb0b123f495ae356bbc3c3fb549f04c076f;p=nageru Lock everything in system memory for better realtime behavior. --- diff --git a/main.cpp b/main.cpp index a0d8f66..75ae9a7 100644 --- a/main.cpp +++ b/main.cpp @@ -4,6 +4,7 @@ extern "C" { #include #include #include +#include #include #include @@ -52,6 +53,17 @@ int main(int argc, char *argv[]) app.installEventFilter(&mainWindow); // For white balance color picking. + // Even on an otherwise unloaded system, it would seem writing the recording + // to disk (potentially terabytes of data as time goes by) causes Nageru + // to be pushed out of RAM. If we have the right privileges, simply lock us + // into memory for better realtime behavior. + if (mlockall(MCL_CURRENT | MCL_FUTURE) == -1) { + perror("mlockall()"); + fprintf(stderr, "Failed to lock Nageru into RAM. You probably want to\n"); + fprintf(stderr, "increase \"memlock\" for your user in limits.conf\n"); + fprintf(stderr, "for better realtime behavior.\n"); + } + int rc = app.exec(); global_mixer->quit(); mainWindow.mixer_shutting_down();