Haswell TSX using RTM (beginner student)

Haswell TSX using RTM (beginner student)


I am just getting introduced into haswell's TSX infrastructure using RTM. I have downloaded the rtm.h header files from online and i tried producing a simple counter. Unfortunately every time i compile and run the program, the _xbegin function does not execute the transaction inside.  I would be greatly appreciated for your help. thanks

#include <stdio.h>

#include <stdlib.h>

#include "rtm.h"

void main(){

    int N=5;

    int i;

    int status;

    int counter = 0;

    status = _xbegin();

if (status == _XBEGIN_STARTED)


    for (i=0; i<N ; i++)  {


        printf("counter value: %d\n", counter);







    printf("did not work\n");


Fichier attachéTaille
Télécharger rtm.h1.71 Ko
4 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Best Reply

You should not use print inside a transactional region. I/O is  unfriendly instruction. When the transaction is aborted,  the program goes to the else statement.

FWIW placing a break point inside a transactional region will abort the transaction. Debug your code as a critical section, then convert to TSX or RTM.

Jim Dempsey


thank you le g. and jimdempseyatthecove when i put the printf function after the _xend the transaction works. thanks again for your quick help

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui