TCPTuner: congestion control utility

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: BPF based kernel analysis utilities

tux_compbcc 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

Change disk I/O scheduler on the fly

diskThe 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.

Continue reading Change disk I/O scheduler on the fly

ftrace: trace kernel function calls

hacker_compFor 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: trace pressed keys in debugfs

hacker_compKeysniffer 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

Save battery on Intel Linux

tux_compYou’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

zram: speed up old computers

tux_compModern 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

LDT: Linux driver template for newbies

tux_compLDT (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