Repository navigation
Commit a751341
Matt Page
Drain each thread's page list during GC
Free pages awaiting QSBR are added to each thread's `mimalloc.page_list`.
The list is only drained if the owning thread needs new pages, performs
an allocation larger than mimalloc's medium-object limit, or the thread
exits. This means that we don't free pages if a thread's allocation
pattern quiesces or falls into a pattern that can be serviced by
existing pages. This can be problematic for threads that allocate a
bunch of memory and then settle into the previous pattern.1 parent 01ff2e2 commit a751341
3 files changed
Lines changed: 49 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
132 | 136 | | |
133 | 137 | | |
134 | 138 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
229 | 241 | | |
230 | | - | |
| 242 | + | |
231 | 243 | | |
232 | | - | |
233 | | - | |
| 244 | + | |
| 245 | + | |
234 | 246 | | |
235 | 247 | | |
236 | | - | |
237 | | - | |
238 | | - | |
| 248 | + | |
239 | 249 | | |
240 | 250 | | |
241 | 251 | | |
| |||
249 | 259 | | |
250 | 260 | | |
251 | 261 | | |
252 | | - | |
| 262 | + | |
253 | 263 | | |
254 | 264 | | |
255 | 265 | | |
256 | 266 | | |
257 | 267 | | |
258 | 268 | | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
259 | 282 | | |
260 | 283 | | |
261 | 284 | | |
| |||
1702 | 1725 | | |
1703 | 1726 | | |
1704 | 1727 | | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
| 1740 | + | |
1705 | 1741 | | |
1706 | 1742 | | |
1707 | 1743 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2110 | 2110 | | |
2111 | 2111 | | |
2112 | 2112 | | |
| 2113 | + | |
| 2114 | + | |
2113 | 2115 | | |
2114 | 2116 | | |
2115 | 2117 | | |
| |||
0 commit comments