ruby/bootstraptest
Koichi Sasada be1bbd5b7d M:N thread scheduler for Ractors
This patch introduce M:N thread scheduler for Ractor system.

In general, M:N thread scheduler employs N native threads (OS threads)
to manage M user-level threads (Ruby threads in this case).
On the Ruby interpreter, 1 native thread is provided for 1 Ractor
and all Ruby threads are managed by the native thread.

From Ruby 1.9, the interpreter uses 1:1 thread scheduler which means
1 Ruby thread has 1 native thread. M:N scheduler change this strategy.

Because of compatibility issue (and stableness issue of the implementation)
main Ractor doesn't use M:N scheduler on default. On the other words,
threads on the main Ractor will be managed with 1:1 thread scheduler.

There are additional settings by environment variables:

`RUBY_MN_THREADS=1` enables M:N thread scheduler on the main ractor.
Note that non-main ractors use the M:N scheduler without this
configuration. With this configuration, single ractor applications
run threads on M:1 thread scheduler (green threads, user-level threads).

`RUBY_MAX_CPU=n` specifies maximum number of native threads for
M:N scheduler (default: 8).

This patch will be reverted soon if non-easy issues are found.

[Bug #19842]
2023-10-12 14:47:01 +09:00
..
pending.rb Moved already resolved test 2020-04-27 10:39:07 +09:00
runner.rb Remove a warning in bootstraptest/runner.rb 2023-03-19 21:02:21 -07:00
test_attr.rb Revert "Revert "This commit implements the Object Shapes technique in CRuby."" 2022-10-11 08:40:56 -07:00
test_autoload.rb support concurrent btest execution 2022-02-06 03:05:47 +09:00
test_block.rb vm_insnhelper.c: break from nested rescue 2015-01-23 14:57:08 +00:00
test_class.rb vm.c: initialize defined_module_hash early 2013-10-13 11:59:27 +00:00
test_constant_cache.rb Finer-grained constant cache invalidation (take 2) 2022-04-01 14:48:22 -04:00
test_env.rb fallback env encoding to ASCII-8BIT 2018-09-26 17:24:00 +00:00
test_eval.rb btest: assign $stderr = STDOUT instead of IO#reopen to be more portable 2021-12-16 16:16:40 +09:00
test_exception.rb error.c: bypass Exception.new 2018-02-20 10:08:27 +00:00
test_fiber.rb support concurrent btest execution 2022-02-06 03:05:47 +09:00
test_finalizer.rb
test_flip.rb
test_flow.rb Make proc/Proc.new without block an error instead of warning 2020-06-10 17:49:54 -07:00
test_fork.rb bootstraptest/test_fork.rb: Stop too restrict NPROC test temporarily 2018-01-09 08:05:40 +00:00
test_gc.rb s/mjit/rjit/ 2023-03-06 23:44:01 -08:00
test_insns.rb Emit special instruction for array literal + .(hash|min|max) 2023-04-18 17:16:22 -07:00
test_io.rb omit random failure in bootstraptest with freebsd 2022-09-06 16:27:12 +09:00
test_jump.rb btest: assign $stderr = STDOUT instead of IO#reopen to be more portable 2021-12-16 16:16:40 +09:00
test_literal.rb [wasm] bootstraptest, basictest: disable backquote literal tests 2022-01-19 11:19:06 +09:00
test_literal_suffix.rb parse.y: more token names 2019-01-21 10:24:56 +00:00
test_load.rb Skip a flaky test that might not work 2023-03-17 09:06:52 -07:00
test_marshal.rb
test_massign.rb
test_method.rb support concurrent btest execution 2022-02-06 03:05:47 +09:00
test_objectspace.rb Use a monotonically increasing number for object_id 2019-11-07 09:31:07 -08:00
test_proc.rb Make proc/Proc.new without block an error instead of warning 2020-06-10 17:49:54 -07:00
test_ractor.rb Fix a typo [ci skip] 2023-07-17 00:15:05 +09:00
test_rjit.rb RJIT: Fix unspecified_bits with locals 2023-04-26 18:12:53 -07:00
test_string.rb * string.c (str_discard): does not free for STR_NOFREE string. 2015-02-13 13:06:58 +00:00
test_struct.rb
test_syntax.rb [Bug #19882] Reject tokens invalid as symbols 2023-09-15 17:27:36 +09:00
test_thread.rb M:N thread scheduler for Ractors 2023-10-12 14:47:01 +09:00
test_yjit.rb YJIT: Chain-guard opt_mult overflow (#8554) 2023-09-29 21:55:48 -04:00
test_yjit_30k_ifelse.rb * append newline at EOF. [ci skip] 2021-10-21 08:12:53 +09:00
test_yjit_30k_methods.rb * append newline at EOF. [ci skip] 2021-10-21 08:12:53 +09:00
test_yjit_rust_port.rb Rust YJIT 2022-04-27 11:00:22 -04:00