Zack's Kernel News
Zack's Kernel News

Chronicler Zack Brown reports on the latest news, views, dilemmas, and developments within the Linux kernel community.
Parallel RAM Initialization
Mel Gorman recently coded up some patches to initialize RAM chips in parallel, rather than sequentially, during bootup. This feature makes virtually no difference to regular desktop systems, as these tend to boot very quickly in any case, and as Mel pointed out in his announcement, an earlier attempt at a similar patch set was nixed because it slowed things down for regular users. His new patches, however, migrated the feature to a different execution path that might be more acceptable. Instead of doing memory initialization in the page allocator code, Mel's new patches did it in the kswapd
code. This way, each CPU would have only a single thread dedicated to memory initialization, thus minimizing the cost to smaller systems.
Waiman Long replied, saying he had access to a system with 12TB of RAM, and had tested Mel's patches. He observed that boot time went from 404 seconds to 298 – about a 25% reduction. Apparently a success! However, Mel and Peter Zijlstra both wanted to know whether those 106 seconds of savings actually mattered to Waiman. Maybe it didn't really matter if a big system took six and a half minutes to boot, or only five.
Waiman replied, "Booting 100s faster is certainly something that is nice to have. Right now, more time is spent in the firmware POST portion of the bootup process than in the OS boot. So I would say this patch isn't really critical right now as machines with that much memory are relatively rare. However, if we look forward to the near future, some new memory technology like persistent memory is coming and machines with large amount of memory (whether persistent or not) will become more common. This patch will certainly be useful if we look forward into the future."
[...]
Buy this article as PDF
(incl. VAT)