summaryrefslogtreecommitdiffstats
path: root/src/ioq.c
Commit message (Collapse)AuthorAgeFilesLines
* ioq: Ensure ioq_ent is sufficiently alignedTavian Barnes2024-02-161-1/+1
| | | | | | | The natural alignment of struct ioq_ent is only 2 on m68k, so over-align it to at least 4 bytes on all platforms. Link: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=m68k&ver=3.1-1&stamp=1707699583
* ioq: Add batched ioqq_push/pop operationsTavian Barnes2024-02-151-49/+127
|
* ioq: Don't push immediately in ioq_check_cancel()Tavian Barnes2024-02-151-10/+6
|
* ioq: Add a missing close() if bfs_opendir() failsTavian Barnes2024-02-151-0/+2
|
* ioq: Don't use the symbolic IO_WQ_[UN]BOUND indicesTavian Barnes2024-02-141-2/+2
| | | | They are only available since liburing 2.2, which is newer than CI.
* ioq: Factor out io_uring initializationTavian Barnes2024-02-141-37/+73
|
* ioq: Make -j also limit the io_uring worker threadsTavian Barnes2024-02-141-0/+9
|
* ioq: Replay IOQ_STOP messages rather than spam themTavian Barnes2024-02-141-4/+5
|
* ioq: Get rid of IOQ_STRIDETavian Barnes2024-02-121-20/+5
| | | | Benchmarks show it hurts more than it helps.
* ioq: Shrink the io_uringsTavian Barnes2024-02-121-4/+2
|
* ioq: Implement ioq_stat()Tavian Barnes2024-01-181-10/+90
|
* ioq: Refactor to take advantage of -WswitchTavian Barnes2024-01-181-71/+91
|
* ioq: Use the negative errno conventionTavian Barnes2024-01-131-21/+11
|
* config: New variadic attr(...) macroTavian Barnes2023-12-181-2/+2
|
* ioq: Don't crash on allocation failuresTavian Barnes2023-11-151-0/+4
|
* config: New attr_noinline and attr_cold macrosTavian Barnes2023-11-091-0/+2
|
* ioq: Implement a better non-blocking popTavian Barnes2023-11-091-90/+186
|
* dir: Add a flags parameter to bfs_opendir()Tavian Barnes2023-10-171-3/+4
|
* ioq: Use io_uringTavian Barnes2023-10-021-37/+270
| | | | Closes #65.
* Formatting fixesTavian Barnes2023-09-271-1/+1
|
* ioq: New ioq_slot_monitor() helperTavian Barnes2023-08-231-4/+8
|
* ioq: Try harder to avoid setting IOQ_BLOCKEDTavian Barnes2023-07-121-6/+16
|
* ioq: Separate slot and queue operationsTavian Barnes2023-07-111-49/+75
|
* ioq: Implement async close() and closedir()Tavian Barnes2023-07-101-72/+103
|
* ioq: New ioq_capacity() functionTavian Barnes2023-07-061-2/+7
|
* ioq: Don't write to an empty slot in ioqq_trypop()Tavian Barnes2023-07-041-6/+10
|
* thread: Wrap more pthread APIsTavian Barnes2023-06-261-6/+3
|
* ioq: New ioq_cancel() functionTavian Barnes2023-06-261-7/+20
|
* ioq: Don't check NDEBUG manually in ioqq_trypop()Tavian Barnes2023-06-261-5/+2
|
* dir: Arena-allocate directoriesTavian Barnes2023-06-201-5/+10
|
* ioq: Arena-allocate ioq_cmdTavian Barnes2023-06-201-3/+8
|
* alloc: New header for memory allocation utilitiesTavian Barnes2023-06-201-18/+8
|
* ioq: Implement a non-blocking fast pathTavian Barnes2023-06-151-98/+107
|
* ioq: Use a circular bufferTavian Barnes2023-06-151-78/+201
|
* dir: New bfs_polldir() function for directory readaheadTavian Barnes2023-06-131-0/+4
|
* dir: Add a flag to bfs_freedir() to force the fd to stay the sameTavian Barnes2023-06-121-0/+1
|
* ioq: Implement an async I/O queueTavian Barnes2023-06-121-0/+284