1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#! stap
# test that polling loops do not exit when conflicts happen
# see PR 1379
global called, num_polls
probe kernel.function( "vfs_*" ).call {
called[execname(),probefunc()]++
}
probe timer.ms(100)
{
print("\n\n")
num_to_do = 10
foreach ([n,f] in called-) {
printf("%s called %s\t%d times\n", n, f, called[n,f])
num_to_do--
if (num_to_do <= 0)
break
}
delete called
num_polls++
if (num_polls > 30)
exit()
}
probe end {
if (num_polls <= 30)
print ("FAIL\n")
else
print ("SUCCESS\n")
}
|