From a7e7cbac89d4dbacee9e184b450ca5bfc31e0a19 Mon Sep 17 00:00:00 2001 From: Daan Leijen Date: Wed, 9 Oct 2024 15:15:57 -0700 Subject: [PATCH] use enqueue_from_full, and keep inserting at the end --- src/page-queue.c | 9 +++++---- src/page.c | 4 +--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/page-queue.c b/src/page-queue.c index 54496222..3034e15d 100644 --- a/src/page-queue.c +++ b/src/page-queue.c @@ -330,12 +330,13 @@ static void mi_page_queue_enqueue_from_ex(mi_page_queue_t* to, mi_page_queue_t* } static void mi_page_queue_enqueue_from(mi_page_queue_t* to, mi_page_queue_t* from, mi_page_t* page) { - mi_page_queue_enqueue_from_ex(to, from, true, page); + mi_page_queue_enqueue_from_ex(to, from, true /* enqueue at the end */, page); } -// static void mi_page_queue_enqueue_from_at_start(mi_page_queue_t* to, mi_page_queue_t* from, mi_page_t* page) { -// mi_page_queue_enqueue_from_ex(to, from, false, page); -// } +static void mi_page_queue_enqueue_from_full(mi_page_queue_t* to, mi_page_queue_t* from, mi_page_t* page) { + // note: we could insert at the front to increase reuse, but it slows down certain benchmarks (like `alloc-test`) + mi_page_queue_enqueue_from_ex(to, from, true /* enqueue at the end of the `to` queue? */, page); +} // Only called from `mi_heap_absorb`. size_t _mi_page_queue_append(mi_heap_t* heap, mi_page_queue_t* pq, mi_page_queue_t* append) { diff --git a/src/page.c b/src/page.c index a0224e41..acc72253 100644 --- a/src/page.c +++ b/src/page.c @@ -357,9 +357,7 @@ void _mi_page_unfull(mi_page_t* page) { mi_page_set_in_full(page, false); // to get the right queue mi_page_queue_t* pq = mi_heap_page_queue_of(heap, page); mi_page_set_in_full(page, true); - mi_page_queue_enqueue_from(pq, pqfull, page); - // we could insert at the front to increase reuse, but it slows down certain benchmarks (like alloc-test) - // mi_page_queue_enqueue_from_at_start(pq, pqfull, page); + mi_page_queue_enqueue_from_full(pq, pqfull, page); } static void mi_page_to_full(mi_page_t* page, mi_page_queue_t* pq) {