[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] x86: PIE support and option to extend KASLR randomization
On 2017.09.21 at 14:21 -0700, Thomas Garnier wrote: > On Thu, Sep 21, 2017 at 9:10 AM, Ard Biesheuvel > <ard.biesheuvel@xxxxxxxxxx> wrote: > > > > On 21 September 2017 at 08:59, Ingo Molnar <mingo@xxxxxxxxxx> wrote: > > > > > > ( Sorry about the delay in answering this. I could blame the delay on the > > > merge > > > window, but in reality I've been procrastinating this is due to the > > > permanent, > > > non-trivial impact PIE has on generated C code. ) > > > > > > * Thomas Garnier <thgarnie@xxxxxxxxxx> wrote: > > > > > >> 1) PIE sometime needs two instructions to represent a single > > >> instruction on mcmodel=kernel. > > > > > > What again is the typical frequency of this occurring in an x86-64 > > > defconfig > > > kernel, with the very latest GCC? > > > > > > Also, to make sure: which unwinder did you use for your measurements, > > > frame-pointers or ORC? Please use ORC only for future numbers, as > > > frame-pointers is obsolete from a performance measurement POV. > > > > > >> 2) GCC does not optimize switches in PIE in order to reduce relocations: > > > > > > Hopefully this can either be fixed in GCC or at least influenced via a > > > compiler > > > switch in the future. > > > > > > > There are somewhat related concerns in the ARM world, so it would be > > good if we could work with the GCC developers to get a more high level > > and arch neutral command line option (-mkernel-pie? sounds yummy!) > > that stops the compiler from making inferences that only hold for > > shared libraries and/or other hosted executables (GOT indirections, > > avoiding text relocations etc). That way, we will also be able to drop > > the 'hidden' visibility override at some point, which we currently > > need to prevent the compiler from redirecting all global symbol > > references via entries in the GOT. > > My plan was to add a -mtls-reg=<fs|gs> to switch the default segment > register for stack cookies but I can see great benefits in having a > more general kernel flag that would allow to get rid of the GOT and > PLT when you are building position independent code for the kernel. It > could also include optimizations like folding switch tables etc... > > Should we start a separate discussion on that? Anyone that would be > more experienced than I to push that to gcc & clang upstream? Just open a gcc bug. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81708 as an example. -- Markus _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |