A Vocabulary Term

Looking back, the first vocabulary term that comes to mind is “building from source.” Throughout the application process, I was required to compile a new kernel and library from source. Though I was unfamiliar with the term, I figured it couldn’t be that difficult to look it up on Google.

The goal of this task is to allow QEMU to use new liburing APIs, which requires a new kernel that supports them. At the start of the application process, I was hesitant to ask the mentors at QEMU. All of them are senior engineers. A stupid question could make me look bad. It would be better if I tried every method I could find first.

The most difficult problem I encountered was when I thought I understood the issue but facts revealed otherwise. During that time, I had several misunderstandings:

  1. Debugging the Linux kernel rather than compiling a host kernel.
  2. Building a gues os image rather than a host kernel from source.
  3. Researching io uring in QEMU/Linux.
  4. Installing a liburing package (v2.0) rather than compiling it from source.

I thought the QEMU development environment was proper. So I moved to next step which is io uring testing. I couldn’t figure out how the testing framework in QEMU fit together. So I attempted to contact Roosh, the former intern working on io uring support in QEMU. Though it can be intimidating to connect with people, I can’t think of a better way to figure out my problems. She was very nice and recommended that I try Fedora Linux, which makes building a kernel much easier.

The misunderstandings lingered on. After seeking assistance from mentors at QEMU, I finally understood the real issue of the task. The seeking graph was as follows[1]:

1
2
3
4
5
6
7
8
9
10
-> gdb/tracing problems? 
-> Nope!
-> Kernel problem(#1,#2) found
-> Kernel set. Still not working
-> liburing version check
-> Package built. Still not working
-> liburing problem found(#4)
-> Build from source. Right version. Still not working
-> Compilation error.
-> Change to newest liburing.git. Working.

It is difficult to determine whether or not to ask questions. During my internship, I am experiencing the same issue, and my mentors provide me with sound advice. Don’t be afraid to ask if you spend more than an hour researching or debugging something. The sooner we can find problems, the better we will be able to solve them.

One concern about asking questions at open source events is what we can give back to those who help us all the time. I believe the answer is to do our best to contribute to the community.


  1. The details can be found in my previous blog: Begginner’s Guide to Setting up QEMU Devel Env. ↩︎