summaryrefslogtreecommitdiffstats
path: root/include/jemalloc/internal/jemalloc_internal_includes.h
Commit message (Collapse)AuthorAgeFilesLines
* Header refactoring: unify and de-catchall mutex_pool.David Goldblatt2017-05-311-2/+0
|
* Header refactoring: unify and de-catchall extent_mmap module.David Goldblatt2017-05-311-1/+0
|
* Header refactoring: unify and de-catchall extent_dss.David Goldblatt2017-05-311-3/+0
|
* Header refactoring: unify and de-catchall rtree module.David Goldblatt2017-05-311-4/+0
|
* Header refactoring: unify and de-catchall mutex moduleDavid Goldblatt2017-05-241-4/+0
|
* Header refactoring: unify and de-catchall witness code.David Goldblatt2017-05-241-4/+0
|
* Implementing opt.background_thread.Qi Wang2017-05-231-0/+3
| | | | | | | | | | | Added opt.background_thread to enable background threads, which handles purging currently. When enabled, decay ticks will not trigger purging (which will be left to the background threads). We limit the max number of threads to NCPUs. When percpu arena is enabled, set CPU affinity for the background threads as well. The sleep interval of background threads is dynamic and determined by computing number of pages to purge in the future (based on backlog).
* Protect the rtree/extent interactions with a mutex pool.David Goldblatt2017-05-191-0/+2
| | | | | | | | | | | | | | | | | | Instead of embedding a lock bit in rtree leaf elements, we associate extents with a small set of mutexes. This gets us two things: - We can use the system mutexes. This (hypothetically) protects us from priority inversion, and lets us stop doing a backoff/sleep loop, instead opting for precise wakeups from the mutex. - Cuts down on the number of mutex acquisitions we have to do (from 4 in the worst case to two). We end up simplifying most of the rtree code (which no longer has to deal with locking or concurrency at all), at the cost of additional complexity in the extent code: since the mutex protecting the rtree leaf elements is determined by reading the extent out of those elements, the initial read is racy, so that we may acquire an out of date mutex. We re-check the extent in the leaf after acquiring the mutex to protect us from this race.
* Header refactoring: tsd - cleanup and dependency breaking.David Goldblatt2017-05-011-6/+2
| | | | | | | | | | | | This removes the tsd macros (which are used only for tsd_t in real builds). We break up the circular dependencies involving tsd. We also move all tsd access through getters and setters. This allows us to assert that we only touch data when tsd is in a valid state. We simplify the usages of the x macro trick, removing all the customizability (get/set, init, cleanup), moving the lifetime logic to tsd_init and tsd_cleanup. This lets us make initialization order independent of order within tsd_t.
* Header refactoring: pages.h - unify and remove from catchall.David Goldblatt2017-04-251-2/+0
|
* Header refactoring: hash - unify and remove from catchall.David Goldblatt2017-04-251-1/+0
|
* Header refactoring: ctl - unify and remove from catchall.David Goldblatt2017-04-251-3/+0
| | | | | In order to do this, we introduce the mutex_prof module, which breaks a circular dependency between ctl and prof.
* Header refactoring: bitmap - unify and remove from catchall.David Goldblatt2017-04-241-4/+0
|
* Header refactoring: stats - unify and remove from catchallDavid Goldblatt2017-04-241-3/+0
|
* Header refactoring: move smoothstep.h out of the catchall.David Goldblatt2017-04-241-1/+0
|
* Header refactoring: size_classes module - remove from the catchallDavid Goldblatt2017-04-241-1/+0
|
* Header refactoring: ckh module - remove from the catchall and unify.David Goldblatt2017-04-241-3/+0
|
* Header refactoring: ticker module - remove from the catchall and unify.David Goldblatt2017-04-241-3/+0
|
* Header refactoring: prng module - remove from the catchall and unify.David Goldblatt2017-04-241-2/+0
|
* Header refactoring: unify spin.h and move it out of the catch-all.David Goldblatt2017-04-191-3/+0
|
* Header refactoring: unify nstime.h and move it out of the catch-allDavid Goldblatt2017-04-191-3/+0
|
* Header refactoring: move jemalloc_internal_types.h out of the catch-allDavid Goldblatt2017-04-191-1/+0
|
* Header refactoring: move assert.h out of the catch-allDavid Goldblatt2017-04-191-6/+0
|
* Header refactoring: move util.h out of the catchallDavid Goldblatt2017-04-191-1/+0
|
* Header refactoring: move malloc_io.h out of the catchallDavid Goldblatt2017-04-191-1/+0
|
* Header refactoring: move bit_util.h out of the catchallDavid Goldblatt2017-04-191-1/+0
|
* Move CPP_PROLOGUE and CPP_EPILOGUE to the .cppDavid Goldblatt2017-04-191-4/+0
| | | | This lets us avoid having to specify them in every C file.
* Header refactoring: move atomic.h out of the catch-allDavid Goldblatt2017-04-111-1/+0
|
* Header refactoring: Split up jemalloc_internal.hDavid Goldblatt2017-04-111-0/+155
This is a biggy. jemalloc_internal.h has been doing multiple jobs for a while now: - The source of system-wide definitions. - The catch-all include file. - The module header file for jemalloc.c This commit splits up this functionality. The system-wide definitions responsibility has moved to jemalloc_preamble.h. The catch-all include file is now jemalloc_internal_includes.h. The module headers for jemalloc.c are now in jemalloc_internal_[externs|inlines|types].h, just as they are for the other modules.