-
Notifications
You must be signed in to change notification settings - Fork 0
linux: Defer initialisation of struct pages to kthreads a.k.a. select DEFERRED_STRUCT_PAGE_INIT
#2015
Comments
Hmmm. "On very large machines". We don't really care that much, how long our "very large machines" take to boot. But this would add more timing randomness and unpredictability to the boot. Think about file system recovery after a crash with not yet all memory available. The default is "n". How much time do we really save? I doubt, its worth the risk. |
At least Debian enables it:
So, it’s well tested in my opinion. How much time exactly it saves on 1 TB or or 2 TB machines needs to be tested. |
How many log recoveries of xfs filesystems on 100 TB raid 6 software raids were tested? I've got the feeling, often things are a bit unique here. Why do we hit nfs bugs, xfs bugs, hba driver bugs? And maybe Debian has a smarter synchronization during startup than we have. Let's see, what the timing results are. |
Log recovery is already in user space. It’s my understanding that all of the memory is going to be available, once you are able to do anything on the machine.
Could be. I have no idea.
Ok, I am going to build a test Linux kernel. |
Oh, I just assumed that userspace (init from initramfs) was started before pgdatinitX have finished and all memory is available. Is that not true and the kernel waits for all memory before init is started? |
Maybe for machines with several terrabytes of memory. On the 2 TB RAM server nomnomnom, currently the system with the greatest amount of RAM, Linux takes over 90 seconds to initialize.
On the 96 GB RAM server claptrap it takes less time.
So, maybe you are right, that there could be a small overlay. But until tested, I cannot say for sure. |
This should initialize memory in parallel and decrease boot time.
The text was updated successfully, but these errors were encountered: