¿Por qué el enlace de llamadas al sistema produce resultados diferentes cada vez que se usa Linux / Android 2.6.29?

He implementado la conexión de llamadas al sistema para el kernel de Android 2.6.29 través de un LKM module . Estoy rastreando una aplicación de Android para llamadas al sistema. Pero curiosamente, devuelve resultados diferentes cada vez que recibo una lista de llamadas al sistema.

No puedo hacer texto en negrita en la sección de código, por lo que he puesto ** para mostrar dónde comienza la diferencia.

Por ejemplo,

primer bash:

 our_sys_gettid ---> uid = 10028 our_sys_open ---> uid = 10028 with filename= /dev/cpuctl//tasks, flags= 131073, mode=0 our_sys_write ---> uid = 10028 with fd= 30, buf = 230 and count=3 our_sys_close ---> uid = 10028 with fd= 30 our_sys_setpriority ---> uid = 10028 with which= 0, who=230 and niceval=0 our_sys_futex ---> uid = 10028 with uadd=      , op=1, val=1, utime=, uaddr2=       and val3= **our_sys_gettid ---> uid = 10028 our_sys_open ---> uid = 10028 with filename= /dev/cpuctl//tasks, flags= 131073, mode=0 our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3196467192 our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3196467192 ** our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3196466496 our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3196466496 our_sys_dup ---> uid = 10028 with fildes=32 our_sys_close ---> uid = 10028 with fd= 32 ..................... 

Segunda ejecución:

 our_sys_gettid ---> uid = 10028 our_sys_open ---> uid = 10028 with filename= /dev/cpuctl//tasks, flags= 131073, mode=0 our_sys_write ---> uid = 10028 with fd= 30, buf = 228 and count=3 our_sys_close ---> uid = 10028 with fd= 30 our_sys_setpriority ---> uid = 10028 with which= 0, who=228 and niceval=0 our_sys_futex ---> uid = 10028 with uadd=      , op=1, val=1, utime=, uaddr2=       and val3= **our_sys_gettid ---> uid = 10028 our_sys_open ---> uid = 10028 with filename= /dev/cpuctl//tasks, flags= 131073, mode=0 our_sys_write ---> uid = 10028 with fd= 30, buf = 228 and count=3 our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3198662648 our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3198662648 our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3198661952** our_sys_close ---> uid = 10028 with fd= 30 our_sys_setpriority ---> uid = 10028 with which= 0, who=228 and niceval=0 our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=1181359656 our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3198661952 our_sys_dup ---> uid = 10028 with fildes=32 our_sys_close ---> uid = 10028 with fd= 32 .................... 

Tercera ejecución:

 our_sys_gettid ---> uid = 10028 our_sys_open ---> uid = 10028 with filename= /dev/cpuctl//tasks, flags= 131073, mode=0 our_sys_write ---> uid = 10028 with fd= 31, buf = 228 and count=3 our_sys_close ---> uid = 10028 with fd= 31 our_sys_setpriority ---> uid = 10028 with which= 0, who=228 and niceval=0 our_sys_futex ---> uid = 10028 with uadd=      , op=1, val=1, utime=, uaddr2=       and val3=X{ D **our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3198035960 our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3198035960 our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_clock_gettime ---> uid = 10028 with which_clock=, tp = our_sys_munmap ---> uid = 10028 with addr=1183178752 and len=770048 our_sys_close ---> uid = 10028 with fd= 32** our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3198035264 our_sys_ioctl ---> uid = 10028 with fd=21, cmd=3222823425 and arg=3198035264 our_sys_dup ---> uid = 10028 with fildes=31 our_sys_close ---> uid = 10028 with fd= 31 ........................ 

¿Alguna idea de por qué está produciendo resultados diferentes cada vez?

¿Hay alguna otra herramienta mejor para rastrear llamadas al sistema? He oído hablar de strace/ptrace , auditd , etc. pero no estoy seguro de si se pueden usar para Android o no.