summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | tor-hsservice: Actually select new intro point relays (fmt)Ian Jackson2023-08-291-2/+6
| | | |
| * | | tor-linkspec: Provide HasRelayIds::has_any_relay_id_from (fmt)Ian Jackson2023-08-291-3/+3
| | | | | | | | | | | | | | | | Worsify formatting as demanded by rustfmt.
| * | | tor-hsservice: Actually select new intro point relaysIan Jackson2023-08-291-9/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I doubt this would work yet because it will probably crash at startup due to the unhandled error case. Handling the error case would have a conflict with !1549 so let's do that later.
| * | | tor-linkspec: Provide HasRelayIds::has_any_relay_id_fromIan Jackson2023-08-292-0/+68
| | | | | | | | | | | | | | | | | | | | This seems logically necessary, and I want to use it in intro point selection.
| * | | tor-netdir: Support for seleting HS intro pointsIan Jackson2023-08-292-0/+10
|/ / / | | | | | | | | | | | | | | | I'm quite unsure about this. Hence the TODOs. I think the API is right, though.
* | | Merge branch 'mgr-split' into 'main'Ian Jackson2023-08-291-4/+19
|\ \ \ | | | | | | | | | | | | | | | | tor-hsservice: ipt mgr: Split up idempotently_progress_things_now See merge request tpo/core/arti!1549
| * | | tor-hsservice: ipt mgr: Split up idempotently_progress_things_nowIan Jackson2023-08-251-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Break publication out of this function, which was rather long. This does seem to make conceptual sense, now I've done it. For example, note how the 2nd half didn't need &mut self, and so doesn't ever `return CONTINUE;`
* | | | Merge branch 'hashx_perf' into 'main'Ian Jackson2023-08-297-29/+31
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | hashx: Additional perf work and cleanup See merge request tpo/core/arti!1555
| * | | | hashx: Cleanup around Instruction and NUM_INSTRUCTIONSMicah Elizabeth Scott2023-08-256-28/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch tries to make some of the expressions around NUM_INSTRUCTIONS more convenient. We can import it directly where it's needed, but most uses are replaced by new type aliases for InstructionArray and InstructionVec. No change to any hashx_cachegrind iai benchmarks
| * | | | hashx: Avoid memcpy in Assembler::finalize()Micah Elizabeth Scott2023-08-251-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a very simple change, just passing 'self' by reference instead of value. The by-value version generates a memcpy of the entire temporary program buffer which doesn't optimize out like I expected it would. The juicy impact here is a much lower cache footprint for compilation, since we avoid having yet another temporary storage location for the program data. generate_compiled_1000x Instructions: 271682605 (-0.627292%) L1 Accesses: 341834751 (-0.813903%) L2 Accesses: 56420 (-39.48365%) RAM Accesses: 618 (-20.25806%) Estimated Cycles: 342138481 (-0.867660%)
* | | | | Merge branch 'hashx-bench-2' into 'main'Ian Jackson2023-08-294-6/+9
|\| | | | | |_|_|/ |/| | | | | | | | | | | RFC: hashx: More arrays and fewer slices See merge request tpo/core/arti!1539
| * | | RustfmtIan Jackson2023-08-253-3/+3
| | | |
| * | | RFC: hashx: Make Architecture::compile take an array refIan Jackson2023-08-254-6/+9
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | generate_interp_1000x Instructions: 219216169 (No change) L1 Accesses: 278017243 (-0.000441%) L2 Accesses: 1257 (+4389.286%) RAM Accesses: 415 (-0.479616%) Estimated Cycles: 278038053 (+0.001744%) generate_interp_1000x_c Instructions: 272748034 (No change) L1 Accesses: 349932964 (No change) L2 Accesses: 76 (-1.298701%) RAM Accesses: 411 (+0.243902%) Estimated Cycles: 349947729 (+0.000009%) generate_compiled_1000x Instructions: 256896028 (+0.175731%) L1 Accesses: 342543838 (+0.131802%) L2 Accesses: 149273 (-10.34924%) RAM Accesses: 810 (-0.246305%) Estimated Cycles: 343318553 (+0.106328%) generate_compiled_1000x_c Instructions: 281855218 (No change) L1 Accesses: 362569035 (-0.000001%) L2 Accesses: 88 (+1.149425%) RAM Accesses: 473 (+0.211864%) Estimated Cycles: 362586030 (+0.000010%) interp_u64_hash_1000x Instructions: 13450926 (No change) L1 Accesses: 16622561 (+0.000024%) L2 Accesses: 28 (No change) RAM Accesses: 390 (-1.015228%) Estimated Cycles: 16636351 (-0.000817%) interp_8b_hash_1000x_c Instructions: 8618541 (No change) L1 Accesses: 12316160 (-0.000008%) L2 Accesses: 80 (No change) RAM Accesses: 433 (+0.231481%) Estimated Cycles: 12331715 (+0.000276%) compiled_u64_hash_100000x Instructions: 87311792 (+0.000520%) L1 Accesses: 94396598 (+0.000463%) L2 Accesses: 215 (+2.380952%) RAM Accesses: 774 (-0.641849%) Estimated Cycles: 94424763 (+0.000304%) compiled_8b_hash_100000x_c Instructions: 91547640 (No change) L1 Accesses: 98838166 (-0.000007%) L2 Accesses: 137 (+3.007519%) RAM Accesses: 488 (+0.618557%) Estimated Cycles: 98855931 (+0.000119%)
* | | Merge branch 'desc-publisher' into 'main'gabi-2502023-08-2511-81/+1073
|\ \ \ | |/ / |/| | | | | | | | | | | | | | tor-hsservice: Add partial descriptor publisher reactor implementation. Closes #977 See merge request tpo/core/arti!1545
| * | tor-hsservice: Add TODOs for the unimplemented parts.Gabriela Moldovan2023-08-251-0/+57
| | |
| * | tor-hsservice: Get rid of an unnecessary clone.Gabriela Moldovan2023-08-251-5/+3
| | |
| * | tor-hsservice: Remove unnecessary validate() function.Gabriela Moldovan2023-08-252-29/+11
| | |
| * | tor-hsservice: If we can't build the descriptor, log the error (fmt).Gabriela Moldovan2023-08-251-12/+15
| | |
| * | tor-hsservice: If we can't build the descriptor, log the error.Gabriela Moldovan2023-08-251-3/+6
| | |
| * | tor-hsservice: Document the non-Event events handled by the Reactor.Gabriela Moldovan2023-08-251-0/+10
| | |
| * | tor-hsservice: Clarify when `descriptor` is expected to be incomplete.Gabriela Moldovan2023-08-251-0/+3
| | |
| * | tor-hsservice: Explain what UPLOAD_RATE_LIM_THRESHOLD is used for.Gabriela Moldovan2023-08-251-0/+5
| | |
| * | tor-hsservice: Document when recompute_hs_dirs should be called.Gabriela Moldovan2023-08-251-0/+8
| | |
| * | tor-hsservice: s/fetch_hsdirs/compute_hsdirs (fmt).Gabriela Moldovan2023-08-251-1/+2
| | |
| * | tor-hsservice: s/fetch_hsdirs/compute_hsdirs.Gabriela Moldovan2023-08-251-3/+3
| | |
| * | tor-hsservice: Use [v].into_iter() instead of iter::once(v).Gabriela Moldovan2023-08-251-1/+1
| | |
| * | tor-hsservice: Handle schedule_upload_rx.recv() errors.Gabriela Moldovan2023-08-251-2/+4
| | |
| * | tor-hsservice: Remove unnecessary argument from recompute_hs_dirs.Gabriela Moldovan2023-08-251-5/+9
| | |
| * | tor-hsservice: Replace the netdir before recomputing the HsDirs.Gabriela Moldovan2023-08-251-2/+2
| | |
| * | tor-hsservice: Add partial descriptor publisher reactor implementation.Gabriela Moldovan2023-08-255-10/+848
| | | | | | | | | | | | | | | | | | | | | | | | This partially implements the descriptor publisher reactor. The code still has many TODOs and there are no tests. Partially implements #977
| * | tor-hsservice: Move PublisherError to a separate module, tweak publisher API.Gabriela Moldovan2023-08-252-5/+47
| | |
| * | tor-hsservice: Make wait_for_netdir* more widely available.Gabriela Moldovan2023-08-253-63/+78
| | | | | | | | | | | | | | | `wait_for_netdir` is needed by the descriptor publisher (to compute the initial netdir).
| * | tor-hscrypto: Impl From<&HsBlindIdKeypair> for HsBlindIdKey.Gabriela Moldovan2023-08-252-0/+8
| | | | | | | | | | | | This will be used by the descriptor publisher when building descriptors.
| * | tor-hscrypto: Add a function for deriving the subcredential.Gabriela Moldovan2023-08-252-3/+16
|/ / | | | | | | | | | | This function will be used by the descriptor publisher (it needs to generate descriptors, and for that it needs the subcredential, which can be derived from the `HsBlindIdKey` and `TimePeriod`).
* | Merge branch 'ci' into 'main'gabi-2502023-08-253-24/+30
|\ \ | | | | | | | | | | | | | | | | | | Pin CI images to specific Debian release Closes #1020 See merge request tpo/core/arti!1553
| * | CI: Replace all uses of `debian:stable-slim` with `bookworm`Ian Jackson2023-08-251-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Thesee jobs are ones which don't interact with our Rust executables. Since `debian:stable-slim` has already been updated I believe, I think this actually makes no difference right now. But it will prevent us unexpectedly picking up Debian updates.
| * | CI: Replace all uses of `rust:latest` image with `rust:bullseye`Ian Jackson2023-08-251-13/+13
| | | | | | | | | | | | | | | `rust:latest` updates to a new Debian willy-nilly, which broke our CI due to it being an uncontrolled dependency.
| * | CI: cargo install caching: Use cache/ directory, per-imageIan Jackson2023-08-252-7/+12
| | | | | | | | | | | | | | | | | | This avoids us trying to run binaries built on one image, on a different one. I believe that this is supposed to work according to Rust doctrine, but empirically it doesn't.
| * | Run maint/add-warningIan Jackson2023-08-251-0/+1
|/ / | | | | | | Yet another new module concurrently with a new lint.
* | Merge branch 'hashx-bench-3' into 'main'Ian Jackson2023-08-255-8/+319
|\ \ | | | | | | | | | | | | hashx: More arrays (redux), unsafe FixedCapacityVec See merge request tpo/core/arti!1538
| * | hashx: FixedCapacityVec: Fix clippy lintsIan Jackson2023-08-241-4/+3
| | |
| * | RustfmtIan Jackson2023-08-244-6/+12
| | |
| * | hashx: FixedCapacityVec: impl Send, Sync, [Ref]UnwindSafeIan Jackson2023-08-241-0/+13
| | |
| * | hashx: FixedCapacityVec: TestsIan Jackson2023-08-241-0/+105
| | | | | | | | | | | | These pass miri too.
| * | hashx: FixedCapacityVec: introduce push_innerIan Jackson2023-08-241-7/+21
| | | | | | | | | | | | | | | | | | To support testing. No change to iai benchmarks.
| * | hashx: FixedCapacityVec: use *mut T, and impl DropIan Jackson2023-08-241-24/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | generate_interp_1000x Instructions: 219216169 (-0.408535%) L1 Accesses: 278018470 (-0.322766%) L2 Accesses: 28 (+12.00000%) RAM Accesses: 417 (+0.724638%) Estimated Cycles: 278033205 (-0.322706%) generate_interp_1000x_c Instructions: 272748034 (No change) L1 Accesses: 349932964 (-0.000002%) L2 Accesses: 77 (+1.315789%) RAM Accesses: 410 (+1.234568%) Estimated Cycles: 349947699 (+0.000050%) generate_compiled_1000x Instructions: 256445375 (-0.349434%) L1 Accesses: 342092951 (-0.266541%) L2 Accesses: 166505 (+9.182175%) RAM Accesses: 812 (+0.370828%) Estimated Cycles: 342953896 (-0.245532%) generate_compiled_1000x_c Instructions: 281855218 (No change) L1 Accesses: 362569037 (-0.000002%) L2 Accesses: 87 (No change) RAM Accesses: 472 (+1.287554%) Estimated Cycles: 362585992 (+0.000056%) interp_u64_hash_1000x Instructions: 13450926 (-0.006631%) L1 Accesses: 16622557 (-0.005384%) L2 Accesses: 28 (No change) RAM Accesses: 394 (+0.510204%) Estimated Cycles: 16636487 (-0.004959%) interp_8b_hash_1000x_c Instructions: 8618541 (No change) L1 Accesses: 12316161 (-0.000032%) L2 Accesses: 80 (No change) RAM Accesses: 432 (+0.934579%) Estimated Cycles: 12331681 (+0.001103%) compiled_u64_hash_100000x Instructions: 87311338 (-0.001022%) L1 Accesses: 94396161 (-0.000947%) L2 Accesses: 210 (-0.943396%) RAM Accesses: 779 (+0.386598%) Estimated Cycles: 94424476 (-0.000846%) compiled_8b_hash_100000x_c Instructions: 91547640 (No change) L1 Accesses: 98838173 (-0.000003%) L2 Accesses: 133 (-0.746269%) RAM Accesses: 485 (+0.831601%) Estimated Cycles: 98855813 (+0.000134%)
| * | hashx: FixedCapacityVec: Note some missing stuffIan Jackson2023-08-241-0/+12
| | |
| * | hashx: FixedCapacityVec: DocumentationIan Jackson2023-08-241-0/+27
| | |
| * | hashx: FixedCapacityVec: Replace .into_boxed_array method with TryIan Jackson2023-08-242-9/+16
| | | | | | | | | | | | | | | This version pushes the panic into the call site, which seems much better. No change to the iai results.
| * | hashx: FixedCapacityVec: Move into its own moduleIan Jackson2023-08-245-71/+80
| | |