Commit bf694eb
committed
rust_binder: move (e)poll wait queue to Process
Most processes do not use Rust Binder with epoll, so avoid paying the
synchronize_rcu() cost in drop for those that don't need it. For those
that do, we also manage to replace synchronize_rcu() with kfree_rcu(),
though we introduce an extra allocation.
In case the last ref to an Arc<Thread> is dropped outside of
deferred_release(), this also ensures that synchronize_rcu() is not
called in destructor of Arc<Thread> in other places. Theoretically that
could lead to jank by making other syscalls slow, which would be
problematic.
Signed-off-by: Alice Ryhl <aliceryhl@google.com>1 parent b2a5a9a commit bf694eb
4 files changed
Lines changed: 95 additions & 60 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
538 | 538 | | |
539 | 539 | | |
540 | 540 | | |
541 | | - | |
| 541 | + | |
542 | 542 | | |
543 | 543 | | |
544 | 544 | | |
| |||
570 | 570 | | |
571 | 571 | | |
572 | 572 | | |
573 | | - | |
| 573 | + | |
574 | 574 | | |
575 | 575 | | |
576 | 576 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
| 34 | + | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
| |||
172 | 173 | | |
173 | 174 | | |
174 | 175 | | |
| 176 | + | |
175 | 177 | | |
176 | 178 | | |
| 179 | + | |
| 180 | + | |
177 | 181 | | |
178 | 182 | | |
179 | 183 | | |
180 | 184 | | |
181 | | - | |
| 185 | + | |
182 | 186 | | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
183 | 191 | | |
184 | 192 | | |
185 | 193 | | |
186 | 194 | | |
187 | 195 | | |
188 | | - | |
189 | | - | |
190 | 196 | | |
191 | 197 | | |
192 | 198 | | |
193 | 199 | | |
194 | 200 | | |
195 | 201 | | |
196 | 202 | | |
197 | | - | |
198 | | - | |
199 | | - | |
200 | | - | |
201 | | - | |
| 203 | + | |
| 204 | + | |
202 | 205 | | |
203 | 206 | | |
204 | 207 | | |
205 | | - | |
206 | | - | |
207 | | - | |
| 208 | + | |
208 | 209 | | |
209 | 210 | | |
210 | 211 | | |
| |||
227 | 228 | | |
228 | 229 | | |
229 | 230 | | |
230 | | - | |
| 231 | + | |
231 | 232 | | |
232 | | - | |
| 233 | + | |
233 | 234 | | |
234 | | - | |
| 235 | + | |
235 | 236 | | |
236 | 237 | | |
237 | 238 | | |
| |||
457 | 458 | | |
458 | 459 | | |
459 | 460 | | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
460 | 467 | | |
461 | 468 | | |
462 | 469 | | |
| |||
516 | 523 | | |
517 | 524 | | |
518 | 525 | | |
| 526 | + | |
519 | 527 | | |
520 | 528 | | |
521 | 529 | | |
| |||
715 | 723 | | |
716 | 724 | | |
717 | 725 | | |
718 | | - | |
| 726 | + | |
719 | 727 | | |
720 | 728 | | |
721 | 729 | | |
| |||
1018 | 1026 | | |
1019 | 1027 | | |
1020 | 1028 | | |
1021 | | - | |
| 1029 | + | |
1022 | 1030 | | |
1023 | 1031 | | |
1024 | 1032 | | |
| |||
1535 | 1543 | | |
1536 | 1544 | | |
1537 | 1545 | | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
1538 | 1555 | | |
1539 | 1556 | | |
1540 | 1557 | | |
| |||
1726 | 1743 | | |
1727 | 1744 | | |
1728 | 1745 | | |
1729 | | - | |
| 1746 | + | |
| 1747 | + | |
| 1748 | + | |
| 1749 | + | |
| 1750 | + | |
| 1751 | + | |
| 1752 | + | |
| 1753 | + | |
| 1754 | + | |
| 1755 | + | |
| 1756 | + | |
| 1757 | + | |
| 1758 | + | |
| 1759 | + | |
| 1760 | + | |
1730 | 1761 | | |
1731 | 1762 | | |
1732 | 1763 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | | - | |
| 19 | + | |
21 | 20 | | |
22 | 21 | | |
23 | 22 | | |
| |||
225 | 224 | | |
226 | 225 | | |
227 | 226 | | |
| 227 | + | |
228 | 228 | | |
229 | 229 | | |
| 230 | + | |
230 | 231 | | |
231 | 232 | | |
232 | 233 | | |
233 | 234 | | |
234 | 235 | | |
235 | 236 | | |
236 | 237 | | |
| 238 | + | |
237 | 239 | | |
238 | 240 | | |
239 | 241 | | |
| |||
310 | 312 | | |
311 | 313 | | |
312 | 314 | | |
313 | | - | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
314 | 321 | | |
315 | | - | |
316 | | - | |
317 | 322 | | |
318 | 323 | | |
319 | 324 | | |
320 | 325 | | |
321 | | - | |
| 326 | + | |
322 | 327 | | |
323 | 328 | | |
324 | | - | |
| 329 | + | |
325 | 330 | | |
326 | 331 | | |
| 332 | + | |
327 | 333 | | |
328 | 334 | | |
329 | 335 | | |
330 | 336 | | |
331 | 337 | | |
332 | 338 | | |
333 | | - | |
| 339 | + | |
| 340 | + | |
334 | 341 | | |
335 | 342 | | |
336 | 343 | | |
| |||
422 | 429 | | |
423 | 430 | | |
424 | 431 | | |
425 | | - | |
| 432 | + | |
426 | 433 | | |
427 | 434 | | |
428 | 435 | | |
| |||
453 | 460 | | |
454 | 461 | | |
455 | 462 | | |
456 | | - | |
| 463 | + | |
457 | 464 | | |
458 | 465 | | |
459 | 466 | | |
| |||
624 | 631 | | |
625 | 632 | | |
626 | 633 | | |
| 634 | + | |
| 635 | + | |
627 | 636 | | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
628 | 642 | | |
629 | 643 | | |
630 | 644 | | |
| |||
643 | 657 | | |
644 | 658 | | |
645 | 659 | | |
646 | | - | |
| 660 | + | |
| 661 | + | |
647 | 662 | | |
648 | 663 | | |
649 | 664 | | |
| |||
1154 | 1169 | | |
1155 | 1170 | | |
1156 | 1171 | | |
1157 | | - | |
| 1172 | + | |
1158 | 1173 | | |
1159 | 1174 | | |
1160 | 1175 | | |
| |||
1171 | 1186 | | |
1172 | 1187 | | |
1173 | 1188 | | |
1174 | | - | |
1175 | | - | |
1176 | | - | |
| 1189 | + | |
1177 | 1190 | | |
1178 | 1191 | | |
1179 | | - | |
| 1192 | + | |
1180 | 1193 | | |
1181 | 1194 | | |
1182 | 1195 | | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
1183 | 1199 | | |
1184 | 1200 | | |
1185 | 1201 | | |
| |||
1349 | 1365 | | |
1350 | 1366 | | |
1351 | 1367 | | |
1352 | | - | |
| 1368 | + | |
| 1369 | + | |
1353 | 1370 | | |
1354 | 1371 | | |
1355 | 1372 | | |
| |||
1387 | 1404 | | |
1388 | 1405 | | |
1389 | 1406 | | |
1390 | | - | |
| 1407 | + | |
| 1408 | + | |
1391 | 1409 | | |
1392 | 1410 | | |
1393 | 1411 | | |
| |||
1589 | 1607 | | |
1590 | 1608 | | |
1591 | 1609 | | |
1592 | | - | |
1593 | | - | |
| 1610 | + | |
1594 | 1611 | | |
1595 | | - | |
| 1612 | + | |
1596 | 1613 | | |
1597 | 1614 | | |
1598 | 1615 | | |
| |||
1609 | 1626 | | |
1610 | 1627 | | |
1611 | 1628 | | |
1612 | | - | |
1613 | | - | |
1614 | | - | |
1615 | | - | |
1616 | | - | |
1617 | | - | |
1618 | | - | |
1619 | | - | |
1620 | | - | |
1621 | | - | |
1622 | | - | |
1623 | | - | |
1624 | | - | |
1625 | | - | |
1626 | | - | |
1627 | | - | |
1628 | 1629 | | |
1629 | 1630 | | |
1630 | 1631 | | |
1631 | | - | |
1632 | 1632 | | |
1633 | 1633 | | |
1634 | 1634 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
371 | 371 | | |
372 | 372 | | |
373 | 373 | | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
374 | 378 | | |
375 | 379 | | |
376 | 380 | | |
377 | 381 | | |
378 | | - | |
| 382 | + | |
379 | 383 | | |
380 | 384 | | |
381 | 385 | | |
| |||
0 commit comments