Skip to content

Commit 15c6201

Browse files
committed
Fix filtering of Score-P internal modules
* remove the filtering in scorep.cpp * fix filtering in intrumenters * change to std::unordered_map::at()
1 parent 67a573e commit 15c6201

3 files changed

Lines changed: 29 additions & 41 deletions

File tree

scorep/instrumenters/scorep_profile.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,13 @@ def globaltrace_lt(self, frame, why, arg):
8282
modulename = frame.f_globals.get('__name__', None)
8383
if modulename is None:
8484
modulename = "None"
85-
file_name = frame.f_globals.get('__file__', None)
86-
if file_name is not None:
87-
full_file_name = os.path.abspath(file_name)
88-
else:
89-
full_file_name = "None"
90-
line_number = frame.f_lineno
9185
if not code.co_name == "_unsetprofile" and not modulename[:6] == "scorep":
86+
file_name = frame.f_globals.get('__file__', None)
87+
if file_name is not None:
88+
full_file_name = os.path.abspath(file_name)
89+
else:
90+
full_file_name = "None"
91+
line_number = frame.f_lineno
9292
self.scorep_bindings.region_begin(
9393
modulename, code.co_name, full_file_name, line_number)
9494
return
@@ -97,7 +97,8 @@ def globaltrace_lt(self, frame, why, arg):
9797
modulename = frame.f_globals.get('__name__', None)
9898
if modulename is None:
9999
modulename = "None"
100-
self.scorep_bindings.region_end(modulename, code.co_name)
100+
if not code.co_name == "_unsetprofile" and not modulename[:6] == "scorep":
101+
self.scorep_bindings.region_end(modulename, code.co_name)
101102
else:
102103
return
103104

scorep/instrumenters/scorep_trace.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,27 +74,24 @@ def runfunc(self, func, *args, **kw):
7474

7575
def globaltrace_lt(self, frame, why, arg):
7676
"""Handler for call events.
77-
78-
If the code block being entered is to be ignored, returns `None',
79-
else returns self.localtrace.
77+
@return self.localtrace or None
8078
"""
8179
if why == 'call':
8280
code = frame.f_code
8381
modulename = frame.f_globals.get('__name__', None)
8482
if modulename is None:
8583
modulename = "None"
86-
file_name = frame.f_globals.get('__file__', None)
87-
if file_name is not None:
88-
full_file_name = os.path.abspath(file_name)
89-
else:
90-
full_file_name = "None"
91-
line_number = frame.f_lineno
9284
if not code.co_name == "_unsettrace" and not modulename[:6] == "scorep":
85+
file_name = frame.f_globals.get('__file__', None)
86+
if file_name is not None:
87+
full_file_name = os.path.abspath(file_name)
88+
else:
89+
full_file_name = "None"
90+
line_number = frame.f_lineno
9391
self.scorep_bindings.region_begin(
9492
modulename, code.co_name, full_file_name, line_number)
95-
return self.localtrace
96-
else:
97-
return None
93+
return self.localtrace
94+
return None
9895

9996
def localtrace_trace(self, frame, why, arg):
10097
if why == 'return':

src/scorep.cpp

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void region_begin(const std::string& region_name, std::string module, std::strin
3838

3939
void region_end(const std::string& region_name)
4040
{
41-
auto& handle = regions[region_name];
41+
auto& handle = regions.at(region_name);
4242
SCOREP_User_RegionEnd(handle.value);
4343
}
4444

@@ -58,7 +58,7 @@ void rewind_begin(std::string region_name, std::string file_name, std::uint64_t
5858

5959
void rewind_end(std::string region_name, bool value)
6060
{
61-
auto& handle = rewind_regions[region_name];
61+
auto& handle = rewind_regions.at(region_name);
6262
/* don't call SCOREP_ExitRewindRegion, as
6363
* SCOREP_User_RewindRegionEnd does some additional magic
6464
* */
@@ -97,10 +97,6 @@ void oa_region_end(std::string region_name)
9797
SCOREP_User_OaPhaseEnd(handle.value);
9898
}
9999
} // namespace scorep
100-
namespace scorep_python
101-
{
102-
std::set<std::string> filter_modules = { "scorep.user", "scorep.strace" };
103-
}
104100

105101
extern "C"
106102
{
@@ -135,14 +131,11 @@ extern "C"
135131
if (!PyArg_ParseTuple(args, "sssK", &module, &region_name, &file_name, &line_number))
136132
return NULL;
137133

138-
if (scorep_python::filter_modules.find(module) == scorep_python::filter_modules.end())
139-
{
140-
static std::string region = "";
141-
region = module;
142-
region += ":";
143-
region += region_name;
144-
scorep::region_begin(region, module, file_name, line_number);
145-
}
134+
static std::string region = "";
135+
region = module;
136+
region += ":";
137+
region += region_name;
138+
scorep::region_begin(region, module, file_name, line_number);
146139

147140
Py_INCREF(Py_None);
148141
return Py_None;
@@ -159,14 +152,11 @@ extern "C"
159152
if (!PyArg_ParseTuple(args, "ss", &module, &region_name))
160153
return NULL;
161154

162-
if (scorep_python::filter_modules.find(module) == scorep_python::filter_modules.end())
163-
{
164-
static std::string region = "";
165-
region = module;
166-
region += ":";
167-
region += region_name;
168-
scorep::region_end(region);
169-
}
155+
static std::string region = "";
156+
region = module;
157+
region += ":";
158+
region += region_name;
159+
scorep::region_end(region);
170160

171161
Py_INCREF(Py_None);
172162
return Py_None;

0 commit comments

Comments
 (0)