Commit 367234ad authored by Sasha Goldshtein's avatar Sasha Goldshtein

python: Fix kprobe quota test breakage, add uprobes

As part of the funccount work, the kprobe quota test doesn't fail
early when adding multiple kprobes at once (with `event_re`), but
rather only when the 1000th probe is being added. Revert to the old
behavior, which fixes the `test_probe_quota` test. Add similar test
for uprobes, `test_uprobe_quota`, which tests the recently-added
uprobe regex support.
parent ff3b9f37
...@@ -409,7 +409,9 @@ class BPF(object): ...@@ -409,7 +409,9 @@ class BPF(object):
# allow the caller to glob multiple functions together # allow the caller to glob multiple functions together
if event_re: if event_re:
for line in BPF.get_kprobe_functions(event_re): matches = BPF.get_kprobe_functions(event_re)
self._check_probe_quota(len(matches))
for line in matches:
try: try:
self.attach_kprobe(event=line, fn_name=fn_name, pid=pid, self.attach_kprobe(event=line, fn_name=fn_name, pid=pid,
cpu=cpu, group_fd=group_fd) cpu=cpu, group_fd=group_fd)
...@@ -672,7 +674,9 @@ class BPF(object): ...@@ -672,7 +674,9 @@ class BPF(object):
name = str(name) name = str(name)
if sym_re: if sym_re:
for sym_addr in BPF.get_user_adddresses(name, sym_re): addresses = BPF.get_user_addresses(name, sym_re)
self._check_probe_quota(len(addresses))
for sym_addr in addresses:
self.attach_uprobe(name=name, addr=sym_addr, self.attach_uprobe(name=name, addr=sym_addr,
fn_name=fn_name, pid=pid, cpu=cpu, fn_name=fn_name, pid=pid, cpu=cpu,
group_fd=group_fd) group_fd=group_fd)
......
...@@ -67,6 +67,10 @@ class TestProbeQuota(TestCase): ...@@ -67,6 +67,10 @@ class TestProbeQuota(TestCase):
with self.assertRaises(Exception): with self.assertRaises(Exception):
self.b.attach_kprobe(event_re=".*", fn_name="count") self.b.attach_kprobe(event_re=".*", fn_name="count")
def test_uprobe_quota(self):
with self.assertRaises(Exception):
self.b.attach_uprobe(name="c", sym_re=".*", fn_name="count")
def tearDown(self): def tearDown(self):
self.b.cleanup() self.b.cleanup()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment