[#80974] [Ruby trunk Feature#13517] [PATCH] reduce rb_mutex_t size from 160 to 80 bytes on 64-bit — ko1@...
Issue #13517 has been updated by ko1 (Koichi Sasada).
4 messages
2017/05/02
[#81024] Re: [Ruby trunk Feature#13517] [PATCH] reduce rb_mutex_t size from 160 to 80 bytes on 64-bit
— SASADA Koichi <ko1@...>
2017/05/07
sorry for late response.
[#80996] [Ruby trunk Feature#13544] Allow loading an ISeqs sequence directly from a C extension without requiring buffer is in an RVALUE — sam.saffron@...
Issue #13544 has been reported by sam.saffron (Sam Saffron).
3 messages
2017/05/04
[#81016] [Ruby trunk Bug#13526] Segmentation fault at 0x0055c2e58e8920 ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux] — s.wanabe@...
Issue #13526 has been updated by wanabe (_ wanabe).
3 messages
2017/05/07
[#81048] Re: [ruby-cvs:65788] normal:r58614 (trunk): rb_execution_context_t: move stack, stack_size and cfp from rb_thread_t — SASADA Koichi <ko1@...>
It causes compile error on raspi 3.
3 messages
2017/05/09
[#81201] Re: [ruby-cvs:65935] normal:r58761 (trunk): test/test_extilibs.rb: do not check the existence of fiddle — "U.NAKAMURA" <usa@...>
Hi, Eric
4 messages
2017/05/16
[#81202] Re: [ruby-cvs:65935] normal:r58761 (trunk): test/test_extilibs.rb: do not check the existence of fiddle
— Eric Wong <normalperson@...>
2017/05/16
"U.NAKAMURA" <usa@garbagecollect.jp> wrote:
[#81427] Fwd: [ruby-changes:46809] normal:r58924 (trunk): test for IO.copy_stream CPU usage (r58534) — SASADA Koichi <ko1@...>
Hi,
6 messages
2017/05/28
[#81428] Re: Fwd: [ruby-changes:46809] normal:r58924 (trunk): test for IO.copy_stream CPU usage (r58534)
— Eric Wong <normalperson@...>
2017/05/28
SASADA Koichi <ko1@atdot.net> wrote:
[ruby-core:81035] Re: [ruby-cvs:65407] normal:r58236 (trunk): thread.c: comments on M:N threading [ci skip]
From:
Eric Wong <normalperson@...>
Date:
2017-05-08 06:36:33 UTC
List:
ruby-core #81035
SASADA Koichi <ko1@atdot.net> wrote:
> On 2017/05/08 12:01, Eric Wong wrote:
> >>> .
> >> `Fiber.scheduler.add_auto_fiber{ ... }` (naming is not fixed) (operation
> >> for scheduler) is my first idea.
> > Too verbose, I think. If I want to type more, I would not be
> > using Ruby :) How about adding kwarg to Fiber.new?
>
> This design introduce new aspect: can we make schedulers per a thread?
Maybe; if we can avoid GVL and introduce more parallelism.
However, I think having one epoll/kqueue FD is better for a
whole process; maybe one epoll/kqueue per-core (not per-thread)
at maximum.
I can easily imagine Ruby doing 100 native threads in one process
(8 cores, 10-20 rotational disks, 2 SSD), but 20000-30000 fibers.
Side note: First, I would like to make fibers smaller.
Right now rb_fiber_t stores all of the rb_thread_t
struct, but not all fields get used. I started to work on
splitting out to a new struct rb_thread_context_t earlier:
https://80x24.org/spew/20170508040753.24975-1-e@80x24.org/raw
(incomplete, I will work on it some more tomorrow)
The end goal is to avoid storing all of rb_thread_t inside
rb_context_t/rb_fiber_t; and only store rb_thread_context_t.
That should reduce memory overhead and maybe make switching
faster.
Also, I think we can use uint32_t (or even uint16_t * 4096)
to store stack sizes. Using 64-bit size_t represent a
stack size is excessive.
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>