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 |
|
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 |
|