On Sun, Mar 06, 2011 at 11:06:06AM +0100, Matthias Kilian wrote: > This is similar to the results on amd64, except for > t/spec/S29-context/sleep.t, which passes on amd64. [...] > Running it through ktrace(1) and then reading the trace with kdump > -R shows that `sleep' is implemented using poll(2), but using a > wrong timeout parameter, which is different during several test > runs: > > 25090 perl6 0.000023 CALL poll(0x5a9a0000,0x1,0x6abc) > 25090 perl6 27.334955 RET poll 0 > > 7918 perl6 0.000024 CALL poll(0x5cf04000,0x1,0x6b75) > 7918 perl6 27.511825 RET poll 0 > > 22718 perl6 0.000024 CALL poll(0x5e472000,0x1,0x6776) > 22718 perl6 26.491583 RET poll 0 > > So something seems to be wrong with the way rakudo calculates the > timeout parameter to poll(2), at least on mips64el.
FWIW, amd64 has the same strangeness, but here the timeout parameter is smaller than on mips64el, so it passes the test case. ktrace/kdump examples on amd64: 7989 perl6 0.000004 CALL poll(0x202a42800,0x1,0x14ef) 7989 perl6 5.361508 RET poll 0 13736 perl6 0.000004 CALL poll(0x210134400,0x1,0x15a4) 13736 perl6 5.544580 RET poll 0 Ciao, Kili