Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ioq: Try spinning before blocking in ioq_slot_wait() | Tavian Barnes | 2024-12-03 | 1 | -1/+17 |
| | |||||
* | ioq: Submit and pop requests in batches | Tavian Barnes | 2024-12-03 | 5 | -17/+44 |
| | | | | | The new ioq_submit() function is now necessary to call to ensure the pending request batch is flushed. | ||||
* | ioq: Add more io_uring setup flags | Tavian Barnes | 2024-12-03 | 1 | -20/+55 |
| | |||||
* | ioq: Refactor io_uring submission logic | Tavian Barnes | 2024-12-03 | 1 | -94/+145 |
| | |||||
* | ioq: Use ioq_batch for both pushing and popping | Tavian Barnes | 2024-12-03 | 1 | -47/+84 |
| | |||||
* | ioq: Add a hash function between slots and monitors | Tavian Barnes | 2024-12-03 | 1 | -1/+11 |
| | | | | | | This helps avoid situations where multiple waiters block on different slots using the same monitor, which happened more often than expected due to correlations caused by batching. | ||||
* | ioq: Prefetch pointers before popping them | Tavian Barnes | 2024-12-03 | 2 | -8/+10 |
| | | | | | Also, cache-align struct ioq_ent to avoid false sharing when two workers are handling neighbouring requests. | ||||
* | bench/ioq: New ioq microbenchmark | Tavian Barnes | 2024-12-03 | 2 | -1/+332 |
| | |||||
* | ioq: Add an ioq_nop() operation for benchmarking | Tavian Barnes | 2024-12-02 | 3 | -0/+62 |
| | |||||
* | xtime: New timespec utility functions | Tavian Barnes | 2024-12-02 | 3 | -23/+95 |
| | |||||
* | sighook: New SH_ONESHOT flag | Tavian Barnes | 2024-12-02 | 2 | -1/+21 |
| | |||||
* | bfstd: Add more strto*() wrappers | Tavian Barnes | 2024-12-02 | 2 | -24/+69 |
| | |||||
* | ioq: Set the worker thread names to ioq-%d | Tavian Barnes | 2024-11-27 | 1 | -2/+8 |
| | |||||
* | thread: New thread_setname() function | Tavian Barnes | 2024-11-27 | 5 | -0/+37 |
| | |||||
* | sighook: Return instead of re-raising for faults | Tavian Barnes | 2024-11-23 | 1 | -5/+11 |
| | | | | | | | | | | | This makes the death look exactly like it would if we didn't handle the signal at all. Coredumps will point at the right instruction, segfaults will get logged in dmesg again, etc. Technically POSIX says this is undefined, but if we get a fault, we've already done something undefined anyway ;) Link: https://github.com/rust-lang/rust/issues/26458 | ||||
* | sighook: Check for SA_RESTART before using it | Tavian Barnes | 2024-11-23 | 1 | -1/+7 |
| | | | | QNX doesn't support SA_RESTART. | ||||
* | bfstd: makedev() takes 3 arguments on QNX | Tavian Barnes | 2024-11-23 | 1 | -1/+3 |
| | |||||
* | prelude: Define _QNX_SOURCE | Tavian Barnes | 2024-11-23 | 1 | -0/+5 |
| | |||||
* | build: Check for -pthread before using it | Tavian Barnes | 2024-11-23 | 2 | -2/+12 |
| | | | | | | QNX's qcc, for example, will complain that cc1: error: command-line option '-pthread' is valid for the driver but not for C | ||||
* | tests/getopts: Remove unused variable | Tavian Barnes | 2024-11-21 | 1 | -1/+0 |
| | |||||
* | docs/bfs.1: Simplify the formatting | Tavian Barnes | 2024-11-20 | 1 | -64/+105 |
| | |||||
* | ioq: Enable IORING_SETUP_SUBMIT_ALL | Tavian Barnes | 2024-11-20 | 1 | -2/+18 |
| | |||||
* | color: Squelch a -Wmaybe-uninitialized warning on non-LTO builds | Tavian Barnes | 2024-11-20 | 1 | -1/+1 |
| | |||||
* | build(deps): bump codecov/codecov-action from 4 to 5 | dependabot[bot] | 2024-11-18 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4...v5) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> | ||||
* | ioq: Check for io_uring_register_iowq_max_workers() before using it | Tavian Barnes | 2024-11-11 | 3 | -0/+15 |
| | | | | | | | This allows us to build against liburing as old as version 2.0, which is apparently shipped by the latest Amazon Linux distribution. Fixes: https://github.com/tavianator/bfs/issues/147 | ||||
* | sanity: Don't mark memory uninit in sanitize_{alloc,free}() | Tavian Barnes | 2024-11-02 | 3 | -19/+45 |
| | | | | | We might want to change the size of an allocated region without changing which bytes are initialized. | ||||
* | alloc: Stop supporting pathological flexible array ABIs | Tavian Barnes | 2024-11-02 | 3 | -22/+29 |
| | |||||
* | alloc: Add macro versions of alignment utils | Tavian Barnes | 2024-11-02 | 1 | -3/+12 |
| | |||||
* | trie: Fix varena_free() with wrong size | Tavian Barnes | 2024-11-02 | 1 | -8/+8 |
| | | | | | | | In trie_remove(), clearing the bit before trie_node_collapse() causes us to free the old node with size 1 instead of 2, putting it on the wrong freelist. This is technically safe with the current arena implementation, but not intentional. | ||||
* | alloc: Don't require size % align == 0 | Tavian Barnes | 2024-11-02 | 5 | -39/+27 |
| | | | | | | | | | Allowing unaligned sizes will allow us to allocate aligned slabs with additional metadata in the tail without ballooning the allocation size for large alignments. Link: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2244.htm#dr_460 Link: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2072.htm | ||||
* | Release 4.0.44.0.4 | Tavian Barnes | 2024-10-31 | 3 | -2/+20 |
| | |||||
* | Merge pull request #146 from jody-frankowski/fix/capa-color-non-linux | Tavian Barnes | 2024-10-31 | 5 | -1/+43 |
|\ | | | | | Fix bfs coloring all files as if they had a capability, on non-Linux systems | ||||
| * | color: Handle bfs_check_capabilities error code (-1) in cpath_has_capabilities | Jody Frankowski | 2024-10-31 | 5 | -1/+43 |
|/ | | | | | | | | | | | On non-Linux systems, bfs_check_capabilities always returned -1, so cpath_has_capabilities would always return true. If bfs was called with an LS_COLORS containing the `ca` statement, e.g. `ca=30;41`, bfs would color ALL the files. While including the `ca` statement in LS_COLORS on non-Linux systems is unusual, this is not an error and is a valid use-case (e.g. Using GNU ls or lsd). Fixes: 1520d4d3 ("color: Don't color files like directories on ENOTDIR") | ||||
* | bit: Add bswap() overloads for every primitive type | Tavian Barnes | 2024-10-27 | 2 | -9/+41 |
| | | | | Fixes: https://github.com/tavianator/bfs/issues/145 | ||||
* | tests/posix: Add a test for overly aggressive -exec {} + matching | Tavian Barnes | 2024-10-27 | 2 | -0/+33 |
| | | | | Link: https://savannah.gnu.org/bugs/?66365 | ||||
* | Merge pull request #144 from ryandesign/patch-1 | Tavian Barnes | 2024-10-26 | 1 | -1/+1 |
|\ | | | | | Fix typo in manpage | ||||
| * | Fix typo in manpage | Ryan Carsten Schmidt | 2024-10-26 | 1 | -1/+1 |
|/ | |||||
* | Release 4.0.34.0.3 | Tavian Barnes | 2024-10-22 | 3 | -2/+20 |
| | |||||
* | build: New make dist[sign] targets | Tavian Barnes | 2024-10-22 | 1 | -1/+11 |
| | |||||
* | dstring: Add an infallible dstrshrink() function | Tavian Barnes | 2024-10-17 | 4 | -9/+47 |
| | | | | And mark the fallible ones with _nodiscard. | ||||
* | color: Don't color files like directories on ENOTDIR | Tavian Barnes | 2024-10-16 | 2 | -116/+232 |
| | |||||
* | color: Fix an infinite loop colorizing some invalid paths | Tavian Barnes | 2024-10-13 | 3 | -8/+13 |
| | | | | | | | | | | | | | | Previously, given $ touch file $ ln -s file/file notdir $ bfs notdir/file bfs would loop forever when printing the error message, since it expected stripping the trailing slash from "notdir/" to fix the ENOTDIR error, but the broken symlink still gave the same error. Fixes: b4c3201 ("color: Only highlight the trailing slash on ENOTDIR") | ||||
* | tests/gnu: Test -L -printf %Y | Tavian Barnes | 2024-10-10 | 2 | -0/+18 |
| | |||||
* | tests/trie: Improve code coverage | Tavian Barnes | 2024-10-10 | 1 | -1/+4 |
| | |||||
* | sighook: Don't forget to reset list->tail on the last sigpop() | Tavian Barnes | 2024-10-10 | 2 | -0/+9 |
| | | | | | | | This was causing a UAF if we ever unregistered the last hook for a signal and then re-registered one. Fixes: 75b7f70 ("sighook: Make sigunhook() O(1)") | ||||
* | eval: Use xtimer_start() for status bar updates | Tavian Barnes | 2024-10-10 | 1 | -36/+76 |
| | |||||
* | tests/sighook: Use the new xtimer_start() API | Tavian Barnes | 2024-10-10 | 1 | -8/+6 |
| | |||||
* | xtime: Add a wrapper for timer_create()/setitimer() | Tavian Barnes | 2024-10-10 | 4 | -0/+130 |
| | | | | | | setitimer() is obsolescent in POSIX 2008 and removed from POSIX 2024. However, at least macOS doesn't implement the new timer_create() API, so we still need the setitimer() fallback. | ||||
* | Adjust in/out parameter docs | Tavian Barnes | 2024-10-10 | 5 | -11/+11 |
| | |||||
* | Fix some -Wundef-prefix warnings | Tavian Barnes | 2024-10-10 | 4 | -6/+14 |
| |