0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2025-03-14 10:27:03 +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
..
2017-02-20 02:26:45 +01:00
2015-11-05 12:48:52 +01:00
2015-06-08 02:24:08 +02:00
2015-06-08 02:24:08 +02:00
2015-05-01 14:40:56 +02:00
2021-05-18 20:41:01 +02:00
2013-09-16 23:57:40 +02:00
2016-11-08 19:27:58 +01:00
2021-11-13 21:11:18 +01:00
2022-05-26 14:53:09 +02:00
2023-02-02 15:57:21 +01:00
2015-11-24 13:52:26 +01:00
2016-11-09 16:36:34 +01:00
2014-06-26 11:58:57 +02:00
2017-12-07 13:53:42 +01:00
2018-11-20 17:45:35 +01:00
2015-06-08 02:24:08 +02:00