From: Brian Gerst Subject: Re: [RFC 21/22] x86/module: Add support for mcmodel large and PLTs Date: Tue, 18 Jul 2017 23:59:49 -0400 Message-ID: References: <20170718223333.110371-1-thgarnie@google.com> <20170718223333.110371-22-thgarnie@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Cc: Thomas Garnier , Herbert Xu , "David S . Miller" , Thomas Gleixner , Ingo Molnar , Peter Zijlstra , Josh Poimboeuf , Arnd Bergmann , Matthias Kaehlcke , Boris Ostrovsky , Juergen Gross , Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Joerg Roedel , Andy Lutomirski , Borislav Petkov , "Kirill A . Shutemov" , Borislav Petkov , Christian Borntraeger , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Tejun Heo , Ch To: "H. Peter Anvin" Return-path: List-Post: List-Help: List-Unsubscribe: List-Subscribe: In-Reply-To: List-Id: linux-crypto.vger.kernel.org On Tue, Jul 18, 2017 at 9:35 PM, H. Peter Anvin 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. -- Brian Gerst