| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Mallctl: Add arenas.lookup | Latchesar Ionkov | 2018-05-01 | 1 | -1/+33 |
| | | | | | | Implement a new mallctl operation that allows looking up the arena a region of memory belongs to. | ||||
| * | Remove an incorrect assertion. | Qi Wang | 2018-04-18 | 1 | -1/+4 |
| | | | | | | Background threads are created without holding the global background_thread lock, which mean paused state is possible (and fine). | ||||
| * | Invoke dlsym() on demand. | Qi Wang | 2018-04-18 | 1 | -11/+24 |
| | | | | | | If no lazy lock or background thread is enabled, avoid dlsym pthread_create on boot. | ||||
| * | Avoid a resource leak down extent split failure paths. | David Goldblatt | 2018-04-18 | 1 | -10/+8 |
| | | | | | | | Previously, we would leak the extent and memory associated with a salvageable portion of an extent that we were trying to split in three, in the case where the first split attempt succeeded and the second failed. | ||||
| * | Fix abort_conf processing. | Qi Wang | 2018-04-18 | 1 | -6/+4 |
| | | | | | | When abort_conf is set, make sure we always error out at the end of the options processing loop. | ||||
| * | Add UNUSED to avoid compiler warnings. | Qi Wang | 2018-04-16 | 3 | -25/+24 |
| | | |||||
| * | Allow setting extent hooks on uninitialized auto arenas. | Qi Wang | 2018-04-12 | 1 | -12/+33 |
| | | | | | | Setting extent hooks can result in initializing an unused auto arena. This is useful to install extent hooks on auto arenas from the beginning. | ||||
| * | Silence a compiler warning. | Jason Evans | 2018-04-11 | 1 | -2/+3 |
| | | |||||
| * | background_thread: add max thread count config | Dave Watson | 2018-04-10 | 3 | -20/+103 |
| | | | | | | Looking at the thread counts in our services, jemalloc's background thread is useful, but mostly idle. Add a config option to tune down the number of threads. | ||||
| * | Stack address should not be used for ordering mutexes | Rajeev Misra | 2018-04-10 | 1 | -1/+1 |
| | | |||||
| * | Fix type warning on Windows. | Qi Wang | 2018-04-09 | 3 | -30/+7 |
| | | | | | Add cast since read / write has unsigned return type on windows. | ||||
| * | Fix arguments passed to extent_init. | Qi Wang | 2018-04-09 | 1 | -1/+1 |
| | | |||||
| * | Control idump and gdump with prof_active. | Qi Wang | 2018-04-09 | 1 | -2/+2 |
| | | |||||
| * | extents: Remove preserve_lru feature. | Dave Watson | 2018-04-02 | 1 | -46/+18 |
| | | | | | | | | | preserve_lru feature adds lots of complication, for little value. Removing it means merged extents are re-added to the lru list, and may take longer to madvise away than they otherwise would. Canaries after removal seem flat for several services (no change). | ||||
| * | Fix a background_thread shutdown issue. | Qi Wang | 2018-04-02 | 1 | -21/+26 |
| | | | | | | 1) make sure background thread 0 is always created; and 2) fix synchronization between thread 0 and the control thread. | ||||
| * | Change mutable option output in stats to avoid stringify issues. | Qi Wang | 2018-03-15 | 1 | -36/+37 |
| | | |||||
| * | Fix a typo in stats. | Qi Wang | 2018-03-15 | 1 | -1/+1 |
| | | |||||
| * | Stats printing: Convert arena large stats to use emitter. | David Goldblatt | 2018-03-09 | 1 | -49/+58 |
| | | | | | This completes the conversion; we now have only structured text output. | ||||
| * | Stats printing: convert arena bin stats to use emitter. | David Goldblatt | 2018-03-09 | 1 | -148/+182 |
| | | |||||
| * | Stats printing: remove a spurious newline. | David Goldblatt | 2018-03-09 | 1 | -3/+0 |
| | | | | | | This was left over from a previous emitter conversion. It didn't affect the correctness of the output. | ||||
| * | Stats printing: Make arena mutex stats use the emitter. | David Goldblatt | 2018-03-09 | 1 | -98/+72 |
| | | |||||
| * | Stats printing: convert most per-arena stats to use the emitter. | David Goldblatt | 2018-03-09 | 1 | -69/+45 |
| | | |||||
| * | Stats printing: convert paging and alloc counts to use the emitter. | David Goldblatt | 2018-03-09 | 1 | -67/+81 |
| | | |||||
| * | Stats printing: convert decay stats to use the emitter. | David Goldblatt | 2018-03-09 | 1 | -73/+132 |
| | | |||||
| * | Stats printing: Move emitter cutoff point into stats_arena_print. | David Goldblatt | 2018-03-09 | 1 | -13/+12 |
| | | |||||
| * | Stats printing: move stats_print_helper to use emitter. | David Goldblatt | 2018-03-09 | 1 | -102/+61 |
| | | |||||
| * | Stats printing: Move global mutex stats to use emitter. | David Goldblatt | 2018-03-09 | 1 | -43/+97 |
| | | |||||
| * | Stats printing: move non-mutex arena stats to the emitter. | David Goldblatt | 2018-03-09 | 1 | -54/+43 |
| | | | | | | Another step in the conversion process. The mutex is a little different, because we we want to emit it as an array. | ||||
| * | Stats printing: Remove explicit callback passing to stats_print_helper. | David Goldblatt | 2018-03-09 | 1 | -5/+12 |
| | | | | | | This makes the emitter the only source of callback information, which is a step towards where we want to be. | ||||
| * | Stats printing: Move emitter -> manual cutoff point. | David Goldblatt | 2018-03-09 | 1 | -18/+11 |
| | | | | | | This makes it so that the "general" portion of the stats code is completely agnostic to emitter type. | ||||
| * | Stats printing: Convert profiling stats to use the emitter. | David Goldblatt | 2018-03-09 | 1 | -31/+28 |
| | | | | | While we're at it, print them in table form, too. | ||||
| * | Stats printing: Convert general arena stats to use the emitter. | David Goldblatt | 2018-03-09 | 1 | -82/+64 |
| | | |||||
| * | Stats printing: convert config and opt output to use emitter. | David Goldblatt | 2018-03-09 | 1 | -180/+107 |
| | | | | | This is a step along the path towards using the emitter for all stats output. | ||||
| * | Stats printing: Convert header and footer to use emitter. | David Goldblatt | 2018-03-09 | 1 | -15/+13 |
| | | |||||
| * | Add opt.thp which allows explicit hugepage usage. | Qi Wang | 2018-03-08 | 6 | -26/+105 |
| | | | | | | | | | "always" marks all user mappings as MADV_HUGEPAGE; while "never" marks all mappings as MADV_NOHUGEPAGE. The default setting "default" does not change any settings. Note that all the madvise calls are part of the default extent hooks by design, so that customized extent hooks have complete control over the mappings including hugepage settings. | ||||
| * | Remove config.thp which wasn't in use. | Qi Wang | 2018-03-08 | 2 | -4/+0 |
| | | |||||
| * | Background threads: fix an indexing bug. | David Goldblatt | 2018-02-28 | 1 | -1/+2 |
| | | | | | | | We have a buffer overrun that manifests in the case where arena indices higher than the number of CPUs are accessed before arena indices lower than the number of CPUs. This fixes the bug and adds a test. | ||||
| * | Modify configure to determine return value of strerror_r. | Christopher Ferris | 2018-01-11 | 1 | -1/+1 |
| | | | | | | | | | On glibc and Android's bionic, strerror_r returns char* when _GNU_SOURCE is defined. Add a configure check for this rather than assume glibc is the only libc that behaves this way. | ||||
| * | Improve the fit for aligned allocation. | Qi Wang | 2018-01-05 | 1 | -10/+61 |
| | | | | | | | | We compute the max size required to satisfy an alignment. However this can be quite pessimistic, especially with frequent reuse (and combined with state-based fragmentation). This commit adds one more fit step specific to aligned allocations, searching in all potential fit size classes. | ||||
| * | handle 32 bit mutex counters | Rajeev Misra | 2018-01-04 | 1 | -36/+47 |
| | | |||||
| * | Implement arena regind computation using div_info_t. | David Goldblatt | 2017-12-21 | 1 | -17/+16 |
| | | | | | | This eliminates the need to generate an enormous switch statement in arena_slab_regind. | ||||
| * | Add the div module, which allows fast division by dynamic values. | David Goldblatt | 2017-12-21 | 2 | -1/+57 |
| | | |||||
| * | Split up and standardize naming of stats code. | David T. Goldblatt | 2017-12-19 | 3 | -181/+46 |
| | | | | | | | The arena-associated stats are now all prefixed with arena_stats_, and live in their own file. Likewise, malloc_bin_stats_t -> bin_stats_t, also in its own file. | ||||
| * | Rename cache_alloc_easy to cache_bin_alloc_easy. | David T. Goldblatt | 2017-12-19 | 1 | -1/+1 |
| | | | | | This lives in the cache_bin module; just a typo. | ||||
| * | Move bin stats code from arena to bin module. | David T. Goldblatt | 2017-12-19 | 1 | -14/+1 |
| | | |||||
| * | Move bin forking code from arena to bin module. | David T. Goldblatt | 2017-12-19 | 2 | -4/+19 |
| | | |||||
| * | Move bin initialization from arena module to bin module. | David T. Goldblatt | 2017-12-19 | 2 | -10/+17 |
| | | |||||
| * | Pull out arena_bin_info_t and arena_bin_t into their own file. | David T. Goldblatt | 2017-12-19 | 4 | -67/+70 |
| | | | | | | In the process, kill arena_bin_index, which is unused. To follow are several diffs continuing this separation. | ||||
| * | Over purge by 1 extent always. | Qi Wang | 2017-12-18 | 2 | -6/+4 |
| | | | | | | | | | | When purging, large allocations are usually the ones that cross the npages_limit threshold, simply because they are "large". This means we often leave the large extent around for a while, which has the downsides of: 1) high RSS and 2) more chance of them getting fragmented. Given that they are not likely to be reused very soon (LRU), let's over purge by 1 extent (which is often large and not reused frequently). | ||||
| * | Output opt.lg_extent_max_active_fit in stats. | Qi Wang | 2017-12-14 | 1 | -0/+3 |
| | | |||||
