0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-09 20:58:44 +00:00
bird/sysdep
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
..
bsd Merge commit 'd61505b039bf0aa6697e28b2a4e07907c89ba1fb' into thread-next 2023-04-24 10:40:53 +02:00
bsd-netlink Netlink: move OS-specific headers and defines to sysdep 2022-12-16 19:21:51 +01:00
cf Alloc: Disable transparent huge pages 2023-01-17 17:13:50 +01:00
linux Sockets: Unified API for main and other loops 2023-04-04 17:00:59 +02:00
unix Fixed a bug in hot page global storage 2023-05-06 10:50:32 +02:00
config.h Updated the version number to not include dash (breaks RPM) 2023-04-18 10:11:07 +02:00
Doc Doc: Rename code documentation files back to Doc 2018-12-14 02:03:42 +01:00
sysdep.sgml Spelling fixes to progdoc. 2000-06-07 12:29:08 +00:00