HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1363 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 1363.


Report 1363 Actions


    Problem Report Number 1363
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0645
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1996-12-11 08:00
    Product Standard Internationalised System Calls and Libraries Extended (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.1.1
    Test Identification Base/wait3 1, 2
    Problem Summary TSD4U.00172 This test may fail on very fast processors due to timing considerations.
    Problem Text
    The reason that the failing wait3 tests time out on some machines rather
    than others is due to a problem in UseSystemAndUserTime(). Interestingly,
    on the fastest processors this call takes the longest to complete. We
    instrumented this call to see where the elapsed time was being consumed.
    It turned out that the loop that is attempting to accumulate the system
    time was taking much longer than the loop that accumulates user time.
    This is true on all machines on our current implementation. But more
    importantly, the elapsed time needed to accumulate a second of system time
    is much greater on some of our machines than others.

    This seeming paradox can be attributed to the choice of system calls used
    in UseSystemAndUserTime(). Unfortunately, the creat(), close(), and
    unlink() system calls are likely to block in the kernel. Time spent being
    blocked in the kernel does not count as system time. On our platform
    under test, the number of instructions that can be executed in a given
    clock tick is significantly higher than for our other processors.

    Our suggestion is: rather than the descriptor oriented system calls
    currently used in UseSystemAndUserTime(), system calls that are more
    compute intensive should be used. For example, we replaced the creat(),
    close(), and unlink() calls with a single call to getpid() and nearly
    matched the elapsed user time consumed by the routine. We suspect that
    getpid() may not be the preferred choice of yours because of portability
    concerns. Perhaps a better choice would be to provide a signal handler
    and repeatedly send a signal to the calling process via raise() or
    kill(). We had about the same behavior doing this as getpid() since the
    signal handling functionality in the kernel is pretty compute intensive
    and is likely to be so on other implementations.
    Test Output
    TEST CASE: wait3

    TEST PURPOSE #1
    A successful call to pid_t wait3(int *stat_loc, int
    options, struct rusage *resource_usage) when a child
    process has not changed state prior to the call shall
    suspend the calling process until a child changes
    state, place the child's resource usage in the
    structure pointed to by resource_usage, and return the
    process id of the child process.
    PREP: fork() and wait for a child that uses some cpu time
    TEST: wait3
    ERROR: wait3 failed, errno = 4(EINTR - Interrupted system call)
    PREP: use at least 1 second user and 1 second system time
    1 FAIL

    TEST PURPOSE #2
    A successful call to pid_t wait3(int *stat_loc, int
    options, struct rusage *resource_usage) when a child
    process has changed state prior to the call shall
    immediately return the process id of the child process
    (after placing the child's resource usage in the
    structure pointed to by resource_usage).
    PREP: fork() and wait for a child that uses some cpu time
    PREP: use at least 1 second user and 1 second system time
    ERROR: Timed out waiting for completion.
    2 UNRESOLVED

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We agree this is a test suite deficiency in the test
    suite version(s) listed.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion
    This is an agreed Test Suite Deficiency.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority