Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
3582-erts-Skip-main-carrier-for-ets_alloc-insta...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 3582-erts-Skip-main-carrier-for-ets_alloc-instance-0.patch of Package erlang
From 8517467d2b984a5e36f87f648b1fd26b8f1b9efc Mon Sep 17 00:00:00 2001 From: Sverker Eriksson <sverker@erlang.org> Date: Mon, 19 Apr 2021 11:57:36 +0200 Subject: [PATCH 2/3] erts: Skip main carrier for ets_alloc instance 0 Don't think instance 0 of ets_alloc is ever used, at least ets_SUITE never used it. --- erts/emulator/beam/erl_alloc.c | 1 + erts/emulator/beam/erl_alloc_util.c | 2 +- erts/emulator/beam/erl_alloc_util.h | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/erts/emulator/beam/erl_alloc.c b/erts/emulator/beam/erl_alloc.c index f88a1adaff..2cea68a817 100644 --- a/erts/emulator/beam/erl_alloc.c +++ b/erts/emulator/beam/erl_alloc.c @@ -404,6 +404,7 @@ set_default_ets_alloc_opts(struct au_init *ip) ip->init.util.name_prefix = "ets_"; ip->init.util.alloc_no = ERTS_ALC_A_ETS; ip->init.util.cp = ERTS_ALC_A_ETS; + ip->init.util.mmbc0 = 0; #ifndef SMALL_MEMORY ip->init.util.mmbcs = 128*1024; /* Main carrier size */ #else diff --git a/erts/emulator/beam/erl_alloc_util.c b/erts/emulator/beam/erl_alloc_util.c index 06edf60857..ac3e9fe967 100644 --- a/erts/emulator/beam/erl_alloc_util.c +++ b/erts/emulator/beam/erl_alloc_util.c @@ -6915,7 +6915,7 @@ erts_alcu_start(Allctr_t *allctr, AllctrInit_t *init) } #endif - if (allctr->main_carrier_size) { + if (allctr->main_carrier_size && (allctr->ix != 0 || init->mmbc0)) { Block_t *blk; blk = create_carrier(allctr, diff --git a/erts/emulator/beam/erl_alloc_util.h b/erts/emulator/beam/erl_alloc_util.h index 402c57fa3e..359457913c 100644 --- a/erts/emulator/beam/erl_alloc_util.h +++ b/erts/emulator/beam/erl_alloc_util.h @@ -54,6 +54,7 @@ typedef struct { int ramv; int atags; int cp; + int mmbc0; /* create main mbc for instance 0 */ UWord sbct; UWord asbcst; UWord rsbcst; @@ -113,6 +114,7 @@ typedef struct { 0, /* (bool) ramv: realloc always moves */\ 0, /* (bool) atags: tagged allocations */\ -1, /* (ix) cp: carrier pool */\ + 1, /* (bool) mmbc0: main mbc in instance 0 */\ 512*1024, /* (bytes) sbct: sbc threshold */\ 2*1024*2024, /* (amount) asbcst: abs sbc shrink threshold */\ 20, /* (%) rsbcst: rel sbc shrink threshold */\ @@ -152,6 +154,7 @@ typedef struct { 0, /* (bool) ramv: realloc always moves */\ 0, /* (bool) atags: tagged allocations */\ -1, /* (ix) cp: carrier pool */\ + 1, /* (bool) mmbc0: main mbc in instance 0 */\ 64*1024, /* (bytes) sbct: sbc threshold */\ 2*1024*2024, /* (amount) asbcst: abs sbc shrink threshold */\ 20, /* (%) rsbcst: rel sbc shrink threshold */\ -- 2.26.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor