Main Page Modules Alphabetical List Data Structures File List Data Fields Globals
IXP425 Performance Profiling (IxPerfProfAcc) APIIXP425 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, |
|
|
f |
|
) |
|
|
|
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. |
|
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
|
|
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
|
|
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 :
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:
-
Check if Xcycle measuring task is running.
- Returns:
- TRUE - Xcycle is running
- FALSE - Xcycle is not running
- Reentrant : no
- ISR Callable : no
|
|
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 :
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 :
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:
-
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|