From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755455AbbJAKpF (ORCPT ); Thu, 1 Oct 2015 06:45:05 -0400 Received: from mail-wi0-f182.google.com ([209.85.212.182]:35221 "EHLO mail-wi0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752173AbbJAKpA (ORCPT ); Thu, 1 Oct 2015 06:45:00 -0400 Date: Thu, 1 Oct 2015 12:44:55 +0200 From: Ingo Molnar To: "H. Peter Anvin" Cc: Ard Biesheuvel , Matt Fleming , Thomas Gleixner , "linux-kernel@vger.kernel.org" , "linux-efi@vger.kernel.org" , Leif Lindholm , Catalin Marinas , Will Deacon , "stable@vger.kernel.org" , Matt Fleming , Mark Rutland , Mark Salter , Linus Torvalds , Andrew Morton , Andy Lutomirski , Borislav Petkov , Denys Vlasenko , Brian Gerst Subject: Re: [PATCH 2/2] arm64/efi: Don't pad between EFI_MEMORY_RUNTIME regions Message-ID: <20151001104455.GA14061@gmail.com> References: <1443218539-7610-1-git-send-email-matt@codeblueprint.co.uk> <1443218539-7610-3-git-send-email-matt@codeblueprint.co.uk> <20150926060159.GB25877@gmail.com> <20150927070644.GC26125@gmail.com> <560B34EF.8040408@zytor.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <560B34EF.8040408@zytor.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * H. Peter Anvin wrote: > On 09/27/2015 12:06 AM, Ingo Molnar wrote: > > > > * Ard Biesheuvel wrote: > > > >>> If we allocate the EFI runtime as a single virtual memory block then issues > >>> like rounding between sections does not even come up as a problem: we map the > >>> original offsets and sizes byte by byte. > >> > >> Well, by that reasoning, we should not call SetVirtualAddressMap() in the first > >> place, and just use the 1:1 mapping UEFI uses natively. This is more than > >> feasible on arm64, and I actually fought hard against using > >> SetVirtualAddressMap() at all, but I was overruled by others. I think this is > >> also trivially possible on X64, since the 1:1 mapping is already active > >> alongside the VA mapping. > > > > Could we please re-list all the arguments pro and contra of 1:1 physical mappings, > > in a post that also explains the background so that more people can chime in, not > > just people versed in EFI internals? It's very much possible that a bad decision > > was made. > > > > Pro: by far the sanest way to map the UEFI tables. > Con: doesn't actually work (breaks on several known platforms.) You knew this next question was coming: in what way does it break on known platforms? I.e. do those platforms require a SetVirtualAddressMap() call and break if one does not come? Note that there's 3 models possible: - pure 1:1 - 1:1 plus offset, with SetVirtualAddressMap(offset) - bottom up allocator I don't think we want 'pure' 1:1 physical/virtual (for security reasons, etc.). So the question is, in what way does our current proposed bottom-up allocator differ from 1:1 plus offset? My impression is that they are mostly identical. Thanks, Ingo