Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-05-11 | NEWS and version updatev3.0-alpha2 | Maria Matejka | |
2023-05-11 | Fix use-after free in thread stopping code | Maria Matejka | |
2023-05-11 | BGP: fix listen socket cleanup | Maria Matejka | |
2023-05-11 | ID Maps are checking whether their pool is locked | Maria Matejka | |
2023-05-11 | Properly protecting the route src global index by RCU read lock and atomic ↵ | Maria Matejka | |
operations There was a bug occuring when one thread sought for a src by its global id and another one was allocating another src with such an ID that it caused route src global index reallocation. This brief moment of inconsistency led to a rare use-after-free of the old global index block. | |||
2023-05-11 | Threads take loops faster | Maria Matejka | |
2023-05-11 | Channel: configurable feed block size | Maria Matejka | |
2023-05-11 | BGP: proactively rehash prefix hash up to shorten collision lists | Maria Matejka | |
2023-05-09 | OLocks in BGP must be freed early | Maria Matejka | |
2023-05-07 | IO Loop / Thread Groups Lock moved to level -attrs- to allow for page ↵ | Maria Matejka | |
allocation while locked | |||
2023-05-07 | Fixed loop movement to not collide on LTT_MOVE | Maria Matejka | |
2023-05-07 | Fix loop dropping routines | Maria Matejka | |
2023-05-06 | Fixed a bug in hot page global storage | Maria Matejka | |
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 | Debug: keep a circular log of memory page operations | Maria Matejka | |
2023-05-06 | Fixed cold page cache leak | Maria Matejka | |
The empty_pages pointer wasn't being propagated into the ->next pointer when more empty_pages were to be stored | |||
2023-05-06 | Hostentry: fix pool locking | Maria Matejka | |
2023-05-06 | Linpool state save and restore refactoring | Maria Matejka | |
2023-05-06 | Debug: Explicit mprotect() on freed pages to better locate use-after-free bugs | Maria Matejka | |
2023-05-06 | Page allocator: indentation of messy ifdef blocks | Maria Matejka | |
2023-05-06 | First try of loop balancing | Maria Matejka | |
If a thread encounters timeout == 0 for poll, it considers itself "busy" and with some hysteresis it tries to drop loops for others to pick and thus better distribute work between threads. | |||
2023-05-03 | Allocation from linpools and slabs requires the appropriate lock to be taken | Maria Matejka | |
2023-05-03 | Linpool flushes unused pages even on lp_restore() | Maria Matejka | |
2023-05-03 | Fixed race condition in hostentry allocation | Maria Matejka | |
2023-05-03 | Show threads: Fixed problems with CLI buffer reallocation | Maria Matejka | |
... by allocating all the output locally and then sending it out at once. | |||
2023-05-03 | Explicitly counting loops and threads | Maria Matejka | |
2023-05-03 | Loop spent time refactored to separate structures and functions | Maria Matejka | |
2023-04-26 | Loops track also locking time | Maria Matejka | |
2023-04-26 | IO loops now actually measuring their time (show threads all works) | Maria Matejka | |
2023-04-25 | Refactoring of domains connected to pools | Maria Matejka | |
2023-04-24 | Fix of failing show threads command | Maria Matejka | |
2023-04-24 | Merge commit 'd61505b039bf0aa6697e28b2a4e07907c89ba1fb' into thread-next | Maria Matejka | |
2023-04-24 | Merge branch 'mq-resource-locking' into thread-next | Maria Matejka | |
2023-04-24 | Removed duplicate version 3.0-alpha0 news | Maria Matejka | |
2023-04-24 | Resource pools are now bound with domains. | Maria Matejka | |
Memory allocation is a fragile part of BIRD and we need checking that everybody is using the resource pools in an appropriate way. To assure this, all the resource pools are associated with locking domains and every resource manipulation is thoroughly checked whether the appropriate locking domain is locked. With transitive resource manipulation like resource dumping or mass free operations, domains are locked and unlocked on the go, thus we require pool domains to have higher order than their parent to allow for this transitive operations. Adding pool locking revealed some cases of insecure memory manipulation and this commit fixes that as well. | |||
2023-04-22 | Protocols and tables now use the birdloop pools as primary | Maria Matejka | |
2023-04-22 | Resource pool closing has its dedicated function | Maria Matejka | |
2023-04-22 | Socket closing has its dedicated function | Maria Matejka | |
2023-04-22 | Global protocol list is typed to avoid typecast confusion | Maria Matejka | |
2023-04-22 | Typed lists: added add_after() and unit tests | Maria Matejka | |
2023-04-21 | Alpha0 news addedv3.0-alpha1 | Ondrej Filip | |
2023-04-21 | BSD: IPv4 over IPv6 nexthop support on FreeBSD | Luiz Amaral | |
The support for IPv4 routes with IPv6 nexthops was implemented in FreeBSD 13.1, this patch allows to import and export such routes from/to kernel. Minor change from committer. | |||
2023-04-20 | Linpool: Fix lp_restore() | Maria Matejka | |
When lp_save() is called on an empty linpool, then some allocation is done, then lp_restore() is called, the linpool is restored but the used chunks are inaccessible. Fix it. | |||
2023-04-19 | Typed lists keep an explicit pointer to the list head. | Maria Matejka | |
This change adds one pointer worth of memory to every list node. Keeping this information helps auditing the lists, checking that the node indeed is outside of list or inside the right one. The typed lists shouldn't be used anywhere with memory pressure anyway, thus the one added pointer isn't significant. | |||
2023-04-18 | Updated the version number to not include dash (breaks RPM) | Maria Matejka | |
2023-04-18 | NEWS and version update | Maria Matejka | |
2023-04-18 | Merge tag '3.0-alpha0' into HEAD | Maria Matejka | |
3.0-alpha0 | |||
2023-04-17 | IO: added a specific loop pickup group for BFD; to be done better in future | Maria Matejka | |
2023-04-14 | Merge commit '9e44ace3' into thread-next-iface | Maria Matejka | |
2023-04-14 | Merge commit 'f881b98d' into thread-next-iface | Maria Matejka | |
2023-04-14 | Merge commit '231c6385' into thread-next-iface | Maria Matejka | |