35 lines
775 B
Plaintext
Executable File
35 lines
775 B
Plaintext
Executable File
#!/usr/bin/env bpftrace
|
|
/*
|
|
* mdflush Trace md flush events.
|
|
* For Linux, uses bpftrace and eBPF.
|
|
*
|
|
* USAGE: mdflush.bt
|
|
*
|
|
* This is a bpftrace version of the bcc tool of the same name.
|
|
*
|
|
* For Linux 5.12+ (see tools/old for script for lower versions).
|
|
*
|
|
* Copyright 2018 Netflix, Inc.
|
|
* Licensed under the Apache License, Version 2.0 (the "License")
|
|
*
|
|
* 08-Sep-2018 Brendan Gregg Created this.
|
|
*/
|
|
|
|
#ifndef BPFTRACE_HAVE_BTF
|
|
#include <linux/blkdev.h>
|
|
#include <linux/bio.h>
|
|
#endif
|
|
|
|
BEGIN
|
|
{
|
|
printf("Tracing md flush events... Hit Ctrl-C to end.\n");
|
|
printf("%-8s %-6s %-16s %s\n", "TIME", "PID", "COMM", "DEVICE");
|
|
}
|
|
|
|
kprobe:md_flush_request
|
|
{
|
|
time("%H:%M:%S ");
|
|
printf("%-6d %-16s %s\n", pid, comm,
|
|
((struct bio *)arg1)->bi_bdev->bd_disk->disk_name);
|
|
}
|