summaryrefslogtreecommitdiff
path: root/t/slabs_reassign.t
Commit message (Collapse)AuthorAgeFilesLines
* Find perl via /usr/bin/env instead of directlyDavid CARLIER2022-08-251-1/+1
| | | | | At least FreeBSD has perl in /usr/local/bin/perl and no symlink by default.
* Changed the parts using strtol to use safe_strtolminkikim892020-05-271-1/+6
|
* pre-split slab pages into slab freelistsdormando2012-07-271-5/+7
| | | | | | | | | | | | slab freelists used to be malloc'ed arrays. then they were changed into a freelist. now we pre-split newly assigned/moved pages into a slabs freelist instead of lazily pulling pointers as needed. The loop is pretty darn direct and I can't measure a performance impact of this relatively rare event. In doing this, slab reassign can move memory without having to wait for a class to chew through its recently assigned page first.
* fix slabs_reassign tests on 32bit hostsdormando2012-01-181-3/+3
| | | | 32bit pointers are smaller... need more items to fill the slabs, sigh.
* test for the error code, not the full messagedormando2012-01-111-2/+2
| | | | bad practice.
* no same-class reassignment, better errorsdormando2012-01-031-3/+3
| | | | | Add human parseable strings to the errors for slabs ressign. Also prevent reassigning memory to the same source and destination.
* slab reassignmentdormando2011-12-191-0/+71
Adds a "slabs reassign src dst" manual command, and a thread to safely process slab moves in the background. - slab freelist is now a linked list, reusing the item structure - is -o slab_reassign is enabled, an extra background thread is started - thread attempts to safely free up items when it's been told to move a page from one slab to another. -o slab_automove is stubbed. There are some limitations. Most notable is that you cannot repeatedly move pages around without first having items use up the memory. Slabs with newly assigned memory work off of a pointer, handing out chunks individually. We would need to change that to quickly split chunks for all newly assigned pages into that slabs freelist. Further testing is required to ensure such is possible without impacting performance.