0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-26 00:32:35 +01:00
Commit graph

255 commits

Author SHA1 Message Date
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
40b3bdaa89 ircd::ctx::prof: Add uint argument for rdpmc; minor cleanup. 2019-03-31 13:24:11 -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
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
07b746d633 ircd::ctx: Add scope_notify device. 2019-03-21 16:46:04 -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
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
54224e9679 ircd::ctx: Add allocator to ctx::queue template. 2019-02-28 11:34:45 -08:00
Jason Volk
43797c2b74 ircd::ctx::queue: Switch to std::deque backing. 2019-02-28 10:12:30 -08:00
Jason Volk
4f721f48e5 Eliminate friend-injection. 2019-02-15 18:48:59 -08:00
Jason Volk
b687d63169 ircd::ctx: Create and use log facility. 2019-02-07 00:17:26 -08:00
Jason Volk
a30c808b0e ircd: Start a README.md for any directory missing one; fix conformity of existing. 2019-01-26 12:29:08 -08:00
Jason Volk
3e9b830206 ircd::ctx::parallel: Block interruption when calling sender(). 2019-01-25 17:03:29 -08:00
Jason Volk
79dc0955b4 ircd::ctx::parallel: Fix counter regressions. 2019-01-22 14:25:05 -08:00
Jason Volk
defed2c008 ircd::ctx::parallel: Use monotonic counters only; use copy for closure argument. 2019-01-21 12:22:50 -08:00
Jason Volk
52e6c28383 ircd::ctx::parallel: Simplify internal interface. 2019-01-18 14:54:04 -08:00
Jason Volk
8f4fe97286 ircd::ctx::parallel: Various cleanup; clarify counting mechanisms. 2019-01-17 15:51:41 -08:00
Jason Volk
4871928bfa ircd::ctx: Partial de-inline of dock methods. 2019-01-13 13:57:34 -08:00
Jason Volk
84265c3a13 ircd::ctx::parallel: Ensure the counters are not affected by exceptions. 2019-01-01 21:15:10 -08:00
Jason Volk
7f4bb1a7db ircd::ctx::parallel: Handle case for empty pool by executing receiver immediately. 2019-01-01 21:15:10 -08:00
Jason Volk
254e6c287d ircd::ctx: Synchronize workers before rethrowing the eptr. 2019-01-01 17:05:15 -08:00
Jason Volk
16ebbbfa8a ircd::ctx: Move and adjust default stack size. 2018-12-28 14:07:40 -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
c9c280c864 ircd::ctx: Simplify queue interface; remove access to dock. 2018-12-28 12:42:08 -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
73459e75ff ircd::ctx: Update assumptions for yielding during pool submit. 2018-12-27 16:30:04 -08:00
Jason Volk
4c5891e354 ircd::ctx: Block the caller after submit when parallel saturated. 2018-12-26 17:35:49 -08:00
Jason Volk
b0d5e5d4c8 ircd::ctx: Improve ctx::parallel template. 2018-12-26 17:19:03 -08:00
Jason Volk
3d79c94bb2 ircd::ctx: Add ctx::parallel device. 2018-12-24 18:36:56 -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
b8fd399bf4 ircd::ctx: Remove this export down to ircd::. 2018-12-23 15:23:53 -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
365cf865d0 ircd::ctx: Various improvements/reorg of continuation/to_asio. 2018-12-22 17:24:48 -08:00
Jason Volk
d5ffc6b0de ircd::ctx: Improve prof related; add full ticker of counters. 2018-12-22 15:17:18 -08:00
Jason Volk
39d4f2fb83 ircd::ctx: Expose the profile state struct in the prof:: interface. 2018-12-22 13:47:13 -08:00
Jason Volk
a590ad1a03 ircd::ctx: Another attempt at using continuation dtor as an interruption point. 2018-12-22 13:36:48 -08:00
Jason Volk
f9ee616a9a ircd::ctx::prof: Use a profile instance as a totals counter. 2018-12-21 11:55:43 -08:00
Jason Volk
9d7a53ae49 ircd::ctx: Move resume-interruption point to this_ctx::wait() suite. 2018-12-20 13:27:21 -08:00
Jason Volk
a7b2f76c11 ircd::ctx: Add slice_usage_warning device. 2018-12-17 16:20:53 -08:00
Jason Volk
4686139f8e ircd::ctx: Rework the prof stack to make a public test interface. 2018-12-17 15:24:41 -08:00
Jason Volk
ba10948e9d ircd::ctx: Move principal interruption point into continuation. 2018-12-16 18:37:51 -08:00
Jason Volk
2a23d9e6dd ircd::ctx: Add more interface access to pool/queue; various cleanup. 2018-12-16 16:27:11 -08:00
Jason Volk
72859c650b ircd::ctx: Convert various name character strings to string_view. 2018-12-16 16:27:11 -08:00
Jason Volk
ad46a3e49a ircd::ctx: Relax object permissions. 2018-12-15 23:05:48 -08:00
Jason Volk
399198deac ircd::ctx: Add flags for slice and stack usage watchdog exemption. 2018-12-13 16:21:54 -08:00
Jason Volk
4a2ad1c186 ircd::ctx: Reorg continuation for core wakeup conditions. 2018-12-07 12:31:30 -08:00
Jason Volk
9eabd745f5 ircd::ctx: Minor cleanup. 2018-12-07 12:03:25 -08:00
Jason Volk
3af70e75c3 ircd::ctx: Minor cleanup / struct packing / type. 2018-12-07 10:13:29 -08:00
Jason Volk
4e01d2c0a4 ircd::ctx: Remove local typedef to use outer ircd:: typedef. 2018-12-07 10:13:14 -08:00
Jason Volk
ce237e0b10 ircd::ctx: Export this_ctx:: to ircd. 2018-12-06 19:16:47 -08:00
Jason Volk
0c4e39b023 ircd::ctx: Relax assertion. 2018-12-05 15:15:36 -08:00
Jason Volk
c74debac01 ircd::ctx: Cleanup / fixes for critical assertion related. 2018-11-29 16:12:33 -08:00
Jason Volk
c891b82ebd ircd::ctx: Relayout members for package. 2018-11-15 18:46:40 -08:00
Jason Volk
48a15e026b ircd::ctx::prof: Convert the settings into conf items. 2018-11-14 18:45:10 -08:00
Jason Volk
9222de0b34 ircd::ctx: Add access to rdtsc through ctx::prof; minor comments. 2018-11-14 16:55:46 -08:00
Jason Volk
fea02ba300 ircd::ctx::latch: Minor rename; add explicit move semantic. 2018-11-13 19:05:16 -08:00
Jason Volk
67e6c63580 ircd::ctx: Add additional shared_mutex timed functionality. 2018-11-13 19:05:16 -08:00
Jason Volk
fe45b08f8a ircd::ctx: Refactor mutexes to reuse ctx::dock for queueing. 2018-11-13 19:05:16 -08:00
Jason Volk
8cbb354c64 ircd::ctx: Fix move assignment semantics. 2018-11-13 19:05:16 -08:00
Jason Volk
bbe676a392 ircd::ctx: Split this_ctx devices into files; minor interface tweaks. 2018-11-11 14:13:37 -08:00
Jason Volk
a91cdeec0c ircd::ctx: Reorg / abstract / deinline promise related. 2018-10-30 12:18:16 -07:00
Jason Volk
3ffb91d0fd ircd::ctx: Deinline to_asio continuation ctor. 2018-10-21 01:09:07 -07:00
Jason Volk
10d59dec9a ircd::ctx::dock: Make notify() an unconditional notify rather than direct jump. 2018-10-21 01:00:41 -07:00
Jason Volk
66a936233a ircd::ctx::queue: Add waiter counter. 2018-10-21 00:44:07 -07:00
Jason Volk
f369af944b ircd::ctx: Remove unused peek. 2018-10-06 22:16:37 -07:00
Jason Volk
d13ed5854b ircd::ctx::queue: Remove exception assertion on pops. 2018-09-19 01:44:13 -07:00
Jason Volk
592ad284f9 ircd::ctx::queue: Simplify pops; universal push. 2018-09-18 23:53:44 -07:00
Jason Volk
d2fbc30d4e ircd::ctx: Use better notify member here. 2018-09-18 21:41:21 -07:00
Jason Volk
be7a20d39a ircd::ctx: Move any renotifying to the ctx::dock itself. 2018-09-18 21:35:27 -07:00
Jason Volk
3b960d2576 ircd: Add misc assertions. 2018-09-18 21:24:19 -07:00
Jason Volk
5698637dd6 ircd::ctx::pool: Use ctx::queue for pool's queue. 2018-09-18 16:45:04 -07:00
Jason Volk
a66c312c92 ircd::ctx::queue: Renotify the dock on context interruption, then propagate. 2018-09-18 16:43:50 -07:00
Jason Volk
7d94b1c17b ircd: Relax noexcept in std::function template declarations. 2018-09-13 05:12:25 -07:00
Jason Volk
5e06c4795b ircd: Replace any std::uncaught_exception() -> std::uncaught_exceptions(). 2018-09-13 05:02:24 -07:00
Jason Volk
5f9c12bddc ircd::ctx: Break down when() templates; fix mutability. 2018-08-30 21:20:43 -07:00
Jason Volk
4b2ff18f6c ircd::ctx: Add ADL'ed state() convenience for promise template. 2018-08-30 19:53:16 -07:00
Jason Volk
0f2dd85a47 ircd::ctx: Disable interrupt for the view producer sequence. 2018-08-28 18:58:09 -07:00
Jason Volk
76e48b3ef3 ircd::ctx: Test for valid then() before calling from here. 2018-08-28 18:58:09 -07:00
Jason Volk
edbc0984c5 ircd::ctx: Linkage for default and move semantics of ctx::context. 2018-08-26 20:46:59 -07:00
Jason Volk
0eaa2fe211 ircd::ctx: Add motivation section to README. 2018-08-26 20:46:59 -07:00
Jason Volk
04175d62b2 ircd::ctx: Object semantics on unlock_guard<>. 2018-08-26 20:46:59 -07:00
Jason Volk
600a73d566 ircd::ctx: Add an upgrade_lock<> template. 2018-08-26 20:46:59 -07:00
Jason Volk
3a8f3c58de ircd::ctx: Add some indicators on shared_mutex. 2018-08-26 18:01:12 -07:00
Jason Volk
26d062e3f7 ircd::ctx: Fix erroneous have-include guard here. 2018-08-26 17:19:53 -07:00
Jason Volk
6cdb1bba63 ircd::ctx: Add pool::set convenience. 2018-08-22 14:37:40 -07:00
Jason Volk
ff66bc441c ircd::ctx: Stack uninterruptible's gracefully; assume context. 2018-08-19 20:11:41 -07:00
Jason Volk
f4a4674daa ircd::ctx::pool: Add a terminate(); cleanup del(). 2018-08-19 15:55:35 -07:00
Jason Volk
32c0d08928 ircd::ctx: Minor cleanup. 2018-08-19 15:53:10 -07:00
Jason Volk
0a822212e1 ircd::ctx: Add latch (concurrency TS). 2018-08-18 19:29:00 -07:00
Jason Volk
a33b4b05de ircd::ctx: Proper condition variable exclusion semantics. 2018-08-17 13:30:04 -07:00
Jason Volk
83cbfea75d ircd::ctx: Minor cleanup. 2018-08-15 08:21:03 -07:00
Jason Volk
668d12bf72 ircd::ctx: Fix future_state test grate. 2018-07-06 16:33:53 -07:00
Jason Volk
da5d767431 ircd::ctx: Fix pointer punning in promise / shared_state. 2018-07-06 00:26:34 -07:00
Jason Volk
b8aba99ed4 ircd::ctx: Assert release sequence is happening on ctx. 2018-06-01 12:36:46 -07:00