0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-07-02 16:58:19 +02:00
Commit graph

249 commits

Author SHA1 Message Date
Jason Volk d8bfacd128 ircd::fs: Add missing base path for RB_LIB_DIR. 2019-09-25 17:09:05 -07:00
Jason Volk d74d6c5eda ircd::fs: Warn for low RLIMIT_NOFILE on init; minor renames. 2019-09-14 12:17:07 -07:00
Jason Volk 97b613bb82 ircd::fs: Minor cleanup/simplify. 2019-08-16 02:19:49 -07:00
Jason Volk 41c8643305 ircd::fs: Use better indicator for async support type. 2019-08-11 04:52:38 -07:00
Jason Volk 125f53872c ircd::fs: Preliminary io_uring infrastructure plumbing. 2019-08-11 01:39:30 -07:00
Jason Volk 588b0aa9bc ircd::fs::aio: Fix bitrot assertion; simplify aio related. 2019-08-10 23:22:28 -07:00
Jason Volk 14f16f2b0d ircd::fs: Support hole punching if available; add checks for allocate options. 2019-08-06 16:39:28 -07:00
Jason Volk f549fb1f72 ircd::fs: Fix support version detections. 2019-08-06 15:49:24 -07:00
Jason Volk bd2dd1c50d ircd::fs: Make support string an info log message. 2019-08-06 15:44:32 -07:00
Jason Volk 009d417273 ircd: Indicate noexcept on advised interfaces. 2019-08-05 16:19:20 -07:00
Jason Volk 70ec2a37c7 ircd::fs: Use system_error factory. 2019-07-20 20:19:40 -07:00
Jason Volk d0cc5b020b ircd::fs: Minor reorg of fadvise related. 2019-07-12 19:29:51 -07:00
Jason Volk 7157a9cf8b ircd: Handle exceptions before unwind of class member reference. 2019-06-24 02:22:55 -06:00
Jason Volk 5bf62fc33f ircd: Degrade enum addressing for clang. 2019-06-23 07:37:23 -06:00
Jason Volk e0e4bde691 ircd::fs: Fix debug log format string. 2019-06-13 15:33:20 -06:00
Jason Volk 32e94931a7 ircd::fs: Add ability to change basepath values at runtime. 2019-06-06 17:38:12 -07:00
Jason Volk 38bfb56661 ircd::fs: Add typedefs for vector_view's used to build paths. 2019-06-06 17:03:02 -07:00
Jason Volk 143e4bda7b ircd::fs: Add debug log message showing support flags on startup. 2019-06-06 04:44:00 -07:00
Jason Volk c292ec46f2 ircd::fs: Add runtime selection of pwritev(2) and RWF_ features; minor reorg. 2019-06-05 23:25:48 -07:00
Jason Volk 0575f9c500 ircd::fs: Eliminate uses of GNU ifunc. 2019-06-04 16:37:29 -07:00
Jason Volk 129676d06e ircd::fs: Use portable device sysmacros. 2019-06-04 15:05:21 -07:00
Jason Volk 0d88c5326f ircd::fs: Reduce log message impact. 2019-06-02 01:06:14 -07:00
Jason Volk eb73595c50 ircd: Apply uniform info::versions for all dependency version identification. 2019-05-31 16:15:01 -07:00
Jason Volk e670afbac8 ircd::fs: Return zero rather than propagating exception from write_life getter. 2019-05-08 19:10:36 -07:00
Jason Volk 134bcc1bfb ircd::fs: Add write_opts for RWF_WRITE_LIFE_* support. 2019-05-05 17:48:02 -07:00
Jason Volk 7f18bb17e2 ircd::fs: Precondition definition rather than as weak symbol. 2019-05-05 17:47:46 -07:00
Jason Volk 861df761fe ircd::fs: Add runtime support indicators for write_life related features. 2019-05-05 17:46:50 -07:00
Jason Volk 82200a9abd ircd::fs: Add write_life hint fcntl front. 2019-05-03 19:53:05 -07:00
Jason Volk c9ab8c345c ircd::fs: Explicit fcntl.h inclusion in fs.cc. 2019-05-03 06:09:58 -07:00
Jason Volk d9812f3e86 ircd::fs: Add an evict() front to cache interface; add preconditions. 2019-05-03 05:52:12 -07:00
Jason Volk e75c9fe54c ircd::fs: Split and improve fincore(). 2019-05-03 05:48:50 -07:00
Jason Volk d544c37d3d ircd::fs: Abstract the posix_fadvise wrapping. 2019-05-03 03:33:45 -07:00
Jason Volk c0f7daaff4 ircd::fs::aio: Fix warning indicator placement. 2019-04-26 06:21:30 -07:00
Jason Volk a61d04a9c2 ircd::fs: Allow ircd.fs.aio.max_submit=0 to indicate max possible. 2019-04-22 15:40:34 -07:00
Jason Volk acd774c3ee ircd::fs: Make ~fd() noexcept. 2019-04-22 09:16:11 -07:00
Jason Volk 7d55468511 ircd::fs: Add fd::opts getter from open fd. 2019-04-22 09:14:46 -07:00
Jason Volk d08bcc2f32 ircd::fs: Add fd::release() memfn. 2019-04-22 08:55:42 -07:00
Jason Volk f145c6774a ircd::fs: Rename function. 2019-04-21 04:15:10 -07:00
Jason Volk 003f9f771a ircd::fs: Break from read()/write() loops for non-blocking operations without exception. 2019-04-20 22:28:15 -07:00
Jason Volk 900fab1e79 ircd::fs: Propagate EAGAIN without exception for !opts.blocking operations. 2019-04-20 19:29:07 -07:00
Jason Volk fbcd38fa17 ircd::fs: Add a preliminary fincore(1)-like tool. 2019-04-20 19:24:18 -07:00
Jason Volk 4d3727a0a1 ircd::fs: Condition various runtime support on compilation too. 2019-04-17 19:19:30 -07:00
Jason Volk 1eaff2e91e ircd::fs: Runtime binding for pwritev(2)/pwritev2(2) based on kernel version. 2019-04-17 19:19:30 -07:00
Jason Volk 6fbf882e16 ircd::fs: Use GNU indirect function binding to efficiently support RWF_APPEND at runtime. 2019-04-17 19:09:16 -07:00
Jason Volk 7794a92159 ircd::exception: Avoid repeating the system_error message string. 2019-04-11 07:50:48 -07:00
Jason Volk ce9a9e58b4 ircd::fs: Switch to syscall_usage_warning for io_submit and fsync et al. 2019-04-10 20:18:50 -07:00
Jason Volk a1863ba3b2 ircd::fs: Minor cleanup. 2019-04-09 21:08:15 -07:00
Jason Volk 6ff3c88fa4 ircd::fs: Add a wait() interface. 2019-04-07 17:59:52 -07:00
Jason Volk 3bed48011d ircd::fs: Add non-blocking option passed to fd ctor's open(2) fwiw. 2019-04-07 16:45:35 -07:00
Jason Volk 9994836db0 ircd::fs: Add and use dedicated log facility for ircd::fs. 2019-04-07 16:28:21 -07:00
Jason Volk d118a0e743 ircd::fs: Add enumerated op codes to identify request types. 2019-04-06 12:13:16 -07:00
Jason Volk f7dc5f6146 ircd::fs: Add fd fdno ctor. 2019-03-31 23:57:35 -07:00
Jason Volk 6dc50292e8 ircd::fs: Simplify these ifdef conditions. 2019-03-27 19:07:11 -07:00
Jason Volk 1ce9ec3f8e ircd::fs::error: Remove fs::error from the ircd::exception hierarchy. 2019-03-16 18:12:38 -07:00
Jason Volk e752070d06 ircd::fs: Handle zero length buffers in the iov. 2019-03-16 13:49:04 -07:00
Jason Volk 89b258c5a7 ircd::fs: Improve fs::prefetch(). 2019-03-15 21:36:26 -07:00
Jason Volk 20716634a8 ircd::fs: Improve condition for RWF_APPEND/pwritev2() -1 offset value. 2019-03-15 18:45:39 -07:00
Jason Volk 4efb3a26fd ircd::fs: Reorg general RWF_ indicators out to fs:: from aio::. 2019-03-15 18:45:32 -07:00
Jason Volk 353fc35df4 ircd::fs: Don't set -1 offset on systems without RWF_APPEND. 2019-03-15 18:34:35 -07:00
Jason Volk 2a0720c1a0 ircd::fs: Use flags based on system availability. 2019-03-15 16:19:05 -07:00
Jason Volk fbe06f5724 ircd::fs: Rotate more internal bufs in case of reentrance. 2019-03-15 16:19:05 -07:00
Jason Volk 87144cef77 ircd::fs: Support various RWF flags for operations; also preadv2(). 2019-03-14 12:45:00 -07:00
Jason Volk 56092db18c ircd::fs: Move the reqprio() normalizer from fs::aio:: to fs::. 2019-03-13 19:39:20 -07:00
Jason Volk 02435c3672 ircd::fs: Support pwritev2(2). 2019-03-13 19:38:50 -07:00
Jason Volk 1117947a22 ircd::fs::aio: Add support test for RWF_NOWAIT and RWF_APPEND. 2019-03-13 19:38:47 -07:00
Jason Volk f373417b0b ircd::fs: Use for_each rather than transform here. 2019-02-28 17:53:01 -08:00
Jason Volk eb1e510720 ircd::fs: Include <sys/sysmacros.h> if available. 2019-02-15 18:48:59 -08:00
Jason Volk 4d95daf8e3 ircd::fs: Add slice_usage_warning around io_submit() / open(2). 2019-02-12 12:04:01 -08:00
Jason Volk db552e2ec4 ircd::fs: Add interface to filesystem::relative() function. 2019-02-07 20:49:50 -08:00
Jason Volk 7b67b106b6 ircd::fs: Add convenience tls scratch buffers for name and path manip. 2019-02-07 20:49:26 -08:00
Jason Volk 5b3bee79a6 ircd::fs: Normalize buffering for path interface; add path features. 2019-01-25 11:49:24 -08:00
Jason Volk 2886924bf0 ircd::fs: Reorg path interface related. 2019-01-25 10:39:37 -08:00
Jason Volk 14b57f2eac ircd: Rename aio.h/aio.cc with fs_ prefix. 2019-01-23 13:20:38 -08:00
Jason Volk cbf456a388 ircd: Rename and refactor ircd::assertion interface into ircd::panic. 2019-01-13 16:37:31 -08:00
Jason Volk c2103ec0d6 ircd::fs: Add sysfs access interface. 2019-01-01 21:15:10 -08:00
Jason Volk 23c1a87c4c ircd::fs: Add tools for device related. 2019-01-01 19:53:12 -08:00
Jason Volk 663b164f39 ircd::fs: Abstract the common options into opts struct. 2018-12-29 20:02:22 -08:00
Jason Volk 3466597981 ircd::fs: Various reorg; cleanup. 2018-12-29 19:43:17 -08:00
Jason Volk 30dc2ce7ed ircd::fs: Various cleanup / renames. 2018-12-28 15:30:29 -08:00
Jason Volk dad9ec8e44 ircd::fs: Increase default io_submit threshold. 2018-12-27 15:05:21 -08:00
Jason Volk 5fb887096b ircd::fs: Prevent ODR warnings from these weak defs. 2018-12-26 15:49:08 -08:00
Jason Volk 29e7fa3515 ircd::ctx: Use closure for continuation. 2018-12-22 21:03:14 -08:00
Jason Volk 37ba013413 ircd::ctx: Simplify continuation; eliminate to_asio derived type. 2018-12-22 20:11:00 -08:00
Jason Volk c2b344b74e ircd: Allow exceptions to propagate from various interruptors. 2018-12-22 17:24:48 -08:00
Jason Volk 69e3677dd5 ircd::fs: Add instrumentation related for dynamic stack array. 2018-12-21 13:19:34 -08:00
Jason Volk a5ebc28928 ircd::fs::aio: Reorganize with symbol overriding; add conf items. 2018-12-21 13:04:57 -08:00
Jason Volk c3d95aa8de ircd::fs: Remove the thread_local convenience for make_iov(). 2018-12-21 12:57:58 -08:00
Jason Volk 2f36fec41a ircd::fs: Cleanup the duplicate support state indicators. 2018-12-21 12:09:44 -08:00
Jason Volk 152060da36 ircd::fs: Create iov on the stack rather than with tls. 2018-12-21 10:28:51 -08:00
Jason Volk b4910319e0 ircd: Add various comments / documentations. 2018-12-19 12:35:21 -08:00
Jason Volk 582628fb71 ircd::fs: Add read/write options to restart operation on EINTR. 2018-12-18 14:44:25 -08:00
Jason Volk 254d5ccb50 ircd::fs: Add 'all' write option with internal loop. 2018-12-18 14:44:25 -08:00
Jason Volk bb3a68a95e ircd::fs: Handle partial reads internally with 'all' option. 2018-12-18 14:44:25 -08:00
Jason Volk c3cf4c02dd ircd::fs: Use posix iov in AIO interface arguments. 2018-12-18 14:21:09 -08:00
Jason Volk 77a84b18d3 ircd::fs: Add offset to make_iov() suite. 2018-12-18 14:21:09 -08:00
Jason Volk 81ca6fecf4 ircd::fs: Add slice usage warning reasons; simplify conditional logic. 2018-12-17 16:20:54 -08:00
Jason Volk a2a66eb314 ircd::fs: Deinline various error ctor; simplify various error handling. 2018-12-15 20:50:32 -08:00
Jason Volk 2cc7831770 ircd::fs: Add option to bypass AIO for specific operations. 2018-12-15 18:17:59 -08:00
Jason Volk c4d5f03725 ircd::fs: Add compat interface for range flush()/sync(). 2018-12-13 18:04:48 -08:00
Jason Volk 5e8d5562da ircd::fs: Simplify interface. 2018-12-13 17:46:08 -08:00