Opened 7 years ago

Closed 3 years ago

#9820 closed enhancement (fixed)

oficially offer win64 version of tor

Reported by: bolvan Owned by: erinn
Priority: Medium Milestone:
Component: Applications/Tor bundles/installation Version: Tor: unspecified
Severity: Blocker Keywords: win64, priority
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


Due to recent botnet activity relay operators suffer from high cpu usage. Properly recompiling tor with mingw64 helps reduce cpu usage twice. I did it for myself and think others will also benefit from that.
I also did small modification to sources to allow settings process priority for tor. It can be important to lower priority when running on single and two core cpus if you use your computer for other purposes than tor and dont want tor to slow down anything else.

Child Tickets

Change History (7)

comment:1 Changed 7 years ago by nickm

Component: TorTor bundles/installation
Owner: set to erinn

I am strongly in favor of this; 64-bit crypto performance is so much better! I'm putting this ticket under "Tor bundles/installation", since it's about packages rather than the Tor code itself. If you think that the priority patches should get merged in to Tor itself, please open another ticket for those?

comment:2 Changed 7 years ago by nickm

As an intermediate measure, it might be easier to ship some packages with the tor binary -- and only the tor binary -- compiled as 64-bit. That should be where most of the CPU-critical stuff is happening, and I believe that tor itself should play well with mingw64 these days.

(I have no idea if this represents a real workload reduction or not.)

comment:3 Changed 7 years ago by bolvan

I'm running 3 tor relays for 10 days with self-recompiled win64 version. All seems to be OK. CPU usage significantly lower. (had 50% cpu on core 2 duo, now have 30%)

comment:4 Changed 7 years ago by erinn

I've built a 64-bit Tor with our Gitian TBB infrastructure and the results are here:

The sha256sums for the binaries/libraries in the Tor directory are:
165efde677aa4074793e67caaac2ee6c5d2a2e00804da077b98290f0724fead6 libeay32.dll
f536d4d681ee6f3d893896b7b3484273b7495bb51e0669e3e7021f5540be54c1 libevent-2-0-5.dll
d5e24efe03039ab7608be73956d0c7b97b55e83faaf1064e046444552701a387 libevent_core-2-0-5.dll
0de80bc97970733024c1621466d5f1a58e3fcab6a3956d5cc5472d6c10be227b libevent_extra-2-0-5.dll
4dbc0d2ecd039d767149ae7bd5389fa32bc8352f790f4a9008dc8717b271c7ba libgcc_s_sjlj-1.dll
6244ec5a2fd1218121045badde88c7095391f1ffab746da200574c2aa18778fd libssp-0.dll
da2c3d3fb5f0bf8ef219438ec523dbd7ca33c2e93b4f01fb955cdee04ebe2cc6 ssleay32.dll
894f06dbdd45cc39e9940e35bedb15b8d081396c383977e26c6686ba16a71872 tor.exe
d6c742e8c2628543fadcd91b3e7f8d8b0847b34edef464b0014e809f9a1f143d zlib1.dll

According to 'file', all files in there are also PE32+ which means 64-bit.

I confirmed that it works for me, although as of yet the tor.exe binary does not seem to build in a reproducible manner (I get a different sha256sum every time I build it).

To see what I did to achieve these results you can look at my tor-win64 branch in user/erinn/tor-browser-bundle.git. It's pretty messy now and I'm going to open a separate ticket for the win64 Gitian/Tor builds. I'll update this comment once it is created. [UPDATE: Ticket number is #10026]

For now, I would appreciate it if people following this ticket can confirm that the tor I created works as expected. Thanks!

Last edited 7 years ago by erinn (previous) (diff)

comment:5 Changed 7 years ago by erinn

I've been giving a few more updates in #7956. binutils didn't merge the patch we sent them to create reproducible builds, but they did make a change that should do the same thing (though I didn't get to test it yet). We're close to releasing a package for this though! I will update my git repo before the weekend.

comment:6 Changed 6 years ago by erinn

Keywords: needs-triage added

comment:7 Changed 3 years ago by gk

Keywords: needs-triage removed
Resolution: fixed
Severity: Blocker
Status: newclosed

Fixed with #20636.

Note: See TracTickets for help on using tickets.