<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/ruby.git/vm_sync.c, branch ruby_3_2</title>
<subtitle>github.com: ruby/ruby.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/'/>
<entry>
<title>Fix format specifier for `rb_ractor_id()`</title>
<updated>2022-07-28T14:46:06+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2022-07-27T15:25:34+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=c38ad2aeb55aadd4a697f9541efac1fe30fd6891'/>
<id>c38ad2aeb55aadd4a697f9541efac1fe30fd6891</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Prefix ccan headers (#4568)</title>
<updated>2022-03-30T07:36:31+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2022-03-30T07:36:31+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=42a0bed351979cb4a59c641fa5f03e49609561fd'/>
<id>42a0bed351979cb4a59c641fa5f03e49609561fd</id>
<content type='text'>
* Prefixed ccan headers

* Remove unprefixed names in ccan/build_assert

* Remove unprefixed names in ccan/check_type

* Remove unprefixed names in ccan/container_of

* Remove unprefixed names in ccan/list

Co-authored-by: Samuel Williams &lt;samuel.williams@oriontransfer.co.nz&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Prefixed ccan headers

* Remove unprefixed names in ccan/build_assert

* Remove unprefixed names in ccan/check_type

* Remove unprefixed names in ccan/container_of

* Remove unprefixed names in ccan/list

Co-authored-by: Samuel Williams &lt;samuel.williams@oriontransfer.co.nz&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Supress `warning: data argument not used by format string [-Wformat-extra-args]`</title>
<updated>2021-10-19T22:48:30+00:00</updated>
<author>
<name>Kazuhiro NISHIYAMA</name>
<email>zn@mbf.nifty.com</email>
</author>
<published>2021-09-28T09:00:03+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=9b18f1bffe056f9f3e0c37b7c847ecb3ca942307'/>
<id>9b18f1bffe056f9f3e0c37b7c847ecb3ca942307</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed leaked global symbols</title>
<updated>2020-12-26T00:39:53+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2020-12-25T14:36:25+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=292230cbf926e9892596ea37fd4567f0c49ab73c'/>
<id>292230cbf926e9892596ea37fd4567f0c49ab73c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>separate rb_ractor_pub from rb_ractor_t</title>
<updated>2020-12-21T15:03:00+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2020-12-19T16:44:41+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=02d9524cdaca1754718bf1d591408d377e6b383a'/>
<id>02d9524cdaca1754718bf1d591408d377e6b383a</id>
<content type='text'>
separate some fields from rb_ractor_t to rb_ractor_pub and put it
at the beggining of rb_ractor_t and declare it in vm_core.h so
vm_core.h can access rb_ractor_pub fields.

Now rb_ec_ractor_hooks() is a complete inline function and no
MJIT related issue.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
separate some fields from rb_ractor_t to rb_ractor_pub and put it
at the beggining of rb_ractor_t and declare it in vm_core.h so
vm_core.h can access rb_ractor_pub fields.

Now rb_ec_ractor_hooks() is a complete inline function and no
MJIT related issue.
</pre>
</div>
</content>
</entry>
<entry>
<title>add vm_sync debug counters</title>
<updated>2020-12-16T01:38:12+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2020-12-16T01:10:05+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=0b678cc9e5a5149e40765562142ed1dc05d09b53'/>
<id>0b678cc9e5a5149e40765562142ed1dc05d09b53</id>
<content type='text'>
* vm_sync_lock
* vm_sync_lock_enter
* vm_sync_lock_enter_nb
* vm_sync_lock_enter_cr
* vm_sync_barrier
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* vm_sync_lock
* vm_sync_lock_enter
* vm_sync_lock_enter_nb
* vm_sync_lock_enter_cr
* vm_sync_barrier
</pre>
</div>
</content>
</entry>
<entry>
<title>re-layout rb_ractor_t</title>
<updated>2020-12-08T16:40:38+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2020-12-07T15:42:20+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=ee194af2aa170c0cb1bfd5fed4e84259a8150ece'/>
<id>ee194af2aa170c0cb1bfd5fed4e84259a8150ece</id>
<content type='text'>
separate synchronization data and ractor local data.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
separate synchronization data and ractor local data.
</pre>
</div>
</content>
</entry>
<entry>
<title>RB_VM_LOCK_ENTER_NO_BARRIER</title>
<updated>2020-12-07T02:27:25+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2020-12-07T02:27:25+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=0ebf6bd0a26b637f019d480ecd7f00a73c416b58'/>
<id>0ebf6bd0a26b637f019d480ecd7f00a73c416b58</id>
<content type='text'>
Write barrier requires VM lock because it accesses VM global bitmap
but RB_VM_LOCK_ENTER() can invoke GC because another ractor can wait
to invoke GC and RB_VM_LOCK_ENTER() is barrier point. This means that
before protecting by a write barrier, GC can invoke.
To prevent such situation, RB_VM_LOCK_ENTER_NO_BARRIER() is introduced.
This lock primitive does not become GC barrier points.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Write barrier requires VM lock because it accesses VM global bitmap
but RB_VM_LOCK_ENTER() can invoke GC because another ractor can wait
to invoke GC and RB_VM_LOCK_ENTER() is barrier point. This means that
before protecting by a write barrier, GC can invoke.
To prevent such situation, RB_VM_LOCK_ENTER_NO_BARRIER() is introduced.
This lock primitive does not become GC barrier points.
</pre>
</div>
</content>
</entry>
<entry>
<title>log for the beggining of vm_lock_enter</title>
<updated>2020-12-06T23:28:36+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2020-12-04T20:42:44+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=1d0bf3d8dd8de40d498a7c2784a84aa566d290b9'/>
<id>1d0bf3d8dd8de40d498a7c2784a84aa566d290b9</id>
<content type='text'>
Before this patch, there is no information to start locking.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Before this patch, there is no information to start locking.
</pre>
</div>
</content>
</entry>
<entry>
<title>RB_VM_LOCK_ENTER_CR_LEV</title>
<updated>2020-12-06T23:28:36+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2020-12-01T19:10:05+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/ruby.git/commit/?id=554a7180a0aad85bee5cb8ed41d99d16dab304e7'/>
<id>554a7180a0aad85bee5cb8ed41d99d16dab304e7</id>
<content type='text'>
This is variant of RB_VM_LOCK_ENTER_LEV, but accept current racotr's
pointer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is variant of RB_VM_LOCK_ENTER_LEV, but accept current racotr's
pointer.
</pre>
</div>
</content>
</entry>
</feed>
