nvc0: add missing HW SM perf counters for SM30 (Kepler)
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 19 Oct 2015 21:01:07 +0000 (23:01 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Sat, 5 Dec 2015 18:23:34 +0000 (19:23 +0100)
SM30 is the compute capability version for GK104/GK106/GK107.
This also introduces a new signal group selection called UNK0F.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_sm.c
src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_sm.h
src/gallium/drivers/nouveau/nvc0/nve4_compute.xml.h

index 7f63d38da18bfa0a5daa284b89a3f5e7dcf16bb1..5ece98b5939d87c823afc0acbfe7bfa4b6744056 100644 (file)
@@ -38,6 +38,7 @@ static const char *nve4_hw_sm_query_names[] =
    /* MP counters */
    "active_cycles",
    "active_warps",
+   "atom_cas_count",
    "atom_count",
    "branch",
    "divergent_branch",
@@ -53,6 +54,8 @@ static const char *nve4_hw_sm_query_names[] =
    "inst_issued2",
    "l1_global_load_hit",
    "l1_global_load_miss",
+   "__l1_global_load_transactions",
+   "__l1_global_store_transactions",
    "l1_local_load_hit",
    "l1_local_load_miss",
    "l1_local_store_hit",
@@ -231,6 +234,7 @@ static const struct nvc0_hw_sm_query_cfg nve4_hw_sm_queries[] =
 {
    _Q1B(ACTIVE_CYCLES, 0x0001, B6, WARP, 0x00000000, 1, 1),
    _Q1B(ACTIVE_WARPS,  0x003f, B6, WARP, 0x31483104, 2, 1),
+   _Q1A(ATOM_CAS_COUNT, 0x0001, B6, BRANCH, 0x000000004, 1, 1),
    _Q1A(ATOM_COUNT, 0x0001, B6, BRANCH, 0x00000000, 1, 1),
    _Q1A(BRANCH,           0x0001, B6, BRANCH, 0x0000000c, 1, 1),
    _Q1A(DIVERGENT_BRANCH, 0x0001, B6, BRANCH, 0x00000010, 1, 1),
@@ -246,6 +250,8 @@ static const struct nvc0_hw_sm_query_cfg nve4_hw_sm_queries[] =
    _Q1A(INST_ISSUED2,  0x0001, B6, ISSUE, 0x00000008, 1, 1),
    _Q1B(L1_GLD_HIT,  0x0001, B6, L1, 0x00000010, 1, 1),
    _Q1B(L1_GLD_MISS, 0x0001, B6, L1, 0x00000014, 1, 1),
+   _Q1B(L1_GLD_TRANSACTIONS,  0x0001, B6, UNK0F, 0x00000000, 1, 1),
+   _Q1B(L1_GST_TRANSACTIONS,  0x0001, B6, UNK0F, 0x00000004, 1, 1),
    _Q1B(L1_LOCAL_LD_HIT,   0x0001, B6, L1, 0x00000000, 1, 1),
    _Q1B(L1_LOCAL_LD_MISS,  0x0001, B6, L1, 0x00000004, 1, 1),
    _Q1B(L1_LOCAL_ST_HIT,  0x0001, B6, L1, 0x00000008, 1, 1),
index 26bde0c3e0d71248942badbd430c4879772f25a9..694d74cd043f0c219ba03aff9225d39a4aad6a2b 100644 (file)
@@ -23,6 +23,7 @@ enum nve4_hw_sm_queries
 {
    NVE4_HW_SM_QUERY_ACTIVE_CYCLES = 0,
    NVE4_HW_SM_QUERY_ACTIVE_WARPS,
+   NVE4_HW_SM_QUERY_ATOM_CAS_COUNT,
    NVE4_HW_SM_QUERY_ATOM_COUNT,
    NVE4_HW_SM_QUERY_BRANCH,
    NVE4_HW_SM_QUERY_DIVERGENT_BRANCH,
@@ -38,6 +39,8 @@ enum nve4_hw_sm_queries
    NVE4_HW_SM_QUERY_INST_ISSUED2,
    NVE4_HW_SM_QUERY_L1_GLD_HIT,
    NVE4_HW_SM_QUERY_L1_GLD_MISS,
+   NVE4_HW_SM_QUERY_L1_GLD_TRANSACTIONS,
+   NVE4_HW_SM_QUERY_L1_GST_TRANSACTIONS,
    NVE4_HW_SM_QUERY_L1_LOCAL_LD_HIT,
    NVE4_HW_SM_QUERY_L1_LOCAL_LD_MISS,
    NVE4_HW_SM_QUERY_L1_LOCAL_ST_HIT,
index 41e0cc209c8a9206066c8f1278a8688a2f3325e9..3fff1122b8f86649d72014d25ad1f1a8831740c2 100644 (file)
@@ -304,6 +304,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL_WARP                       0x00000002
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL_REPLAY                     0x00000008
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL_TRANSACTION                0x0000000e
+#define NVE4_COMPUTE_MP_PM_B_SIGSEL_UNK0F          0x0000000f
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL_L1                         0x00000010
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL_MEM                        0x00000011