Commit c376644
io_uring/rsrc: merge nodes and io_rsrc_put
struct io_rsrc_node carries a number of resources represented by struct
io_rsrc_put. That was handy before for sync overhead ammortisation, but
all complexity is gone and nodes are simple and lightweight. Let's
allocate a separate node for each resource.
Nodes and io_rsrc_put and not much different in size, and former are
cached, so node allocation should work better. That also removes some
overhead for nested iteration in io_rsrc_node_ref_zero() /
__io_rsrc_put_work().
Another reason for the patch is that it greatly reduces complexity
by moving io_rsrc_node_switch[_start]() inside io_queue_rsrc_removal(),
so users don't have to care about it.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/c7d3a45b30cc14cd93700a710dd112edc703db98.1681822823.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>1 parent 63fea89 commit c376644
3 files changed
Lines changed: 25 additions & 97 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | 83 | | |
88 | 84 | | |
89 | 85 | | |
90 | 86 | | |
91 | 87 | | |
92 | 88 | | |
93 | 89 | | |
94 | | - | |
95 | 90 | | |
96 | 91 | | |
97 | 92 | | |
| |||
152 | 147 | | |
153 | 148 | | |
154 | 149 | | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | 150 | | |
159 | 151 | | |
160 | 152 | | |
| |||
168 | 160 | | |
169 | 161 | | |
170 | 162 | | |
171 | | - | |
172 | 163 | | |
173 | 164 | | |
174 | 165 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
156 | | - | |
157 | 156 | | |
158 | | - | |
| 157 | + | |
159 | 158 | | |
160 | 159 | | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | 160 | | |
168 | 161 | | |
169 | 162 | | |
| |||
206 | 199 | | |
207 | 200 | | |
208 | 201 | | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | 202 | | |
| 203 | + | |
213 | 204 | | |
214 | 205 | | |
215 | 206 | | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | 207 | | |
244 | 208 | | |
245 | 209 | | |
| 210 | + | |
246 | 211 | | |
247 | 212 | | |
248 | 213 | | |
249 | | - | |
| 214 | + | |
250 | 215 | | |
251 | 216 | | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
256 | 225 | | |
257 | 226 | | |
258 | 227 | | |
| |||
382 | 351 | | |
383 | 352 | | |
384 | 353 | | |
385 | | - | |
386 | 354 | | |
387 | 355 | | |
388 | 356 | | |
| |||
414 | 382 | | |
415 | 383 | | |
416 | 384 | | |
417 | | - | |
418 | 385 | | |
419 | 386 | | |
420 | 387 | | |
| |||
445 | 412 | | |
446 | 413 | | |
447 | 414 | | |
448 | | - | |
449 | | - | |
450 | | - | |
451 | 415 | | |
452 | 416 | | |
453 | 417 | | |
| |||
458 | 422 | | |
459 | 423 | | |
460 | 424 | | |
461 | | - | |
462 | 425 | | |
463 | 426 | | |
464 | 427 | | |
| |||
498 | 461 | | |
499 | 462 | | |
500 | 463 | | |
501 | | - | |
502 | 464 | | |
503 | 465 | | |
504 | 466 | | |
505 | 467 | | |
506 | 468 | | |
507 | | - | |
508 | | - | |
509 | | - | |
510 | 469 | | |
511 | 470 | | |
512 | 471 | | |
| |||
515 | 474 | | |
516 | 475 | | |
517 | 476 | | |
518 | | - | |
519 | 477 | | |
520 | 478 | | |
521 | 479 | | |
522 | 480 | | |
523 | 481 | | |
524 | | - | |
525 | | - | |
526 | | - | |
527 | 482 | | |
528 | 483 | | |
529 | 484 | | |
| |||
685 | 640 | | |
686 | 641 | | |
687 | 642 | | |
688 | | - | |
689 | 643 | | |
690 | | - | |
691 | | - | |
692 | | - | |
693 | | - | |
694 | | - | |
695 | | - | |
696 | | - | |
697 | | - | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
698 | 648 | | |
699 | 649 | | |
700 | | - | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
701 | 653 | | |
702 | | - | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
703 | 658 | | |
704 | 659 | | |
705 | 660 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | 21 | | |
23 | 22 | | |
24 | 23 | | |
| |||
43 | 42 | | |
44 | 43 | | |
45 | 44 | | |
46 | | - | |
47 | 45 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | 46 | | |
| 47 | + | |
| 48 | + | |
57 | 49 | | |
58 | 50 | | |
59 | 51 | | |
| |||
68 | 60 | | |
69 | 61 | | |
70 | 62 | | |
71 | | - | |
72 | 63 | | |
73 | 64 | | |
74 | | - | |
75 | | - | |
76 | 65 | | |
77 | 66 | | |
78 | 67 | | |
| |||
109 | 98 | | |
110 | 99 | | |
111 | 100 | | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | 101 | | |
120 | 102 | | |
121 | 103 | | |
| |||
0 commit comments