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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 2404 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 2404.


Report 2404 Actions


    Problem Report Number 2404
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.1243
    Raised 2004-06-23 00:27
    Updated 2004-06-25 19:52
    Published 2004-06-25 19:52
    Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03)
    Certification Program The Open Brand certification program
    Test Suite VSU version 5.2.5
    Test Identification CAPI.os/procprim/getitimer/T.getitimer 2
    CAPI.os/procprim/getitimer/T.getitimer 3
    Specification Base Definitions Issue 6
    Linked Problem Reports 2402
    Problem Summary Tests uses lower granularity time function for verifying success.
    Problem Text The problems with these assertions is that getitimer() is a
    high-resolution timestamp which measures time in nanoseconds. However,
    the times() system call, which is normalized to ticks, has less
    precision than using high-resolution timestamps.

    For implementations which have microstate accounting enabled, the lwps'
    timing statistics are adjusted as a lwp runs and changes its state.
    Previously lwp timing statistics were updated as part of the clock()
    interrupt and clock_tick() processing. A thread would only get its time
    statistics updated if it were caught by clock, similarly its itimer
    count would get bumped as well. With microstate accounting, the
    statistics are generated in more accurate fashion, yet the ITIMER_PROF
    and ITIMER_VIRTUAL timers still get updated by the clock.

    The test expects to see exactly 342 (360 - 18) seconds before it
    recieves the appropriate signal. However, now the process accrues time
    differently, yet its timer gets decremented only when it is processed
    for clock_tick().

    These tests should take into account the fact that ITIMER_VIRTUAL and
    ITIMER_PROF are driven by the clock_tick() processing in the clock()
    interrupt and have some huerisitc to accept that it may take more time
    than the set interval to recieve the signal.
    Test Output
    ************************************************************************
    /tset/CAPI.os/procprim/getitimer/T.getitimer 2 Failed

    Test Description:
    Base Required Conformance
    A call to int getitimer(int which, struct itimerval *value) when
    which
    is ITIMER_VIRTUAL shall store the current value of the
    ITIMER_VIRTUAL
    timer into the structure pointed to by value and return 0.

    Test Information:
    PREP: Open a temporary scratch file
    PREP: Set the ITIMER_VIRTUAL timer to a known value.
    PREP: Loop in the program for arbitrary time.
    Perform dummy I/O on temporary scratch file.
    PREP: Obtain the ITIMER_VIRTUAL timer through getitimer().
    TEST: getitimer() returns the correct timer value
    timer value = original timer set - time elapsed
    ERROR: Invalid value returned by getitimer()
    Expecting: (360.000000 - 18.000000) approx Received:
    344.340000


    ************************************************************************


    ****************************************************************************************************************
    /tset/CAPI.os/procprim/getitimer/T.getitimer 3 Failed

    Test Description:
    Base Required Conformance
    A successful call to int getitimer(int which, struct itimerval
    *value)
    when which is ITIMER_PROF shall store the current value of the
    ITIMER_PROF timer into the structure pointed to by value and
    return 0.

    Test Information:
    PREP: Open a temporary scratch file
    PREP: Set the ITIMER_PROF timer to a known value.
    PREP: Loop in the program for arbitrary time.
    Perform dummy I/O on temporary scratch file.
    PREP: Obtain the ITIMER_PROF timer through getitimer().
    TEST: getitimer() returns the correct timer value
    timer value = original timer set - time elapsed
    ERROR: Invalid value returned by getitimer()
    Expecting: (360.000000 - 18.000000) approx Received:
    344.830000


    ****************************************************************************************************************

    Review Information

    Review Type TSMA Review
    Start Date 2004-06-23 00:27
    Last Updated 2004-06-25 00:01
    Completed 2004-06-25 00:01
    Status Complete
    Review Recommendation Test Suite Deficiency (TSD)
    Review Response It does seem that these tests are making an unwarranted assumption about
    the relationship between ITIMER_VIRTUAL and User CPU time, and between
    ITIMER_PROF and total CPU time. Since the specification for getitimer()
    uses the term "process virtual time" instead of mentioning CPU time, an
    implementation that uses different time-accounting methods for
    getitimer() and times() would appear to be allowed.

    Review Type SA Review
    Start Date 2004-06-24 23:01
    Last Updated 2004-06-25 02:10
    Completed 2004-06-25 02:10
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion This PR is an agreed test suite deficiency.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority