Detect tsx_force_abort presence and print to log

This commit is contained in:
Malcolm Jestadt 2019-05-31 23:34:46 -04:00 committed by Ivan
parent cafa4521ee
commit f90f68d129
2 changed files with 15 additions and 0 deletions

13
Utilities/sysinfo.cpp Normal file → Executable file
View File

@ -44,6 +44,12 @@ bool utils::has_rtm()
return g_value;
}
bool utils::has_tsx_force_abort()
{
static const bool g_value = get_cpuid(0, 0)[0] >= 0x7 && (get_cpuid(7, 0)[3] & 0x2000) == 0x2000;
return g_value;
}
bool utils::has_mpx()
{
static const bool g_value = get_cpuid(0, 0)[0] >= 0x7 && (get_cpuid(7, 0)[1] & 0x4000) == 0x4000;
@ -127,10 +133,17 @@ std::string utils::get_system_info()
if (has_rtm())
{
result += " | TSX";
if (has_tsx_force_abort())
{
result += "-FA";
}
if (!has_mpx())
{
result += " disabled by default";
}
}
return result;

2
Utilities/sysinfo.h Normal file → Executable file
View File

@ -37,6 +37,8 @@ namespace utils
bool has_rtm();
bool has_tsx_force_abort();
bool has_mpx();
bool has_512();