[#86787] [Ruby trunk Feature#14723] [WIP] sleepy GC — ko1@...

Issue #14723 has been updated by ko1 (Koichi Sasada).

13 messages 2018/05/01
[#86790] Re: [Ruby trunk Feature#14723] [WIP] sleepy GC — Eric Wong <normalperson@...> 2018/05/01

ko1@atdot.net wrote:

[#87095] [Ruby trunk Feature#14767] [PATCH] gc.c: use monotonic counters for objspace_malloc_increase — ko1@...

Issue #14767 has been updated by ko1 (Koichi Sasada).

9 messages 2018/05/17

[ruby-core:86814] Re: [Ruby trunk Feature#14723] [WIP] sleepy GC

From: Koichi Sasada <ko1@...>
Date: 2018-05-02 02:21:39 UTC
List: ruby-core #86814

On 2018/05/01 17:46, Eric Wong wrote:
> Individual patches available at:
> https://80x24.org/spew/20180501080844.22751-2-e@80x24.org/raw
> https://80x24.org/spew/20180501080844.22751-3-e@80x24.org/raw
> https://80x24.org/spew/20180501080844.22751-4-e@80x24.org/raw
> https://80x24.org/spew/20180501080844.22751-5-e@80x24.org/raw

I'm not sure how to see all of diffs in one patch. Do you have?

Anyway, small comments:

 > https://80x24.org/spew/20180501080844.22751-3-e@80x24.org/raw

 > +    /* TODO: should this check is_incremental_marking() ? */

Any problem to check it?

 > +rb_gc_step(const rb_execution_context_t *ec)

How about to add assertion that rb_gc_inprogress() returns true?

--- a/internal.h
+++ b/internal.h
@@ -1290,6 +1290,10 @@ void rb_gc_writebarrier_remember(VALUE obj);
  void ruby_gc_set_params(int safe_level);
  void rb_copy_wb_protected_attribute(VALUE dest, VALUE obj);

+struct rb_execution_context_struct;
+int rb_gc_inprogress(const struct rb_execution_context_struct *);
+int rb_gc_step(const struct rb_execution_context_struct *);
+

How about to add them into gc.h?

https://80x24.org/spew/20180501080844.22751-4-e@80x24.org/raw

I have no enough knowledge to review it.
Nobu?

https://80x24.org/spew/20180501080844.22751-5-e@80x24.org/raw

 > @@ -288,8 +294,17 @@ rb_mutex_lock(VALUE self)

I can't understand why GC at acquiring (and restarting) timing is 
needed. Why?

For other functions, I have a same question.happen.

-- 
// SASADA Koichi at atdot dot net

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread