diff options
author | fche <fche> | 2005-09-19 20:15:33 +0000 |
---|---|---|
committer | fche <fche> | 2005-09-19 20:15:33 +0000 |
commit | acc5b5e672eceab0172b43dc7dfb1e2e9d4d6e39 (patch) | |
tree | 7e5b4a6c460791ef79b65d3d8733659bdb7ae8fa | |
parent | 2340b07688d4c8bde3c26711e850e9486ee3b002 (diff) | |
download | systemtap-steved-acc5b5e672eceab0172b43dc7dfb1e2e9d4d6e39.tar.gz systemtap-steved-acc5b5e672eceab0172b43dc7dfb1e2e9d4d6e39.tar.xz systemtap-steved-acc5b5e672eceab0172b43dc7dfb1e2e9d4d6e39.zip |
2005-09-19 Frank Ch. Eigler <fche@redhat.com>
* tapsets.cxx (*::emit_probe_entries): Handle busy-count correctly
upon contention.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | tapsets.cxx | 3 |
2 files changed, 8 insertions, 0 deletions
@@ -1,3 +1,8 @@ +2005-09-19 Frank Ch. Eigler <fche@redhat.com> + + * tapsets.cxx (*::emit_probe_entries): Handle busy-count correctly + upon contention. + 2005-09-14 Graydon Hoare <graydon@redhat.com> PR 1260 diff --git a/tapsets.cxx b/tapsets.cxx index 8d08ea5e..d250521c 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -161,6 +161,7 @@ be_derived_probe::emit_probe_entries (translator_output* o, unsigned j) o->newline(1) << "printk (KERN_ERR \"probe reentrancy (%s vs %s)\\n\", " << "c->probe_point, probe_point);"; o->newline() << "atomic_set (& session_state, STAP_SESSION_ERROR);"; + o->newline() << "atomic_dec (&c->busy);"; o->newline() << "return;"; o->newline(-1) << "}"; o->newline(); @@ -2151,6 +2152,7 @@ dwarf_derived_probe::emit_probe_entries (translator_output* o, unsigned probenum o->newline(1) << "printk (KERN_ERR \"probe reentrancy (%s vs %s)\\n\", " << "c->probe_point, probe_point);"; o->newline() << "atomic_set (& session_state, STAP_SESSION_ERROR);"; + o->newline() << "atomic_dec (&c->busy);"; o->newline() << "return 0;"; o->newline(-1) << "}"; o->newline(); @@ -2312,6 +2314,7 @@ timer_derived_probe::emit_probe_entries (translator_output* o, unsigned j) o->newline(1) << "printk (KERN_ERR \"probe reentrancy (%s vs %s)\\n\", " << "c->probe_point, probe_point);"; o->newline() << "atomic_set (& session_state, STAP_SESSION_ERROR);"; + o->newline() << "atomic_dec (&c->busy);"; o->newline() << "return;"; o->newline(-1) << "}"; o->newline(); |