forked from ruby/ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] master from ruby:master #365
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Accidentally added in #14679
This fixes a reliable "ZJIT saw a dead object" repro on my machine, and should fix the flaky ones on CI. The code for disabling the GC is the same as the code in newobj_of(). See: https://github.com/ruby/ruby/actions/runs/18511676257/job/52753782036
This is due to the way MMTK frees objects, which is on another native thread. Due to this, there's no `ec` so we can't grab the VM Lock. This was causing issues in release builds of MMTK on CI like: ``` /home/runner/work/ruby/ruby/build/ruby(sigsegv+0x46) [0x557905117ef6] ../src/signal.c:948 /lib/x86_64-linux-gnu/libc.so.6(0x7f555f845330) [0x7f555f845330] /home/runner/work/ruby/ruby/build/ruby(rb_ec_thread_ptr+0x0) [0x5579051d59d5] ../src/vm_core.h:2087 /home/runner/work/ruby/ruby/build/ruby(rb_ec_ractor_ptr) ../src/vm_core.h:2036 /home/runner/work/ruby/ruby/build/ruby(rb_current_execution_context) ../src/vm_core.h:2105 /home/runner/work/ruby/ruby/build/ruby(rb_current_ractor_raw) ../src/vm_core.h:2104 /home/runner/work/ruby/ruby/build/ruby(rb_current_ractor) ../src/vm_core.h:2112 /home/runner/work/ruby/ruby/build/ruby(rb_current_ractor) ../src/vm_core.h:2110 /home/runner/work/ruby/ruby/build/ruby(vm_locked) ../src/vm_sync.c:15 /home/runner/work/ruby/ruby/build/ruby(rb_vm_lock_enter_body) ../src/vm_sync.c:141 /home/runner/work/ruby/ruby/build/ruby(rb_vm_lock_enter+0xa) [0x557905390a5a] ../src/vm_sync.h:76 /home/runner/work/ruby/ruby/build/ruby(fiber_pool_stack_release) ../src/cont.c:777 /home/runner/work/ruby/ruby/build/ruby(fiber_stack_release+0xe) [0x557905392075] ../src/cont.c:919 /home/runner/work/ruby/ruby/build/ruby(cont_free) ../src/cont.c:1087 /home/runner/work/ruby/ruby/build/ruby(fiber_free) ../src/cont.c:1180 ``` This would have ran into an assertion error in a debug build but we don't run debug builds of MMTK on Github's CI. Co-authored-by: [email protected]
Fixes Shopify#793 ## Testing on `liquid-render`: <details> <summary>Before patch:</summary> ``` ***ZJIT: Printing ZJIT statistics on exit*** Top-20 not inlined C methods (96.8% of total 20,222,783): Kernel#respond_to?: 9,725,886 (48.1%) Hash#key?: 4,589,528 (22.7%) Set#include?: 1,493,789 ( 7.4%) String#===: 616,183 ( 3.0%) Hash#[]: 453,675 ( 2.2%) String#<<: 386,831 ( 1.9%) Integer#<<: 319,768 ( 1.6%) Kernel#is_a?: 312,176 ( 1.5%) Integer#/: 238,502 ( 1.2%) Kernel#format: 238,502 ( 1.2%) Array#<<: 220,724 ( 1.1%) Class#last_match: 179,182 ( 0.9%) Hash#[]=: 167,728 ( 0.8%) CGI::EscapeExt#escapeHTML: 106,471 ( 0.5%) Array#shift: 98,030 ( 0.5%) Array#unshift: 90,851 ( 0.4%) String#=~: 90,637 ( 0.4%) String#start_with?: 88,122 ( 0.4%) Regexp#===: 85,648 ( 0.4%) String#empty?: 80,950 ( 0.4%) Top-20 not annotated C methods (97.0% of total 20,268,253): Kernel#respond_to?: 9,725,886 (48.0%) Hash#key?: 4,589,528 (22.6%) Set#include?: 1,493,789 ( 7.4%) String#===: 616,183 ( 3.0%) Hash#[]: 453,675 ( 2.2%) Kernel#is_a?: 397,366 ( 2.0%) String#<<: 386,831 ( 1.9%) Integer#<<: 319,768 ( 1.6%) Integer#/: 238,502 ( 1.2%) Kernel#format: 238,502 ( 1.2%) Array#<<: 220,724 ( 1.1%) Class#last_match: 179,182 ( 0.9%) Hash#[]=: 167,728 ( 0.8%) CGI::EscapeExt#escapeHTML: 106,471 ( 0.5%) Array#shift: 98,030 ( 0.5%) Array#unshift: 90,851 ( 0.4%) String#=~: 90,637 ( 0.4%) String#start_with?: 88,122 ( 0.4%) Regexp#===: 85,648 ( 0.4%) String#empty?: 80,950 ( 0.4%) Top-2 not optimized method types for send (100.0% of total 1,180): iseq: 602 (51.0%) cfunc: 578 (49.0%) Top-3 not optimized method types for send_without_block (100.0% of total 4,896,785): iseq: 4,669,764 (95.4%) optimized: 227,001 ( 4.6%) alias: 20 ( 0.0%) Top-9 not optimized instructions (100.0% of total 1,255,287): invokeblock: 430,174 (34.3%) opt_neq: 319,471 (25.5%) opt_and: 319,471 (25.5%) opt_eq: 127,926 (10.2%) opt_le: 31,238 ( 2.5%) invokesuper: 23,409 ( 1.9%) opt_minus: 2,934 ( 0.2%) opt_send_without_block: 562 ( 0.0%) opt_or: 102 ( 0.0%) Top-7 send fallback reasons (100.0% of total 17,930,659): send_no_profiles: 6,145,096 (34.3%) send_without_block_polymorphic: 5,459,600 (30.4%) send_without_block_not_optimized_method_type: 4,896,785 (27.3%) not_optimized_instruction: 1,255,287 ( 7.0%) send_without_block_no_profiles: 170,037 ( 0.9%) obj_to_string_not_string: 2,674 ( 0.0%) send_not_optimized_method_type: 1,180 ( 0.0%) Top-3 unhandled YARV insns (100.0% of total 157,831): getclassvariable: 157,694 (99.9%) once: 121 ( 0.1%) getconstant: 16 ( 0.0%) Top-2 compile error reasons (100.0% of total 8,905,991): register_spill_on_alloc: 8,905,891 (100.0%) register_spill_on_ccall: 100 ( 0.0%) Top-9 side exit reasons (100.0% of total 26,549,652): compile_error: 8,905,991 (33.5%) guard_shape_failure: 6,590,116 (24.8%) guard_type_failure: 4,882,217 (18.4%) unhandled_splat: 4,150,547 (15.6%) unhandled_kwarg: 1,827,728 ( 6.9%) unhandled_yarv_insn: 157,831 ( 0.6%) unhandled_hir_insn: 34,072 ( 0.1%) patchpoint: 1,100 ( 0.0%) block_param_proxy_not_iseq_or_ifunc: 50 ( 0.0%) send_count: 72,944,863 dynamic_send_count: 17,930,659 (24.6%) optimized_send_count: 55,014,204 (75.4%) iseq_optimized_send_count: 26,520,888 (36.4%) inline_cfunc_optimized_send_count: 8,270,533 (11.3%) non_variadic_cfunc_optimized_send_count: 9,344,065 (12.8%) variadic_cfunc_optimized_send_count: 10,878,718 (14.9%) dynamic_getivar_count: 2,171,396 dynamic_setivar_count: 1,737,553 compiled_iseq_count: 383 failed_iseq_count: 46 compile_time: 820ms profile_time: 4ms gc_time: 22ms invalidation_time: 0ms vm_write_pc_count: 71,973,068 vm_write_sp_count: 71,544,492 vm_write_locals_count: 71,544,492 vm_write_stack_count: 71,544,492 vm_write_to_parent_iseq_local_count: 1,070,897 vm_read_from_parent_iseq_local_count: 27,449,010 code_region_bytes: 2,113,536 side_exit_count: 26,549,652 total_insn_count: 908,528,764 vm_insn_count: 484,633,128 zjit_insn_count: 423,895,636 ratio_in_zjit: 46.7% ``` </details> <details> <summary>after patch:</summary> ``` ***ZJIT: Printing ZJIT statistics on exit*** Top-20 not inlined C methods (97.2% of total 19,769,108): Kernel#respond_to?: 9,725,886 (49.2%) Hash#key?: 4,589,528 (23.2%) Set#include?: 1,493,789 ( 7.6%) String#===: 616,183 ( 3.1%) String#<<: 386,831 ( 2.0%) Integer#<<: 319,768 ( 1.6%) Kernel#is_a?: 312,176 ( 1.6%) Integer#/: 238,502 ( 1.2%) Kernel#format: 238,502 ( 1.2%) Array#<<: 220,724 ( 1.1%) Class#last_match: 179,182 ( 0.9%) Hash#[]=: 167,728 ( 0.8%) CGI::EscapeExt#escapeHTML: 106,471 ( 0.5%) Array#shift: 98,030 ( 0.5%) Array#unshift: 90,851 ( 0.5%) String#=~: 90,637 ( 0.5%) String#start_with?: 88,122 ( 0.4%) Regexp#===: 85,648 ( 0.4%) String#empty?: 80,950 ( 0.4%) Array#push: 78,615 ( 0.4%) Top-20 not annotated C methods (97.4% of total 19,814,578): Kernel#respond_to?: 9,725,886 (49.1%) Hash#key?: 4,589,528 (23.2%) Set#include?: 1,493,789 ( 7.5%) String#===: 616,183 ( 3.1%) Kernel#is_a?: 397,366 ( 2.0%) String#<<: 386,831 ( 2.0%) Integer#<<: 319,768 ( 1.6%) Integer#/: 238,502 ( 1.2%) Kernel#format: 238,502 ( 1.2%) Array#<<: 220,724 ( 1.1%) Class#last_match: 179,182 ( 0.9%) Hash#[]=: 167,728 ( 0.8%) CGI::EscapeExt#escapeHTML: 106,471 ( 0.5%) Array#shift: 98,030 ( 0.5%) Array#unshift: 90,851 ( 0.5%) String#=~: 90,637 ( 0.5%) String#start_with?: 88,122 ( 0.4%) Regexp#===: 85,648 ( 0.4%) String#empty?: 80,950 ( 0.4%) Array#push: 78,615 ( 0.4%) Top-2 not optimized method types for send (100.0% of total 1,180): iseq: 602 (51.0%) cfunc: 578 (49.0%) Top-3 not optimized method types for send_without_block (100.0% of total 4,896,785): iseq: 4,669,764 (95.4%) optimized: 227,001 ( 4.6%) alias: 20 ( 0.0%) Top-9 not optimized instructions (100.0% of total 1,255,287): invokeblock: 430,174 (34.3%) opt_neq: 319,471 (25.5%) opt_and: 319,471 (25.5%) opt_eq: 127,926 (10.2%) opt_le: 31,238 ( 2.5%) invokesuper: 23,409 ( 1.9%) opt_minus: 2,934 ( 0.2%) opt_send_without_block: 562 ( 0.0%) opt_or: 102 ( 0.0%) Top-7 send fallback reasons (100.0% of total 17,930,659): send_no_profiles: 6,145,096 (34.3%) send_without_block_polymorphic: 5,459,600 (30.4%) send_without_block_not_optimized_method_type: 4,896,785 (27.3%) not_optimized_instruction: 1,255,287 ( 7.0%) send_without_block_no_profiles: 170,037 ( 0.9%) obj_to_string_not_string: 2,674 ( 0.0%) send_not_optimized_method_type: 1,180 ( 0.0%) Top-3 unhandled YARV insns (100.0% of total 157,831): getclassvariable: 157,694 (99.9%) once: 121 ( 0.1%) getconstant: 16 ( 0.0%) Top-2 compile error reasons (100.0% of total 8,905,991): register_spill_on_alloc: 8,905,891 (100.0%) register_spill_on_ccall: 100 ( 0.0%) Top-9 side exit reasons (100.0% of total 26,549,652): compile_error: 8,905,991 (33.5%) guard_shape_failure: 6,590,116 (24.8%) guard_type_failure: 4,882,217 (18.4%) unhandled_splat: 4,150,547 (15.6%) unhandled_kwarg: 1,827,728 ( 6.9%) unhandled_yarv_insn: 157,831 ( 0.6%) unhandled_hir_insn: 34,072 ( 0.1%) patchpoint: 1,100 ( 0.0%) block_param_proxy_not_iseq_or_ifunc: 50 ( 0.0%) send_count: 72,491,188 dynamic_send_count: 17,930,659 (24.7%) optimized_send_count: 54,560,529 (75.3%) iseq_optimized_send_count: 26,520,888 (36.6%) inline_cfunc_optimized_send_count: 8,270,533 (11.4%) non_variadic_cfunc_optimized_send_count: 8,890,390 (12.3%) variadic_cfunc_optimized_send_count: 10,878,718 (15.0%) dynamic_getivar_count: 2,171,396 dynamic_setivar_count: 1,737,553 compiled_iseq_count: 383 failed_iseq_count: 46 compile_time: 808ms profile_time: 4ms gc_time: 21ms invalidation_time: 0ms vm_write_pc_count: 71,973,068 vm_write_sp_count: 71,544,492 vm_write_locals_count: 71,544,492 vm_write_stack_count: 71,544,492 vm_write_to_parent_iseq_local_count: 1,070,897 vm_read_from_parent_iseq_local_count: 27,449,010 code_region_bytes: 2,097,152 side_exit_count: 26,549,652 total_insn_count: 908,528,764 vm_insn_count: 484,633,128 zjit_insn_count: 423,895,636 ratio_in_zjit: 46.7% ``` </details> ## Testing on `lobsters`: <details> <summary>Before patch:</summary> ``` ***ZJIT: Printing ZJIT statistics on exit*** Top-20 not inlined C methods (71.0% of total 28,729,305): Hash#[]: 8,490,837 (29.6%) Kernel#is_a?: 1,861,955 ( 6.5%) String#<<: 1,773,932 ( 6.2%) Hash#[]=: 1,159,328 ( 4.0%) Regexp#match?: 775,654 ( 2.7%) String#empty?: 724,503 ( 2.5%) Hash#key?: 691,233 ( 2.4%) Kernel#respond_to?: 608,714 ( 2.1%) TrueClass#===: 451,557 ( 1.6%) FalseClass#===: 442,907 ( 1.5%) Array#include?: 429,408 ( 1.5%) ActiveSupport::OrderedOptions#_get: 377,468 ( 1.3%) String#start_with?: 373,685 ( 1.3%) ObjectSpace::WeakKeyMap#[]: 356,664 ( 1.2%) Kernel#kind_of?: 349,451 ( 1.2%) Kernel#dup: 328,120 ( 1.1%) Class#new: 310,590 ( 1.1%) Kernel#block_given?: 307,113 ( 1.1%) String#==: 290,654 ( 1.0%) Hash#fetch: 290,533 ( 1.0%) Top-20 not annotated C methods (71.7% of total 29,033,802): Hash#[]: 8,490,847 (29.2%) Kernel#is_a?: 2,231,950 ( 7.7%) String#<<: 1,773,932 ( 6.1%) Hash#[]=: 1,159,507 ( 4.0%) Regexp#match?: 775,654 ( 2.7%) String#empty?: 739,580 ( 2.5%) Hash#key?: 691,233 ( 2.4%) Kernel#respond_to?: 608,714 ( 2.1%) TrueClass#===: 451,557 ( 1.6%) FalseClass#===: 442,907 ( 1.5%) Array#include?: 429,408 ( 1.5%) ActiveSupport::OrderedOptions#_get: 377,468 ( 1.3%) String#start_with?: 373,685 ( 1.3%) ObjectSpace::WeakKeyMap#[]: 356,664 ( 1.2%) Kernel#kind_of?: 349,486 ( 1.2%) Kernel#dup: 328,127 ( 1.1%) Kernel#block_given?: 327,655 ( 1.1%) Class#new: 310,590 ( 1.1%) String#==: 296,624 ( 1.0%) Hash#fetch: 290,533 ( 1.0%) Top-2 not optimized method types for send (100.0% of total 96,231): cfunc: 75,873 (78.8%) iseq: 20,358 (21.2%) Top-6 not optimized method types for send_without_block (100.0% of total 8,044,793): iseq: 4,034,262 (50.1%) bmethod: 1,757,537 (21.8%) optimized: 1,647,169 (20.5%) alias: 596,446 ( 7.4%) null: 8,161 ( 0.1%) cfunc: 1,218 ( 0.0%) Top-13 not optimized instructions (100.0% of total 7,507,191): invokesuper: 4,343,829 (57.9%) invokeblock: 1,323,655 (17.6%) sendforward: 842,491 (11.2%) opt_eq: 722,952 ( 9.6%) opt_plus: 145,599 ( 1.9%) opt_minus: 52,269 ( 0.7%) opt_send_without_block: 39,595 ( 0.5%) opt_neq: 15,048 ( 0.2%) opt_mult: 13,826 ( 0.2%) opt_or: 7,452 ( 0.1%) opt_lt: 348 ( 0.0%) opt_ge: 91 ( 0.0%) opt_gt: 36 ( 0.0%) Top-9 send fallback reasons (100.0% of total 45,075,567): send_without_block_polymorphic: 17,072,731 (37.9%) send_no_profiles: 10,490,735 (23.3%) send_without_block_not_optimized_method_type: 8,044,793 (17.8%) not_optimized_instruction: 7,507,191 (16.7%) send_without_block_no_profiles: 1,816,853 ( 4.0%) send_not_optimized_method_type: 96,231 ( 0.2%) send_without_block_cfunc_array_variadic: 31,156 ( 0.1%) obj_to_string_not_string: 15,303 ( 0.0%) send_without_block_direct_too_many_args: 574 ( 0.0%) Top-9 unhandled YARV insns (100.0% of total 1,279,306): expandarray: 660,222 (51.6%) checkkeyword: 316,124 (24.7%) getclassvariable: 119,678 ( 9.4%) getblockparam: 88,485 ( 6.9%) invokesuperforward: 78,843 ( 6.2%) opt_duparray_send: 14,149 ( 1.1%) getconstant: 1,496 ( 0.1%) checkmatch: 290 ( 0.0%) once: 19 ( 0.0%) Top-2 compile error reasons (100.0% of total 6,508,618): register_spill_on_alloc: 6,162,701 (94.7%) register_spill_on_ccall: 345,917 ( 5.3%) Top-14 side exit reasons (100.0% of total 19,988,958): compile_error: 6,508,618 (32.6%) guard_type_failure: 5,255,050 (26.3%) guard_shape_failure: 3,698,481 (18.5%) unhandled_yarv_insn: 1,279,306 ( 6.4%) block_param_proxy_not_iseq_or_ifunc: 990,585 ( 5.0%) unhandled_kwarg: 801,146 ( 4.0%) unknown_newarray_send: 539,110 ( 2.7%) patchpoint: 496,826 ( 2.5%) unhandled_splat: 242,104 ( 1.2%) unhandled_hir_insn: 147,346 ( 0.7%) block_param_proxy_modified: 29,122 ( 0.1%) interrupt: 1,072 ( 0.0%) obj_to_string_fallback: 170 ( 0.0%) guard_type_not_failure: 22 ( 0.0%) send_count: 118,969,379 dynamic_send_count: 45,075,567 (37.9%) optimized_send_count: 73,893,812 (62.1%) iseq_optimized_send_count: 32,439,432 (27.3%) inline_cfunc_optimized_send_count: 12,725,075 (10.7%) non_variadic_cfunc_optimized_send_count: 24,121,279 (20.3%) variadic_cfunc_optimized_send_count: 4,608,026 ( 3.9%) dynamic_getivar_count: 13,002,365 dynamic_setivar_count: 12,402,229 compiled_iseq_count: 4,817 failed_iseq_count: 466 compile_time: 8,961ms profile_time: 68ms gc_time: 41ms invalidation_time: 288ms vm_write_pc_count: 113,940,194 vm_write_sp_count: 111,595,088 vm_write_locals_count: 111,595,088 vm_write_stack_count: 111,595,088 vm_write_to_parent_iseq_local_count: 514,997 vm_read_from_parent_iseq_local_count: 11,288,600 code_region_bytes: 22,970,368 side_exit_count: 19,988,958 total_insn_count: 928,321,939 vm_insn_count: 297,374,855 zjit_insn_count: 630,947,084 ratio_in_zjit: 68.0% ``` </details> <details> <summary>after patch:</summary> ``` ***ZJIT: Printing ZJIT statistics on exit*** Top-20 not inlined C methods (60.9% of total 19,827,919): Kernel#is_a?: 1,827,297 ( 9.2%) String#<<: 1,764,393 ( 8.9%) Hash#[]=: 1,159,637 ( 5.8%) Regexp#match?: 775,625 ( 3.9%) String#empty?: 723,469 ( 3.6%) Hash#key?: 691,214 ( 3.5%) Kernel#respond_to?: 602,389 ( 3.0%) TrueClass#===: 447,671 ( 2.3%) FalseClass#===: 439,274 ( 2.2%) Array#include?: 425,491 ( 2.1%) Hash#fetch: 382,294 ( 1.9%) String#start_with?: 373,684 ( 1.9%) ObjectSpace::WeakKeyMap#[]: 356,654 ( 1.8%) Kernel#kind_of?: 340,341 ( 1.7%) Kernel#dup: 328,108 ( 1.7%) Class#new: 309,571 ( 1.6%) Kernel#block_given?: 307,098 ( 1.5%) String#==: 286,539 ( 1.4%) BasicObject#!=: 284,640 ( 1.4%) String#length: 256,345 ( 1.3%) Top-20 not annotated C methods (62.1% of total 20,127,933): Kernel#is_a?: 2,205,849 (11.0%) String#<<: 1,764,393 ( 8.8%) Hash#[]=: 1,159,816 ( 5.8%) Regexp#match?: 775,625 ( 3.9%) String#empty?: 738,546 ( 3.7%) Hash#key?: 691,214 ( 3.4%) Kernel#respond_to?: 602,389 ( 3.0%) TrueClass#===: 447,671 ( 2.2%) FalseClass#===: 439,274 ( 2.2%) Array#include?: 425,491 ( 2.1%) Hash#fetch: 382,294 ( 1.9%) String#start_with?: 373,684 ( 1.9%) ObjectSpace::WeakKeyMap#[]: 356,654 ( 1.8%) Kernel#kind_of?: 340,375 ( 1.7%) Kernel#dup: 328,115 ( 1.6%) Kernel#block_given?: 327,640 ( 1.6%) Class#new: 309,571 ( 1.5%) String#==: 292,509 ( 1.5%) BasicObject#!=: 284,824 ( 1.4%) String#length: 256,345 ( 1.3%) Top-2 not optimized method types for send (100.0% of total 113,430): cfunc: 75,863 (66.9%) iseq: 37,567 (33.1%) Top-6 not optimized method types for send_without_block (100.0% of total 8,005,732): iseq: 4,007,647 (50.1%) bmethod: 1,750,263 (21.9%) optimized: 1,647,088 (20.6%) alias: 591,356 ( 7.4%) null: 8,161 ( 0.1%) cfunc: 1,217 ( 0.0%) Top-13 not optimized instructions (100.0% of total 7,569,803): invokesuper: 4,320,589 (57.1%) invokeblock: 1,321,548 (17.5%) sendforward: 841,452 (11.1%) opt_eq: 811,601 (10.7%) opt_plus: 142,565 ( 1.9%) opt_minus: 52,268 ( 0.7%) opt_send_without_block: 42,982 ( 0.6%) opt_neq: 15,047 ( 0.2%) opt_mult: 13,824 ( 0.2%) opt_or: 7,452 ( 0.1%) opt_lt: 348 ( 0.0%) opt_ge: 91 ( 0.0%) opt_gt: 36 ( 0.0%) Top-9 send fallback reasons (100.0% of total 45,409,745): send_without_block_polymorphic: 17,360,049 (38.2%) send_no_profiles: 10,502,130 (23.1%) send_without_block_not_optimized_method_type: 8,005,732 (17.6%) not_optimized_instruction: 7,569,803 (16.7%) send_without_block_no_profiles: 1,811,570 ( 4.0%) send_not_optimized_method_type: 113,430 ( 0.2%) send_without_block_cfunc_array_variadic: 31,154 ( 0.1%) obj_to_string_not_string: 15,303 ( 0.0%) send_without_block_direct_too_many_args: 574 ( 0.0%) Top-9 unhandled YARV insns (100.0% of total 1,241,241): expandarray: 622,183 (50.1%) checkkeyword: 316,113 (25.5%) getclassvariable: 119,668 ( 9.6%) getblockparam: 88,481 ( 7.1%) invokesuperforward: 78,842 ( 6.4%) opt_duparray_send: 14,149 ( 1.1%) getconstant: 1,496 ( 0.1%) checkmatch: 290 ( 0.0%) once: 19 ( 0.0%) Top-2 compile error reasons (100.0% of total 6,521,426): register_spill_on_alloc: 6,175,519 (94.7%) register_spill_on_ccall: 345,907 ( 5.3%) Top-14 side exit reasons (100.0% of total 19,869,193): compile_error: 6,521,426 (32.8%) guard_type_failure: 5,167,727 (26.0%) guard_shape_failure: 3,708,529 (18.7%) unhandled_yarv_insn: 1,241,241 ( 6.2%) block_param_proxy_not_iseq_or_ifunc: 990,130 ( 5.0%) unhandled_kwarg: 800,104 ( 4.0%) unknown_newarray_send: 539,105 ( 2.7%) patchpoint: 494,790 ( 2.5%) unhandled_splat: 229,423 ( 1.2%) unhandled_hir_insn: 147,342 ( 0.7%) block_param_proxy_modified: 28,111 ( 0.1%) interrupt: 1,073 ( 0.0%) obj_to_string_fallback: 170 ( 0.0%) guard_type_not_failure: 22 ( 0.0%) send_count: 109,972,903 dynamic_send_count: 45,409,745 (41.3%) optimized_send_count: 64,563,158 (58.7%) iseq_optimized_send_count: 32,205,906 (29.3%) inline_cfunc_optimized_send_count: 12,529,333 (11.4%) non_variadic_cfunc_optimized_send_count: 15,123,197 (13.8%) variadic_cfunc_optimized_send_count: 4,704,722 ( 4.3%) dynamic_getivar_count: 12,973,226 dynamic_setivar_count: 12,381,984 compiled_iseq_count: 4,816 failed_iseq_count: 467 compile_time: 8,116ms profile_time: 59ms gc_time: 35ms invalidation_time: 289ms vm_write_pc_count: 113,616,123 vm_write_sp_count: 111,273,109 vm_write_locals_count: 111,273,109 vm_write_stack_count: 111,273,109 vm_write_to_parent_iseq_local_count: 516,816 vm_read_from_parent_iseq_local_count: 11,255,225 code_region_bytes: 22,872,064 side_exit_count: 19,869,193 total_insn_count: 924,733,475 vm_insn_count: 296,183,588 zjit_insn_count: 628,549,887 ratio_in_zjit: 68.0% ``` </details>
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )