locked
Not able to meassure the ISR and IST Latency using ILTIMING on x86 RRS feed

  • Question

  • Hello,

    We have Intel Atom E38xx SMP based device, when I tried to measure the ISR and IST latency using ILTIMING.exe, It gives 0.0 as both ISR and IST latency.

    I see I ILTIMING support  code in PeRPISR(). Is there any modification needed apart from this?

    ++ILTiming (Loader): ()
    iltiming
    ILTiming GetPFN
    ++ILTiming (Loader): (-z -i0)
    iltiming -z -i0
    ILTiming GetPFN
    Secondary ILTIMING process starting.

    vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    ===================================================================
                    INTERPRETING THE ILTIMING RESULTS
    -------------------------------------------------------------------
      ILTiming measures the interrupt service routine (ISR) and
      interrupt service thread (IST) latencies.

      ISR latency measured is the time from the physical interrupt
      asserting (timer wrap) to the start of the OEM ISR code.

    -------------------------------------------------------------------
      SYSTEM BUILD INFO

      PLATFORM   = ATOM
      PROCESSOR  = x86
      CONFIG     = cebase
      RET/DEBUG  = retail
      BUILD DATE = Jun  2 2015 @ (12:03:23)
    -------------------------------------------------------------------
      COUNTER INFO

      Counter Frequency     = 1460000000 Hz
      Counter tick interval = 0 ns
    -------------------------------------------------------------------
      RUNTIME OPTIONS

      Timing interval      = 5
      Number of interrupts = 10
    ===================================================================
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


    ILTiming GetPFN
    ILTiming Enabled (@ every 5 ticks)
    ILTiming Disabled
    OEMInterruptDisable(10), irq: -1 trying to disable an interrupt that is already disabled
    Discarded 2983 timings due to interrupts
    All times are in microseconds.

    Summary:
                        ISR starts   IST starts
    min                        0.0          0.0
    ave                        0.0          0.0
    max                        0.0          0.0

    Build,Platform,Processor,Project,Debug,Number of Interrupts,ISR Min,ISR Max,ISR Ave,IST Min,IST Max,IST Ave,Thread Priority,Idle Threads,read Priority,Idle Threads
    2824, ATOM,        x86,    cebase,    retail,10,                    0.0,    0.0,    0.0,    0.0,    0.0,    0.0,    0,        0
    Exiting secondary ILTIMING process.
    --ILTiming (Loader): Done!
    --ILTiming (Loader): Done!

    Friday, June 5, 2015 2:57 AM

All replies

  • Hi,

      I guess the problem comes from using of "Time Stamp Counter" as QPC, it runs too fast @ the same clock as cpu core = 1.46GHz, and causes incorrect calculation. You can check it easily by disabling SMP support.

    Another way - to enable HPET for QPC, it runs @ 10-16MHz and doesn't cause iltiming issue.
    Because of MSFT guys are so lazzy, they haven't made "acpi/memory" library (platform\common\src\x86\common\memory) which can work with real-world targets with RAM size > 512MB. So, you should improve this library to get chance to WinCE to find HPET registrers.

    Also, see platform\common\src\x86\common\qpc\qpc.c for reference.

    Good luck, Igor

    Friday, June 5, 2015 10:08 AM