By Bharath Vedartham

Operating systems, computer architectures and compilers have always fascinated me. I like to go in depth to understand the important software components we depend on! My life changed when engineers from IBM LTC (Linux Technology Center) came to my college to teach us the Linux Kernel internals. When I heard about the Linux Kernel Mentorship program, I immediately knew that I wanted to be a part of it to further fuel my passion for Linux.

One of the project in the lists of projects available to work during the Linux Kernel Mentorship program was on “Predictive Memory Reclamation”. I really wanted the opportunity to work on the core kernel, and I began working with my mentor Khalid Aziz immediately during the application period where he gave me a task regarding the identification of anonymous memory regions for a process. I learned a lot in the application period by reading various blogs, textbooks and commit logs.

During my mentorship period, I worked to develop a predictive memory reclamation algorithm in the Linux Kernel. The aim of the project was to reduce the amount of time the Linux kernel spends in reclaiming memory to satisfy processes requests for memory when there is memory pressure, i.e not enough to satisfy the memory allocation of a process. We implemented a predictive algorithm that can forecast memory pressure and proactively reclaim memory to ensure there is enough available for processes.

We achieved a reduction of upto 8% in the amount of time the kernel spends in reclaiming memory! We submitted RFCs on the kernel mailing lists of our work. [1]

I also worked with John Hubbard on his project to track get_user_pages(). I converted a couple of drivers to use the new get_user_pages API as proposed by John. John was a real pleasure to work with!

Throughout my internship, I have learned that the kernel community is very helpful, kind and willing to help new developers. The key was to take the feedback and put in the required effort and work as well as accept constructive feedback and act on it. Working on open source projects was a very liberating experience for me. There are no barriers in open source space. Anyone can work on open source code irrespective of their nationality, creed or company affiliations, which I find very beautiful and liberating. I believe it is a very intellectually stimulating experience for anyone.

I would like to thank my mentor Khalid Aziz and the Linux Kernel community for helping me throughout the mentorship program. I also would like to thank the Linux Foundation for providing this opportunity and especially Shuah Khan for her guidance on how to work with the community.