TCPTuner is a kernel module with a userspace GUI to control TCP congestion using different parameters. It is the result of a research by Kevin Miller and Luke W. Hsiao from Stanford University. The congestion control parameters exposed can fine-tune the TCP CUBIC algorithm, currently used in the Linux kernel. Continue reading TCPTuner: congestion control utility
bcc is a collection of tracing and monitoring tools on Linux written around eBPF (Extended Berkeley Packet Filter), an in-kernel VM. BPF is one of the latest mechanisms of its kind built into the kernel (at the time of writing) and finds its use in networking, tracing, in-kernel optimizations and hardware optimizations. bcc provides both kernel-level and user-level tracing options. Continue reading bcc: BPF based kernel analysis utilities
The Linux kernel supports 4 I/O schedulers for disks:
- Deadline: minimizes disk seeks in order to provide best possible response time Default on Ubuntu.
- Anticipatory: Adds an anticipation heuristic on top of deadline I/O scheduler. It spends a few milliseconds in anticipation that new requests in the same area might appear. However, if there are no further requests, the time is wasted in waiting. Not very common.
- Completely Fair Queueing: Assigns the requests to multiple queues based on the process requesting the I/O. Services the queues round-robin. Default on RHEL.
- Noop: No optimization of disk seeks.
For those who have used strace for userspace development ftrace would be a familiar concept. ftrace is an internal tracing facility for the Linux kernel developed by Red Hat. It internally uses the kernel’s tracepoint mechanism and can track several characteristics of the running kernel. However, in this article we will concentrate on enabling it to trace the commonest one – function calls in the Linux kernel. Continue reading ftrace: trace kernel function calls
Keysniffer started as a stub code to test the data coming from Linux kernel’s keypress notifier. However, it was a fine Sunday morning and I sat down writing a keylogger to trace the keys pressed on my system. It was ready b afternoon and I decided to publish it on GitHub for others to try out. Continue reading keysniffer: trace pressed keys in debugfs
You’ll find several threads on how Linux drains your battery on Google. While many of the issues might be hardware specific, there are some ways to enhance your battery life in addition to the standard TLP and powertop utilities. This article deals with some advanced mechanisms and utilities to go deeper into power management. Continue reading Save battery on Intel Linux
Modern devices have GBs of RAM and swapping is not very common without running lots of applications together. But what if you have a older device with 512MB or less RAM? You’ll see a lot of data being swapped in and out of your hard disk swap partition. Hard disks are much slower than RAM and thus swapping enables you to use virtual memory at the cost of performance. Continue reading zram: speed up old computers
checkpatch.pl is a perl script to verify that your code conforms to the Linux kernel coding style. If you are an aspiring kernel dev, you must be very careful that you follow the right coding guidelines. It’s difficult to get it right the first time because Continue reading Check kernel code with checkpatch
LDT (Linux Driver Template) is a template for writing a new driver for the Linux kernel. While it is very useful for beginners, it can also work as a starting point for writing a new kernel driver. Continue reading LDT: Linux driver template for newbies