Bangalore Kernel Meetup March 2024: A Report

The inaugural kernel meetup of 2024 took place on March 16th at Microsoft’s location in Prestige Ferns Galaxy, Bellandur, attracting an impressive turnout of approximately 150 attendees. The event began with a cordial introduction and keynote by Dr. K.Y. Srinivasan, a Distinguished Engineer from the Microsoft Linux Platforms Group (LPG) who is a long-term contributor (and maintainer) to the upstream Linux kernel. He offered insights into his current focuses and discussed a range of topics, including Cloud Fabric, Placement, Multi-level Scheduling, Multi-level Resource Management, Software Defined Computing, Servicing, Cloud-Oriented LTS Kernel, and in-place servicing.

Agenda for the meetup:

TitleSpeakers
Design of framework for tracing rt_spinlock on RT LinuxMintu Patel, Chinmoy Ghosh, and Vimal Kumar
Introduction to Device TreeSaurabh Singh Sengar
Linux upstreaming process and embedded Linux debugging methodology Radhey Shyam Pandey
io_uring UnleashedKanika Nema
Design of Linux Percpu AllocatorPrathu Baronia
Exploring the EEVDF Scheduler in Linux kernel 6.6Balakumaran Kannan
Improved stack unwinding on vmcoresAditya Gupta
Data type profiling support in perf infrastructure Athira Rajeev
Azure Confidential Computing Meets eBPFArchana Choudhary and Mayank Kumar
An open source engineer’s prospective on solving family’s storage backup problemRitesh Harjani
State of Open-Source Tools for DIY Mechnical KeyboardMadhavan Srinivasan
DRM/KMS magic: Enabling display in your embedded devicesAradhya Bhatia

The presentation commenced with Mintu Patel, Chinmoy Ghosh, and Vimal Kumar from Harman International providing a comprehensive overview of the Linux RealTime (RT) system, spotlighting its significant features such as universal preemption, the transformation of spin_locks into mutexes, the conversion of interrupt handlers into kernel threads, and the incorporation of priority inheritance within the kernel. They delved deeper into the nuances of spinlock behavior in both Linux and RT Linux, using code examples to demonstrate how spin_lock functions are implemented in each scenario. In RT Linux, spinlocks morph into sleeping locks, with the exception of raw_spinlock_t. The talk underscored the challenges encountered with rt_spinlock in the Linux kernel, citing a peculiar issue where two threads could simultaneously be deemed the owner of the rt_mutex lock. They proposed a framework for rt_spinlock designed to enhance debugging and optimize performance tuning.

Following an engaging summary of RT Linux, Saurabh Singh Sengar, an engineer at Microsoft, introduced the concept of Device Tree and offered a concise tutorial on crafting new Device Tree files and compiling them with the dtc compiler. He further shared his latest project on adapting the device tree for x86 architecture to expedite guest boot times in comparison to ACPI tables for x86 guest on Hyper-V VMs.

Next, Radhey Shyam Pandey, an engineer at AMD, outlined the advantages of upstreaming changes to the mainline Linux kernel, such as improved quality, better support, and enhanced knowledge, in addition to cost and effort savings. He provided advice on patch submissions, emphasizing that patches should address a single issue, include a clear commit message, be free of warnings, undergo testing, and be sent to the correct reviewers. Furthermore, he offered valuable tips on Linux kernel debugging, which entails understanding and reproducing the issue, pinpointing its origin, and rectifying it.

Kanika Nema, an engineer at Microsoft, then introduced io_uring, a cutting-edge communication framework between the kernel and user space developed by Jens Axboe. This method stands out for being asynchronous, lock-free, and featuring both extensible and straightforward APIs, leading to superior performance over traditional asynchronous I/O approaches. She highlighted essential io_uring APIs such as io_uring_setup, io_uring_enter, and io_uring_register. Additionally, Nema presented liburing, which streamlines the handling of rings and memory ordering by eliminating repetitive code and offering easier APIs. For those seeking alternatives to libaio due to its inefficiencies and requiring top-tier performance with minimal latency, io_uring is highly recommended.

Prathu Baronia provided an in-depth analysis of Linux’s per-cpu memory allocator design, a key mechanism in the kernel for allocating per CPU instances without the need for locking. This allocator is utilized for percpu counters and page caches within the kernel, employing both static and dynamic APIs for access. Static APIs like per_cpu() and per_cpu_ptr() access variables, while dynamic APIs such as alloc_percpu(type) and free_percpu() manage memory allocation. The allocator relies on the Memblock Allocator for early boot memory management with NUMA support, organizing memory in chunks and units for efficient allocation.

Balakumaran Kannan, an engineer at Microsoft, introduced the Earliest Eligible Virtual Deadline First Scheduling (EEVDF), the new default scheduler in the Linux kernel starting from version 6.6, highlighting its advantages over the previous Completely Fair Scheduler (CFS). EEVDF is optimized for latency-sensitive tasks, offering better performance for workloads requiring short execution times.

Aditya Gupta, from IBM Linux Technology Center, discussed the kdump and crash utility for analyzing vmcore files to determine crash causes. He pointed out a limitation in crash utility’s ability to access function argument values and local variables, a gap bridged by his work in implementing gdb-mode functionality for enhanced backtrace analysis.

Athira Rajeev, also from IBM Linux Technology Center, explored the application of Perf/PMU (Performance Monitoring Unit) in Linux kernels and PowerPC architecture, addressing how PMU hardware counters aid in precise CPU resource utilization measurement. She mentioned a recent perf utility enhancement that allows code annotations, improving upon its function-level utilization insights, and detailed her contributions to extending support for PowerPC.

Archana Choudhary and Mayank Kumar, engineers from Microsoft, provided insights into Confidential Computing (CoCo) and eBPF. CoCo enhances data security in use through Trusted Execution Environments (TEE) and Trusted Compute Base (TCB), while eBPF allows for the safe, efficient extension of kernel capabilities without modifying kernel source code. They discussed how eBPF and CoCo can integrate within a nested TEE setup, enhancing security and attestation processes, and mentioned Sigstore, an open-source project aimed at securing software supply chains.

Ritesh Harjani, an engineer from IBM Linux Technology Center shared insights from an open-source engineer’s viewpoint on addressing family storage backup needs, recommending NAS solutions such as Unraid, OpenMediaVault, and Truenas, and discussing the benefits of leveraging OpenZFS for system resilience.

Madhavan Srinivasan, an IBM Linux Technology Center engineer, reviewed the landscape of open-source software for DIY mechanical keyboards, highlighting customization options and community support from projects like Ergogen and QMK for enthusiasts.

Aradhya Bhatia, a Linux-Kernel Engineer at Texas Instruments, delved into the DRM/KMS Magic for enabling displays on embedded devices. With a focus on TI microprocessor SoCs, Aradhya provided an overview of display basics, interfaces, hardware components, and the role of DRM and device-tree in display management, illustrating the intricate process of bringing displays to life in embedded systems.

As the series of insightful presentations neared its conclusion, Santosh Shukla (AMD), Vinod Koul (Linaro), Praveen Kumar (Microsoft), and Aneesh Kumar (IBM) collectively initiated an impromptu feedback session with the attendees. During this engaging exchange, an exciting suggestion emerged to organize future talks across multiple tracks, such as virtualization, memory management etc. Participants were also encouraged to foster ongoing dialogue within the community through Google groups and a community chat room on Matrix. This interactive segment witnessed a lively participation from the audience, reflecting the vibrant spirit of the open-source community.

Marked by a sense of shared purpose and the quest for knowledge, the event concluded on a high note, with AMD stepping forward to coordinate the next gathering. The Linux Kernel Meetup Bangalore emerged as a day to remember, blending expertise, fellowship, and productive conversations. It served as an ideal forum for Linux enthusiasts to fuel their passion, sparking innovative ideas and creating enduring impressions. Until we meet again, let’s keep the flame of curiosity alive and glowing.

Cheers!

Leave a comment