RE: [PATCH 3.19 3/3] x86, mpx: Change the MPX enable/disable API to arch_prctl

From: Enkovich, Ilya
Date: Mon Jan 12 2015 - 05:34:21 EST




> -----Original Message-----
> From: Dave Hansen [mailto:dave.hansen@xxxxxxxxxxxxxxx]
> Sent: Tuesday, January 6, 2015 9:30 PM
> To: Andy Lutomirski
> Cc: Andi Kleen; linux-kernel@xxxxxxxxxxxxxxx; X86 ML; Thomas Gleixner;
> Enkovich, Ilya
> Subject: Re: [PATCH 3.19 3/3] x86, mpx: Change the MPX enable/disable API
> to arch_prctl
>
> On 01/06/2015 10:06 AM, Andy Lutomirski wrote:
> > On Tue, Jan 6, 2015 at 9:48 AM, Dave Hansen
> <dave.hansen@xxxxxxxxxxxxxxx> wrote:
> >> On 01/05/2015 09:59 PM, Andy Lutomirski wrote:
> >>> But I decided to check whether libmpx links against glibc, and I
> >>> can't find sources for it at all. Do they exist? Is there any code
> >>> with source available that invokes this prctl?
> >>>
> >>> If not, I personally have very little sympathy for the argument that
> >>> a binary buried in the depths of the Intel SDE would need to change
> >>> if we switched to using arch_prctl. And I think that it should
> >>> issue the syscall itself without using glibc, in which case the
> >>> syscall wrapper issue is moot.
> >>
> >> Andy, as I mentioned previously, there is code in a GCC branch that
> >> uses the existing prctl(). It's also been posted for review to one
> >> of the GCC mailing lists. I've been told that it will be in gcc 5.0.
> >
> > Can you point me to it? I found the code generation stuff in the gcc
> > branch, but I couldn't find the runtime.
>
> cc'ing Ilya who is working on the gcc parts...
>
> Ilya, is the MPX runtime that uses the prctl() calls available somewhere
> publicly that it can be grabbed?
>
> I couldn't find it in GCC SVN anywhere.

Runtime library is not in GCC trunk yet. It is available as a patch in GCC mailing list (https://gcc.gnu.org/ml/gcc-patches/2014-12/msg00752.html) and also can be downloaded from Intel Developer Zone (https://software.intel.com/en-us/articles/mpx-support-in-gcc-50).

Ilya

>
> >> The Intel SDE does not use the prctl() in any way that I know of.
> >
> > I found a couple references suggesting that libmpx lived in the SDE.
> > For example:
> >
> > https://software.intel.com/en-us/articles/using-intel-mpx-with-the-int
> > el-software-development-emulator
>
> Andy, I think you're mistaken. The SDE allows you to run MPX code on a
> system without MPX support in hardware. It does not, itself, provide MPX
> code. The references you see there are to a runtime library that you obtain
> separately from the SDE. You run the library _under_ the SDE.
>
> I hope this clears things up.