blktrace userspace tools - Initial commit

  • d0ca268 Initial commit of blktrace

Inital commit of blktrace userspace tools 包含下列几个文件:

    ├── blkparse.c
    ├── blktrace.c
    ├── blktrace.h
    ├── Makefile
    └── README

README

    % blktrace <dev>
    --- run task to generate load to be traced ---
    <SIGINT to kill>
    --- Generates:
        <dev>_dat.[0..ncpus] : Contains binary pdu data
        <dev>_out.[0..ncpus] : Contains binary trace …
more ...

blktrace - early version of kernel part

blktrace.c 实现了 message 的填充(包括 message header 的构造 - struct blk_io_trace)并通过 relayfs 传递 message 到 userspace;blktrace_api 封装对 __blk_add_trace 的调用,Block IO layer 通过调用这些 APIs …

more ...

初识 relay

详细的 GUIDE 参考 Documentation/filesystems/relay.txt

A 'relay channel' is a kernel->user data relay mechanism implemented as a set of per-cpu kernel buffers ('channel buffers'), each represented as a regular file ('relay file') in user space. Kernel …

more ...

virtualbox-5.2.24 dkms build failed against x86_32 kernel 5.0.0-rc2+

最近想在本子上装个 virtualbox 跑个 winxp,旧本子,一直用的 32 位 Debian,内核经常更新,现在版本是 5.0.0-rc2+

apt install virtualbox virtualbox-dkms 安装完后,建立虚拟机的时候报错,说不能加载 vboxdrv 模块

dkms build

想着可能是因为内核新,所以 dkms 工作没做好,干脆跑一下 dkms build。结果一跑,报错了:

    # dkms build -m virtualbox -v 5.2.24

    Kernel preparation unnecessary for this kernel.  Skipping...

    Building …
more ...

fio HOWTO (4) ioengine

I/O engine ioengine=str

Defines how the job issues I/O to the file. The following types are defined: ("libaio/sg/net/netsplice/rdma/rados/rbd/gfapi/gfapi_async" defines engine specific options)

    null
        Doesn't transfer any data, just pretends to. This is mainly used to
        exercise …
more ...

fio HOWTO (3) Environment variables & Reserved keywords

Environment variables

Fio also supports environment variable expansion in job files. Any sub-string of the form ${VARNAME} as part of an option value (in other words, on the right of the '='), will be expanded to the value of the environment variable called VARNAME. If no such environment variable …

more ...

fio HOWTO (2) Job file format

fio accepts one or more job files describing what it is supposed to do.

The job file format is the classic ini file, where the names enclosed in [] brackets define the job name. You are free to use any ASCII name you want, except global which has special …

more ...

fio HOWTO (1) command line options

How fio works

The first step in getting fio to simulate a desired I/O workload, is writing a job file describing that specific setup.

A job file may contain any number of threads and/or files -- the typical contents of the job file is a global section …

more ...

F2FS: A New File System for Flash Storage


Multipage bio_vecs

By Jake Edge  May 4, 2016, LSFMM 2016

In the block layer, larger I/O operations tend to be more efficient, but current kernels limit how large those operations can be. The bio_vec structure, which describes the buffer for an I/O operation …

more ...