Makes sense. Thanks. 

> On Oct 18, 2020, at 9:13 PM, Ian Lance Taylor <i...@golang.org> wrote:
> 
> On Sun, Oct 18, 2020 at 1:24 PM robert engels <reng...@ix.netcom.com> wrote:
>> 
>> If I set a low process memory limit, and then the OS refuses to grant more 
>> memory to a malloc request,. will the Go runtime “stop the world” and 
>> attempt a full garbage collection and try to get the memory from the heap 
>> and then only crashing the process if it can’t?
>> 
>> I understand that the “pacing” should limit (eliminate?) this situation, but 
>> I am thinking in cases when the heuristics don’t match the immediate 
>> allocations it would be beneficial.
> 
> It does not work that way today, no.
> 
> The current Go memory allocator allocates address space and then
> expects that address space to be available.  Typical GNU/Linux systems
> use overcommit, so there is often no system call reporting that memory
> could not be obtained; instead, there is a SIGBUS signal when the
> program first writes to a page that the kernel can no longer supply.
> It might be tricky to safely run a garbage collection and then retry
> the write.
> 
> Ian

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/1DA916A6-B365-4C27-9CC8-8C6E155B0CD0%40ix.netcom.com.

Reply via email to