Add support for performance dump

Performance dump is a collection of hardware performance data
stored in the hardware registers. This commit adds support for
collecting the performance data from the hardware.

Test:

/tmp/dump-collect --type 3 --id 1 \
        --path /tmp/dd/plat_dump/ \
        --failingunit 1
PDBG Initialization started
Enter: getDump(3) on /proc3
Enter: getDump(3) on /proc0
Enter: getDump(3) on /proc1
Enter: getDump(3) on /proc2

Collected contents
plat_dump/00000001.SbeDataClocksOn.node0.proc0
plat_dump/00000001.SbeDataClocksOn.node0.proc1
plat_dump/00000001.SbeDataClocksOn.node0.proc2
plat_dump/00000001.SbeDataClocksOn.node0.proc3

Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
Change-Id: I45d021b8ea109e4c7def4b92ccef9dcf0df7ae4c
diff --git a/dump/sbe_dump_collector.cpp b/dump/sbe_dump_collector.cpp
index bdf43c8..3e74736 100644
--- a/dump/sbe_dump_collector.cpp
+++ b/dump/sbe_dump_collector.cpp
@@ -68,6 +68,11 @@
     std::vector<uint8_t> clockStates = {SBE_CLOCK_ON, SBE_CLOCK_OFF};
     for (auto cstate : clockStates)
     {
+        // Skip collection for performance dump if clock state is not ON
+        if (type == SBE_DUMP_TYPE_PERFORMANCE && cstate != SBE_CLOCK_ON)
+        {
+            continue;
+        }
         auto futures = spawnDumpCollectionProcesses(type, id, path, failingUnit,
                                                     cstate, targets);