On 1 Oct 2013 at 1:04, Andrey Semashev wrote:
The problem is that I don't have access to an Intel Haswell CPU to test the code upon. I think its design is correct through introspection, but if a kind Boost dev could lend me access to their Haswell machine via SSH - or even just offer to debug some binaries for me, I would be very grateful.
Just in case you don't find the hardware, you can use SDE:
http://software.intel.com/en-us/articles/intel-software-development-emulator
It's not bad for testing correctness, rather less so for testing performance if I have a bad algorithm. The problem with Intel TSX you see is it can refuse to work for various reasons. Therefore you have to fallback to spin locking, which means you must merge your spin lock implementation with the memory transaction implementation such that both can coexist, and either code path works with the other. While I think my implementation is close to correct, I have no idea if it's close to optimal, and TSX capable CPUs start at about $250 plus $100 for a new motherboard which is too much for just testing this feature. But thanks for the tip. The other idea I had was to try valgrind as that ought to emulate TSX by now. Niall -- Currently unemployed and looking for work. Work Portfolio: http://careers.stackoverflow.com/nialldouglas/