mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-23 02:01:55 +00:00
Misc allocator fixes
This commit is contained in:
parent
b8d0ba36e6
commit
d16321686e
@ -118,6 +118,8 @@ alloc_page(void)
|
|||||||
return fp;
|
return fp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ASSERT_DIE(pages_kept_here == 0);
|
||||||
|
|
||||||
/* If there is any free page kept hot in global storage, we use it. */
|
/* If there is any free page kept hot in global storage, we use it. */
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
fp = atomic_load_explicit(&page_stack, memory_order_acquire);
|
fp = atomic_load_explicit(&page_stack, memory_order_acquire);
|
||||||
@ -176,6 +178,8 @@ free_page(void *ptr)
|
|||||||
if (shutting_down || (pages_kept_here < KEEP_PAGES_MAX_LOCAL))
|
if (shutting_down || (pages_kept_here < KEEP_PAGES_MAX_LOCAL))
|
||||||
{
|
{
|
||||||
atomic_store_explicit(&fp->next, local_page_stack, memory_order_relaxed);
|
atomic_store_explicit(&fp->next, local_page_stack, memory_order_relaxed);
|
||||||
|
local_page_stack = fp;
|
||||||
|
|
||||||
atomic_fetch_add_explicit(&pages_kept_locally, 1, memory_order_relaxed);
|
atomic_fetch_add_explicit(&pages_kept_locally, 1, memory_order_relaxed);
|
||||||
pages_kept_here++;
|
pages_kept_here++;
|
||||||
return;
|
return;
|
||||||
|
@ -935,6 +935,8 @@ main(int argc, char **argv)
|
|||||||
if (parse_and_exit)
|
if (parse_and_exit)
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|
||||||
|
flush_local_pages();
|
||||||
|
|
||||||
if (!run_in_foreground)
|
if (!run_in_foreground)
|
||||||
{
|
{
|
||||||
pid_t pid = fork();
|
pid_t pid = fork();
|
||||||
|
Loading…
Reference in New Issue
Block a user