<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/ruby.git/test/ruby/test_gc.rb, branch master</title>
<subtitle>github.com: ruby/ruby.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/'/>
<entry>
<title>Add marking and sweeping time to GC.stat</title>
<updated>2023-02-21T13:05:31+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2023-02-14T20:55:25+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=93ac7405b80cc61930d73da04441fa09af1851e1'/>
<id>93ac7405b80cc61930d73da04441fa09af1851e1</id>
<content type='text'>
There is a `time` key in GC.stat that gives us the total time spent in
GC. However, we don't know what proportion of the time is spent between
marking and sweeping. This makes it difficult to tune the GC as we're
not sure where to focus our efforts on.

This PR adds keys `marking_time` and `sweeping_time` to GC.stat for the
time spent marking and sweeping, in milliseconds.

[Feature #19437]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a `time` key in GC.stat that gives us the total time spent in
GC. However, we don't know what proportion of the time is spent between
marking and sweeping. This makes it difficult to tune the GC as we're
not sure where to focus our efforts on.

This PR adds keys `marking_time` and `sweeping_time` to GC.stat for the
time spent marking and sweeping, in milliseconds.

[Feature #19437]
</pre>
</div>
</content>
</entry>
<entry>
<title>Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly</title>
<updated>2023-02-08T08:26:07+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>byroot@ruby-lang.org</email>
</author>
<published>2023-02-03T08:46:14+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=3ab34551450c7a3a3e1ae0b24bf6b78d26129dfa'/>
<id>3ab34551450c7a3a3e1ae0b24bf6b78d26129dfa</id>
<content type='text'>
The old RUBY_GC_HEAP_INIT_SLOTS isn't really usable anymore as
it initalize all the pools by the same factor, but it's unlikely
that pools will need similar sizes.

In production our 40B pool is 5 to 6 times bigger than our 80B pool.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The old RUBY_GC_HEAP_INIT_SLOTS isn't really usable anymore as
it initalize all the pools by the same factor, but it's unlikely
that pools will need similar sizes.

In production our 40B pool is 5 to 6 times bigger than our 80B pool.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use more agressive RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR for GC tests</title>
<updated>2023-02-07T21:33:12+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>byroot@ruby-lang.org</email>
</author>
<published>2023-02-07T18:24:59+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=1e711439762f47be1d1770b058a2f0246f64eab9'/>
<id>1e711439762f47be1d1770b058a2f0246f64eab9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix test when Ruby is verbose</title>
<updated>2022-12-30T15:31:50+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-12-30T15:31:50+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=0bb07e5ba40cdc45d55743dd1ebaadd7e7363e7f'/>
<id>0bb07e5ba40cdc45d55743dd1ebaadd7e7363e7f</id>
<content type='text'>
The test added in 90a80eb0 fails if Ruby is verbose, it outputs the
following line to stderr:

    RUBY_GC_HEAP_INIT_SLOTS=100 (default value: 10000)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test added in 90a80eb0 fails if Ruby is verbose, it outputs the
following line to stderr:

    RUBY_GC_HEAP_INIT_SLOTS=100 (default value: 10000)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix integer underflow when using HEAP_INIT_SLOTS</title>
<updated>2022-12-30T14:01:50+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-12-30T01:27:09+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=90a80eb076429978e720e11fb17a3cbb96de3454'/>
<id>90a80eb076429978e720e11fb17a3cbb96de3454</id>
<content type='text'>
There is an integer underflow when the environment variable
RUBY_GC_HEAP_INIT_SLOTS is less than the number of slots currently
in the Ruby heap.

[Bug #19284]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is an integer underflow when the environment variable
RUBY_GC_HEAP_INIT_SLOTS is less than the number of slots currently
in the Ruby heap.

[Bug #19284]
</pre>
</div>
</content>
</entry>
<entry>
<title>Expose need_major_gc via GC.latest_gc_info (#6791)</title>
<updated>2022-12-10T18:35:31+00:00</updated>
<author>
<name>Mirek Klimos</name>
<email>myreggg@gmail.com</email>
</author>
<published>2022-12-10T18:35:31+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=ea613c63608232bf33fd454fc6cd1ce20d63d82e'/>
<id>ea613c63608232bf33fd454fc6cd1ce20d63d82e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add RVALUE_OVERHEAD and move ractor_belonging_id</title>
<updated>2022-11-21T16:26:26+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-11-18T15:07:06+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=5f95228c76e6f6994eb4149217fe3e38f9ff8a27'/>
<id>5f95228c76e6f6994eb4149217fe3e38f9ff8a27</id>
<content type='text'>
This commit adds RVALUE_OVERHEAD for storing metadata at the end of the
slot. This commit moves the ractor_belonging_id in debug builds from the
flags to RVALUE_OVERHEAD which frees the 16 bits in the headers for
object shapes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit adds RVALUE_OVERHEAD for storing metadata at the end of the
slot. This commit moves the ractor_belonging_id in debug builds from the
flags to RVALUE_OVERHEAD which frees the 16 bits in the headers for
object shapes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix flaky test test_thrashing_for_young_objects</title>
<updated>2022-10-08T19:06:30+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-10-08T19:04:18+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=b22a2803a86d6adabc24dd00ef5ae90762a2ae46'/>
<id>b22a2803a86d6adabc24dd00ef5ae90762a2ae46</id>
<content type='text'>
The test could be flaky when a heap has below GC_HEAP_INIT_SLOTS number
of free slots because it would trigger a major GC and allocate more
pages.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test could be flaky when a heap has below GC_HEAP_INIT_SLOTS number
of free slots because it would trigger a major GC and allocate more
pages.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add more debugging output to test_thrashing_for_young_objects</title>
<updated>2022-10-07T13:39:07+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-10-07T13:39:07+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=ad0def7f259f793ce02400a8d6144f86b3615ddd'/>
<id>ad0def7f259f793ce02400a8d6144f86b3615ddd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add debug output to test_thrashing_for_young_objects</title>
<updated>2022-10-06T17:46:31+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-10-06T17:46:31+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=3df904d1a8dc614589295dfdf30a781114b3a7fc'/>
<id>3df904d1a8dc614589295dfdf30a781114b3a7fc</id>
<content type='text'>
The test is failing only on trunk-repeat50@phosphorus-docker. This
commit adds some debugging output to debug the failure.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test is failing only on trunk-repeat50@phosphorus-docker. This
commit adds some debugging output to debug the failure.
</pre>
</div>
</content>
</entry>
</feed>
