this post was submitted on 26 Mar 2024
95 points (97.0% liked)

Linux Gaming

16076 readers
117 users here now

Gaming on the GNU/Linux operating system.

Recommended news sources:

Related chat:

Related Communities:

Please be nice to other members. Anyone not being nice will be banned. Keep it fun, respectful and just be awesome to each other.

founded 4 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 27 points 9 months ago* (last edited 9 months ago) (10 children)

Hastily read around in the related issue-threads and seems like on it's own the vm.max_map_count doesn't do much... as long as apps behave. It's some sort of "guard rail" which prevents processes of getting too many "maps". Still kinda unclear what these maps are and what happens is a process gets to have excessive amounts.

That said: https://access.redhat.com/solutions/99913

According to kernel-doc/Documentation/sysctl/vm.txt:

  • This file contains the maximum number of memory map areas a process may have. Memory map areas are used as a side-effect of calling malloc, directly by mmap and mprotect, and also when loading shared libraries.
  • While most applications need less than a thousand maps, certain programs, particularly malloc debuggers, may consume lots of them, e.g., up to one or two maps per allocation.
  • The default value is 65530.
  • Lowering the value can lead to problematic application behavior because the system will return out of memory errors when a process reaches the limit. The upside of lowering this limit is that it can free up lowmem for other kernel uses.
  • Raising the limit may increase the memory consumption on the server. There is no immediate consumption of the memory, as this will be used only when the software requests, but it can allow a larger application footprint on the server.

So, on the risk of higher memory usage, application can go wroom-wroom? That's my takeaway from this.

edit: ofc. I pasted the wrong link first. derrr.

edit: Suse's documentation has some info about the effects of this setting: https://www.suse.com/support/kb/doc/?id=000016692

[–] psycho_driver 15 points 9 months ago* (last edited 9 months ago) (7 children)

The default value is 65530

Just checked and the steam deck has it set to 2147483642. My gentoo systems are 65530.

[–] [email protected] 8 points 9 months ago (6 children)

On one hand, I'd assume Valve knows what they're doing, but also setting the value that high seems like it's effectively removing the guardrail alltogether. Is that safe, also what is the worst that can happen if an app starts using maps in the billions?

load more comments (5 replies)
load more comments (5 replies)
load more comments (7 replies)