The MASM Forum

General => The Laboratory => Topic started by: aw27 on May 16, 2018, 09:39:54 PM

Title: TSX/RTM
Post by: aw27 on May 16, 2018, 09:39:54 PM
This is the RTM counterpart of the HLE published yesterday.

Unlike the HLE, for RTM you will need a TSX supported CPU or the Intel CPU emulator.

I followed closely what the TSX developer of GCC has done here:
https://github.com/andikleen/tsx-tools/blob/master/locks/spin-rtm.c
because I could not find a better example.


HLE supported
RTM supported
Thread: 0 amount: 100
Thread: 8 amount: 500
Thread: 2 amount: 200
Thread: 3 amount: 250
Thread: 4 amount: 300
Thread: 5 amount: 350
Thread: 6 amount: 400
Thread: 31 amount: 1650
Thread: 32 amount: 1700
Thread: 10 amount: 600
Thread: 34 amount: 1800
....
Thread: 2421 amount: 121150
Thread: 2606 amount: 130400
Thread: 2990 amount: 149600
Thread: 2994 amount: 149800
Thread: 1322 amount: 66200
Thread: 1817 amount: 90950
All threads terminated. Transactionals: 3000 Sums: 225225000


BTW, I found a solution for the problem of the program terminating before all threads (in last topic about TSX/HLE) being done. This demo uses that  solution.