View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000783||LDMud 3.6||General||public||2011-05-27 00:38||2022-10-06 20:34|
|Summary||0000783: Change documentation to explain small_min_malloc and that it is only used in smalloc|
|Description||MIN_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.|
|Tags||No tags attached.|
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?
|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|