e453705d9b
* Check if test exists before adding validation * Adjust validation parameters for rocpd_string Signed-off-by: David Galiffi <David.Galiffi@amd.com> --------- Signed-off-by: David Galiffi <David.Galiffi@amd.com>
328 lines
15 KiB
JSON
328 lines
15 KiB
JSON
{
|
|
"required_tables": [
|
|
{
|
|
"commit": "Validation rules for hip_api",
|
|
"name": "events_args",
|
|
"required_columns": [
|
|
"event_id",
|
|
"category",
|
|
"stack_id",
|
|
"parent_stack_id",
|
|
"correlation_id"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'rocm_hip_api' appears in category at least 1500 times in table events_args",
|
|
"error_message": "'rocm_hip_api' category entries are fewer than expected in events_args",
|
|
"expected_result": 1500,
|
|
"query": "SELECT COUNT(*) FROM events_args WHERE category = 'rocm_hip_api';"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Check for missing category entries",
|
|
"error_message": "Empty or NULL category entries found in events_args",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM events_args WHERE category IS NULL OR TRIM(category) = '';"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commit": "Validation rules for hip_api",
|
|
"name": "regions",
|
|
"required_columns": [
|
|
"id",
|
|
"guid",
|
|
"category",
|
|
"name"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'rocm_hip_api' appears in category at least 500 times in table regions",
|
|
"error_message": "'rocm_hip_api' category entries are fewer than expected in regions",
|
|
"expected_result": 500,
|
|
"query": "SELECT COUNT(*) FROM regions WHERE category = 'rocm_hip_api';"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Ensure there are no HIP API calls that last 0 seconds",
|
|
"error_message": "Found HIP API captures where duration is 0",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM regions WHERE category = 'rocm_hip_api' AND duration = 0;"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Check for any NULL values in the 'name' column of regions",
|
|
"error_message": "NULL entries found in the name column of regions",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM regions WHERE name IS NULL;"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commit": "Validation rule for hip_api",
|
|
"name": "rocpd_string",
|
|
"required_columns": [
|
|
"id",
|
|
"guid",
|
|
"string"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'rocm_hip_api' string is present in the table",
|
|
"error_message": "'rocm_hip_api' string not found in the table rocpd_string",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM rocpd_string WHERE string LIKE '%rocm_hip_api%';"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commit": "Validation rules for hsa_api",
|
|
"name": "events_args",
|
|
"required_columns": [
|
|
"event_id",
|
|
"category",
|
|
"stack_id",
|
|
"parent_stack_id",
|
|
"correlation_id"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'rocm_hsa_api' appears in category at least 1000 times in table events_args",
|
|
"error_message": "'rocm_hsa_api' category entries are fewer than expected in events_args",
|
|
"expected_result": 1000,
|
|
"query": "SELECT COUNT(*) FROM events_args WHERE category = 'rocm_hsa_api';"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commit": "Validation rules for hsa_api",
|
|
"name": "regions",
|
|
"required_columns": [
|
|
"id",
|
|
"guid",
|
|
"category",
|
|
"name"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that rocm_hsa_api' appears in category at least 500 times in table regions",
|
|
"error_message": "'rocm_hsa_api' category entries are fewer than expected in regions",
|
|
"expected_result": 500,
|
|
"query": "SELECT COUNT(*) FROM regions WHERE category = 'rocm_hsa_api';"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Ensure there are no HSA API calls that last 0 seconds",
|
|
"error_message": "Found HSA API captures where duration is 0",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM regions WHERE category = 'rocm_hsa_api' AND duration = 0;"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Check for any NULL values in the 'name' column of regions",
|
|
"error_message": "NULL entries found in the name column of regions",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM regions WHERE name IS NULL;"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commit": "Validation rule for hsa_api",
|
|
"name": "rocpd_string",
|
|
"required_columns": [
|
|
"id",
|
|
"guid",
|
|
"string"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'rocm_hsa_api' string is present in the table",
|
|
"error_message": "'rocm_hsa_api' string not found in the table rocpd_string",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM rocpd_string WHERE string LIKE '%rocm_hsa_api%';"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commit": "Validation rules for memory_allocations",
|
|
"name": "memory_allocations",
|
|
"required_columns": [
|
|
"id",
|
|
"guid",
|
|
"category",
|
|
"nid",
|
|
"pid",
|
|
"tid",
|
|
"start",
|
|
"end",
|
|
"duration",
|
|
"type",
|
|
"level",
|
|
"agent_name"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Check that all IDs are not NULL",
|
|
"error_message": "NULL entries found in the id column of memory_allocations",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM memory_allocations WHERE id IS NULL;"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Check the sizes of executed memory allocate calls",
|
|
"error_message": "Entries found where allocated size is 0 or NULL",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM memory_allocations WHERE size IS NULL or 0;"
|
|
},
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'rocm_memory_allocate' appears more than 1 times in category",
|
|
"error_message": "'rocm_memory_allocate' string appears fewer than 1 times in category column of memory_allocations",
|
|
"expected_result": 1,
|
|
"query": "SELECT COUNT(*) FROM memory_allocations WHERE category LIKE '%rocm_memory_allocate%';"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "rocpd_string",
|
|
"required_columns": [
|
|
"id",
|
|
"guid",
|
|
"string"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'rocm_memory_allocate' is present in the string column",
|
|
"error_message": "'rocm_memory_allocate' string not found in the string column of rocpd_string",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM rocpd_string WHERE string LIKE '%rocm_memory_allocate%';"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commit": "Validation rules for memory_copies",
|
|
"name": "rocpd_string",
|
|
"required_columns": [
|
|
"id",
|
|
"guid",
|
|
"string"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'rocm_memory_copy' is present in the string column",
|
|
"error_message": "'rocm_memory_copy' string not found in the string column of rocpd_string",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM rocpd_string WHERE string LIKE '%rocm_memory_copy%';"
|
|
},
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'MEMORY_COPY_DEVICE_TO_HOST' is present in the string column",
|
|
"error_message": "'MEMORY_COPY_DEVICE_TO_HOST' string not found in the string column of rocpd_string",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM rocpd_string WHERE string LIKE '%MEMORY_COPY_DEVICE_TO_HOST%';"
|
|
},
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'MEMORY_COPY_HOST_TO_DEVICE' is present in the string column",
|
|
"error_message": "'MEMORY_COPY_HOST_TO_DEVICE' string not found in the string column of rocpd_string",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM rocpd_string WHERE string LIKE '%MEMORY_COPY_HOST_TO_DEVICE%';"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commit": "Validation rules for memory_copies",
|
|
"name": "memory_copies",
|
|
"required_columns": [
|
|
"id",
|
|
"guid",
|
|
"category",
|
|
"nid",
|
|
"pid",
|
|
"tid",
|
|
"start",
|
|
"end"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "greater_than",
|
|
"description": "Verify that 'rocm_memory_copy' appears in category column",
|
|
"error_message": "'rocm_memory_copy' string appears fewer than 10 times in category column of memory_copies",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM memory_copies WHERE category LIKE '%rocm_memory_copy%';"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Check that all IDs are not NULL",
|
|
"error_message": "NULL entries found in the id column of memory_copies",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM memory_copies WHERE id IS NULL;"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Check the sizes of executed memory_copy calls",
|
|
"error_message": "NULL entries found where copied size is 0 or non-existing field",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM memory_copies WHERE size IS NULL or 0;"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Check the agents executing memory_copy calls",
|
|
"error_message": "NULL entries found where copied size is 0 or non-existing field",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM memory_copies WHERE size IS NULL or 0;"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"commit": "Validation rules for memory_copies - agent verification",
|
|
"name": "memory_copies",
|
|
"required_columns": [
|
|
"id",
|
|
"guid",
|
|
"dst_agent_abs_index",
|
|
"src_agent_abs_index"
|
|
],
|
|
"validation_queries": [
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Verify that all dst_agent_abs_index values exist in rocpd_info_agent table",
|
|
"error_message": "Found dst_agent_abs_index values in memory_copies that do not exist in rocpd_info_agent table",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM memory_copies mc LEFT JOIN rocpd_info_agent ag ON mc.dst_agent_abs_index = ag.absolute_index AND mc.guid = ag.guid WHERE mc.dst_agent_abs_index IS NOT NULL AND ag.absolute_index IS NULL;"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Verify that all src_agent_abs_index values exist in rocpd_info_agent table",
|
|
"error_message": "Found src_agent_abs_index values in memory_copies that do not exist in rocpd_info_agent table",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM memory_copies mc LEFT JOIN rocpd_info_agent ag ON mc.src_agent_abs_index = ag.absolute_index AND mc.guid = ag.guid WHERE mc.src_agent_abs_index IS NOT NULL AND ag.absolute_index IS NULL;"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Check that dst_agent_abs_index is not NULL for memory copy operations",
|
|
"error_message": "NULL entries found in dst_agent_abs_index column of memory_copies",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM memory_copies WHERE dst_agent_abs_index IS NULL;"
|
|
},
|
|
{
|
|
"comparison": "equals",
|
|
"description": "Check that src_agent_abs_index is not NULL for memory copy operations",
|
|
"error_message": "NULL entries found in src_agent_abs_index column of memory_copies",
|
|
"expected_result": 0,
|
|
"query": "SELECT COUNT(*) FROM memory_copies WHERE src_agent_abs_index IS NULL;"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|