Opened on 03/11/15 at 17:26:14
Closed on 03/12/15 at 18:34:01
#2296 closed defect (fixed)
powerpc psxualarm01 Failure
Reported by: | Joel Sherrill | Owned by: | Joel Sherrill |
---|---|---|---|
Priority: | normal | Milestone: | 4.11 |
Component: | unspecified | Version: | 4.11 |
Severity: | normal | Keywords: | |
Cc: | Blocked By: | ||
Blocking: |
Description
Assigning this to Sebastian and politely asking that he tries this on real hardware.
psxualarm01 fails on psim at init.c:95. I added the Status print.
* BEGIN OF TEST PSXUALARM *
Init's ID is 0x0b010001
Init: ualarm in 1 us
Status=4294
../../../../../../../rtems/c/src/../../testsuites/psxtests/psxualarm/init.c: 96 status == 0
Tracing, sleep() calls nanosleep(). nanosleep() appears to complete that the sleep() didn't block at all and there are 10 seconds remaining. The sleep() call in newlib doesn't appear to have the correct value in its ts variable and ts.tv_sec is 4294 consistent with the value printed.
Can you check this on real PowerPC hardware and see if it happens there? I am concerned that this is something odd beyond a coding bug (which I don't think there is).
Thanks.
Change History (4)
comment:1 Changed on 03/11/15 at 17:29:40 by Joel Sherrill
comment:2 Changed on 03/11/15 at 17:38:41 by Joel Sherrill
Milestone: | 4.11.1 → 4.11 |
---|---|
Owner: | changed from Sebastian Huber to Joel Sherrill |
Status: | new → assigned |
comment:3 Changed on 03/11/15 at 17:38:53 by Joel Sherrill
I have a pending patch and am testing this.
comment:4 Changed on 03/12/15 at 18:34:01 by Joel Sherrill <joel.sherrill@…>
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
In [changeset:"d937d364af95fec2e9a7a4af4dca6ac7d23397b2/rtems"]:
Hmmm... maybe an underflow:
(gdb) p ticks
$5 = 1000
(gdb) n
97 ticks -= executing->Timer.stop_time - executing->Timer.start_time;
(gdb)
99 _Timespec_From_ticks( ticks, rmtp );
(gdb)
108 if ( ticks )
(gdb) p ticks
$6 = 4294967292
(gdb) p *rmtp
$7 = {tv_sec = 4294, tv_nsec = 927296000}
(gdb) p executing->Timer
$8 = {Node = {next = 0x2aa24 <_POSIX_signals_Ualarm_timer>,
It took 1004 ticks to fire but we were only waiting for 1000.