* H. Peter Anvin <hpa@xxxxxxxxx> wrote: > On 09/27/2015 12:06 AM, Ingo Molnar wrote: > > > > * Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html