- User Since
- Sep 2 2016, 5:42 AM (101 w, 4 d)
Feb 1 2017
I am not sure what you mean, this is a pluggable command and as such it has to be a dynamic loadable lib.
As for the wrong install name of the binary, I don't think I can fix it from here, the SOVERSION is set by AddLLVM.cmake.
On which platform did you get this issue?
Do you have a better proposal?
Jan 31 2017
Jan 26 2017
used GetAddress() instead of GetUnsignedIntXX()
Jan 25 2017
Applied some of the proposed changes.
Hi Greg, thanks a lot for your review. I have a question about the API that you proposed, please have a look at the inline comments.
Jan 24 2017
Nov 28 2016
Oct 7 2016
cleaned up code
Oct 6 2016
fixed usage of llvm:raw_string_ostream
used llvm:raw_string_ostream instead of std::stringstream
Sep 21 2016
ok, I will keep it in mind for some further refactoring, thanks!
Thechnically it's not correct that I am introducing this issue, because the old code already used a cast. It was done in the old and now not existing method "GetFPRType()", long before I introduced the MPX changes, and then I later moved it into HasXSave()/HasXSave() and now with this current refactoring patch I am moving it into IsCPUFeatureAvailable().
Sep 20 2016
Removed unnecessary header, corrected switch-case.
Thanks for your review! Please find my answers inline.
Sep 14 2016
moved header to the bottom and moved enum into header file
This fixes the fact that there is no proper check that the kernel or the hardware are actually supporting either AVX or MPX. Before this patch, the code only relied on a "hack" that checks if it's possible to do a ptrace to retrieve the XSAVE or FXSAVE areas: the assumption was that if XSAVE is there, then there must be also AVX and MPX, which obviously is not the correct thing to do.
The 'cpuid' calls (wrappers for the CPUID instruction) get the info directly from the hardware, and then the ptrace call is made to actually get either FXSAVE or XSAVE. If XSAVE is there, then 'cpuid' is used again to check the hardware for AVX and MPX, and then if this step is also successful, the XSAVE memory region is further checked to verify that the kernel is properly handling these features.
Basically it's both a refactoring and a fix, and it doesn't require a dedicated test: the fact that the current register tests succeed is proof enough.
Sep 8 2016
Improved MPX test Makefile and removed workaround for unnamed register sets, and rebased according to the new coding style.
Sep 7 2016
Improved TestMPXRegisters.py and Makefile according to review.
Sep 6 2016
Hi, inline there are my other replies.
Thanks for the review! You can find my replies inline.