summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | 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%)
* | | 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-254-10/+842
| | | | | | | | | | | | | | | | | | | | | | | | 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`).
* | 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
| |
| * RustfmtIan Jackson2023-08-233-9/+9
| |
| * RFC: hashx: Introduce FixedCapacityVecIan Jackson2023-08-233-6/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is quite shoddy. It shouldn't be merged without some tidying up and unit tests and so on. Also I am confused about the difference between NUM_INSTRUCTIONS and model::REQUIRED_INSTRUCTIONS. However: generate_interp_1000x Instructions: 220115418 (-1.147100%) L1 Accesses: 278918725 (-0.936103%) L2 Accesses: 25 (-98.46248%) RAM Accesses: 414 (-0.956938%) Estimated Cycles: 278933340 (-0.938920%) generate_interp_1000x_c Instructions: 272748034 (No change) L1 Accesses: 349932970 (+0.000001%) L2 Accesses: 76 (-1.298701%) RAM Accesses: 405 (-0.491400%) Estimated Cycles: 349947525 (-0.000021%) generate_compiled_1000x Instructions: 257344624 (-0.982784%) L1 Accesses: 343007206 (-0.753942%) L2 Accesses: 152502 (-17.12839%) RAM Accesses: 809 (-0.369458%) Estimated Cycles: 343798031 (-0.797384%) generate_compiled_1000x_c Instructions: 281855218 (No change) L1 Accesses: 362569043 (+0.000002%) L2 Accesses: 87 (-4.395604%) RAM Accesses: 466 (-0.427350%) Estimated Cycles: 362585788 (-0.000023%) interp_u64_hash_1000x Instructions: 13451818 (-0.100680%) L1 Accesses: 16623452 (-0.105967%) L2 Accesses: 28 (No change) RAM Accesses: 392 (-1.507538%) Estimated Cycles: 16637312 (-0.107138%) interp_8b_hash_1000x_c Instructions: 8618541 (No change) L1 Accesses: 12316165 (+0.000032%) L2 Accesses: 80 (-2.439024%) RAM Accesses: 428 (-0.465116%) Estimated Cycles: 12331545 (-0.000616%) compiled_u64_hash_100000x Instructions: 87312230 (-1.358594%) L1 Accesses: 94397055 (-1.669415%) L2 Accesses: 212 (-0.469484%) RAM Accesses: 776 (-0.767263%) Estimated Cycles: 94425275 (-1.669144%) compiled_8b_hash_100000x_c Instructions: 91547640 (No change) L1 Accesses: 98838176 (+0.000009%) L2 Accesses: 134 (-4.964539%) RAM Accesses: 481 (-0.414079%) Estimated Cycles: 98855681 (-0.000097%)
| * RFC: hashx: Make Program a boxed arrayIan Jackson2023-08-231-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | generate_interp_1000x Instructions: 222669662 (-0.146601%) L1 Accesses: 281554367 (+0.069275%) L2 Accesses: 1623 (-90.13494%) RAM Accesses: 418 (No change) Estimated Cycles: 281577112 (+0.042908%) generate_interp_1000x_c Instructions: 272748034 (No change) L1 Accesses: 349932970 (+0.000001%) L2 Accesses: 74 (No change) RAM Accesses: 407 (-0.731707%) Estimated Cycles: 349947585 (-0.000029%) generate_compiled_1000x Instructions: 259898868 (-0.124860%) L1 Accesses: 345603941 (+0.055045%) L2 Accesses: 193008 (-4.001910%) RAM Accesses: 812 (-0.490196%) Estimated Cycles: 346597401 (+0.043228%) generate_compiled_1000x_c Instructions: 281855218 (No change) L1 Accesses: 362569040 (+0.000000%) L2 Accesses: 88 (+2.325581%) RAM Accesses: 468 (-0.636943%) Estimated Cycles: 362585860 (-0.000026%) interp_u64_hash_1000x Instructions: 13465375 (-0.024687%) L1 Accesses: 16641089 (-0.028974%) L2 Accesses: 25 (+8.695652%) RAM Accesses: 398 (+0.505051%) Estimated Cycles: 16655144 (-0.028470%) interp_8b_hash_1000x_c Instructions: 8618541 (No change) L1 Accesses: 12316165 (+0.000016%) L2 Accesses: 78 (No change) RAM Accesses: 430 (-0.462963%) Estimated Cycles: 12331605 (-0.000551%) compiled_u64_hash_100000x Instructions: 88514787 (-0.000365%) L1 Accesses: 95999693 (+0.000196%) L2 Accesses: 208 (-0.952381%) RAM Accesses: 782 (-0.255102%) Estimated Cycles: 96028103 (+0.000112%) compiled_8b_hash_100000x_c Instructions: 91547640 (No change) L1 Accesses: 98838171 (-0.000002%) L2 Accesses: 137 (+3.007519%) RAM Accesses: 483 (-0.412371%) Estimated Cycles: 98855761 (-0.000053%)
* | Merge branch 'retry_rend' into 'main'Nick Mathewson2023-08-244-8/+29
|\ \ | | | | | | | | | | | | | | | | | | hss: Retry rendezvous circuit attempts. Closes #1013 See merge request tpo/core/arti!1547
| * | hss: Retry rendezvous circuit attempts.Nick Mathewson2023-08-242-8/+27
| | | | | | | | | | | | Closes #1013.
| * | linkspec: Derive Clone and Copy for VerbatimLinkSpecCircTarget.Nick Mathewson2023-08-242-0/+2
| | |
* | | Add initial support for running a PT in server modeSaksham Mittal2023-08-247-307/+662
|/ /
* | tor-keymgr: Bump ssh-key to 0.6.1 and remove unnecessary dependency.Gabriela Moldovan2023-08-241-11/+1
| | | | | | | | | | | | | | Now that [ssh-key 0.6.1] is out, we no longer need the explicit sec1 dependency in tor-keymgr. [ssh-key 0.6.1]: https://github.com/RustCrypto/SSH/pull/155