Large Memory Sysfs Scaling

This proposal has been accepted as a session.

Accepted Session
Microconference Session

One Line Summary

Scaling the userspace sysfs interface for physical memory configuration for large memory systems


The userspace sysfs interface for physical memory configuration is defined in drivers/base/memory.c and normally mounted at /sys/devices/system/memory. A memoryX entry is created for each memory block in the system. Before early 2011, there was a memory entry created for each memory section. This quickly became a bottleneck and the interface was modified to have one entry for a block of memory sections. However, this solution is also incomplete as systems continue to have larger and larger memory capacities and time to create the sysfs entries for each memory block continues to scale linearly with RAM capacity. This can lead to very long boot times, on the order of hours, for systems with terabytes of RAM.

The goal of this session would be to discuss the design of a new sysfs memory configuration interface that takes constant time to initialize regardless of the memory size. This would likely be an on-demand approach and impacts to userspace tools would need to be considered.


  • Biography

    Seth is a Linux kernel developer in IBM’s Linux Technology Center. He has been working on the kernel for 2 years in the area of memory management, in particular, swap and the new area of memory compression. Seth is the author of zswap, the driver for compressed swap caching included in the kernel as of v3.11. He currently resides in Austin, TX.


Leave a private comment to organizers about this proposal