About:

Daniel is a systems software developer with a passion for open source projects and kernel development.

Website:

Specializations:

Interests:

Systems software Kernel development Open source projects

Outgoing Links:

Dan Luu
Subscribe to RSS:
ATS uses optimistic concurrency control to synchronize shared memory in the logging subsystem. It uses an optimistic commit/rollback strategy when the current LogBuffer is full and needs to allocate a new LogBuffer. The pointer to...
The author is tracking down a log corruption issue inside of Trafficserver’s logging subsystem. The issue is that there’s often random data inserted into the middle of log statements. The author has faced challenges due to sparse ...
The text is a rough outline into Compiling the kernel, Setting up a initramfs for the kernel to boot into, and Booting into the setup. It provides detailed instructions on how to compile the kernel, set up initramfs, and boot the ...
The text discusses the author's experience with systemd and its process management features, particularly in implementing hot upgrades on a running server. It explains the interaction between systemd and the server binary, and how...
The text discusses the problem of adding an element to a vector of type std::vector<std::pair<int, Foo>> with minimal overhead. It explores different approaches using emplace_back, std::forward_as_tuple, and preallocating memory t...
C/C++ has a property where if you define a string literal, the compiler will make sure to only keep one copy of it. This opens up an interesting property where you can compare string pointers as if you were calling strcmp.
The text discusses the issue of missing threads in the /proc directory when running a program. It delves into the kernel code to understand why the directory entry for the thread is not present and uses bpftrace to investigate the...
The author spent time hacking on GDB to improve rust debugging support. They considered hacking on LLDB but their stance on language support is conservative. The current state is that they want non C-family languages to be maintai...
The text discusses playing around with C++ templates, including a simple example, using integers inside templates, and template metaprogramming. It also explains the use of std::decay to 'decay' types into 'base' types.
The author discusses issues with GDB and how they solved it by wrapping the build in a docker container. They explain the process and the benefits of using docker for this purpose.
The text explains the basics of btrfs’s on-disk format, including block devices, filesystems, and filesystem images. It also provides code samples and instructions for creating a loopback btrfs image and parsing the superblock.
The author discusses their specific workflow for setting up a website, emphasizing the desire for a simple, cross-platform, and hassle-free process. They outline the steps of writing a post, pushing the commit to a Git hosting ser...
The text discusses the concept of writing inherently tricky code that will be difficult to understand in the future. It presents two options for managing the future pain of dealing with such code, which includes writing a lot of c...
The text discusses how a process can wait for another process to exit without polling. It explores different strategies such as waitpid(2), epoll(2) on /proc/pid, and polling procfs. The author also mentions some unattempted solut...
The text explains the basics of btrfs's on-disk format, focusing on B-trees and the chunk tree. It describes the necessary structures and the process of bootstrapping the chunk tree. The author also provides example code for the r...
The text explains the basics of btrfs's on-disk format, focusing on B-trees and the B-tree data format. It describes the structure of the tree, the necessary structures, and the code required to walk the tree. The post also mentio...
The text is the final part of a series explaining the basics of btrfs's on-disk format. It covers the filesystem tree item types, the process of walking the filesystem tree, and the effort required to understand the core data stru...
The text explains the basics of btrfs's on-disk format, focusing on how to walk an on-disk B-tree and read the root tree root and filesystem tree root. It also discusses the benefits of using the same B-tree data structure to stor...
libbpf-rs provides safe Rust bindings to libbpf as well as a cargo plugin to help develop 'Compile Once - Run Everywhere' eBPF applications. It aims to solve the issues with BCC by enabling ahead of time BPF program compilation. T...
The text discusses the need for a robust and scalable plugin architecture in C++ patterns. It explains the naive approach of using a large if-block and the limitations of this approach. It then introduces the static registration p...