[PATCH v2] Add test for target_set tapset.

Przemysław Pawełczyk przemyslaw@pawelczyk.it
Sat Jun 20 01:00:00 GMT 2009


On Fri, Jun 19, 2009 at 22:59, Przemyslaw Pawelczyk
<przemyslaw@pawelczyk.it> wrote:
> +proc expect_target_set_pids generations {
> +       global test
> +       global stp_pid
> +       for {set i 0} {$i < $generations} {incr i} {
> +               expect {
> +                       -timeout 0
> +                       -re {^([0-9]+) begat ([0-9]+)\r\n} { set pid_array($expect_out(1,string)) $expect_out(2,string) }
> +                       timeout { failtest; return -code return }
> +               }
> +       }

This zero timeout is way to optimistic and leads to occasional
failures as Josh pointed out on #systemtap.

> +probe nd_syscall.compat_nanosleep
> +{
> +       if (target_set_pid(pid()) && @cast(req_uaddr, "timespec", "<linux/time.h>")->tv_sec == $1)
> +               target_set_report()
> +}

This is completely wrong and shouldn't see the light of day. I'm really ashamed.
Thanks Josh for noticing this and the problem of compat_* functions in general.
Still I don't see any solution for CONFIG_COMPAT=n on 64-bit architectures.

I have already sent next draft version of the patch. Any comments and
suggestions are welcomed, but please send them as reply to that patch
(not this mail). Thank you.

Regards.

-- 
Przemysław Pawełczyk



More information about the Systemtap mailing list