Skip to content
Snippets Groups Projects
  • Simon McVittie's avatar
    4854d072
    pv-wrap, pv-launcher: Set a reasonable RLIMIT_NOFILE · 4854d072
    Simon McVittie authored
    We could inherit any RLIMIT_NOFILE from Steam or another caller, but
    we want to give games a predictable execution environment.
    
    If a game uses select(), allocates memory proportional to the soft limit
    on file descriptors, or loops for a number of iterations proportional to
    the soft limit on file descriptors (as we did prior to commit 97b5a8f6
    "pressure-vessel: Let short-term subprocesses inherit non-CLOEXEC fds"),
    then file descriptors numerically greater than 1023 are going to be a
    problem. If the soft limit is more than 1024 (= FD_SETSIZE), reduce it
    to 1024 to avoid this.
    
    Conversely, if we're launched with a soft limit strictly less than 1024,
    let's try to raise it to 1024 if the hard limit allows that.
    
    Related to <https://github.com/ValveSoftware/steam-for-linux/issues/7970
    
    >.
    
    Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
    4854d072
    History
    pv-wrap, pv-launcher: Set a reasonable RLIMIT_NOFILE
    Simon McVittie authored
    We could inherit any RLIMIT_NOFILE from Steam or another caller, but
    we want to give games a predictable execution environment.
    
    If a game uses select(), allocates memory proportional to the soft limit
    on file descriptors, or loops for a number of iterations proportional to
    the soft limit on file descriptors (as we did prior to commit 97b5a8f6
    "pressure-vessel: Let short-term subprocesses inherit non-CLOEXEC fds"),
    then file descriptors numerically greater than 1023 are going to be a
    problem. If the soft limit is more than 1024 (= FD_SETSIZE), reduce it
    to 1024 to avoid this.
    
    Conversely, if we're launched with a soft limit strictly less than 1024,
    let's try to raise it to 1024 if the hard limit allows that.
    
    Related to <https://github.com/ValveSoftware/steam-for-linux/issues/7970
    
    >.
    
    Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>