Don't duplicate PMC tables
Many devices have the same counter IDs for the hardware block. Devices
in the same GFX generation usually have the same block counters. No need
to list each device individually. Instead, have a table to share with all
devices that have the same counter IDs, and have separated tables for
devices that don't have the same counter IDs.
Change-Id: I857056edc6f491f61af6e9598580e5dc7d372f94
[ROCm/ROCR-Runtime commit: 9e32cdb113]
This commit is contained in:
@@ -31,7 +31,8 @@
|
||||
#include "libhsakmt.h"
|
||||
#include "pmc_table.h"
|
||||
|
||||
static uint32_t kaveri_sq_counter_ids[] = {
|
||||
/* Unused counters - 163-167 */
|
||||
static uint32_t gfx7_sq_counter_ids[] = {
|
||||
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
|
||||
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
|
||||
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
|
||||
@@ -49,7 +50,7 @@ static uint32_t kaveri_sq_counter_ids[] = {
|
||||
};
|
||||
|
||||
/* Unused counters - 166, 292 - 297 */
|
||||
static uint32_t carrizo_sq_counter_ids[] = {
|
||||
static uint32_t gfx8_sq_counter_ids[] = {
|
||||
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
|
||||
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
|
||||
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
|
||||
@@ -69,49 +70,9 @@ static uint32_t carrizo_sq_counter_ids[] = {
|
||||
279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 298
|
||||
};
|
||||
|
||||
/* Unused counters - 166, 292 - 297 */
|
||||
static uint32_t fiji_sq_counter_ids[] = {
|
||||
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
|
||||
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
|
||||
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
|
||||
63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
|
||||
83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
|
||||
102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
|
||||
118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
|
||||
134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
|
||||
150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
|
||||
167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
|
||||
183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
|
||||
199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
|
||||
215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
|
||||
231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
|
||||
247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
|
||||
263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
|
||||
279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 298
|
||||
};
|
||||
|
||||
/* Unused counters - 163 - 166, 167 and 251 are *_DUMMY_LAST */
|
||||
static uint32_t hawaii_sq_counter_ids[] = {
|
||||
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
||||
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
|
||||
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
|
||||
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
|
||||
79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
|
||||
98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
|
||||
113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
|
||||
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
|
||||
143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
|
||||
158, 159, 160, 161, 162, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
|
||||
178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
|
||||
193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
|
||||
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
|
||||
223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
|
||||
238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250
|
||||
};
|
||||
|
||||
/* Polaris 10 and Polaris 11 have the same SQ cpunter IDs */
|
||||
/* Polaris 10/11 have the same SQ cpunter IDs but different from other gfx8's. */
|
||||
/* Unused counters - 167 and 275 are *_DUMMY_LAST */
|
||||
static uint32_t polaris_sq_counter_ids[] = {
|
||||
static uint32_t gfx8_pl_sq_counter_ids[] = {
|
||||
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
||||
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
|
||||
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
|
||||
@@ -135,9 +96,9 @@ static uint32_t polaris_sq_counter_ids[] = {
|
||||
static struct perf_counter_block kaveri_blocks[PERFCOUNTER_BLOCKID__MAX] = {
|
||||
[PERFCOUNTER_BLOCKID__SQ] = {
|
||||
.num_of_slots = 8,
|
||||
.num_of_counters = sizeof(kaveri_sq_counter_ids) /
|
||||
sizeof(*kaveri_sq_counter_ids),
|
||||
.counter_ids = kaveri_sq_counter_ids,
|
||||
.num_of_counters = sizeof(gfx7_sq_counter_ids) /
|
||||
sizeof(*gfx7_sq_counter_ids),
|
||||
.counter_ids = gfx7_sq_counter_ids,
|
||||
.counter_size_in_bits = 64,
|
||||
.counter_mask = BITMASK(64)
|
||||
},
|
||||
@@ -146,9 +107,9 @@ static struct perf_counter_block kaveri_blocks[PERFCOUNTER_BLOCKID__MAX] = {
|
||||
static struct perf_counter_block carrizo_blocks[PERFCOUNTER_BLOCKID__MAX] = {
|
||||
[PERFCOUNTER_BLOCKID__SQ] = {
|
||||
.num_of_slots = 8,
|
||||
.num_of_counters = sizeof(carrizo_sq_counter_ids) /
|
||||
sizeof(*carrizo_sq_counter_ids),
|
||||
.counter_ids = carrizo_sq_counter_ids,
|
||||
.num_of_counters = sizeof(gfx8_sq_counter_ids) /
|
||||
sizeof(*gfx8_sq_counter_ids),
|
||||
.counter_ids = gfx8_sq_counter_ids,
|
||||
.counter_size_in_bits = 64,
|
||||
.counter_mask = BITMASK(64)
|
||||
},
|
||||
@@ -157,9 +118,9 @@ static struct perf_counter_block carrizo_blocks[PERFCOUNTER_BLOCKID__MAX] = {
|
||||
static struct perf_counter_block fiji_blocks[PERFCOUNTER_BLOCKID__MAX] = {
|
||||
[PERFCOUNTER_BLOCKID__SQ] = {
|
||||
.num_of_slots = 8,
|
||||
.num_of_counters = sizeof(fiji_sq_counter_ids) /
|
||||
sizeof(*fiji_sq_counter_ids),
|
||||
.counter_ids = fiji_sq_counter_ids,
|
||||
.num_of_counters = sizeof(gfx8_sq_counter_ids) /
|
||||
sizeof(*gfx8_sq_counter_ids),
|
||||
.counter_ids = gfx8_sq_counter_ids,
|
||||
.counter_size_in_bits = 64,
|
||||
.counter_mask = BITMASK(64)
|
||||
},
|
||||
@@ -168,9 +129,9 @@ static struct perf_counter_block fiji_blocks[PERFCOUNTER_BLOCKID__MAX] = {
|
||||
static struct perf_counter_block hawaii_blocks[PERFCOUNTER_BLOCKID__MAX] = {
|
||||
[PERFCOUNTER_BLOCKID__SQ] = {
|
||||
.num_of_slots = 8,
|
||||
.num_of_counters = sizeof(hawaii_sq_counter_ids) /
|
||||
sizeof(*hawaii_sq_counter_ids),
|
||||
.counter_ids = hawaii_sq_counter_ids,
|
||||
.num_of_counters = sizeof(gfx7_sq_counter_ids) /
|
||||
sizeof(*gfx7_sq_counter_ids),
|
||||
.counter_ids = gfx7_sq_counter_ids,
|
||||
.counter_size_in_bits = 64,
|
||||
.counter_mask = BITMASK(64)
|
||||
},
|
||||
@@ -179,9 +140,9 @@ static struct perf_counter_block hawaii_blocks[PERFCOUNTER_BLOCKID__MAX] = {
|
||||
static struct perf_counter_block polaris_blocks[PERFCOUNTER_BLOCKID__MAX] = {
|
||||
[PERFCOUNTER_BLOCKID__SQ] = {
|
||||
.num_of_slots = 8,
|
||||
.num_of_counters = sizeof(polaris_sq_counter_ids) /
|
||||
sizeof(*polaris_sq_counter_ids),
|
||||
.counter_ids = polaris_sq_counter_ids,
|
||||
.num_of_counters = sizeof(gfx8_pl_sq_counter_ids) /
|
||||
sizeof(*gfx8_pl_sq_counter_ids),
|
||||
.counter_ids = gfx8_pl_sq_counter_ids,
|
||||
.counter_size_in_bits = 64,
|
||||
.counter_mask = BITMASK(64)
|
||||
},
|
||||
@@ -352,5 +313,3 @@ get_block_properties(uint32_t node_id,
|
||||
|
||||
return HSAKMT_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Verwijs in nieuw issue
Block a user