Session

Deferred memblocks init for boot time reduction

During boot the Linux kernel initializes the entire RAM by creating the struct pages and adding the pages to the buddy allocator. This is done in single threaded fashion on the boot CPU alone.

On systems with larger RAM (8, 12GB), this process would take considerable amount of time leading to higher boot time KPI. To reduce the boot time, we can bring up the system with just a subset of memory (say 1GB) at boot which is sufficient to bootup the kernel and the userspace. After kernel/userspace init the SMP would be up, we then initialize the remaining blocks of RAM in an asynchronous parallel fashion using the memory hotplug framework in the Linux kernel utilizing the parallelism of the SMP system.

This can be done using kthreads within the kernel or by a userspace service. This approach helps to reduce the overall kernel boot time on systems with larger RAM.

Sudarshan Rajagopalan

Staff Engineer, Qualcomm Innovation Center, Inc.

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top