Here is the cell-spe-follow support.
Cell has one PPE(PowerPC Processor Element) and
8 SPE(Synergistic Processor Element)s.
When we execute a SPE program, a kernel task(thread) which
runs on PPE is created and the kernel task kicks the SPE program
on a SPE. And the kernel task sleeps while the SPE program runs.
In general, SPE programmers want to count the SPE performance events
while the SPE program runs by perfmon2.
To realize that,
this patch adds cell-spe-follow flag to the pfm context.
If the flag is specified by user, pfm context switchs are
executed by SPE event notification
instead of kernel task switches.
If you have any questions and comments,
Please let me know them.
[PATCH 1/7] : Add the create/free_context routines for Cell.
[PATCH 2/7] : Add cell_spe_follow flag to the context flags.
[PATCH 3/7] : Add arch private data to pfm_arch_context
to keep spu event notification data.
[PATCH 4/7] : Export pfm_ctxsw().
[PATCH 5/7] : Call pfm_ctxsw() from the SPU event notifier to
chase the target SPU program.
[PATCH 6/7] : Change the PMU access check in pfm_read_pmds()
[PATCH 7/7] : unload/free context at __pfm_close().