diff options
author | guanglei <guanglei> | 2006-07-14 08:03:58 +0000 |
---|---|---|
committer | guanglei <guanglei> | 2006-07-14 08:03:58 +0000 |
commit | 071426b8f266ede82a6771836aa1d8dba4a077ce (patch) | |
tree | 6d1c4f8cfc73755f7e15d610b56be88b9a5bf258 | |
parent | 0eabebdbdaedfd536cdd2e15d2dde58bbbe5d901 (diff) | |
download | systemtap-steved-071426b8f266ede82a6771836aa1d8dba4a077ce.tar.gz systemtap-steved-071426b8f266ede82a6771836aa1d8dba4a077ce.tar.xz systemtap-steved-071426b8f266ede82a6771836aa1d8dba4a077ce.zip |
bug fix for aio event hooks to make each sub event hooks runnable separately
-rw-r--r-- | tapset/LKET/Changelog | 5 | ||||
-rwxr-xr-x | tapset/LKET/aio.stp | 38 |
2 files changed, 25 insertions, 18 deletions
diff --git a/tapset/LKET/Changelog b/tapset/LKET/Changelog index b26b0d22..f5cae33e 100644 --- a/tapset/LKET/Changelog +++ b/tapset/LKET/Changelog @@ -1,3 +1,8 @@ +2006-07-14 Li Guanglei <guanglei@cn.ibm.com> + + * aio.stp: bugfix to make each aio sub event hook + runnable standalone. + 2006-07-11 Li Guanglei <guanglei@cn.ibm.com> * process.stp, register_event.stp: changes to diff --git a/tapset/LKET/aio.stp b/tapset/LKET/aio.stp index dc82bc4b..9ff93284 100755 --- a/tapset/LKET/aio.stp +++ b/tapset/LKET/aio.stp @@ -50,13 +50,13 @@ probe addevent.aio.io_setup.entry probe _addevent.aio.io_setup.entry = syscall.io_setup { - log_aio_setup(maxevents, ctxp_uaddr) + log_aio_setup(HOOKID_AIO_IO_SETUP_ENTRY, maxevents, ctxp_uaddr) } -function log_aio_setup(nr_events:long, ctxp_uaddr:long) +function log_aio_setup(hookid:long, nr_events:long, ctxp_uaddr:long) %{ /* nr_events|ctxp_uaddr */ - _lket_trace(_GROUP_AIO, _HOOKID_AIO_IO_SETUP_ENTRY, "%4b%8b", + _lket_trace(_GROUP_AIO, THIS->hookid, "%4b%8b", THIS->nr_events, THIS->ctxp_uaddr); %} @@ -91,13 +91,13 @@ probe addevent.aio.io_submit.entry probe _addevent.aio.io_submit.entry = syscall.io_submit { - log_aio_submit(ctx_id, nr, iocbpp_uaddr) + log_aio_submit(HOOKID_AIO_IO_SUBMIT_ENTRY, ctx_id, nr, iocbpp_uaddr) } -function log_aio_submit(ctx_id:long, nr:long, iocbpp_uaddr:long) +function log_aio_submit(hookid:long, ctx_id:long, nr:long, iocbpp_uaddr:long) %{ /* ctx_id | no_iocbs | iocbpp */ - _lket_trace(_GROUP_AIO, _HOOKID_AIO_IO_SUBMIT_ENTRY, "%8b%4b%8b", + _lket_trace(_GROUP_AIO, THIS->hookid, "%8b%4b%8b", THIS->ctx_id, THIS->nr, THIS->iocbpp_uaddr); %} @@ -126,16 +126,16 @@ probe addevent.aio.io_submit_one.entry probe _addevent.aio.io_submit_one.entry = kernel.function("io_submit_one") { - log_io_submit_one($ctx, $user_iocb) + log_io_submit_one(HOOKID_AIO_IO_SUBMIT_ONE_ENTRY, $ctx, $user_iocb) } -function log_io_submit_one(ctx:long, user_iocb_uaddr:long) +function log_io_submit_one(hookid:long, ctx:long, user_iocb_uaddr:long) %{ struct iocb *user_iocb = (struct iocb *)THIS->user_iocb_uaddr; /* ctx | user_iocb_addr | aio_lio_opcode | >aio_reqprio | aio_fildes | aio_buf | aio_nbytes | >aio_offset */ - _lket_trace(_GROUP_AIO, _HOOKID_AIO_IO_SUBMIT_ONE_ENTRY, + _lket_trace(_GROUP_AIO, THIS->hookid, "%8b%8b%2b%2b%4b%8b%8b%8b", THIS->ctx, THIS->user_iocb_uaddr, (_FMT_)user_iocb->aio_lio_opcode, (_FMT_)user_iocb->aio_reqprio, (_FMT_)user_iocb->aio_fildes, @@ -169,12 +169,12 @@ probe addevent.aio.io_destroy.entry probe _addevent.aio.io_destroy.entry = syscall.io_destroy { - log_io_destroy(ctx) + log_io_destroy(HOOKID_AIO_IO_DESTROY_ENTRY, ctx) } -function log_io_destroy(ctx:long) +function log_io_destroy(hookid:long, ctx:long) %{ - _lket_trace(_GROUP_AIO, _HOOKID_AIO_IO_DESTROY_ENTRY, "%8b", THIS->ctx); + _lket_trace(_GROUP_AIO, THIS->hookid, "%8b", THIS->ctx); %} @@ -205,10 +205,11 @@ probe addevent.aio.io_getevents.entry probe _addevent.aio.io_getevents.entry = syscall.io_getevents { - log_io_getevents(ctx_id, min_nr, nr, events_uaddr, timeout_uaddr) + log_io_getevents(HOOKID_AIO_IO_GETEVENTS_ENTRY, ctx_id, + min_nr, nr, events_uaddr, timeout_uaddr) } -function log_io_getevents(ctx_id:long, min_nr:long, nr:long, +function log_io_getevents(hookid:long, ctx_id:long, min_nr:long, nr:long, events_uaddr:long, timeout:long) %{ struct timespec __user *timeout = (struct timespec *)THIS->timeout; @@ -217,7 +218,7 @@ function log_io_getevents(ctx_id:long, min_nr:long, nr:long, if (unlikely(copy_from_user(&ts, timeout, sizeof(ts)))) return; - _lket_trace(_GROUP_AIO, _HOOKID_AIO_IO_GETEVENTS_ENTRY, + _lket_trace(_GROUP_AIO, THIS->hookid, "%8b%4b%4b%8b%4b%4b", THIS->ctx_id, THIS->min_nr, THIS->nr, THIS->events_uaddr, (_FMT_)ts.tv_sec, (_FMT_)ts.tv_nsec); @@ -249,12 +250,13 @@ probe addevent.aio.io_cancel.entry probe _addevent.aio.io_cancel.entry = syscall.io_cancel { - log_aio_cancel(ctx_id, iocb_uaddr, result_uaddr) + log_aio_cancel(HOOKID_AIO_IO_CANCEL_ENTRY, ctx_id, + iocb_uaddr, result_uaddr) } -function log_aio_cancel(ctx_id:long, iocb_uaddr:long, result_uaddr:long) +function log_aio_cancel(hookid:long, ctx_id:long, iocb_uaddr:long, result_uaddr:long) %{ - _lket_trace(_GROUP_AIO, _HOOKID_AIO_IO_CANCEL_ENTRY, "%8b%8b%8b", + _lket_trace(_GROUP_AIO, THIS->hookid, "%8b%8b%8b", THIS->ctx_id, THIS->iocb_uaddr, THIS->result_uaddr); %} |