A separate GC idea - multiple D GCs
Ola Fosheim Grøstad
ola.fosheim.grostad at gmail.com
Sat Jan 22 19:43:33 UTC 2022
On Saturday, 22 January 2022 at 16:45:02 UTC, Elronnd wrote:
> On Saturday, 22 January 2022 at 12:39:44 UTC, Ola Fosheim
> Grøstad wrote:
>> Here are some downsides of a forking collector:
>> 1. messes with TLB, wipes all caches completely (AFAIK).
> Probably likely to evict some stuff, but I don't see why you
> would lose everything.
If you change the TLB, then affected address ranges should in
general be flushed although maybe this is too pessimistic in the
case of a fork. I don't know the details of what different
CPU/MMU hardware implementations require and how various OSes
deal with this.
But both the fork and the COW page copying that will occur when
the process writes to memory pages after the fork hurt.
> You can fall back to regular gc if fork fails (and I think the
> fork gc does this).
Good point, but if you succeed with the fork in a low memory
situation then you are in risk of being killed by Linux OOM
Killer. Maybe only the GC collector will be killed since it is a
child process, or how does this work?
So what happens then, will D detect this failure and switch to a
cheaper GC collection process?
More information about the Digitalmars-d