View Issue Details

IDProjectCategoryView StatusLast Update
0000783LDMud 3.6Generalpublic2022-10-06 20:34
Reporterzesstra Assigned Tozesstra  
PrioritynormalSeverityminorReproducibilityN/A
Status assignedResolutionopen 
Summary0000783: Change documentation to explain small_min_malloc and that it is only used in smalloc
DescriptionMIN_SMALL_MALLOCED is used to allocate a certain amount of memory used for small blocks at boot time and reduce memory fragmentation. This is only done for the smalloc allocator, not slaballoc.
TagsNo tags attached.

Relationships

related to 0000777 new Remove memory fragmentation related configuration switches 

Activities

zesstra

2011-05-27 09:40

administrator   ~0002053

OK, I just noticed that MIN_SMALL_MALLOCED for slaballoc is probably not very reasonable at the moment: the allocator returns free slabs to the free large block pool, so any pre-allocated slabs at the start will be free'd shortly after.
This is good for recycling memory, but IMHO it leads to fragmentation of the large block pool. Maybe we should try to find a balance here to create larger areas of contiguous areas of small/large blocks... Some ideas:
0) How often are small block slabs free'd anyway?
1) mark any pre-allocated slabs to be not returned to the large block pool?
2) favor the creation of new small slabs adjacent to existing ones (although I am not sure how effective that is)?
3) free small slabs only when a) memory is short or b) a significant percentage of them are free?

Issue History

Date Modified Username Field Change
2011-05-27 00:38 zesstra New Issue
2011-05-27 09:40 zesstra Note Added: 0002053
2011-05-27 09:41 zesstra Relationship added related to 0000777
2021-04-16 20:45 zesstra Status new => confirmed
2021-04-16 20:45 zesstra Target Version 3.3.721 =>
2021-04-16 20:45 zesstra Summary slaballoc allocator doesn't honor MIN_SMALL_MALLOCED => Change documentation to explain small_min_malloc and that it is only used in smalloc
2021-04-16 20:45 zesstra Project LDMud 3.3 => LDMud 3.6
2021-04-16 20:45 zesstra Category Implementation => General
2022-10-06 20:34 zesstra Assigned To => zesstra
2022-10-06 20:34 zesstra Status confirmed => assigned