Loading...
--- libmalloc/libmalloc-374.60.3/src/magazine_medium.c
+++ libmalloc/libmalloc-474.0.13/src/magazine_medium.c
@@ -132,25 +132,6 @@
meta_headers[index] = 0;
}
-static MALLOC_INLINE MALLOC_ALWAYS_INLINE
-mag_index_t
-medium_mag_get_thread_index(void)
-{
-#if CONFIG_MEDIUM_USES_HYPER_SHIFT
- if (os_likely(_os_cpu_number_override == -1)) {
- return _malloc_cpu_number() >> hyper_shift;
- } else {
- return _os_cpu_number_override >> hyper_shift;
- }
-#else // CONFIG_MEDIUM_USES_HYPER_SHIFT
- if (os_likely(_os_cpu_number_override == -1)) {
- return _malloc_cpu_number();
- } else {
- return _os_cpu_number_override;
- }
-#endif // CONFIG_MEDIUM_USES_HYPER_SHIFT
-}
-
#pragma mark in-place free list
static MALLOC_INLINE void
@@ -1009,11 +990,6 @@
{
magazine_t *depot_ptr = &(rack->magazines[DEPOT_MAGAZINE_INDEX]);
- /* FIXME: Would Uniprocessor benefit from recirc and MADV_FREE? */
- if (rack->num_magazines == 1) { // Uniprocessor, single magazine, so no recirculation necessary
- return 0;
- }
-
#if DEBUG_MALLOC
if (DEPOT_MAGAZINE_INDEX == mag_index) {
malloc_zone_error(rack->debug_flags, true, "medium_get_region_from_depot called for magazine index -1\n", NULL, NULL);
@@ -1514,11 +1490,7 @@
region_trailer_t *node = REGION_TRAILER_FOR_MEDIUM_REGION(region);
size_t bytes_used = node->bytes_used;
- /* FIXME: Would Uniprocessor benefit from recirc and MADV_FREE? */
- if (rack->num_magazines == 1) { // Uniprocessor, single magazine, so no recirculation necessary
- /* NOTHING */
- return TRUE; // Caller must do SZONE_MAGAZINE_PTR_UNLOCK(tiny_mag_ptr)
- } else if (DEPOT_MAGAZINE_INDEX != mag_index) {
+ if (DEPOT_MAGAZINE_INDEX != mag_index) {
// Emptiness discriminant
if (bytes_used < DENSITY_THRESHOLD(MEDIUM_REGION_PAYLOAD_BYTES)) {
/* Region has crossed threshold from density to sparsity. Mark it "suitable" on the
@@ -2412,7 +2384,7 @@
medium_malloc_should_clear(rack_t *rack, msize_t msize, boolean_t cleared_requested)
{
void *ptr;
- mag_index_t mag_index = medium_mag_get_thread_index() % rack->num_magazines;
+ mag_index_t mag_index = rack_get_thread_index(rack) % rack->num_magazines;
magazine_t *medium_mag_ptr = &(rack->magazines[mag_index]);
MALLOC_TRACE(TRACE_medium_malloc, (uintptr_t)rack, MEDIUM_BYTES_FOR_MSIZE(msize), (uintptr_t)medium_mag_ptr, cleared_requested);