Skip to content

Commit b65b075

Browse files
committed
fix unexpected regions with --region-categories
1 parent 3f5698c commit b65b075

File tree

1 file changed

+47
-4
lines changed
  • projects/rocprofiler-sdk/source/lib/python/rocpd

1 file changed

+47
-4
lines changed

projects/rocprofiler-sdk/source/lib/python/rocpd/summary.py

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,28 @@ def generate_domain_query(
311311
return (view_name, domain_select)
312312

313313

314-
def create_summary_queries(connection: RocpdImportData, by_rank=False):
315-
"""Create summary queries for eligible temporary views in the database."""
314+
def _view_matches_category(view_name: str, category: str) -> bool:
315+
"""Return True if view name matches the category (e.g. 'kernels' matches 'kernel')."""
316+
v = view_name.lower()
317+
c = category.lower()
318+
return (
319+
v == c
320+
or v.startswith(c + "_")
321+
or v == c + "s"
322+
or v.startswith(c + "s_")
323+
)
324+
325+
326+
def create_summary_queries(
327+
connection: RocpdImportData,
328+
by_rank=False,
329+
only_view_categories=None,
330+
):
331+
"""Create summary queries for eligible temporary views in the database.
332+
333+
When only_view_categories is set (e.g. ["kernel"]), only include views whose
334+
name matches one of the categories (e.g. "kernels" matches "kernel").
335+
"""
316336

317337
NAME_COLUMN_MAP = {
318338
"memory_allocations": "type",
@@ -330,6 +350,13 @@ def create_summary_queries(connection: RocpdImportData, by_rank=False):
330350
if any(pattern in view_name for pattern in avoid_view_pattern):
331351
continue
332352

353+
if only_view_categories is not None:
354+
if not any(
355+
_view_matches_category(view_name, cat)
356+
for cat in only_view_categories
357+
):
358+
continue
359+
333360
columns = get_temp_view_columns(connection, view_name)
334361
if not required_columns.issubset(columns):
335362
continue
@@ -477,8 +504,24 @@ def generate_all_summaries(connection: RocpdImportData, **kwargs: Any) -> None:
477504

478505
summary_queries = {}
479506

480-
# Create the summary queries
481-
summary_queries.update(create_summary_queries(connection, by_rank))
507+
# Create the summary queries.
508+
# When region_categories is specified (and not NONE), only include view-based
509+
# summaries that match those categories (e.g. "kernels" view for KERNEL) and
510+
# only region summaries for those categories. With --region-categories NONE we
511+
# only skip region summaries and still include all view-based summaries.
512+
is_none_categories = (
513+
region_categories is not None
514+
and len(region_categories) == 1
515+
and str(region_categories[0]).strip().upper() == "NONE"
516+
)
517+
if region_categories is None or is_none_categories:
518+
summary_queries.update(create_summary_queries(connection, by_rank))
519+
else:
520+
summary_queries.update(
521+
create_summary_queries(
522+
connection, by_rank, only_view_categories=region_categories
523+
)
524+
)
482525
summary_queries.update(
483526
create_summary_region_queries(
484527
connection, by_rank, region_categories=region_categories

0 commit comments

Comments
 (0)