From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Fleming Subject: Re: [tip regression] efi: Allow drivers to reserve boot services forever == toxic Date: Sat, 17 Sep 2016 20:58:54 +0100 Message-ID: <20160917195853.GG16797@codeblueprint.co.uk> References: <1474005912.3930.10.camel@gmail.com> <20160916093149.GC16797@codeblueprint.co.uk> <1474020059.3881.3.camel@gmail.com> <20160916143007.GF16797@codeblueprint.co.uk> <1474043695.3854.3.camel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1474043695.3854.3.camel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Sender: linux-efi-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Mike Galbraith Cc: Ingo Molnar , LKML , linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Peter Jones , Ard Biesheuvel List-Id: linux-efi@vger.kernel.org On Fri, 16 Sep, at 06:34:55PM, Mike Galbraith wrote: > On Fri, 2016-09-16 at 15:30 +0100, Matt Fleming wrote: > > On Fri, 16 Sep, at 12:00:59PM, Mike Galbraith wrote: > > > > > > Ok, here's the whole thing just in case. Hope it's not too big. > > > > [...] > > > > > [ 0.000000] esrt: Reserving ESRT space from 0x00000000def87998 to 0x00000000def879d0. > > > > OK, that's 56 bytes and yet I realise that at no point in the > > efi_mem_reserve() call path do we round up to the nearest page size > > even though the EFI memory map only deals with EFI_PAGE_SIZE regions. > > > > Could you try this patch? > > No dice. The numbers changed, but box still goes *poof*. > > --- > arch/x86/platform/efi/quirks.c | 4 ++++ > 1 file changed, 4 insertions(+) > > --- a/arch/x86/platform/efi/quirks.c > +++ b/arch/x86/platform/efi/quirks.c > @@ -227,7 +227,11 @@ void __init efi_arch_mem_reserve(phys_ad > efi_memmap_insert(&efi.memmap, new, &mr); > early_memunmap(new, new_size); > > +#if 0 > efi_memmap_install(new_phys, num_entries); > +#else > + printk(KERN_DEBUG "MIKE efi_memmap_install(0x%Lx, %d);\n", new_phys, num_entries); > +#endif > } > > /* > > homer:..debug/tracing # journalctl|grep MIKE > virgin+above > Sep 16 15:51:15 homer kernel: MIKE efi_memmap_install(0x9d640, 51); > Sep 16 15:55:07 homer kernel: MIKE efi_memmap_install(0x9d640, 51); > +patch+above > Sep 16 18:13:46 homer kernel: MIKE efi_memmap_install(0x9d600, 53); These addresses are pretty low. Can you try the hacky patch plus Ricardo's change in commit 3dad6f7f6975 ("x86/efi: Defer efi_esrt_init until after memblock_x86_fill"). He fixed a bug where it's possible to run out of memblock regions. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753581AbcIQT7G (ORCPT ); Sat, 17 Sep 2016 15:59:06 -0400 Received: from mail-wm0-f42.google.com ([74.125.82.42]:34999 "EHLO mail-wm0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752323AbcIQT65 (ORCPT ); Sat, 17 Sep 2016 15:58:57 -0400 Date: Sat, 17 Sep 2016 20:58:54 +0100 From: Matt Fleming To: Mike Galbraith Cc: Ingo Molnar , LKML , linux-efi@vger.kernel.org, Peter Jones , Ard Biesheuvel Subject: Re: [tip regression] efi: Allow drivers to reserve boot services forever == toxic Message-ID: <20160917195853.GG16797@codeblueprint.co.uk> References: <1474005912.3930.10.camel@gmail.com> <20160916093149.GC16797@codeblueprint.co.uk> <1474020059.3881.3.camel@gmail.com> <20160916143007.GF16797@codeblueprint.co.uk> <1474043695.3854.3.camel@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1474043695.3854.3.camel@gmail.com> User-Agent: Mutt/1.5.24+41 (02bc14ed1569) (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 16 Sep, at 06:34:55PM, Mike Galbraith wrote: > On Fri, 2016-09-16 at 15:30 +0100, Matt Fleming wrote: > > On Fri, 16 Sep, at 12:00:59PM, Mike Galbraith wrote: > > > > > > Ok, here's the whole thing just in case. Hope it's not too big. > > > > [...] > > > > > [ 0.000000] esrt: Reserving ESRT space from 0x00000000def87998 to 0x00000000def879d0. > > > > OK, that's 56 bytes and yet I realise that at no point in the > > efi_mem_reserve() call path do we round up to the nearest page size > > even though the EFI memory map only deals with EFI_PAGE_SIZE regions. > > > > Could you try this patch? > > No dice. The numbers changed, but box still goes *poof*. > > --- > arch/x86/platform/efi/quirks.c | 4 ++++ > 1 file changed, 4 insertions(+) > > --- a/arch/x86/platform/efi/quirks.c > +++ b/arch/x86/platform/efi/quirks.c > @@ -227,7 +227,11 @@ void __init efi_arch_mem_reserve(phys_ad > efi_memmap_insert(&efi.memmap, new, &mr); > early_memunmap(new, new_size); > > +#if 0 > efi_memmap_install(new_phys, num_entries); > +#else > + printk(KERN_DEBUG "MIKE efi_memmap_install(0x%Lx, %d);\n", new_phys, num_entries); > +#endif > } > > /* > > homer:..debug/tracing # journalctl|grep MIKE > virgin+above > Sep 16 15:51:15 homer kernel: MIKE efi_memmap_install(0x9d640, 51); > Sep 16 15:55:07 homer kernel: MIKE efi_memmap_install(0x9d640, 51); > +patch+above > Sep 16 18:13:46 homer kernel: MIKE efi_memmap_install(0x9d600, 53); These addresses are pretty low. Can you try the hacky patch plus Ricardo's change in commit 3dad6f7f6975 ("x86/efi: Defer efi_esrt_init until after memblock_x86_fill"). He fixed a bug where it's possible to run out of memblock regions.