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

277 commits

Author SHA1 Message Date
Jason Volk 5d23b8657e ircd::ctx: Hook the asio spawn helper. 2020-10-14 02:22:45 -07:00
Jason Volk dba80e17b1 ircd::ctx: Hook the stack allocator. 2020-10-14 02:22:45 -07:00
Jason Volk d1c2e0baeb ircd::ctx: Belay marking entry point until after initial interrupt check. 2020-10-08 20:49:49 -07:00
Jason Volk bfe864663c ircd::ctx: Use proper source for epoch counter. 2020-10-08 20:49:49 -07:00
Jason Volk 98dd705de9 ircd::ctx: Default to DISPATCH method to wrap context switch spawn; simplify stack. 2020-09-08 22:43:30 -07:00
Jason Volk 669c8d0d0f ircd::ctx: Remove leaf attribute; use hot section attribute in unit. 2020-08-23 02:32:54 -07:00
Jason Volk 07830f1413 ircd::ctx: Integrate slice cycle counters with ios. 2020-08-21 10:43:04 -07:00
Jason Volk 1a433f7274 ircd::ctx: Eliminate branch in prof::mark() stack. 2020-08-02 06:42:04 -07:00
Jason Volk ea039f29b5 ircd::ctx: Inline prof::mark() into callsites; remove static w/ indirect jump. 2020-08-02 06:22:33 -07:00
Jason Volk 52013c1ee0 ircd::ctx::list: Reduce out-of-line accessor surface. 2020-07-11 18:51:19 -07:00
Jason Volk a3dc7331cc ircd::ctx::list: Remove from hot section. 2020-07-11 18:13:13 -07:00
Jason Volk 6ec9b2a783 ircd: Specify explicit noexcept for gcc-10 issue. 2020-07-11 17:57:33 -07:00
Jason Volk 505fe310a8 ircd::ctx: Inline various codepaths leading to flags(ctx).
ircd::ctx: Inline cheap prof::get() wrappings.
2020-06-18 03:56:09 -07:00
Jason Volk d00392b90c ircd::ctx: Call any interruption handler even if interrupts disabled. 2020-05-24 20:34:44 -07:00
Jason Volk e938081404 ircd::ctx: Add watchdog log facility. 2020-05-24 17:42:32 -07:00
Jason Volk ac42d4df13 ircd::ctx: Measure and report epoch span for slice_usage_warning. 2020-05-24 17:14:02 -07:00
Jason Volk f070e3b706 ircd::ctx: Condition on RB_DEBUG rather than NDEBUG for slice_usage_warning tool. 2020-05-24 17:14:02 -07:00
Jason Volk 9213d31f1d ircd::ctx: Inline interruptible(ctx, ...) manipulators. 2020-05-19 15:55:18 -07:00
Jason Volk 3c96120e72 ircd::ctx: Add some noexcept; minor comment justification. 2020-05-18 19:57:54 -07:00
Jason Volk 00fe4baa2a ircd::ctx: Add direct flags reference accessor to interface. 2020-05-18 19:57:54 -07:00
Jason Volk d72124f7c6 ircd::ctx: Bring condition_variable up to parity with ctx::dock. 2020-05-04 13:15:45 -07:00
Jason Volk 32230ed2d4 ircd::ctx: Profile peak stack usage at slice leave event. 2020-04-23 12:41:39 -07:00
Jason Volk 5a27958fa0 ircd::ctx: Unify access to ctx::stack, expose structure; remove cruft. 2020-04-23 12:41:38 -07:00
Jason Volk dd1e016ec5 ircd::ctx: Don't zero stack.max at completion. 2020-04-23 12:41:38 -07:00
Jason Volk 6679b66806 ircd::prof: Move ctx::syscall_usage_warning into prof. 2020-03-06 15:43:24 -08:00
Jason Volk 2fbb7d1521 ircd::ctx: Eliminate strand from ctx. 2020-02-27 12:44:57 -08:00
Jason Volk c1737e167c ircd::ios: Employ the asio::executor abstraction w/ backward-compat. 2020-02-27 12:44:57 -08:00
Jason Volk d0b0c4e23c ircd::ctx: Use better namespace identifier on call. 2020-02-25 11:20:16 -08:00
Jason Volk d6d83f6498 ircd::ctx: Move the asio override definition to section; optimize linkage. 2020-02-25 10:35:16 -08:00
Jason Volk ea30ee38f9 ircd::ctx: Optimize asio timer cancel action for ctx::wake(). 2020-02-23 16:23:25 -08:00
Jason Volk 43cf0050ee ircd::ctx: Use post rather than defer for self yield. 2020-02-23 12:15:55 -08:00
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