微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

英特尔-TSX:为什么rtm失败?

如何解决英特尔-TSX:为什么rtm失败?

我是使用Intel-TSX的新手。因此,请纠正我的任何术语/概念错误

我正在尝试使用here中的Polarssl库编写自定义rsa引擎(我知道它很旧,但是我很容易理解)。我有以下代码

result=-1;
unsigned block;

int key_len= 128;

while(result!=1){
    if ((block = _xbegin()) == _XBEGIN_STARTED) {
        if( rsa_pkcs1_decrypt( &rsa_polar,&myrand,NULL,RSA_PRIVATE,&key_len,from,decrypt_plaintext,sizeof(decrypt_plaintext) ) != 0 )
            exit(0);
        rsa_free(&rsa_polar);
        result=1;
        _xend();
    }else{
        printf("RTM 2: Transaction Failed\n");
        printf("status is %ld\n",block);
       
    }
    printf("Block 2: Result is %d\n",result);
}

rtm块中的代码不起作用。但是,相同的代码在rtm块之外起作用。运行代码后,我得到以下输出

.
.
RTM 2: Transaction Failed
status is 0
Block 2: Result is -1
. 
.

有关如何解决问题的帮助/建议?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。