Main Page   Modules   Alphabetical List   Data Structures   File List   Data Fields   Globals  

IXP425 Performance Profiling (IxPerfProfAcc) API

IXP425 Performance Profiling Utility component Public API. More...

Data Structures

struct  IxPerfProfAccBusPmuResults
 Results obtained from running the Bus Pmu component. The results are obtained when the get functions is called. More...

struct  IxPerfProfAccXcycleResults
 Results obtained from Xcycle run. More...

struct  IxPerfProfAccXscalePmuEvtCnt
 contains results of a counter More...

struct  IxPerfProfAccXscalePmuResults
 contains results of counters and their overflow More...

struct  IxPerfProfAccXscalePmuSamplePcProfile
 contains summary of samples taken More...


Defines

#define IX_PERFPROF_ACC_XSCALE_PMU_MAX_PROFILE_SAMPLES
 This is the maximum number of profiling samples allowed, which can be modified according to the user's discretion.

#define IX_PERFPROF_ACC_BUS_PMU_MAX_PECS
 This is the maximum number of Programmable Event Counters available. This is a hardware specific and fixed value. Do not change.

#define IX_PERFPROF_ACC_XCYCLE_MAX_NUM_OF_MEASUREMENTS
 Max number of measurement allowed. This constant is used when creating storage array for Xcycle. When run in continuous mode, Xcycle will wrap around and re-use buffer.

#define IX_PERFPROF_ACC_LOG(level, str, a, b, c, d, e, f)
 Mechanism for logging a formatted message for the PerfProfAcc component.


Enumerations

enum  IxPerfProfAccBusPmuEventCounters1 {
  IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEA_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEB_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEC_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_BUS_IDLE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEA_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEB_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEC_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_GSKT_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_ABB_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_PCI_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_APB_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_GSKT_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_ABB_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_PCI_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_APB_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_0_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_1_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_2_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_3_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_4_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_5_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_6_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_7_MISS_SELECT
}
 Type of bus pmu events supported on PEC 1. More...

enum  IxPerfProfAccBusPmuEventCounters2 {
  IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEA_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEB_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEC_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_BUS_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEA_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEB_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEC_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_GSKT_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_ABB_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_PCI_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_APB_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_GSKT_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_ABB_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_PCI_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_APB_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_1_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_2_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_3_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_4_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_5_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_6_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_7_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_0_MISS_SELECT
}
 Type of bus pmu events supported on PEC 2. More...

enum  IxPerfProfAccBusPmuEventCounters3 {
  IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEA_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEB_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEC_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_BUS_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEA_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEB_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEC_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_GSKT_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_ABB_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_PCI_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_APB_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_GSKT_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_ABB_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_PCI_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_APB_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_2_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_3_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_4_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_5_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_6_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_7_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_0_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_1_MISS_SELECT
}
 Type of bus pmu events supported on PEC 3. More...

enum  IxPerfProfAccBusPmuEventCounters4 {
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_PCI_SPLIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_EXP_SPLIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_APB_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_APB_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_GSKT_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_ABB_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_PCI_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_APB_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_NORTH_ABB_SPLIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_NORTH_NPEA_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_NORTH_NPEA_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_NORTH_NPEB_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_NORTH_NPEC_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_3_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_4_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_5_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_6_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_7_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_0_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_1_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_2_MISS_SELECT
}
 Type of bus pmu events supported on PEC 4. More...

enum  IxPerfProfAccBusPmuEventCounters5 {
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_ABB_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_ABB_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_ABB_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_EXP_SPLIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_ABB_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_ABB_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_BUS_IDLE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_4_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_5_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_6_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_7_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_0_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_1_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_2_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_3_MISS_SELECT
}
 Type of bus pmu events supported on PEC 5. More...

enum  IxPerfProfAccBusPmuEventCounters6 {
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_SPLIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_BUS_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_GRANT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_XFER_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEB_WRITE_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_5_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_6_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_7_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_0_HIT_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_1_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_2_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_3_MISS_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_4_MISS_SELECT
}
 Type of bus pmu events supported on PEC 6. More...

enum  IxPerfProfAccBusPmuEventCounters7 {
  IX_PERFPROF_ACC_BUS_PMU_PEC7_SOUTH_APB_RETRY_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC7_SOUTH_APB_REQ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC7_SOUTH_APB_OWN_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC7_SOUTH_BUS_READ_SELECT,
  IX_PERFPROF_ACC_BUS_PMU_PEC7_CYCLE_COUNT_SELECT
}
 Type of bus pmu events supported on PEC 7. More...

enum  IxPerfProfAccXscalePmuEvent {
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_CACHE_MISS,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_CACHE_INSTRUCTION,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_STALL,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_INST_TLB_MISS,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_DATA_TLB_MISS,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_BRANCH_EXEC,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_BRANCH_MISPREDICT,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_INST_EXEC,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_FULL_EVERYCYCLE,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_ONCE,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_DATA_CACHE_ACCESS,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_DATA_CACHE_MISS,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_DATA_CACHE_WRITEBACK,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_SW_CHANGE_PC,
  IX_PERFPROF_ACC_XSCALE_PMU_EVENT_MAX
}
 Type of xscale pmu events supported. More...

enum  IxPerfProfAccStatus {
  IX_PERFPROF_ACC_STATUS_SUCCESS,
  IX_PERFPROF_ACC_STATUS_FAIL,
  IX_PERFPROF_ACC_STATUS_ANOTHER_UTIL_IN_PROGRESS,
  IX_PERFPROF_ACC_STATUS_XCYCLE_MEASUREMENT_IN_PROGRESS,
  IX_PERFPROF_ACC_STATUS_XCYCLE_NO_BASELINE,
  IX_PERFPROF_ACC_STATUS_XCYCLE_MEASUREMENT_REQUEST_OUT_OF_RANGE,
  IX_PERFPROF_ACC_STATUS_XCYCLE_PRIORITY_SET_FAIL,
  IX_PERFPROF_ACC_STATUS_XCYCLE_THREAD_CREATE_FAIL,
  IX_PERFPROF_ACC_STATUS_XCYCLE_PRIORITY_RESTORE_FAIL,
  IX_PERFPROF_ACC_STATUS_XCYCLE_MEASUREMENT_NOT_RUNNING,
  IX_PERFPROF_ACC_STATUS_XSCALE_PMU_NUM_INVALID,
  IX_PERFPROF_ACC_STATUS_XSCALE_PMU_EVENT_INVALID,
  IX_PERFPROF_ACC_STATUS_XSCALE_PMU_START_NOT_CALLED,
  IX_PERFPROF_ACC_STATUS_BUS_PMU_MODE_ERROR,
  IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC1_ERROR,
  IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC2_ERROR,
  IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC3_ERROR,
  IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC4_ERROR,
  IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC5_ERROR,
  IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC6_ERROR,
  IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC7_ERROR,
  IX_PERFPROF_ACC_STATUS_BUS_PMU_START_NOT_CALLED
}
 Invalid Status Definitions. More...

enum  IxPerfProfAccBusPmuMode {
  IX_PERFPROF_ACC_BUS_PMU_MODE_HALT,
  IX_PERFPROF_ACC_BUS_PMU_MODE_SOUTH,
  IX_PERFPROF_ACC_BUS_PMU_MODE_NORTH,
  IX_PERFPROF_ACC_BUS_PMU_MODE_SDRAM
}
 State selection of counters. More...


Functions

PUBLIC IxPerfProfAccStatus ixPerfProfAccXscalePmuEventCountStart (BOOL clkCntDiv, UINT32 numEvents, IxPerfProfAccXscalePmuEvent pmuEvent1, IxPerfProfAccXscalePmuEvent pmuEvent2, IxPerfProfAccXscalePmuEvent pmuEvent3, IxPerfProfAccXscalePmuEvent pmuEvent4)
 This API will start the clock and event counting.

PUBLIC IxPerfProfAccStatus ixPerfProfAccXscalePmuEventCountStop (IxPerfProfAccXscalePmuResults *eventCountStopResults)
 This API will stop the clock and event counting.

PUBLIC IxPerfProfAccStatus ixPerfProfAccXscalePmuTimeSampStart (UINT32 samplingRate, BOOL clkCntDiv)
 Starts the time based sampling.

PUBLIC IxPerfProfAccStatus ixPerfProfAccXscalePmuTimeSampStop (IxPerfProfAccXscalePmuEvtCnt *clkCount, IxPerfProfAccXscalePmuSamplePcProfile *timeProfile)
 Stops the time based sampling.

PUBLIC IxPerfProfAccStatus ixPerfProfAccXscalePmuEventSampStart (UINT32 numEvents, IxPerfProfAccXscalePmuEvent pmuEvent1, UINT32 eventRate1, IxPerfProfAccXscalePmuEvent pmuEvent2, UINT32 eventRate2, IxPerfProfAccXscalePmuEvent pmuEvent3, UINT32 eventRate3, IxPerfProfAccXscalePmuEvent pmuEvent4, UINT32 eventRate4)
 Starts the event based sampling.

PUBLIC IxPerfProfAccStatus ixPerfProfAccXscalePmuEventSampStop (IxPerfProfAccXscalePmuSamplePcProfile *eventProfile1, IxPerfProfAccXscalePmuSamplePcProfile *eventProfile2, IxPerfProfAccXscalePmuSamplePcProfile *eventProfile3, IxPerfProfAccXscalePmuSamplePcProfile *eventProfile4)
 Stops the event based sampling.

PUBLIC void ixPerfProfAccXscalePmuResultsGet (IxPerfProfAccXscalePmuResults *results)
 Reads the current value of the counters and their overflow.

PUBLIC IxPerfProfAccStatus ixPerfProfAccBusPmuStart (IxPerfProfAccBusPmuMode mode, IxPerfProfAccBusPmuEventCounters1 pecEvent1, IxPerfProfAccBusPmuEventCounters2 pecEvent2, IxPerfProfAccBusPmuEventCounters3 pecEvent3, IxPerfProfAccBusPmuEventCounters4 pecEvent4, IxPerfProfAccBusPmuEventCounters5 pecEvent5, IxPerfProfAccBusPmuEventCounters6 pecEvent6, IxPerfProfAccBusPmuEventCounters7 pecEvent7)
 Initializes all the counters and selects events to be monitored.

PUBLIC IxPerfProfAccStatus ixPerfProfAccBusPmuStop (void)
 Stops all counters.

PUBLIC void ixPerfProfAccBusPmuResultsGet (IxPerfProfAccBusPmuResults *BusPmuResults)
 Gets values of all counters.

PUBLIC void ixPerfProfAccBusPmuPMSRGet (UINT32 *pmsrValue)
 Get values of PMSR.

PUBLIC IxPerfProfAccStatus ixPerfProfAccXcycleBaselineRun (UINT32 *numBaselineCycle)
 Perform baseline for Xcycle.

PUBLIC IxPerfProfAccStatus ixPerfProfAccXcycleStart (UINT32 numMeasurementsRequested)
 Start the measurement.

PUBLIC IxPerfProfAccStatus ixPerfProfAccXcycleStop (void)
 Stop the Xcycle measurement.

PUBLIC IxPerfProfAccStatus ixPerfProfAccXcycleResultsGet (IxPerfProfAccXcycleResults *xcycleResult)
 Get the results of Xcycle measurement.

PUBLIC BOOL ixPerfProfAccXcycleInProgress (void)
 Check if Xcycle is running.

int ixPerfProfAccXscalePmuTimeSampCreateProcFile (char *buf, char **start, off_t offset, int count, int *eof, void *data)
int ixPerfProfAccXscalePmuEventSampCreateProcFile (char *buf, char **start, off_t offset, int count, int *eof, void *data)

Detailed Description

IXP425 Performance Profiling Utility component Public API.


Define Documentation

#define IX_PERFPROF_ACC_BUS_PMU_MAX_PECS
 

This is the maximum number of Programmable Event Counters available. This is a hardware specific and fixed value. Do not change.

Definition at line 85 of file IxPerfProfAcc.h.

#define IX_PERFPROF_ACC_LOG level,
str,
a,
b,
c,
d,
e,
 ) 
 

Mechanism for logging a formatted message for the PerfProfAcc component.

Parameters:
UINT32 [in] level - trace level
char* [in] str - format string, similar to printf().
UINT32 [in] a - first argument to display
UINT32 [in] b - second argument to display
UINT32 [in] c - third argument to display
UINT32 [in] d - fourth argument to display
UINT32 [in] e - fifth argument to display
UINT32 [in] f - sixth argument to display
Returns:
none

Definition at line 117 of file IxPerfProfAcc.h.

#define IX_PERFPROF_ACC_XCYCLE_MAX_NUM_OF_MEASUREMENTS
 

Max number of measurement allowed. This constant is used when creating storage array for Xcycle. When run in continuous mode, Xcycle will wrap around and re-use buffer.

Definition at line 96 of file IxPerfProfAcc.h.

#define IX_PERFPROF_ACC_XSCALE_PMU_MAX_PROFILE_SAMPLES
 

This is the maximum number of profiling samples allowed, which can be modified according to the user's discretion.

Definition at line 74 of file IxPerfProfAcc.h.


Enumeration Type Documentation

enum IxPerfProfAccBusPmuEventCounters1
 

Type of bus pmu events supported on PEC 1.

Lists all bus pmu events.

Enumeration values:
IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEA_GRANT_SELECT  Select North NPEA grant on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEB_GRANT_SELECT  Select North NPEB grant on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEC_GRANT_SELECT  Select North NPEC grant on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_BUS_IDLE_SELECT  Select North bus idle on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEA_REQ_SELECT  Select North NPEA req on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEB_REQ_SELECT  Select North NPEB req on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_NORTH_NPEC_REQ_SELECT  Select North NPEC req on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_GSKT_GRANT_SELECT  Select south gasket grant on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_ABB_GRANT_SELECT  Select south abb grant on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_PCI_GRANT_SELECT  Select south pci grant on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_APB_GRANT_SELECT  Select south apb grant on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_GSKT_REQ_SELECT  Select south gasket request on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_ABB_REQ_SELECT  Select south abb request on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_PCI_REQ_SELECT  Select south pci request on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SOUTH_APB_REQ_SELECT  Select south apb request on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_0_HIT_SELECT  Select sdram0 hit on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_1_HIT_SELECT  Select sdram1 hit on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_2_HIT_SELECT  Select sdram2 hit on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_3_HIT_SELECT  Select sdram3 hit on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_4_MISS_SELECT  Select sdram4 miss on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_5_MISS_SELECT  Select sdram5 miss on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_6_MISS_SELECT  Select sdram6 miss on PEC1.
IX_PERFPROF_ACC_BUS_PMU_PEC1_SDR_7_MISS_SELECT  Select sdram7 miss on PEC1.

Definition at line 208 of file IxPerfProfAcc.h.

enum IxPerfProfAccBusPmuEventCounters2
 

Type of bus pmu events supported on PEC 2.

Lists all bus pmu events.

Enumeration values:
IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEA_XFER_SELECT  Select North NPEA transfer on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEB_XFER_SELECT  Select North NPEB transfer on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEC_XFER_SELECT  Select North NPEC transfer on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_BUS_WRITE_SELECT  Select North bus write on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEA_OWN_SELECT  Select North NPEA own on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEB_OWN_SELECT  Select North NPEB own on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_NORTH_NPEC_OWN_SELECT  Select North NPEC own on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_GSKT_XFER_SELECT  Select South gasket transfer on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_ABB_XFER_SELECT  Select South abb transfer on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_PCI_XFER_SELECT  Select South pci transfer on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_APB_XFER_SELECT  Select South apb transfer on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_GSKT_OWN_SELECT  Select South gasket own on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_ABB_OWN_SELECT  Select South abb own on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_PCI_OWN_SELECT  Select South pci own on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SOUTH_APB_OWN_SELECT  Select South apb own transfer on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_1_HIT_SELECT  Select sdram1 hit on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_2_HIT_SELECT  Select sdram2 hit on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_3_HIT_SELECT  Select sdram3 hit on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_4_HIT_SELECT  Select sdram4 hit on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_5_MISS_SELECT  Select sdram5 miss on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_6_MISS_SELECT  Select sdram6 miss on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_7_MISS_SELECT  Select sdram7 miss on PEC2.
IX_PERFPROF_ACC_BUS_PMU_PEC2_SDR_0_MISS_SELECT  Select sdram0 miss on PEC2.

Definition at line 246 of file IxPerfProfAcc.h.

enum IxPerfProfAccBusPmuEventCounters3
 

Type of bus pmu events supported on PEC 3.

Lists all bus pmu events.

Enumeration values:
IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEA_RETRY_SELECT  Select north NPEA retry on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEB_RETRY_SELECT  Select north NPEB retry on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEC_RETRY_SELECT  Select north NPEC retry on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_BUS_READ_SELECT  Select north bus read on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEA_WRITE_SELECT  Select north NPEA write on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEB_WRITE_SELECT  Select north NPEB write on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_NORTH_NPEC_WRITE_SELECT  Select north NPEC wirte on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_GSKT_RETRY_SELECT  Select south gasket retry on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_ABB_RETRY_SELECT  Select south abb retry on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_PCI_RETRY_SELECT  Select south pci retry on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_APB_RETRY_SELECT  Select south apb retry on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_GSKT_WRITE_SELECT  Select south gasket write on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_ABB_WRITE_SELECT  Select south abb write on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_PCI_WRITE_SELECT  Select south pci write on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SOUTH_APB_WRITE_SELECT  Select south apb write on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_2_HIT_SELECT  Select sdram2 hit on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_3_HIT_SELECT  Select sdram3 hit on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_4_HIT_SELECT  Select sdram4 hit on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_5_HIT_SELECT  Select sdram5 hit on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_6_MISS_SELECT  Select sdram6 miss on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_7_MISS_SELECT  Select sdram7 miss on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_0_MISS_SELECT  Select sdram0 miss on PEC3.
IX_PERFPROF_ACC_BUS_PMU_PEC3_SDR_1_MISS_SELECT  Select sdram1 miss on PEC3.

Definition at line 284 of file IxPerfProfAcc.h.

enum IxPerfProfAccBusPmuEventCounters4
 

Type of bus pmu events supported on PEC 4.

Lists all bus pmu events.

Enumeration values:
IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_PCI_SPLIT_SELECT  Select south pci split on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_EXP_SPLIT_SELECT  Select south expansion split on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_APB_GRANT_SELECT  Select south apb grant on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_APB_XFER_SELECT  Select south apb transfer on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_GSKT_READ_SELECT  Select south gasket read on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_ABB_READ_SELECT  Select south abb read on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_PCI_READ_SELECT  Select south pci read on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SOUTH_APB_READ_SELECT  Select south apb read on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_NORTH_ABB_SPLIT_SELECT  Select north abb split on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_NORTH_NPEA_REQ_SELECT  Select north NPEA req on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_NORTH_NPEA_READ_SELECT  Select north NPEA read on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_NORTH_NPEB_READ_SELECT  Select north NPEB read on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_NORTH_NPEC_READ_SELECT  Select north NPEC read on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_3_HIT_SELECT  Select sdram3 hit on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_4_HIT_SELECT  Select sdram4 hit on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_5_HIT_SELECT  Select sdram5 hit on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_6_HIT_SELECT  Select sdram6 hit on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_7_MISS_SELECT  Select sdram7 miss on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_0_MISS_SELECT  Select sdram0 miss on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_1_MISS_SELECT  Select sdram1 miss on PEC4.
IX_PERFPROF_ACC_BUS_PMU_PEC4_SDR_2_MISS_SELECT  Select sdram2 miss on PEC4.

Definition at line 322 of file IxPerfProfAcc.h.

enum IxPerfProfAccBusPmuEventCounters5
 

Type of bus pmu events supported on PEC 5.

Lists all bus pmu events.

Enumeration values:
IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_ABB_GRANT_SELECT  Select south abb grant on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_ABB_XFER_SELECT  Select south abb transfer on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_ABB_RETRY_SELECT  Select south abb retry on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_EXP_SPLIT_SELECT  Select south expansion split on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_ABB_REQ_SELECT  Select south abb request on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_ABB_OWN_SELECT  Select south abb own on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SOUTH_BUS_IDLE_SELECT  Select south bus idle on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_GRANT_SELECT  Select north NPEB grant on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_XFER_SELECT  Select north NPEB transfer on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_RETRY_SELECT  Select north NPEB retry on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_REQ_SELECT  Select north NPEB request on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_OWN_SELECT  Select north NPEB own on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_WRITE_SELECT  Select north NPEB write on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_NORTH_NPEB_READ_SELECT  Select north NPEB read on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_4_HIT_SELECT  Select north sdram4 hit on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_5_HIT_SELECT  Select north sdram5 hit on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_6_HIT_SELECT  Select north sdram6 hit on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_7_HIT_SELECT  Select north sdram7 hit on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_0_MISS_SELECT  Select north sdram0 miss on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_1_MISS_SELECT  Select north sdram1 miss on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_2_MISS_SELECT  Select north sdram2 miss on PEC5.
IX_PERFPROF_ACC_BUS_PMU_PEC5_SDR_3_MISS_SELECT  Select north sdram3 miss on PEC5.

Definition at line 358 of file IxPerfProfAcc.h.

enum IxPerfProfAccBusPmuEventCounters6
 

Type of bus pmu events supported on PEC 6.

Lists all bus pmu events.

Enumeration values:
IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_GRANT_SELECT  Select south pci grant on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_XFER_SELECT  Select south pci transfer on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_RETRY_SELECT  Select south pci retry on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_SPLIT_SELECT  Select south pci split on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_REQ_SELECT  Select south pci request on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_PCI_OWN_SELECT  Select south pci own on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SOUTH_BUS_WRITE_SELECT  Select south pci write on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_GRANT_SELECT  Select north NPEC grant on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_XFER_SELECT  Select north NPEC transfer on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_RETRY_SELECT  Select north NPEC retry on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_REQ_SELECT  Select north NPEC request on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_OWN_SELECT  Select north NPEC own on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEB_WRITE_SELECT  Select north NPEB write on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_NORTH_NPEC_READ_SELECT  Select north NPEC read on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_5_HIT_SELECT  Select sdram5 hit on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_6_HIT_SELECT  Select sdram6 hit on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_7_HIT_SELECT  Select sdram7 hit on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_0_HIT_SELECT  Select sdram0 hit on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_1_MISS_SELECT  Select sdram1 miss on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_2_MISS_SELECT  Select sdram2 miss on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_3_MISS_SELECT  Select sdram3 miss on PEC6.
IX_PERFPROF_ACC_BUS_PMU_PEC6_SDR_4_MISS_SELECT  Select sdram4 miss on PEC6.

Definition at line 395 of file IxPerfProfAcc.h.

enum IxPerfProfAccBusPmuEventCounters7
 

Type of bus pmu events supported on PEC 7.

Lists all bus pmu events.

Enumeration values:
IX_PERFPROF_ACC_BUS_PMU_PEC7_SOUTH_APB_RETRY_SELECT  Select south apb retry on PEC7.
IX_PERFPROF_ACC_BUS_PMU_PEC7_SOUTH_APB_REQ_SELECT  Select south apb request on PEC7.
IX_PERFPROF_ACC_BUS_PMU_PEC7_SOUTH_APB_OWN_SELECT  Select south apb own on PEC7.
IX_PERFPROF_ACC_BUS_PMU_PEC7_SOUTH_BUS_READ_SELECT  Select south bus read on PEC7.
IX_PERFPROF_ACC_BUS_PMU_PEC7_CYCLE_COUNT_SELECT  Select cycle count on PEC7.

Definition at line 432 of file IxPerfProfAcc.h.

enum IxPerfProfAccBusPmuMode
 

State selection of counters.

These states will be used to determine the counters whose values are to be read.

Enumeration values:
IX_PERFPROF_ACC_BUS_PMU_MODE_HALT  halt state
IX_PERFPROF_ACC_BUS_PMU_MODE_SOUTH  south state
IX_PERFPROF_ACC_BUS_PMU_MODE_NORTH  north state
IX_PERFPROF_ACC_BUS_PMU_MODE_SDRAM  SDRAM state.

Definition at line 553 of file IxPerfProfAcc.h.

enum IxPerfProfAccStatus
 

Invalid Status Definitions.

These status will be used by the APIs to return to the user.

Enumeration values:
IX_PERFPROF_ACC_STATUS_SUCCESS  success
IX_PERFPROF_ACC_STATUS_FAIL  fail
IX_PERFPROF_ACC_STATUS_ANOTHER_UTIL_IN_PROGRESS  another utility in progress
IX_PERFPROF_ACC_STATUS_XCYCLE_MEASUREMENT_IN_PROGRESS  measurement in progress
IX_PERFPROF_ACC_STATUS_XCYCLE_NO_BASELINE  no baseline yet
IX_PERFPROF_ACC_STATUS_XCYCLE_MEASUREMENT_REQUEST_OUT_OF_RANGE  Measurement chosen is out of range.
IX_PERFPROF_ACC_STATUS_XCYCLE_PRIORITY_SET_FAIL  Cannot set task priority.
IX_PERFPROF_ACC_STATUS_XCYCLE_THREAD_CREATE_FAIL  Fail create thread.
IX_PERFPROF_ACC_STATUS_XCYCLE_PRIORITY_RESTORE_FAIL  cannot restore priority
IX_PERFPROF_ACC_STATUS_XCYCLE_MEASUREMENT_NOT_RUNNING  xcycle not running
IX_PERFPROF_ACC_STATUS_XSCALE_PMU_NUM_INVALID  invalid number entered
IX_PERFPROF_ACC_STATUS_XSCALE_PMU_EVENT_INVALID  invalid pmu event
IX_PERFPROF_ACC_STATUS_XSCALE_PMU_START_NOT_CALLED  a start process was not called before attempting a stop or results get
IX_PERFPROF_ACC_STATUS_BUS_PMU_MODE_ERROR  invalid mode
IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC1_ERROR  invalid pec1 entered
IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC2_ERROR  invalid pec2 entered
IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC3_ERROR  invalid pec3 entered
IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC4_ERROR  invalid pec4 entered
IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC5_ERROR  invalid pec5 entered
IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC6_ERROR  invalid pec6 entered
IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC7_ERROR  invalid pec7 entered
IX_PERFPROF_ACC_STATUS_BUS_PMU_START_NOT_CALLED  a start process was not called before attempting a stop

Definition at line 491 of file IxPerfProfAcc.h.

enum IxPerfProfAccXscalePmuEvent
 

Type of xscale pmu events supported.

Lists all xscale pmu events. The maximum is a default value that the user should not exceed.

Enumeration values:
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_CACHE_MISS  cache miss
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_CACHE_INSTRUCTION  cache instruction
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_STALL  event stall
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_INST_TLB_MISS  instruction tlb miss
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_DATA_TLB_MISS  data tlb miss
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_BRANCH_EXEC  branch executed
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_BRANCH_MISPREDICT  branch mispredict
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_INST_EXEC  instruction executed
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_FULL_EVERYCYCLE  Stall - data cache buffers are full.

This event occurs every cycle where condition present

IX_PERFPROF_ACC_XSCALE_PMU_EVENT_ONCE  Stall - data cache buffers are full.This event occurs once for each contiguous sequence.
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_DATA_CACHE_ACCESS  data cache access
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_DATA_CACHE_MISS  data cache miss
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_DATA_CACHE_WRITEBACK  data cache writeback
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_SW_CHANGE_PC  sw change pc
IX_PERFPROF_ACC_XSCALE_PMU_EVENT_MAX  max value

Definition at line 451 of file IxPerfProfAcc.h.


Function Documentation

ixPerfProfAccBusPmuPMSRGet UINT32 *  pmsrValue  ) 
 

Get values of PMSR.

This API gets the Previous Master Slave Register value and returns it to the calling function. This value indicates which master or slave accessed the north, south bus or sdram last. The value returned by this function is a 32 bit value and is read from location of an offset 0x0024 of the base value.

The PMSR value returned indicate the following:

************************************************************************************* * Bit * Name * Description * * * ************************************************************************************* * [31:18] *Reserved* * ************************************************************************************* * [17:12] * PSS * Indicates which of the slaves on * * * * ARBS was previously * * * * accessed by the AHBS. * * * * [000001] Expansion Bus * * * * [000010] SDRAM Controller * * * * [000100] PCI * * * * [001000] Queue Manager * * * * [010000] AHB-APB Bridge * * * * [100000] Reserved * ************************************************************************************* * [11:8] * PSN * Indicates which of the Slaves on * * * * ARBN was previously * * * * accessed the AHBN. * * * * [0001] SDRAM Controller * * * * [0010] AHB-AHB Bridge * * * * [0100] Reserved * * * * [1000] Reserved * ************************************************************************************* * [7:4] * PMS * Indicates which of the Masters on * * * * ARBS was previously * * * * accessing the AHBS. * * * * [0001] Gasket * * * * [0010] AHB-AHB Bridge * * * * [0100] PCI * * * * [1000] APB * ************************************************************************************* * [3:0] * PMN * Indicates which of the Masters on * * * * ARBN was previously * * * * accessing the AHBN. * * * * [0001] NPEA * * * * [0010] NPEB * * * * [0100] NPEC * * * * [1000] Reserved * *************************************************************************************

Parameters:
UINT32 *pmsrValue - Pointer to return PMSR value. Users need to allocate storage for psmrValue.
Returns:
none
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccBusPmuResultsGet IxPerfProfAccBusPmuResults BusPmuResults  ) 
 

Gets values of all counters.

This function is responsible for getting all the counter values from the lower API and putting it into an array for the user.

Parameters:
- "IxPerfProfAccBusPmuResults *busPmuResults"
  • Pointer to a structure of arrays to store all counter values.
Returns:
none
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccBusPmuStart IxPerfProfAccBusPmuMode  mode,
IxPerfProfAccBusPmuEventCounters1  pecEvent1,
IxPerfProfAccBusPmuEventCounters2  pecEvent2,
IxPerfProfAccBusPmuEventCounters3  pecEvent3,
IxPerfProfAccBusPmuEventCounters4  pecEvent4,
IxPerfProfAccBusPmuEventCounters5  pecEvent5,
IxPerfProfAccBusPmuEventCounters6  pecEvent6,
IxPerfProfAccBusPmuEventCounters7  pecEvent7
 

Initializes all the counters and selects events to be monitored.

Function initializes all the counters and assigns the events associated with the counters. Users send in the mode and events they want to count. This API verifies if the combination chosen is appropriate and sets all the registers accordingly. Selecting HALT mode will result in an error. User should use ixPerfProfAccBusPmuStop() to HALT.

Parameters:
IxPerfProfAccStateBusPmuMode mode - Mode selection.
IxPerfProfAccBusPmuEventCounters1 pecEvent1 - Event for PEC1.
IxPerfProfAccBusPmuEventCounters2 pecEvent2 - Event for PEC2.
IxPerfProfAccBusPmuEventCounters3 pecEvent3 - Event for PEC3.
IxPerfProfAccBusPmuEventCounters4 pecEvent4 - Event for PEC4.
IxPerfProfAccBusPmuEventCounters5 pecEvent5 - Event for PEC5.
IxPerfProfAccBusPmuEventCounters6 pecEvent6 - Event for PEC6.
IxPerfProfAccBusPmuEventCounters7 pecEvent7 - Event for PEC7.
Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS - Initialization executed successfully.
  • IX_PERFPROF_ACC_STATUS_BUS_PMU_MODE_ERROR - Error in selection of mode. Only NORTH, SOUTH and SDRAM modes are allowed.
  • IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC1_ERROR - Error in selection of event for PEC1
  • IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC2_ERROR - Error in selection of event for PEC2
  • IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC3_ERROR - Error in selection of event for PEC3
  • IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC4_ERROR - Error in selection of event for PEC4
  • IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC5_ERROR - Error in selection of event for PEC5
  • IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC6_ERROR - Error in selection of event for PEC6
  • IX_PERFPROF_ACC_STATUS_BUS_PMU_PEC7_ERROR - Error in selection of event for PEC7
  • IX_PERFPROF_ACC_STATUS_ANOTHER_UTIL_IN_PROGRESS - another utility is running
  • IX_PERFPROF_ACC_STATUS_FAIL - Failed to start because interrupt service routine fails to bind.
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccBusPmuStop void   ) 
 

Stops all counters.

This function stops all the PECs by setting the halt bit in the ESR.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS - Counters successfully halted.
  • IX_PERFPROF_ACC_STATUS_FAIL - Counters could'nt be halted.
  • IX_PERFPROF_ACC_STATUS_BUS_PMU_START_NOT_CALLED - the ixPerfProfAccBusPmuStart() function is not called.
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXcycleBaselineRun UINT32 *  numBaselineCycle  ) 
 

Perform baseline for Xcycle.

Parameters:
UINT32 [out] *numBaselineCycle - pointer to baseline value after calibration. Calling function are responsible for allocating memory space for this pointer.
Global Data :
  • None.

This function MUST be run before the Xcycle tool can be used. This function must be run immediately when the OS boots up with no other addition programs running. Addition note : This API will measure the time needed to perform a fix amount of CPU instructions (~ 1 second worth of loops) as a highest priority task and with interrupt disabled. The time measured is known as the baseline - interpreted as the shortest time needed to complete the amount of CPU instructions. The baseline is returned as unit of time in 66Mhz clock tick.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS - successful run, result is returned
  • IX_PERFPROF_ACC_STATUS_XCYCLE_PRIORITY_SET_FAIL - failed to change task priority
  • IX_PERFPROF_ACC_STATUS_XCYCLE_PRIORITY_RESTORE_FAIL - failed to restore task priority
  • IX_PERFPROF_ACC_STATUS_ANOTHER_UTIL_IN_PROGRESS - another utility is running
  • IX_PERFPROF_ACC_STATUS_XCYCLE_MEASUREMENT_IN_PROGRESS - Xcycle tool has already started
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXcycleInProgress void   ) 
 

Check if Xcycle is running.

Parameters:
None Global Data :
  • None.
Check if Xcycle measuring task is running.

Returns:
  • TRUE - Xcycle is running
  • FALSE - Xcycle is not running
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXcycleResultsGet IxPerfProfAccXcycleResults xcycleResult  ) 
 

Get the results of Xcycle measurement.

Parameters:
IxPerfProfAccXcycleResults [out] *xcycleResult Pointer to results of last measurements. Calling function are responsible for allocating memory space for this pointer.
Global Data :
  • None.

Retrieve the results of last measurement. User should use ixPerfProfAccXcycleInProgress() to check if measurement is completed before getting the results.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS - successful
  • IX_PERFPROF_ACC_STATUS_FAIL - result is not complete.
  • IX_PERFPROF_ACC_STATUS_XCYCLE_NO_BASELINE - baseline is performed
  • IX_PERFPROF_ACC_STATUS_XCYCLE_MEASUREMENT_IN_PROGRESS - Xcycle tool is still running
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXcycleStart UINT32  numMeasurementsRequested  ) 
 

Start the measurement.

Parameters:
UINT32 [in] numMeasurementsRequested - number of measurements to perform. Value can be 0 to IX_PERFPROF_ACC_XCYCLE_MAX_NUM_OF_MEASUREMENTS. 0 indicate continuous measurement.
Global Data :
  • None.

Start the measurements immediately. numMeasurementsRequested specifies number of measurements to run. If numMeasurementsRequested is set to 0, the measurement will be performed continuously until IxPerfProfAccXcycleStop() is called. It is estimated that 1 measurement takes approximately 1 second during low CPU utilization, therefore 128 measurement takes approximately 128 sec. When CPU utilization is high, the measurement will take longer. This function spawn a task the perform the measurement and returns. The measurement may continue even if this function returns.

IMPORTANT: Under heavy CPU utilization, the task spawn by this function may starve and fail to respond to stop command. User may need to kill the task manually in this case.

There are only IX_PERFPROF_ACC_XCYCLE_MAX_NUM_OF_MEASUREMENTS storage available so storing is wrapped around if measurements are more than IX_PERFPROF_ACC_XCYCLE_MAX_NUM_OF_MEASUREMENTS.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS - successful start, a thread is created in the background to perform measurement.
  • IX_PERFPROF_ACC_STATUS_XCYCLE_PRIORITY_SET_FAIL - failed to set task priority
  • IX_PERFPROF_ACC_STATUS_XCYCLE_THREAD_CREATE_FAIL - failed to create thread to perform measurement.
  • IX_PERFPROF_ACC_STATUS_XCYCLE_NO_BASELINE - baseline is not available
  • IX_PERFPROF_ACC_STATUS_XCYCLE_MEASUREMENT_REQUEST_OUT_OF_RANGE - value is larger than IX_PERFPROF_ACC_XCYCLE_MAX_NUM_OF_MEASUREMENTS
  • IX_PERFPROF_ACC_STATUS_XCYCLE_MEASUREMENT_IN_PROGRESS - Xcycle tool has already started
  • IX_PERFPROF_ACC_STATUS_ANOTHER_UTIL_IN_PROGRESS - another utility is running
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXcycleStop void   ) 
 

Stop the Xcycle measurement.

Parameters:
None Global Data :
  • None.
Stop Xcycle measurements immediately. If the measurements have stopped or not started, return IX_PERFPROF_STATUS_XCYCLE_MEASUREMENT_NOT_RUNNING. Note: This function does not stop measurement cold. The measurement thread may need a few seconds to complete the last measurement. User needs to use ixPerfProfAccXcycleInProgress() to determine if measurement is indeed completed.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS - successful measurement is stopped
  • IX_PERFPROF_STATUS_XCYCLE_MEASUREMENT_NOT_RUNNING - no measurement running
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXscalePmuEventCountStart BOOL  clkCntDiv,
UINT32  numEvents,
IxPerfProfAccXscalePmuEvent  pmuEvent1,
IxPerfProfAccXscalePmuEvent  pmuEvent2,
IxPerfProfAccXscalePmuEvent  pmuEvent3,
IxPerfProfAccXscalePmuEvent  pmuEvent4
 

This API will start the clock and event counting.

Parameters:
BOOL [in] clkCntDiv - enables/disables the clock divider. When true, the divider is enabled and the clock count will be incremented by one at each 64th processor clock cycle. When false, the divider is disabled and the clock count will be incremented at every processor clock cycle.
UINT32 [in] numEvents - the number of PMU events that are to be monitored as specified by the user. For clock counting only, this is set to zero.
IxPerfProfAccXscalePmuEvent [in] pmuEvent1 - the specific PMU event to be monitored by counter 1
IxPerfProfAccXscalePmuEvent [in] pmuEvent2 - the specific PMU event to be monitored by counter 2
IxPerfProfAccXscalePmuEvent [in] pmuEvent3 - the specific PMU event to be monitored by counter 3
IxPerfProfAccXscalePmuEvent [in] pmuEvent4 - the specific PMU event to be monitored by counter 4
This API will start the clock and xscale PMU event counting. Up to 4 events can be monitored simultaneously. This API has to be called before ixPerfProfAccXscalePmuEventCountStop can be called.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS if clock and events counting are started successfully
  • IX_PERFPROF_ACC_STATUS_FAIL if unable to start the counting
  • IX_PERFPROF_ACC_STATUS_XSCALE_PMU_NUM_INVALID if the number of events specified is out of the valid range
  • IX_PERFPROF_ACC_STATUS_XSCALE_PMU_EVENT_INVALID if the value of the PMU event specified does not exist
  • IX_PERFPROF_ACC_STATUS_ANOTHER_UTIL_IN_PROGRESS - another utility is running
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXscalePmuEventCountStop IxPerfProfAccXscalePmuResults eventCountStopResults  ) 
 

This API will stop the clock and event counting.

Parameters:
IxPerfProfAccXscalePmuResults [out] *eventCountStopResults - pointer to struct containing results of counters and their overflow. It is the users's responsibility to allocate the memory for this pointer.
This API will stop the clock and xscale PMU events that are being counted. The results of the clock and events count will be stored in the pointer allocated by the user. It can only be called once IxPerfProfAccEventCountStart has been called.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS if clock and events counting are stopped successfully
  • IX_PERFPROF_ACC_STATUS_XSCALE_PMU_START_NOT_CALLED if ixPerfProfAccXscalePmuEventCountStart is not called first.
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXscalePmuEventSampStart UINT32  numEvents,
IxPerfProfAccXscalePmuEvent  pmuEvent1,
UINT32  eventRate1,
IxPerfProfAccXscalePmuEvent  pmuEvent2,
UINT32  eventRate2,
IxPerfProfAccXscalePmuEvent  pmuEvent3,
UINT32  eventRate3,
IxPerfProfAccXscalePmuEvent  pmuEvent4,
UINT32  eventRate4
 

Starts the event based sampling.

Parameters:
UINT32 [in] <numEvents> - the number of PMU events that are to be monitored as specified by the user. The value should be between 1-4 events at a time.
IxPerfProfAccXscalePmuEvent [in] pmuEvent1 - the specific PMU event to be monitored by counter 1
UINT32 [in] eventRate1 - sampling rate of counter 1. The rate is the number of events before a sample taken. If 0 is specified, the the full counter value (0xFFFFFFFF) is used. The rate must not be greater than the full counter value.
IxPerfProfAccXscalePmuEvent [in] pmuEvent2 - the specific PMU event to be monitored by counter 2
UINT32 [in] eventRate2 - sampling rate of counter 2. The rate is the number of events before a sample taken. If 0 is specified, the full counter value (0xFFFFFFFF) is used. The rate must not be greater than the full counter value.
IxPerfProfAccXscalePmuEvent [in] pmuEvent3 - the specific PMU event to be monitored by counter 3
UINT32 [in] eventRate3 - sampling rate of counter 3. The rate is the number of events before a sample taken. If 0 is specified, the full counter value (0xFFFFFFFF) is used. The rate must not be greater than the full counter value.
IxPerfProfAccXscalePmuEvent [in] pmuEvent4 - the specific PMU event to be monitored by counter 4
UINT32 [in] eventRate4 - sampling rate of counter 4. The rate is the number of events before a sample taken. If 0 is specified, the full counter value (0xFFFFFFFF) is used. The rate must not be greater than the full counter value.
Starts the event based sampling to determine the frequency with which events are being executed. The sampling rate is the number of events, as specified by the user, before a counter overflow interrupt is generated. A sample is taken at each counter overflow interrupt. At each sample,the value of the program counter determines the corresponding location in the code. Each of these occurrences are recorded to determine the frequency with which the Xscale code in each event is executed. This API has to be called before ixPerfProfAccXscalePmuEventSampStop can be called.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS if event based sampling is started successfully
  • IX_PERFPROF_ACC_STATUS_FAIL if unable to start the sampling
  • IX_PERFPROF_ACC_STATUS_XSCALE_PMU_NUM_INVALID if the number of events specified is out of the valid range
  • IX_PERFPROF_ACC_STATUS_XSCALE_PMU_EVENT_INVALID if the value of the PMU event specified does not exist
    • IX_PERFPROF_ACC_STATUS_ANOTHER_UTIL_IN_PROGRESS - another utility is running
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXscalePmuEventSampStop IxPerfProfAccXscalePmuSamplePcProfile eventProfile1,
IxPerfProfAccXscalePmuSamplePcProfile eventProfile2,
IxPerfProfAccXscalePmuSamplePcProfile eventProfile3,
IxPerfProfAccXscalePmuSamplePcProfile eventProfile4
 

Stops the event based sampling.

Parameters:
IxPerfProfAccXscalePmuSamplePcProfile [out] *eventProfile1 - pointer to the array of profiles for each program counter value; the user should set the size of the array to IX_PERFPROF_ACC_XSCALE_PMU_MAX_PROFILE_SAMPLES. It is the users's responsibility to allocate memory for this pointer.
IxPerfProfAccXscalePmuSamplePcProfile [out] *eventProfile2 - pointer to the array of profiles for each program counter value; the user should set the size of the array to IX_PERFPROF_ACC_XSCALE_PMU_MAX_PROFILE_SAMPLES. It is the users's responsibility to allocate memory for this pointer.
IxPerfProfAccXscalePmuSamplePcProfile [out] *eventProfile3 - pointer to the array of profiles for each program counter value; the user should set the size of the array to IX_PERFPROF_ACC_XSCALE_PMU_MAX_PROFILE_SAMPLES. It is the users's responsibility to allocate memory for this pointer.
IxPerfProfAccXscalePmuSamplePcProfile [out] *eventProfile4 - pointer to the array of profiles for each program counter value; the user should set the size of the array to IX_PERFPROF_ACC_XSCALE_PMU_MAX_PROFILE_SAMPLES. It is the users's responsibility to allocate memory for this pointer.
This API stops the event based sampling. The results are stored in the pointers allocated by the user. It can only be called once ixPerfProfAccEventSampStart has been called.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS if event based sampling is stopped successfully
  • IX_PERFPROF_ACC_STATUS_XSCALE_PMU_START_NOT_CALLED if ixPerfProfAccEventSampStart not called first.
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXscalePmuResultsGet IxPerfProfAccXscalePmuResults results  ) 
 

Reads the current value of the counters and their overflow.

Parameters:
IxPerfProfAccXscalePmuResults [out] *results - pointer to the results struct. It is the user's responsibility to allocate memory for this pointer
This API reads the value of all four event counters and the clock counter, and the associated overflows. It does not give results associated with sampling, i.e. PC and their frequencies. This API can be called at any time once a process has been started. If it is called before a process has started the user should be aware that the values it contains are default values and might be meaningless. The values of the counters are stored in the pointer allocated by the client.

Returns:
- none
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXscalePmuTimeSampStart UINT32  samplingRate,
BOOL  clkCntDiv
 

Starts the time based sampling.

Parameters:
UINT32 [in] samplingRate - sampling rate is the number of clock counts before a counter overflow interrupt is generated, at which, a sample is taken; the rate specified cannot be greater than the counter size of 32bits or set to zero.
BOOL [in] clkCntDiv - enables/disables the clock divider. When true, the divider is enabled and the clock count will be incremented by one at each 64th processor clock cycle. When false, the divider is disabled and the clock count will be incremented at every processor clock cycle.
This API starts the time based sampling to determine the frequency with which lines of code are being executed. Sampling is done at the rate specified by the user. At each sample,the value of the program counter is determined. Each of these occurrences are recorded to determine the frequency with which the Xscale code is being executed. This API has to be called before ixPerfProfAccXscalePmuTimeSampStop can be called.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS if time based sampling is started successfully
  • IX_PERFPROF_ACC_STATUS_FAIL if unable to start the sampling
  • IX_PERFPROF_ACC_STATUS_ANOTHER_UTIL_IN_PROGRESS - another utility is running
  • Reentrant : no
  • ISR Callable : no

ixPerfProfAccXscalePmuTimeSampStop IxPerfProfAccXscalePmuEvtCnt clkCount,
IxPerfProfAccXscalePmuSamplePcProfile timeProfile
 

Stops the time based sampling.

Parameters:
IxPerfProfAccXscalePmuEvtCnt [out] *clkCount - pointer to the struct containing the final clock count and its overflow. It is the user's responsibility to allocate the memory for this pointer.
IxPerfProfAccXscalePmuSamplePcProfile [out] *timeProfile - pointer to the array of profiles for each program counter value; the user should set the size of the array to IX_PERFPROF_ACC_XSCALE_PMU_MAX_PROFILE_SAMPLES. It is the user's responsibility to allocate the memory for this pointer.
This API stops the time based sampling. The results are stored in the pointers allocated by the user. It can only be called once ixPerfProfAccXscalePmuTimeSampStart has been called.

Returns:
  • IX_PERFPROF_ACC_STATUS_SUCCESS if time based sampling is stopped successfully
  • IX_PERFPROF_ACC_STATUS_XSCALE_PMU_START_NOT_CALLED if ixPerfProfAccXscalePmuTimeSampStart not called first
  • Reentrant : no
  • ISR Callable : no

Automatically generated from sources. © Intel Corp. 2003