summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2010-03-18 08:45:16 -0400
committerFrank Ch. Eigler <fche@elastic.org>2010-03-18 08:45:16 -0400
commit7acbe85634102f8df073e149a01158d8dcdbf0ee (patch)
tree6c43332b0098aaf610f80006e5e3f0fd6127a804
parent95ef3b3011e48bc1a5775c320d3bbc7b84853512 (diff)
downloadsystemtap-steved-7acbe85634102f8df073e149a01158d8dcdbf0ee.tar.gz
systemtap-steved-7acbe85634102f8df073e149a01158d8dcdbf0ee.tar.xz
systemtap-steved-7acbe85634102f8df073e149a01158d8dcdbf0ee.zip
PR909: reject perf.* probes later
* tapset-perfmon.cxx (perf_builder::build): Check for CONFIG_PERF_EVENTS here. (register_tapset_perf): ... instead of here.
-rw-r--r--tapset-perfmon.cxx11
1 files changed, 5 insertions, 6 deletions
diff --git a/tapset-perfmon.cxx b/tapset-perfmon.cxx
index 202834e7..81d6c2d7 100644
--- a/tapset-perfmon.cxx
+++ b/tapset-perfmon.cxx
@@ -196,6 +196,11 @@ perf_builder::build(systemtap_session & sess,
literal_map_t const & parameters,
vector<derived_probe *> & finished_results)
{
+ // XXX need additional version checks too?
+ // --- perhaps look for export of perf_event_create_kernel_counter
+ if (sess.kernel_config["CONFIG_PERF_EVENTS"] != "y")
+ throw semantic_error ("perf probes not available without CONFIG_PERF_EVENTS");
+
int64_t type;
bool has_type = get_param(parameters, TOK_TYPE, type);
assert(has_type);
@@ -223,12 +228,6 @@ perf_builder::build(systemtap_session & sess,
void
register_tapset_perf(systemtap_session& s)
{
- // make sure we have support before registering anything
- // XXX need additional version checks too?
- // --- perhaps look for export of perf_event_create_kernel_counter
- if (s.kernel_config["CONFIG_PERF_EVENTS"] != "y")
- return;
-
// NB: at this point, the binding is *not* unprivileged.
derived_probe_builder *builder = new perf_builder();