Skip to content

Commit cd53426

Browse files
committed
DLPX-93371 test_stbtrace_io failed because it stbtrace did not produce any output
1 parent b04a67f commit cd53426

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

bpf/stbtrace/io.st

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ $hists:{hist|
6363
BPF_HASH($hist.name$, io_hist_key_t, u64);
6464
}$
6565

66-
int disk_io_start(struct pt_regs *ctx, struct request *reqp)
66+
int disk_io_start(struct bpf_raw_tracepoint_args *ctx)
6767
{
68+
struct request *reqp = (struct request *)ctx->args[0];
6869
io_data_t data = {};
6970
struct gendisk *diskp = reqp->q->disk;
7071
data.ts = bpf_ktime_get_ns();
@@ -101,17 +102,19 @@ static int aggregate_data(io_data_t *data, u64 ts, char *opstr)
101102
return 0;
102103
}
103104

104-
int disk_io_done(struct pt_regs *ctx, struct request *reqp)
105+
int disk_io_done(struct bpf_raw_tracepoint_args *ctx)
105106
{
107+
struct request *reqp = (struct request *)ctx->args[0];
108+
106109
u64 ts = bpf_ktime_get_ns();
107110
io_data_t *data = io_base_data.lookup((u64 *) &reqp);
108-
struct bio *bp = reqp->bio;
111+
struct bio *bp = (struct bio *)reqp->bio;
109112

110113
if (data == 0) {
111114
return 0; // missed issue
112115
}
113116

114-
data->err = (bp->bi_status == BLK_STS_OK) ? 0 : 1;
117+
data->err = (bp != NULL && bp->bi_status == BLK_STS_OK) ? 0 : 1;
115118

116119
// Perform aggregations
117120
if ((data->cmd_flags & REQ_OP_MASK) == REQ_OP_WRITE) {
@@ -125,11 +128,8 @@ int disk_io_done(struct pt_regs *ctx, struct request *reqp)
125128
}
126129
""" # noqa: W293
127130
b = BPF(text=bpf_text)
128-
129-
if BPF.get_kprobe_functions(b'blk_start_request'):
130-
b.attach_kprobe(event="blk_start_request", fn_name="disk_io_start")
131-
b.attach_kprobe(event="blk_mq_start_request", fn_name="disk_io_start")
132-
b.attach_kprobe(event="blk_mq_end_request", fn_name="disk_io_done")
131+
b.attach_raw_tracepoint("block_io_start", fn_name="disk_io_start")
132+
b.attach_raw_tracepoint("block_io_done", fn_name="disk_io_done")
133133

134134

135135
helper = BCCHelper(b, BCCHelper.ANALYTICS_PRINT_MODE)

0 commit comments

Comments
 (0)