IEncinas

My Linux Kernel Mentorship Program (LKMP) experience

The Linux Kernel Mentorship Program is a Linux Foundation mentorship which eases the process of getting started in Linux Kernel development. You can find all the details about it in the official documentation 1.

This program offers resources, mentoring and access to like-minded newbies who are making their first contributions to the Linux Kernel. Fellow mentees are there to support you, recommend tools and review your patches. Note that this is very important. Getting used to the Linux Kernel development flow isn’t that easy, and it’s very common to get things wrong such as:

Having people around that help you solve these small issues is great. For example, many mentees suggest using tools such as b42 or kworkflow.

You can find other mentees’ posts here.

How did I learn about the mentorship?

I had been subscribed to the Linux’s RISC-V mailing list3 for a while. At some point I came across a patch from Javier Carrasco. I thought: a Spanish guy! and googled him until I reached his blog post about this mentorship. After thinking about it for a while, I decided to try my luck and apply to the mentorship.

Note that I had been a Linux user for many years but I hadn’t compiled the kernel ever before. I didn’t have experience with kernel development either. My familiarity with the codebase came from reading the RISC-V mailing list and from studying the kernel’s synchronization primitives (mutexes, memory barriers, …).

My contributions

My main interests during the mentorship were RISC-V and KCSAN reports. I’m a Verification Engineer for RISC-V CPUs at the time of writing, and a concurrency/memory consistency nerd.

I was lucky enough to stumble upon Lorenzo Stoakes and learn about his great book The Linux Memory Manager.

RISC-V people are very nice and there is a lot of work to do. The architecture is still very young and you’ll get plenty of opportunities to contribute!

KCSAN syzbot reports

Documentation

RISC-V

In-flight contributions

I also have a couple of contributions that are in flight.

Advice to potential applicants

I strongly encourage anyone that is considering applying to do so. If you believe in open source and enjoy programming and challenges, contributing to the Linux Kernel is an amazing experience. You’ll get to work with gifted engineers which is an incredible opportunity if you think about it.

If you are not sure if you’re capable enough to go through the mentorship, let me say: if I had to guess, you probably are. If you are are familiar with git, C and reading assembly code, you don’t need anything else. Even if you are not, with enough dedication and effort, you can be successful. The application process will let you know for sure if you’re a good fit for the mentorship, give it a try!

A few tips:

FAQ

Yes you can. You’ll need to have a good background but if you’re organize yourself properly, it’s possible. Note that you can also join the mentorship as a part-time mentee, which will make things easier for you.

Same as above. Additionally, I can “certify” this as I was working full time while being a mentee.

Yes. The hard part of this mentorship is being motivated and dedicated. If you can go through the application process, you’re fine from the technical standpoint.


  1. https://wiki.linuxfoundation.org/lkmp ↩︎

  2. You can find my post about b4 here ↩︎

  3. See https://subspace.kernel.org/ for more information. ↩︎