Kernel data structures exist in many shapes and sizes. Oracle Linux kernel engineer Alan Maguire performs a statistical analysis on data structure sizes in the Linux kernel.

Image for post
Image for post

Recently I was working on a BPF feature which aimed to provide a mechanism to display any kernel data structure for debugging purposes. As part of that effort, I wondered what the limits are. How big is the biggest kernel data structure? What’s the typical kernel data structure size?

The basic questions we will try to answer are

  • How many data structures are there, and what patterns can be observed between kernel versions?

Image for post
Image for post

In this blog Oracle Linux kernel developer Bijan Mottahedeh talks about the io_uring asynchronous I/O framework included in the Unbreakable Enterprise Kernel 6.


This blog post is a brief introduction to the io_uring asynchronous I/O framework available in release 6 of the Unbreakable Enterprise Kernel (UEK). It highlights the motivations for introducing the new framework, describes its system call and library interfaces with the help of sample applications, and provides a list of references that describe the technology in further detail including more usage examples.

The io_uring Asynchronous I/O (AIO) framework is a new Linux I/O interface, first introduced in…

Image for post
Image for post

Shannon Nelson from the Oracle Linux Kernel Development team offers these tips and tricks to help make host network diagnostics easier. He also includes a recommended playlist for accompanying your debugging!

Ain’t Misbehavin’ (Dinah Washington)

As with many debugging situations, digging into and resolving a network-based problem can seem like a lot of pure guess and magic. In the networking realm, not only do we have the host system’s processes and configurations to contend with, but also the exciting and often frustrating asynchronicity of network traffic.

Some of the problems that can trigger a debug session are reports of lost packets, corrupt data, poor…

Oracle Linux kernel developer Alan Maguire presents this six-part series on BPF, wherein he presents an in depth look at the kernel’s “Berkeley Packet Filter” — a useful and extensible kernel function for much more than packet filtering.

If you follow Linux kernel development discussions and blog posts, you’ve probably heard BPF mentioned a lot lately. It’s being used for high-performance load-balancing, DDoS mitigation and firewalling, safe instrumentation of kernel and user-space code and much more! BPF does this by supporting a safe flexible programming environment in many different contexts; networking datapaths, kernel probes, perf events and more. Safety is key — in most environments, adding a kernel module introduces significant risk. BPF programs, however, are verified at program load time to ensure no out-of-bounds accesses occur etc. In addition, BPF supports just-in-time compilation of its bytecode to…

Oracle Linux kernel developer Steve Sistare contributes this article on speeding up kernel reboots for development and for production systems.

Image for post
Image for post

The kexec command loads a new kernel and jumps directly to it, bypassing firmware and grub. It is most often used as the first step in generating a crash dump, but it can also be used to perform an administrative reboot. The time saved by skipping firmware is substantial on a server with large memory, many CPUS, and many devices. This is particularly useful during kernel development when you frequently rebuild and reboot the kernel.

The kexec options are a bit arcane, so I wrote a script to make it easier to use for basic reboot. You specify the new…

Oracle Linux kernel developer William Roche presents a method to mirror a running system into a ramdisk.

There are cases where a system can boot correctly but after some time, can lose its system disk access — for example an iSCSI system disk configuration that has network issues, or any other disk driver problem. Once the system disk is no longer accessible, we rapidly face a hang situation followed by I/O failures, without the possibility of local investigation on this machine. I/O errors can be reported on the console:

XFS (dm-0): Log I/O Error Detected....

Or losing access to basic commands like:

# ls 
-bash: /bin/ls: Input/output error

The approach presented here allows a small system disk…


Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store