WIP: IO support using io_uring
-
Review changes -
-
Download -
Patches
-
Plain diff
Add AsyncLibrary providing IO operations which avoid the thread-blocking anomaly using the linux io_uring API. This MR makes !4 (closed) obsolete.
Fixes #2 (closed).
TODO:
-
Use a dedicated thread instead of the main thread maybe? -
Overhaul SimpleDiskAndNetworkTest -
Find and fix the memory leak -
be competetive with burak's epoll implementation. Use !54 (merged) for a high performance IO implementation -
Make API really asynchronous and return a future -
Handle IO requests issued after IO subsystem is terminated -
figure out how to gracefully shutdown -
Don't unblock fibers on partial IO completion (what IO functions are feasable, recv(..., MSG_WAITALL)
) -
Document exported functions -
introduce timeouts to prevent denial-of-service by opening more connections than there are entries in the io_uringThis is nonsense and not how io_uring works.
Edited by Florian Fischer
Merge request reports
Compare and
- version 120fbe975e2
- version 11985d37432
- version 11869455fd2
- version 11780bfd796
- version 116e723de87
- version 1151d6b58b9
- version 114026c0617
- version 113fdef4c91
- version 112b425c24f
- version 111ed0a69f5
- version 11027648ede
- version 109a5fd2094
- version 10830906cd1
- version 107aac72ba3
- version 10658ed7b22
- version 105d9c4b286
- version 10430d12701
- version 103bc958f59
- version 10239a65000
- version 101983b08f1
- version 100545b0055
- version 99597f57a9
- version 988299e6a7
- version 97a1e43362
- version 9647b5e6b8
- version 956545a957
- version 947849122e
- version 939d210d24
- version 921bf9f2e4
- version 918c729bd8
- version 9074275ff5
- version 8920569a38
- version 8827a2d8fe
- version 8780b62261
- version 861caeb75c
- version 85414c76a2
- version 848acac08a
- version 83270d6551
- version 8207c0bd41
- version 81092bd9c9
- version 803a216030
- version 79fe3f25a9
- version 781e712b20
- version 7790eff1e3
- version 76ffa64b84
- version 7505a9c7bf
- version 74b00a1b57
- version 73cc86de0b
- version 727abda3a2
- version 712f6e8969
- version 70f19dde44
- version 69f9f9a655
- version 68003cb00f
- version 67435c083d
- version 66a02e79b6
- version 6595dbde0e
- version 641564206d
- version 63bc223e70
- version 6222f19208
- version 6195382527
- version 6072cded16
- version 59a306ed90
- version 583f0b0756
- version 57b8ae8316
- version 5630efb743
- version 5506626361
- version 54c7694440
- version 53ac3e077b
- version 52d3f0f88e
- version 518d4ad291
- version 506bef3a50
- version 49a85e3c38
- version 48b1bcd1ac
- version 472e02616d
- version 4641899bb9
- version 454ee4b09f
- version 44efec42b8
- version 434d9a51c5
- version 42da9ee515
- version 418d9a5e11
- version 40a4430e1c
- version 393098d5bb
- version 38b5ade604
- version 3721043b11
- version 36fa702036
- version 35be83d14b
- version 34ecd56255
- version 33654c17f8
- version 32a02f8ee1
- version 31ae773466
- version 3071f3ecf3
- version 29ec2ebb8c
- version 28f98f80b6
- version 27c48d0afb
- version 263b15087e
- version 257abbdb6e
- version 241d69d4df
- version 2345375cff
- version 229b8ddeb4
- version 21a340aef5
- version 20871f18c6
- version 1940b6eb70
- version 18f7a63a20
- version 170d275931
- version 16b6fbfde0
- version 1529be2acf
- version 146bf5c4b5
- version 136bf5c4b5
- version 12475ea771
- version 115a96e66c
- version 10af5adf15
- version 982955a64
- version 89cd79020
- version 70f036a80
- version 678ec5944
- version 5ce7695a0
- version 439f0ff0f
- version 39e7d804b
- version 2d94e4199
- version 15b326275
- master (base)
- latest version5554281479 commits,
- version 120fbe975e283 commits,
- version 11985d3743281 commits,
- version 11869455fd280 commits,
- version 11780bfd79679 commits,
- version 116e723de8778 commits,
- version 1151d6b58b977 commits,
- version 114026c061776 commits,
- version 113fdef4c9175 commits,
- version 112b425c24f73 commits,
- version 111ed0a69f573 commits,
- version 11027648ede72 commits,
- version 109a5fd209470 commits,
- version 10830906cd169 commits,
- version 107aac72ba368 commits,
- version 10658ed7b2270 commits,
- version 105d9c4b28669 commits,
- version 10430d1270168 commits,
- version 103bc958f5967 commits,
- version 10239a6500065 commits,
- version 101983b08f164 commits,
- version 100545b005563 commits,
- version 99597f57a962 commits,
- version 988299e6a760 commits,
- version 97a1e4336259 commits,
- version 9647b5e6b858 commits,
- version 956545a95757 commits,
- version 947849122e55 commits,
- version 939d210d2455 commits,
- version 921bf9f2e456 commits,
- version 918c729bd855 commits,
- version 9074275ff554 commits,
- version 8920569a3860 commits,
- version 8827a2d8fe59 commits,
- version 8780b6226158 commits,
- version 861caeb75c57 commits,
- version 85414c76a255 commits,
- version 848acac08a53 commits,
- version 83270d655151 commits,
- version 8207c0bd4150 commits,
- version 81092bd9c949 commits,
- version 803a21603045 commits,
- version 79fe3f25a945 commits,
- version 781e712b2045 commits,
- version 7790eff1e344 commits,
- version 76ffa64b8443 commits,
- version 7505a9c7bf40 commits,
- version 74b00a1b5745 commits,
- version 73cc86de0b44 commits,
- version 727abda3a243 commits,
- version 712f6e896942 commits,
- version 70f19dde4440 commits,
- version 69f9f9a65539 commits,
- version 68003cb00f38 commits,
- version 67435c083d37 commits,
- version 66a02e79b636 commits,
- version 6595dbde0e36 commits,
- version 641564206d35 commits,
- version 63bc223e7035 commits,
- version 6222f1920835 commits,
- version 619538252735 commits,
- version 6072cded1634 commits,
- version 59a306ed9033 commits,
- version 583f0b075633 commits,
- version 57b8ae831631 commits,
- version 5630efb74330 commits,
- version 550662636129 commits,
- version 54c769444029 commits,
- version 53ac3e077b25 commits,
- version 52d3f0f88e24 commits,
- version 518d4ad29124 commits,
- version 506bef3a5024 commits,
- version 49a85e3c3824 commits,
- version 48b1bcd1ac22 commits,
- version 472e02616d23 commits,
- version 4641899bb919 commits,
- version 454ee4b09f19 commits,
- version 44efec42b819 commits,
- version 434d9a51c519 commits,
- version 42da9ee51519 commits,
- version 418d9a5e1126 commits,
- version 40a4430e1c25 commits,
- version 393098d5bb24 commits,
- version 38b5ade60423 commits,
- version 3721043b1122 commits,
- version 36fa70203621 commits,
- version 35be83d14b20 commits,
- version 34ecd5625519 commits,
- version 33654c17f818 commits,
- version 32a02f8ee117 commits,
- version 31ae77346613 commits,
- version 3071f3ecf313 commits,
- version 29ec2ebb8c13 commits,
- version 28f98f80b612 commits,
- version 27c48d0afb11 commits,
- version 263b15087e11 commits,
- version 257abbdb6e11 commits,
- version 241d69d4df24 commits,
- version 2345375cff23 commits,
- version 229b8ddeb422 commits,
- version 21a340aef517 commits,
- version 20871f18c617 commits,
- version 1940b6eb7016 commits,
- version 18f7a63a2016 commits,
- version 170d27593117 commits,
- version 16b6fbfde016 commits,
- version 1529be2acf15 commits,
- version 146bf5c4b514 commits,
- version 136bf5c4b515 commits,
- version 12475ea77114 commits,
- version 115a96e66c12 commits,
- version 10af5adf1510 commits,
- version 982955a6410 commits,
- version 89cd790209 commits,
- version 70f036a8011 commits,
- version 678ec59449 commits,
- version 5ce7695a05 commits,
- version 439f0ff0f10 commits,
- version 39e7d804b8 commits,
- version 2d94e41996 commits,
- version 15b3262755 commits,
Compare changes
- Side-by-side
- Inline
Files
32Loading