<div dir="ltr"><div dir="ltr"><font face="arial, sans-serif">Hi, </font><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">I am working with OTP built with SMALL_MEMORY and I noticed a behaviour change from OTP 20 to OTP 22 (I suspect that the change actually occurs on the transition to OTP 21 but I was not able to test it yet).</font></div><div><font face="arial, sans-serif"><br></font></div><div><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif">OTP 20 when compiled with SMALL_MEMORY disables the allocators (the ones based on alloc_util I believe) including the temp_alloc. From OTP 21, according to the official documentation of erts_alloc, the temp_alloc should be "always enabled and cannot be disabled".</font></p><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif"><br></font></p><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif">Starting the emulator (OTP 20) </font><font face="arial, sans-serif">with "erl +Mue true"</font><span style="font-family:arial,sans-serif"> on an OTP compiled with SMALL_MEMORY enables the allocators based on alloc_util including the temp_alloc.</span></p><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif"><br></font></p><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif">OTP 22 when compiled with SMALL_MEMORY behaves in a similar way to OTP 20, so the alloc_util based allocators are disabled including temp_alloc.</font></p><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif"><br></font></p><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif">Now the behaviour difference is that starting the emulator (OTP 22) with "erl +Mue true" enables the allocators based on alloc_util but <span style="color:initial">doesn't enable<b> </b></span>temp_alloc. To enable the temp_alloc it's required to be explicit and starting it like `erl +Mue true +MTe true`. I actually don't know if it's the reporting of which allocators are enabled that is broken or if indeed the temp_alloc that is not enabled.</font></p><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif"><br></font></p><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif">Is this the expected behaviour or a bug? The immediate visible consequence is that if I compile OTP with SMALL_MEMORY it's no longer enough to start the emulator with "erl +Mue true" to be able to call erlang:memory(), I need to use "erl +Mue true +MTe true".</font></p><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif"><br></font></p><p style="margin:0px;color:rgb(0,0,0)"><font face="arial, sans-serif">Regards</font></p></div></div></div>