Project

General

Profile

Bug #20634

Updated by skorobogatydmitry (Dmitry Skorobogaty) 5 months ago

It's a cont for #20618, feel free to close this one and reopen the original bug. 

 According to `top`, the below code uses 7/16 cores (700%) of my AMD Ryzen 7 5800HS: 
 ``` 
 #!/usr/bin/env ruby 

 16.times { 
   Ractor.new { 
     10_000.downto(1) { |i| 
       100_000.downto(1) { |j| 
         i * j 
       } 
     } 
   } 
 } 

 sleep 30 
 ``` 
 Command I ran is `RUBY_MAX_CPU=16 ruby test.rb`. 

 I also tried to set `RUBY_MN_THREADS=1` as an addition and the script starts to occupy 8 cores instead of 7 (possibly, due to N:M algo allocating an extra core for the blocked main Ractor). 

 The same code occupies all 16 cores on ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux] 

 The problem reproduces on ruby 3.3.3 (2024-06-12 revision f1c7b6f435) [x86_64-linux] (ruby from the latest docker image).

Back