Hey Michael,
What version of Solaris are you running, and what bitness (32 or 64)
are your process and kernel?
Thanks.
Adam
On Feb 26, 2009, at 3:34 AM, Michael Mueller wrote:
Hi,
For the kaio sys call (aioread) I found that the sycall provider
does not show all arguments correctly, while good old truss does. Is
this a bug?:
DTrace script:
/usr/sbin/dtrace -q -c tst -s /dev/fd/0 <<eof
syscall::kaio:entry
/arg0 == 0/ /* AIOREAD */
{
printf("*** dtrace: kaio read %d %d 0x%x %d %d %d 0x%x %d %d %d\n",
arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
}
eof
DTrace output:
-------
*** dtrace: kaio read 0 3 0x20f70 2048 0 4096 0x1182001a03 178 0 0
^ strange from arg4 on
Truss output:
-------------
kaio(AIOREAD, 3, 0x00020F70, 2048, 4096, 0xFFBFF920) = 0
^ this is the correct
address passed by tst.c
Test program output:
--------------------
aioread(fd 3, bufp 20f70, bufs 2048, offset 4096, whence 0,
resultp ffbff920)
C Program tst.c:
----------------
#include <stdio.h>
#include <sys/types.h>
#include <sys/asynch.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define OFF 4096
#define L (2048)
char buf[L];
int
main()
{
int fd;
aio_result_t r, *p;
fd = open("/dbspaces/michaelm/RAW1", O_RDONLY);
printf("aioread(fd %d, bufp %p, bufs %d, offset %d,"
" whence %d, resultp %p)\n", fd, buf, L, OFF, SEEK_SET,
&r);
if (aioread(fd, buf, L, OFF, SEEK_SET, &r))
perror("aioread");
}
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org
--
Adam Leventhal, Fishworks http://blogs.sun.com/ahl
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org