On Tue Nov 16, 2021 at 7:36 PM CET, Matthew Wilcox wrote: > On the one hand, processes can already allocate at least this much > memory that is non-swappable, just by doing things like opening a lot of > files (allocating struct file & fdtable), using a lot of address space > (allocating page tables), so I don't have a problem with it per se. > > On the other hand, 64kB is available on anything larger than an IBM XT. > Linux will still boot on machines with 4MB of RAM (eg routers). For > someone with a machine with only, say, 32MB of memory, this allows a > process to make a quarter of the memory unswappable, and maybe that's > not a good idea. So perhaps this should scale over a certain range? I feel like most of the uber-small machines which are still relevant are not running arbitrary user code, so, something about an airtight hatch goes here. On the other hand, consider your other hand: you can probably find a way to allocate this much stuff anyway. > Is 8MB a generally useful amount of memory for an iouring user anyway? > If you're just playing with it, sure, but if you have, oh i don't know, > a database, don't you want to pin the entire cache and allow IO to the > whole thing? If you're a databse, you're probably running as a daemon with some integration with the service manager, most of which have provisions for tuning the ulimits as necessary. The purpose of this change is to provide an amount which is more useful for end-user programs, which usually cannot adjust their ulimits by any similarly convenient means. 8 MiB is not a lot, but it is enough to allocate a modest handful of read/write buffers for a video game, mail client, or something else along those lines of thought, perhaps specifically narrowing in on the areas which demand the most performance. We could certainly go higher and find an even more useful (but still realistic) value, but I felt it best to err on the side of a more conservative improvements. Honestly, this number could go as high as we want it to and applications would happily take it.