Session
Memory page-pooling with auto refill feature for improved memory allocation latency
Memory pooling is great for improving allocation latency. But its possible that these pools could be exhausted quickly and be empty for long periods of time thereby impacting alloc latency.
Here we describe a memory pooling scheme where the Linux kernel will automatically refill these pools safely upon exhaustion when system memory stats are good. This refilling is done asynchronously via kthreads and they are woken up when memory in the pools falls low and fills them uptil a set threshold. This increases the probability of the pools being filled in advance before a memory intensive application can run which increases its memory performance where memory is allocated instantly from the pools rather than searching from the system buddy allocator. The memory in the pools can also be quickly reclaimed through shrinkers when system is under memory pressure, thereby increasing the utilization of the pools.
This overall reduces the alloc latencies by multiple folds whose performance gain can be achieved here merely by software alone. Multimedia uses (Camera, Video, Graphics etc) which are usually memory intensive can greatly leverage such pooling scheme for improved performance.
Sudarshan Rajagopalan
Staff Engineer, Qualcomm Innovation Center, Inc.
Links
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