fileio: bump limit for read_full_file() and friends to 64M
Apparently people use such large key files. Specifically, people used 4M key files, and we lowered the limit from 4M to 4M-1 back in 248. This raises the limit to 64M for read_full_file() to avoid these specific issues and give some non-trivial room beyond the 4M files seen IRL. Note that that a 64M allocation in glibc is always immediately done via mmap(), and is thus a lot slower than shorter allocations. This means read_virtual_file() becomes ridiculously slow if we'd use the large limit, since we use it all the time for reading /proc and /sys metadata, and read_virtual_file() typically allocates the full size with malloc() in advance. In fact it becomes so slow, that test-process-util kept timing out on me all the time, once I blindly raised the limit. This patch hence introduces two distinct limits for read_full_file() and read_virtual_file(): the former is much larger than the latter and the latter remains where it is. This is safe since the former uses an exponentially growing realloc() loop while the latter uses the aforementioend ahead-of-time full limit allocation. Fixes: #19193
Loading