Integrate PSI KPI profiler
authorVincent Stehlé <v-stehle@ti.com>
Mon, 20 Aug 2012 08:59:27 +0000 (10:59 +0200)
committerVincent Stehlé <v-stehle@ti.com>
Thu, 14 Mar 2013 11:04:45 +0000 (12:04 +0100)
commite7819ad8f793fcae15aceafda36c36dbd737927c
tree79394194df136e2fe5ad0544c06e3f2a930c0bf8
parentcfbfcc77a5a3491a6582196f5da24c4def383cd1
Integrate PSI KPI profiler

This is PSI KPI profiler integration into the DCE image, take 3 (and a half ;)
It is now off by default.

We track create/delete to support more than one DCE stream running with correct
profiling.

We report KPI IVA & cores loads in the load_task. We hack PSI KPI profiler a
bit, to be able to read the IVA & cores total times "live" and do our
computations. We protect the cores statistical data collection with a GateAll
for consistency. Note that each core has his timer now.

Adapt some functions for latest bios:
s/Core_getCoreId/Core_getId/
s/Hwi_disableCoreInts/Hwi_disable/
s/Hwi_restoreCoreInts/Hwi_restore/

We also pass chipset_id to the KPI profiler for runtime OMAP selection. This is
used only for 32k timer address determination right now, but the mechanism is
in place, at least. Also, we try to handle unknown chipsets gracefully.

Remainings things:

- Do not hardcode KPI_PROFILER but let the build "recipe" decide.
- Make the create/delete refcnt work with other codec "clients" than DCE, too.
- Fix profile.h include path; today this breaks DCE "modularity".
- Dynamic enable/disable (print phy addr of kpi_control and let the user poke?)
  At least do not touch from dce.c
- Do not hardcode BUILD_FOR_SMP?
- Come back to per-core interrupts disable/enable when bios allows it again.

Signed-off-by: Vincent Stehlé <v-stehle@ti.com>
ducati/ti/dce/baseimage/dce_ipu.cfg
ducati/ti/dce/baseimage/load_task.c
ducati/ti/dce/baseimage/package.bld
ducati/ti/dce/baseimage/package.xdc
ducati/ti/dce/baseimage/profile.c
ducati/ti/dce/baseimage/profile.h
ducati/ti/dce/dce.c