explicit on-stack per-task plugging


lock_stat

LOCK STATISTICS

WHAT

As the name suggests, it provides statistics on locks.

WHY

Because things like lock contention can severely impact performance.

HOW

Lockdep already has hooks in the lock functions and maps lock instances to lock classes. We build on that (see Documentation/locking/lockdep-design.txt). The …

more ...

virtualbox-5.2.24 dkms build failed against x86_32 kernel 5.1.0-rc1+

kernel 5.1 相比 5.0 又发生了新的变化,导致 virtualbox-5.2.24 的编译又失败了,是 2 个 commit 引起的变化:

  • commit 746c9398f5ac2b3f5730da4ed09e99ef4bb50b4a
    arch: move common mmap flags to linux/mman.h
    ...
  • commit 736706bee3298208343a76096370e4f6a5c55915
    get rid of legacy 'get_ds()' function
    ...

解决方法是修改 /usr/src/virtualbox-5.2.24/r0drv/linux/the-linux-kernel.h

#include <asm/mman.h …
more ...

sbitmap & sbitmap_queue & sbq_wait

struct sbitmap - scalable bitmap

A &struct sbitmap is spread over multiple cachelines to avoid ping-pong. This trades off higher memory usage for better scalability 最浪费空间的情况是 1 bit per cacheline.

There are depth / bits_per_word full words and depth % bits_per_word bits left over. In bitwise arithmetic:

        bits_per_word = 1 …
more ...

bno_plot - generate interactive 3D plot of IO blocks and sizes

To use this utility, the gnuplot package needs to be installed.

bno_plot is a visualization tool for the block layer IO tracing tool called blktrace(8). As noted in its documentation, blktrace is a block layer IO tracing mechanism which …

more ...

btt - analyse block i/o traces produces by blktrace

btt is a post-processing tool for the block layer IO tracing tool called blktrace(8). As noted in its documentation, blktrace is a block layer IO tracing mechanism which provides detailed information about request queue operations up to user space …

more ...

btreplay - recreate IO loads recorded by blktrace

  • blktrace.git
  • man btreplay
  • /usr/share/doc/blktrace/btreplay.pdf

The btrecord and btreplay tools provide the ability to record and replay IOs captured by the blktrace utility. Attempts are made to maintain ordering, CPU mappings and time-separation of IOs.

The blktrace utility provides the ability to collect detailed traces …

more ...

btrecord - recreate IO loads recorded by blktrace

  • blktrace.git
  • man btrecord
  • /usr/share/doc/blktrace/btreplay.pdf

The btrecord and btreplay tools provide the ability to record and replay IOs captured by the blktrace utility. Attempts are made to maintain ordering, CPU mappings and time-separation of IOs.

The blktrace utility provides the ability to collect detailed traces …

more ...

blkiomon - monitor block device I/O based o blktrace data

blkiomon is a block device I/O monitor. It periodically generates per-device request size and request latency statistics from blktrace data. It provides histograms as well as data that can be used to calculate min, max, average and variance. For this purpose, it consumes D and …

more ...

iowatcher - Create visualizations from blktrace results

    iowatcher [options] [--] [program arguments ...]
    blktrace/
        iowatcher/
            ├── blkparse.c
            ├── blkparse.h
            ├── COPYING
            ├── fio.c
            ├── fio.h
            ├── list.h
            ├── main.c
            ├── Makefile
            ├── mpstat.c
            ├── mpstat.h
            ├── plot.c
            ├── plot.h
            ├── tracers.c
            └── tracers.h

iowatcher graphs the results of a blktrace run. It can graph the result of …

more ...