On Wed, Jul 19, 2017 at 11:58 AM, Thomas Garnier <thgar...@google.com> wrote: > On Tue, Jul 18, 2017 at 8:59 PM, Brian Gerst <brge...@gmail.com> wrote: >> On Tue, Jul 18, 2017 at 9:35 PM, H. Peter Anvin <h...@zytor.com> wrote: >>> On 07/18/17 15:33, Thomas Garnier wrote: >>>> With PIE support and KASLR extended range, the modules may be further >>>> away from the kernel than before breaking mcmodel=kernel expectations. >>>> >>>> Add an option to build modules with mcmodel=large. The modules generated >>>> code will make no assumptions on placement in memory. >>>> >>>> Despite this option, modules still expect kernel functions to be within >>>> 2G and generate relative calls. To solve this issue, the PLT arm64 code >>>> was adapted for x86_64. When a relative relocation go outside its range, >>>> a dynamic PLT entry is used to correctly jump to the destination. >>> >>> Why large as opposed to medium or medium-PIC? >> >> Or for that matter, why not small-PIC? We aren't changing the size of >> the kernel to be larger than 2G text or data. Small-PIC would still >> allow it to be placed anywhere in the address space, and would >> generate far better code. > > My understanding was that small=PIC and medium=PIC assume that the > module code is in the lower 2G of memory. I will do additional testing > on the modules to confirm that.
That is only for small/medium absolute (non-PIC) code. Think about userspace shared libraries. They are not limited to being mapped in the lower 2G of the address space. -- Brian Gerst _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel