0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-07-04 17:48:35 +02:00
Commit graph

296 commits

Author SHA1 Message Date
Jason Volk c3349b9d40 ircd::ctx::dock: Add convenience interface for interrupt/terminate/notify. 2020-02-19 16:16:53 -08:00
Jason Volk 43f5ebe8e3 ircd::ctx: Inline the interruptible/uninterruptible instanced interface. 2020-02-19 08:40:15 -08:00
Jason Volk 0fd8019149 ircd::ctx: Use thread_local keyword for current. 2020-02-11 12:18:25 -08:00
Jason Volk 4ef3f6eab7 ircd::ctx: Add nice/ionice values to pool opts; propagate on spawn. 2020-01-06 12:19:38 -08:00
Jason Volk 78d300b3b7 ircd::ctx: Add nice/ionice values to context. 2020-01-06 12:19:38 -08:00
Jason Volk df79d61395 ircd::util: Elide std::function overhead for util::unwind suite. 2019-12-03 13:39:49 -08:00
Jason Volk b415ec3125 ircd::ctx: Remove branch never taken. 2019-10-10 19:57:46 -07:00
Jason Volk 7afb295c09 ircd::ctx: Partial inline continuation. 2019-10-10 19:33:49 -07:00
Jason Volk 5ac73dc7f9 ircd::ctx: Remove return prefetches here. 2019-10-09 23:55:49 -07:00
Jason Volk 864afd78e4 ircd::ctx: Fix trivial branch sequence causing L2 => I1 miss; hot section. 2019-10-09 22:07:17 -07:00
Jason Volk 7e21c1c8db ircd::ctx: Ensure assert_critical() callsite DCE in non-debugmode. 2019-10-09 16:30:08 -07:00
Jason Volk 8981439867 ircd::ctx::context: Add POST flag for bare-metal constructions; minor cleanup. 2019-10-03 13:46:12 -07:00
Jason Volk d3809d43e5 Reorganize Makefiles. 2019-09-27 19:35:26 -07:00
Jason Volk 39ade19ae3 ircd::ctx: Switch from steady_timer to deadline_timer. 2019-09-22 20:59:54 -07:00
Jason Volk 320af9e9b8 ircd::ctx: Add context::DEFER flag; cleanup ios::descriptor set. 2019-09-22 18:28:07 -07:00
Jason Volk 3e648fff19 ircd::ctx: Use a continuation in spawn to straddle any direct context switch. 2019-09-22 18:02:46 -07:00
Jason Volk 2f88540f3c ircd::ctx: Expose critical_assertion related details. 2019-09-22 17:35:20 -07:00
Jason Volk 4a51b3382c ircd::ctx: Move the internal ctx struct ctor out of class. 2019-09-22 16:44:34 -07:00
Jason Volk 41646091f8 ircd::ctx: Experimental mitigations for return address misprediction on context switch. 2019-09-22 16:09:15 -07:00
Jason Volk 0fff520a72 ircd::ctx::ctx: Split the interruption condition check from the throwing code. 2019-09-22 16:09:15 -07:00
Jason Volk e2ed860c04 ircd::ctx::pool: Add wouldblock() convenience to interface. 2019-09-18 20:05:51 -07:00
Jason Volk 4ed000e6ab ircd::ios: Comment on constant_tsc issues with operating system suspend/hibernate. 2019-09-14 18:15:09 -07:00
Jason Volk b980461a62 ircd::ctx: Relax assertion for nested interruption masks. 2019-09-12 18:37:33 -07:00
Jason Volk 949c765cd9 ircd::ctx: Additional internal wrappers in hot section. 2019-09-10 15:23:44 -07:00
Jason Volk ba11205f2c ircd::ctx::dock: Add query to find if ctx is waiting on dock. 2019-09-10 11:06:16 -07:00
Jason Volk efdc626495 ircd::ctx::list: Add typedefs for iteration suite closures. 2019-09-10 11:06:16 -07:00
Jason Volk b6149b429e ircd::ctx::dock: Add noexcept to interface observers.
ircd::ctx: Propagate noexcept on hot leafs;

ircd::ctx::list: Deinline size().
2019-09-10 11:06:11 -07:00
Jason Volk 42d56a7bac ircd::ctx: Fix inconsistent refcount() behavior. 2019-09-08 18:22:05 -07:00
Jason Volk a6747ad3a0 ircd::ctx::promise_base: Add refcount(promise_base&) to suite. 2019-09-08 16:33:38 -07:00
Jason Volk 5b2216fb63 ircd::ctx::shared_state_base: Add assertions; comments; minor cleanup. 2019-09-08 16:31:21 -07:00
Jason Volk 0a4cfc59be ircd::ctx: Minor cleanup; tweak promise union; noexcept and linkage for ctors. 2019-09-07 13:45:43 -07:00
Jason Volk 01c364cc24 ircd::ctx: Minor cleanup for promise/future list traversal; remove mutable_cast. 2019-09-04 15:40:30 -07:00
Jason Volk a205e722f3 ircd::ctx: Fix valid pointer range condition. 2019-09-03 22:09:43 -07:00
Jason Volk 2c20f0a659 ircd::ctx: Fix invalidation of the promise list head after ready.
ircd::ctx: Fix check for pending on invalidate_futures().
2019-09-03 17:55:05 -07:00
Jason Volk 1210523757 ircd::ctx: Support shared futures. 2019-09-03 15:56:14 -07:00
Jason Volk 84c1aef0d6 ircd::ctx: Ensure a full-width zero'ing. 2019-09-03 13:52:28 -07:00
Jason Volk c53a1fa12b ircd::ctx: Set zero values after base frame unwind. 2019-08-27 20:58:52 -07:00
Jason Volk 765ec46b91 ircd::ctx::promise: Inline trivial accessors; explicit bool operator. 2019-08-13 20:53:02 -07:00
Jason Volk 42b65fa271 ircd::ctx: Add noexcept specifications; tweak inlines. 2019-08-13 20:26:08 -07:00
Jason Volk 009d417273 ircd: Indicate noexcept on advised interfaces. 2019-08-05 16:19:20 -07:00
Jason Volk ea1cd3f73d ircd::ctx: Make spawn() a ctx member function; add comments/doc. 2019-07-24 13:21:48 -07:00
Jason Volk 7dcd3fdcd8 ircd: Improve log format consistency. 2019-07-23 17:31:16 -07:00
Jason Volk bde9e16e5c ircd::ctx: Inline cur_slice_cycles().
modules/media/magick: Use this_ctx::cycles_here().

ircd::ctx: Improve prof::cycles API related.
2019-07-23 16:40:29 -07:00
Jason Volk 6c9dbdbef5 ircd::ctx: Add queued(ctx) state to interface. 2019-07-21 18:07:26 -07:00
Jason Volk e36a3035a4 ircd::ctx: Use a pseudo ios::descriptor to include contexts in ircd::ios. 2019-07-21 17:55:58 -07:00
Jason Volk 471c08a41e ircd::ctx: Split exception_handler w/ cxxabi header requirement. 2019-07-21 15:29:16 -07:00
Jason Volk d19e960c58 ircd: Split ctx::ole to definition file. 2019-07-11 15:51:09 -07:00
Jason Volk be0fad506e ircd::ctx: Move macro condition to internal header. 2019-07-11 15:51:09 -07:00
Jason Volk ab25346534 ircd::ctx: Tweak exception_handler. 2019-07-09 02:33:27 -07:00
Jason Volk 7af8e5774c ircd::ios: Add no-op synchronous defer overload; use w/ this_ctx::yield(). 2019-07-05 17:37:04 -07:00
Jason Volk 708b34092f ircd::ctx: Handle exception before unwind of class members; comments. 2019-06-23 16:46:41 -07:00
Jason Volk cf3b1218c4 ircd: Misc fixes for clang. 2019-06-23 16:22:06 -06:00
Jason Volk 801f0d57b7 ircd: Fix attributes for clang. 2019-06-23 07:37:23 -06:00
Jason Volk 534afe8859 ircd: No need to move x-values. 2019-06-22 17:36:42 -06:00
Jason Volk 3ccb7c1faa ircd: Belay narrowing conversions. 2019-06-22 17:36:37 -06:00
Jason Volk b06670266d ircd::ctx: Add assertion on slice_enter TSC. 2019-06-05 12:57:19 -07:00
Jason Volk 8474b891eb ircd::ctx: Rename function; add overload for total value. 2019-05-26 02:49:24 -07:00
Jason Volk e88f18d65c ircd::ctx: Internalize prof::mark() for unconditional event counting. 2019-05-26 02:49:24 -07:00
Jason Volk ddc17f424d ircd::ctx: Use defer rather than post here. 2019-05-02 21:43:27 -07:00
Jason Volk 30b59f4736 ircd::prof: Reorg; deinline various; add comments. 2019-04-25 21:10:45 -07:00
Jason Volk eaec5cb65e ircd::ctx: Make this a critical error. 2019-04-24 16:28:42 -07:00
Jason Volk 4db52804cb ircd::ctx: Use iteration closure rather than exposing ctx::list. 2019-04-19 20:50:22 -07:00
Jason Volk 4038973297 ircd::util: Use allocator::node for instance_list instances. 2019-04-16 20:48:00 -07:00
Jason Volk 0e0d95b266 ircd::ctx: Fix comment error. 2019-04-15 14:44:58 -07:00
Jason Volk 8c68a24e1f ircd::ctx::prof: Add cycle counter to ticker array. 2019-04-12 15:58:06 -07:00
Jason Volk d8bf5b9fff ircd::ctx: Add a syscall_usage_warning to suite. 2019-04-10 20:18:50 -07:00
Jason Volk 3a68b65fe8 ircd::ctx: Optimize with no_stack_unwind attribute since it's done by us. 2019-04-05 18:12:23 -07:00
Jason Volk 63c850b123 ircd: Rename perf:: to prof::. 2019-04-03 15:51:42 -07:00
Jason Volk 403bf52867 ircd::perf: Start a perf profiling subsystem; move ctx::prof counter utils. 2019-03-31 18:16:18 -07:00
Jason Volk 672bb6f10c ircd::ctx: Fix detach-mode deallocation points. 2019-03-30 13:08:04 -07:00
Jason Volk 55241c5309 ircd::ctx: Expand the reference cycle counting interface. 2019-03-27 13:04:12 -07:00
Jason Volk 28063823dd ircd::ctx: Inline rdtsc(). 2019-03-27 13:04:12 -07:00
Jason Volk d2546120ee ircd: Add descriptor participation for all asynchronous operations. 2019-03-27 13:04:12 -07:00
Jason Volk 3bc716e0f5 ircd::ctx: Assert ctx doesn't finish with uncaught exceptions. 2019-03-27 13:04:12 -07:00
Jason Volk 6fbd29b1ed ircd::ctx: Add context::WAIT_JOIN feature flag. 2019-03-27 13:04:12 -07:00
Jason Volk 77648137e9 Revert "ircd: Remove use of all unwind::exceptional and unwind::nominal devices."
This reverts commit 4f243826c2.
2019-03-22 21:06:28 -07:00
Jason Volk 712409218e ircd::ctx: Manipulate uncaught exception count on context switch. 2019-03-22 21:06:28 -07:00
Jason Volk 5be75970e0 ircd::ctx: Ensure no rethrow from destructor. 2019-03-17 15:35:19 -07:00
Jason Volk cff17eaa40 ircd: Add exception tools which elide copying. 2019-03-16 16:28:28 -07:00
Jason Volk 4f243826c2 ircd: Remove use of all unwind::exceptional and unwind::nominal devices. 2019-03-12 18:41:05 -07:00
Jason Volk 47bcfaecb4 ircd: Upgrade various templates with argument deduction. 2019-03-02 14:20:52 -08:00
Jason Volk 87ace85840 ircd::ctx::promise: Add missing valid() checks on operations. 2019-02-28 17:12:04 -08:00
Jason Volk af6ac4a2ac ircd: Replace various unwind count patterns with scope_count. 2019-02-28 17:12:03 -08:00
Jason Volk 95dbc571f8 ircd::ctx: Support slice_usage_warning outside of context system too. 2019-02-12 12:04:01 -08:00
Jason Volk b687d63169 ircd::ctx: Create and use log facility. 2019-02-07 00:17:26 -08:00
Jason Volk d639eceba2 ircd: Move runlevel related into ircd::run:: namespace. 2019-01-18 09:08:56 -08:00
Jason Volk 1a53b0e6e4 ircd::ctx: Improve exception handling at base frame. 2019-01-13 16:37:31 -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 4871928bfa ircd::ctx: Partial de-inline of dock methods. 2019-01-13 13:57:34 -08:00
Jason Volk 16ebbbfa8a ircd::ctx: Move and adjust default stack size. 2018-12-28 14:07:40 -08:00
Jason Volk a66d5082d7 ircd::ctx: Prevent spawning initial pool contexts when no ios available. 2018-12-28 13:24:33 -08:00
Jason Volk 4a47b39298 ircd::ctx: Create and use an options structure for ctx::pool. 2018-12-28 12:57:32 -08:00
Jason Volk 5ae69dde95 ircd::ctx: Check for termination to condition pool work loop. 2018-12-27 17:20:43 -08:00
Jason Volk 364302c212 ircd::ctx: Add soft and hard limit logic for submitting to pool. 2018-12-27 17:20:42 -08:00
Jason Volk 9f70ce1b28 ircd::ctx: Add pool::min() convenience. 2018-12-24 16:20:03 -08:00
Jason Volk 387e8b8eed ircd::ctx: Improve pool loop; improve log msg; add interruption point. 2018-12-24 12:06:05 -08:00
Jason Volk 70ebf4b066 ircd::ctx: Use thread_local for these. 2018-12-23 17:26:41 -08:00
Jason Volk 599831f680 ircd::ctx: Condition the prof checks on NDEBUG. 2018-12-22 21:27:19 -08:00
Jason Volk 894a947e24 ircd::ctx: Add specific define to activate prof::mark() for build. 2018-12-22 21:17:12 -08:00
Jason Volk 29e7fa3515 ircd::ctx: Use closure for continuation. 2018-12-22 21:03:14 -08:00