From 06bcf3651c189a06af219037dca510d008650e03 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Wed, 29 Sep 2021 04:48:22 -0400 Subject: [PATCH] traceaio example: tweak @cast and IOCB_CMD_* Make this test case operable without kernel debuginfo by using @cast( ..., "kernel
") to extract iocb / iovec decls from headers. Rename IO_CMD_* values to IOCB_CMD_* to match linux aio_abi.h --- testsuite/systemtap.examples/io/traceaio.stp | 22 ++++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/testsuite/systemtap.examples/io/traceaio.stp b/testsuite/systemtap.examples/io/traceaio.stp index 903d65526..b1d220773 100755 --- a/testsuite/systemtap.examples/io/traceaio.stp +++ b/testsuite/systemtap.examples/io/traceaio.stp @@ -8,8 +8,8 @@ # published by the Free Software Foundation. # -@define IO_CMD_PREADV %( 7 %) -@define IO_CMD_PWRITEV %( 8 %) +@define IOCB_CMD_PREADV %( 7 %) +@define IOCB_CMD_PWRITEV %( 8 %) probe begin { println("Tracing started"); @@ -22,19 +22,19 @@ probe syscall.io_submit for (i = 0; i < nr; i++) { iocbp = user_uint64(iocbpp_uaddr + i * 8) - fd = user_uint32(&@cast(iocbp, "iocb", "kernel")->aio_fildes) - opcode = user_uint16(&@cast(iocbp, "iocb", "kernel")->aio_lio_opcode) - offset = user_int64(&@cast(iocbp, "iocb", "kernel")->aio_offset) - nbytes = user_uint64(&@cast(iocbp, "iocb", "kernel")->aio_nbytes) - buf = user_uint64(&@cast(iocbp, "iocb", "kernel")->aio_buf) + fd = user_uint32(&@cast(iocbp, "iocb", "kernel")->aio_fildes) + opcode = user_uint16(&@cast(iocbp, "iocb", "kernel")->aio_lio_opcode) + offset = user_int64(&@cast(iocbp, "iocb", "kernel")->aio_offset) + nbytes = user_uint64(&@cast(iocbp, "iocb", "kernel")->aio_nbytes) + buf = user_uint64(&@cast(iocbp, "iocb", "kernel")->aio_buf) printf(" iocb[%4d]=%p, fd=%d, opcode=%d, offset=%d, nbytes=%d, buf=%p\n", i, iocbp, fd, opcode, offset, nbytes, buf) - if (opcode == @IO_CMD_PREADV || opcode == @IO_CMD_PREADV) { + if (opcode == @IOCB_CMD_PREADV || opcode == @IOCB_CMD_PREADV) { for (j = 0; j < nbytes; j++) { - iovecp = &@cast(buf, "iovec", "kernel")[j] - base = user_uint64(&@cast(iovecp, "iovec", "kernel")->iov_base) - len = user_uint32(&@cast(iovecp, "iovec", "kernel")->iov_len) + iovecp = &@cast(buf, "iovec", "kernel")[j] + base = user_uint64(&@cast(iovecp, "iovec", "kernel")->iov_base) + len = user_uint32(&@cast(iovecp, "iovec", "kernel")->iov_len) printf(" iovec[%4d]=%p, base=%p, len=%d\n", j, iovecp, base, len) } -- 2.43.5