From 707e14f086aa2b527f1e75aafdf6331356675e0a Mon Sep 17 00:00:00 2001 From: Zhaolei Date: Mon, 22 Sep 2008 12:15:11 +0800 Subject: socket.stp (socket.aio_read/write): Fix the semantic error caused by the difference of kernel versions. --- tapset/socket.stp | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'tapset/socket.stp') diff --git a/tapset/socket.stp b/tapset/socket.stp index 3197a0e2..e15bb481 100644 --- a/tapset/socket.stp +++ b/tapset/socket.stp @@ -214,15 +214,26 @@ probe socket.recvmsg.return = kernel.function ("sock_recvmsg").return * state Socket state value * flags Socket flags value * type Socket type value + * + * 2.6.9~2.6.15: + * static ssize_t sock_aio_write(struct kiocb *iocb, const char __user *ubuf, size_t size, loff_t pos); + * 2.6.16~2.6.18: + * static ssize_t sock_aio_write(struct kiocb *iocb, const char __user *ubuf, size_t count, loff_t pos); + * 2.6.19~2.6.26: + * static ssize_t sock_aio_write(struct kiocb *iocb, const struct iovec *iov, unsigned long nr_segs, loff_t pos); */ probe socket.aio_write = kernel.function ("sock_aio_write") { name = "socket.aio_write" _sock = _get_sock_addr ($iocb->ki_filp) -%( kernel_v < "2.6.19" %? - size = $count +%( kernel_v <= "2.6.15" %? + size = $size %: - size = _get_sock_size ($iov, $nr_segs) + %( kernel_v <= "2.6.18" %? + size = $count + %: + size = _get_sock_size ($iov, $nr_segs) + %) %) protocol = _sock_prot_num (_sock) family = _sock_fam_num (_sock) @@ -281,15 +292,26 @@ probe socket.aio_write.return = kernel.function ("sock_aio_write").return * state Socket state value * flags Socket flags value * type Socket type value + * + * 2.6.9~2.6.15: + * static ssize_t sock_aio_read(struct kiocb *iocb, char __user *ubuf, size_t size, loff_t pos); + * 2.6.16~2.6.18: + * static ssize_t sock_aio_read(struct kiocb *iocb, char __user *ubuf, size_t count, loff_t pos); + * 2.6.19~2.6.26: + * static ssize_t sock_aio_read(struct kiocb *iocb, const struct iovec *iov, unsigned long nr_segs, loff_t pos); */ probe socket.aio_read = kernel.function ("sock_aio_read") { name = "socket.aio_read" _sock = _get_sock_addr ($iocb->ki_filp) -%( kernel_v < "2.6.19" %? - size = $count +%( kernel_v <= "2.6.15" %? + size = $size %: - size = _get_sock_size ($iov, $nr_segs) + %( kernel_v <= "2.6.18" %? + size = $count + %: + size = _get_sock_size ($iov, $nr_segs) + %) %) protocol = _sock_prot_num (_sock) family = _sock_fam_num (_sock) -- cgit From 7c6a40d0b943d10c0bea44181cfea13aa0923fe9 Mon Sep 17 00:00:00 2001 From: Zhaolei Date: Tue, 23 Sep 2008 20:01:38 +0800 Subject: socket.stp (socket.aio_read/write): Fix version-checking method. Thanks Mark Wielaard --- tapset/socket.stp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tapset/socket.stp') diff --git a/tapset/socket.stp b/tapset/socket.stp index e15bb481..5c521a33 100644 --- a/tapset/socket.stp +++ b/tapset/socket.stp @@ -226,10 +226,10 @@ probe socket.aio_write = kernel.function ("sock_aio_write") { name = "socket.aio_write" _sock = _get_sock_addr ($iocb->ki_filp) -%( kernel_v <= "2.6.15" %? +%( kernel_v < "2.6.16" %? size = $size %: - %( kernel_v <= "2.6.18" %? + %( kernel_v < "2.6.19" %? size = $count %: size = _get_sock_size ($iov, $nr_segs) @@ -304,10 +304,10 @@ probe socket.aio_read = kernel.function ("sock_aio_read") { name = "socket.aio_read" _sock = _get_sock_addr ($iocb->ki_filp) -%( kernel_v <= "2.6.15" %? +%( kernel_v < "2.6.16" %? size = $size %: - %( kernel_v <= "2.6.18" %? + %( kernel_v < "2.6.19" %? size = $count %: size = _get_sock_size ($iov, $nr_segs) -- cgit