0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2025-03-16 11:27:04 +00:00
Maria Matejka a95141111c Fixed a bug in hot page global storage
The original algorithm was suffering from an ABA race condition:

A: fp = page_stack
B: completely allocates the same page and writes into it some data
A: unsuspecting, loads (invalid) next = fp->next
B: finishes working with the page and returns it back to page_stack
A: compare-exchange page_stack: fp => next succeeds and writes garbage
to page_stack

Fixed this by using an implicit spinlock in hot page allocator.
2023-05-06 10:50:32 +02:00
..
2023-05-06 10:50:32 +02:00
2009-05-11 01:32:49 +02:00
2023-05-06 10:50:26 +02:00
2023-05-06 10:50:26 +02:00
2023-04-25 09:52:28 +02:00
2022-08-05 10:37:53 +02:00
2022-05-04 15:39:21 +02:00
2023-05-06 10:50:32 +02:00