PROBE::IOBLOCK.END(3stap) IO Scheduler and block IO Taps PROBE::IOBLOCK.END(3stap)

# [NAME](#NAME)

probe::ioblock.end - Fires whenever a block I/O transfer is complete.

# [SYNOPSIS](#SYNOPSIS)

```
probe ioblock.end {}
```

# [VALUES](#VALUES)

*vcnt*

bio vector count which represents number of array element (page, offset, length) which makes up this I/O request

*ino*

i-node number of the mapped file

*bytes\_done*

number of bytes transferred

*name*

name of the probe point

*size*

total size in bytes

*phys\_segments*

number of segments in this bio after physical address coalescing is performed.

*hw\_segments*

number of segments after physical and DMA remapping hardware coalescing is performed

*opf*

operations and flags

*rw*

binary trace for read/write request

*flags*

see below BIO\_UPTODATE 0 ok after I/O completion BIO\_RW\_BLOCK 1 RW\_AHEAD set, and read/write would block BIO\_EOF 2 out-out-bounds error BIO\_SEG\_VALID 3 nr\_hw\_seg valid BIO\_CLONED 4 doesn't own data BIO\_BOUNCED 5 bio is a bounce bio BIO\_USER\_MAPPED 6 contains user pages BIO\_EOPNOTSUPP 7 not supported

*error*

0 on success

*sector*

beginning sector for the entire bio

*idx*

offset into the bio vector array

*devname*

block device name

# [CONTEXT](#CONTEXT)

The process signals the transfer is done.

# [SEE ALSO0](#SEE_ALSO0)

[*tapset::ioblock*(3stap)](/man/enterprise-packages/systemtap/tapset::ioblock.3stap)

September 2026 SystemTap Tapset Reference Ver

---

Document: probe::ioblock.end(3stap) from systemtap 5.6-r1 (Chainguard OS)
Source: https://sourceware.org/git/systemtap.git
