Skip to content

Commit

Permalink
merge bitehist example
Browse files Browse the repository at this point in the history
  • Loading branch information
brendangregg committed Jul 24, 2016
1 parent fa5f2f9 commit 310ab53
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 29 deletions.
9 changes: 4 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,9 @@ Tracing... Hit Ctrl-C to end.
The above output shows a bimodal distribution, where the largest mode of
800 I/O was between 128 and 255 Kbytes in size.

See the source: [bitehist.c](examples/tracing/bitehist.c) and
[bitehist.py](examples/tracing/bitehist.py). What this traces, what this stores, and how
the data is presented, can be entirely customized. This shows only some of
many possible capabilities.
See the source: [bitehist.py](examples/tracing/bitehist.py). What this traces,
what this stores, and how the data is presented, can be entirely customized.
This shows only some of many possible capabilities.

## Installing

Expand All @@ -60,7 +59,7 @@ pair of .c and .py files, and some are directories of files.

Examples:

- examples/tracing/[bitehist.py](examples/tracing/bitehist.py) examples/tracing/[bitehist.c](examples/tracing/bitehist.c): Block I/O size histogram. [Examples](examples/tracing/bitehist_example.txt).
- examples/tracing/[bitehist.py](examples/tracing/bitehist.py): Block I/O size histogram. [Examples](examples/tracing/bitehist_example.txt).
- examples/tracing/[disksnoop.py](examples/tracing/disksnoop.py) examples/tracing/[disksnoop.c](examples/tracing/disksnoop.c): Trace block device I/O latency. [Examples](examples/tracing/disksnoop_example.txt).
- examples/[hello_world.py](examples/hello_world.py): Prints "Hello, World!" for new processes.
- examples/tracing/[tcpv4connect.py](examples/tracing/tcpv4connect.py): Trace TCP IPv4 active connections. [Examples](examples/tracing/tcpv4connect_example.txt).
Expand Down
22 changes: 0 additions & 22 deletions examples/tracing/bitehist.c

This file was deleted.

15 changes: 13 additions & 2 deletions examples/tracing/bitehist.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/python
#
# bitehist.py Block I/O size histogram.
# For Linux, uses BCC, eBPF. See .c file.
# For Linux, uses BCC, eBPF. Embedded C.
#
# Written as a basic example of using a histogram to show a distribution.
#
Expand All @@ -17,7 +17,18 @@
from time import sleep

# load BPF program
b = BPF(src_file = "bitehist.c")
b = BPF(text="""
#include <uapi/linux/ptrace.h>
#include <linux/blkdev.h>
BPF_HISTOGRAM(dist);
int kprobe__blk_account_io_completion(struct pt_regs *ctx, struct request *req)
{
dist.increment(bpf_log2l(req->__data_len / 1024));
return 0;
}
""")

# header
print("Tracing... Hit Ctrl-C to end.")
Expand Down

0 comments on commit 310ab53

Please sign in to comment.