summaryrefslogtreecommitdiffstats
path: root/src/extent_dss.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove extraneous parens around return arguments.Jason Evans2017-01-211-13/+13
| | | | This resolves #540.
* Update brace style.Jason Evans2017-01-211-32/+36
| | | | | | | Add braces around single-line blocks, and remove line breaks before function-opening braces. This resolves #537.
* Remove leading blank lines from function bodies.Jason Evans2017-01-131-5/+0
| | | | This resolves #535.
* Refactor purging and splitting/merging.Jason Evans2016-12-271-2/+12
| | | | | | | | | | | | | | Split purging into lazy and forced variants. Use the forced variant for zeroing dss. Add support for NULL function pointers as an opt-out mechanism for the dalloc, commit, decommit, purge_lazy, purge_forced, split, and merge fields of extent_hooks_t. Add short-circuiting checks in large_ralloc_no_move_{shrink,expand}() so that no attempt is made if splitting/merging is not supported. This resolves #268.
* Add extent serial numbers.Jason Evans2016-11-151-1/+2
| | | | | | | | Add extent serial numbers and use them where appropriate as a sort key that is higher priority than address, so that the allocation policy prefers older extents. This resolves #147.
* Make dss operations lockless.Jason Evans2016-10-131-77/+103
| | | | | | | | | | | | | | Rather than protecting dss operations with a mutex, use atomic operations. This has negligible impact on synchronization overhead during typical dss allocation, but is a substantial improvement for extent_in_dss() and the newly added extent_dss_mergeable(), which can be called multiple times during extent deallocations. This change also has the advantage of avoiding tsd in deallocation paths associated with purging, which resolves potential deadlocks during thread exit due to attempted tsd resurrection. This resolves #425.
* Remove all vestiges of chunks.Jason Evans2016-10-121-0/+2
| | | | | | | | Remove mallctls: - opt.lg_chunk - stats.cactive This resolves #464.
* Fix extent_alloc_dss() regressions.Jason Evans2016-06-061-22/+19
| | | | | Page-align the gap, if any, and add/use extent_dalloc_gap(), which registers the gap extent before deallocation.
* Modify extent hook functions to take an (extent_t *) argument.Jason Evans2016-06-061-1/+1
| | | | | | | This facilitates the application accessing its own extent allocator metadata during hook invocations. This resolves #259.
* Rename most remaining *chunk* APIs to *extent*.Jason Evans2016-06-061-0/+216