Skip to content

Commit

Permalink
Add some USDT trace points
Browse files Browse the repository at this point in the history
  • Loading branch information
wks committed Aug 7, 2023
1 parent 5a90262 commit f1a05c6
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 37 deletions.
79 changes: 44 additions & 35 deletions mmtk/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions mmtk/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ log = "0.4.14"
env_logger = "0.10.0"
once_cell = "1.17.0"
atomic_refcell = "0.1.9"
probe = "0.3"

[dependencies.mmtk]
features = ["is_mmtk_object", "object_pinning"]
Expand Down
2 changes: 2 additions & 0 deletions mmtk/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ extern crate libc;
extern crate mmtk;
#[macro_use]
extern crate log;
#[macro_use]
extern crate probe;

use std::collections::HashSet;
use std::panic::PanicInfo;
Expand Down
7 changes: 5 additions & 2 deletions mmtk/src/ppp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,13 @@ impl PPPRegistry {

pub fn cleanup_ppps(&self) {
log::debug!("Removing dead PPPs...");

{
let mut ppps = self
.ppps
.try_lock()
.expect("PPPRegistry::ppps should not have races during GC.");

probe!(mmtk_ruby, remove_dead_ppps_start, ppps.len());
ppps.retain_mut(|obj| {
if obj.is_live() {
*obj = obj.get_forwarded_object().unwrap_or(*obj);
Expand All @@ -78,18 +78,21 @@ impl PPPRegistry {
false
}
});
probe!(mmtk_ruby, remove_dead_ppps_end);
}

log::debug!("Unpinning pinned roots...");
log::debug!("Unpinning pinned PPP children...");
{
let mut pinned_ppps = self
.pinned_ppp_children
.try_lock()
.expect("PPPRegistry::pinned_ppp_children should not have races during GC.");
probe!(mmtk_ruby, unpin_ppp_children_start, pinned_ppps.len());
for obj in pinned_ppps.drain(..) {
let unpinned = memory_manager::unpin_object::<Ruby>(obj);
debug_assert!(unpinned);
}
probe!(mmtk_ruby, unpin_ppp_children_end);
}
}
}
Expand Down

0 comments on commit f1a05c6

Please sign in to comment.