YJIT: Add Counter::invalidate_everything
When YJIT is forced to discard all the code, that's bad for performance, so there should be an easy way to know about it.
This commit is contained in:
parent
3c92fe13f8
commit
98790faae3
Notes:
git
2025-03-08 01:23:52 +00:00
@ -626,6 +626,8 @@ pub extern "C" fn rb_yjit_tracing_invalidate_all() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
incr_counter!(invalidate_everything);
|
||||||
|
|
||||||
// Stop other ractors since we are going to patch machine code.
|
// Stop other ractors since we are going to patch machine code.
|
||||||
with_vm_lock(src_loc!(), || {
|
with_vm_lock(src_loc!(), || {
|
||||||
// Make it so all live block versions are no longer valid branch targets
|
// Make it so all live block versions are no longer valid branch targets
|
||||||
|
@ -293,6 +293,7 @@ pub const DEFAULT_COUNTERS: &'static [Counter] = &[
|
|||||||
Counter::invalidate_constant_ic_fill,
|
Counter::invalidate_constant_ic_fill,
|
||||||
Counter::invalidate_no_singleton_class,
|
Counter::invalidate_no_singleton_class,
|
||||||
Counter::invalidate_ep_escape,
|
Counter::invalidate_ep_escape,
|
||||||
|
Counter::invalidate_everything,
|
||||||
];
|
];
|
||||||
|
|
||||||
/// Macro to increase a counter by name and count
|
/// Macro to increase a counter by name and count
|
||||||
@ -589,6 +590,7 @@ make_counters! {
|
|||||||
invalidate_constant_ic_fill,
|
invalidate_constant_ic_fill,
|
||||||
invalidate_no_singleton_class,
|
invalidate_no_singleton_class,
|
||||||
invalidate_ep_escape,
|
invalidate_ep_escape,
|
||||||
|
invalidate_everything,
|
||||||
|
|
||||||
// Currently, it's out of the ordinary (might be impossible) for YJIT to leave gaps in
|
// Currently, it's out of the ordinary (might be impossible) for YJIT to leave gaps in
|
||||||
// executable memory, so this should be 0.
|
// executable memory, so this should be 0.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user