linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Young <dyoung@redhat.com>
To: Borislav Petkov <bp@alien8.de>
Cc: X86 ML <x86@kernel.org>, LKML <linux-kernel@vger.kernel.org>,
	Borislav Petkov <bp@suse.de>,
	Matt Fleming <matt@console-pimps.org>,
	Matthew Garrett <mjg59@srcf.ucam.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	James Bottomley <James.Bottomley@HansenPartnership.com>,
	Vivek Goyal <vgoyal@redhat.com>,
	linux-efi@vger.kernel.org
Subject: Re: [PATCH 00/11] EFI runtime services virtual mapping
Date: Fri, 20 Sep 2013 15:29:04 +0800	[thread overview]
Message-ID: <20130920072904.GA21922@dhcp-16-126.nay.redhat.com> (raw)
In-Reply-To: <1379602494-26684-1-git-send-email-bp@alien8.de>

On 09/19/13 at 04:54pm, Borislav Petkov wrote:
> From: Borislav Petkov <bp@suse.de>
> 
> Hi all,
> 
> here's finally a new version of the runtime services VA mapping patchset
> which hopefully implements hpa's idea of statically mapping EFI runtime
> regions in a top-down manner starting at -4Gb virtual.
> 
> We're also using a different pagetable so as not to pollute kernel
> address space. For that, we switch to that table before doing an EFI
> call, and afterwards we switch back to the previous one.
> 
> To the patches:
> 
> 1-2 are simple cleanups which Matt probably can take now
> 
> 3-10 add the machinery to map regions into an arbitrary PGD. Those I've
> split deliberately into very small bites so that they can be reviewed
> more thoroughly and easily for my pagetable skills are pretty basic.
> 
> 11 is the actual patch which implements that mapping so that we can use
> runtime services in kexec (which is the whole reason for this fuss :))
> 
> So please take a long hard look at those, hammer on them on your
> boxes and let me know. They boot fine on my Dell UEFI box and in OVMF
> (obviously :)).

Thanks for your update!

Just tested this series, for 1st kernel It boots ok in qemu+ovmf. But it immediately
reboot on my Thinkpad T420. Unfortunately there's no way to debug this
very early problem because there's no serial port also earlyprintk does
not work for efi boot. No usb debug as well on this machine. I will test
it when I go back to work after the china holiday.

OTOH, for 2nd kernel testing because kexec tools does not fill efi_info[]
in bootparam so kernel will disable efi, also it pass acpi_rsdp pointer
automaticlly to make 2nd kernel boot ok.

I tested with a user space patch which copy efi_info from 1st kernel to
bootparams, as I said previously this is not enough because several fields
in systab, fw_vendor, runtime and tables are converted to virtual address
but in kernel efi init function they are assumed physical addresses. Thus
we need save these physical address. I have a patch to save them and pass
them to 2nd kernel in bootparams.
Since the mapping are same, I wonder if we can calculate the physical
address from virtual address.  Idea?

Another concern is that is it safe for i386 efi boot?

> 
> Thanks.
> 
> Borislav Petkov (11):
>   efi: Simplify EFI_DEBUG
>   efi: Remove EFI_PAGE_SHIFT and EFI_PAGE_SIZE
>   x86, pageattr: Lookup address in an arbitrary PGD
>   x86, pageattr: Add a PGD pagetable populating function
>   x86, pageattr: Add a PUD pagetable populating function
>   x86, pageattr: Add a PMD pagetable populating function
>   x86, pageattr: Add a PTE pagetable populating function
>   x86, pageattr: Add a PUD error unwinding path
>   x86, pageattr: Add last levels of error path
>   x86, cpa: Map in an arbitrary pgd
>   EFI: Runtime services virtual mapping
> 
>  arch/x86/boot/compressed/eboot.c     |  12 +-
>  arch/x86/boot/compressed/eboot.h     |   1 -
>  arch/x86/include/asm/efi.h           |  58 +++--
>  arch/x86/include/asm/pgtable_types.h |   3 +-
>  arch/x86/mm/pageattr.c               | 461 +++++++++++++++++++++++++++++++++--
>  arch/x86/platform/efi/efi.c          | 126 +++++-----
>  arch/x86/platform/efi/efi_64.c       |  56 +----
>  arch/x86/platform/efi/efi_stub_64.S  |  47 ++++
>  include/linux/efi.h                  |   6 +-
>  9 files changed, 615 insertions(+), 155 deletions(-)
> 
> -- 
> 1.8.4
> 

  parent reply	other threads:[~2013-09-20  7:29 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-19 14:54 [PATCH 00/11] EFI runtime services virtual mapping Borislav Petkov
2013-09-19 14:54 ` [PATCH 01/11] efi: Simplify EFI_DEBUG Borislav Petkov
2013-09-19 14:54 ` [PATCH 02/11] efi: Remove EFI_PAGE_SHIFT and EFI_PAGE_SIZE Borislav Petkov
2013-09-20 10:42   ` Matt Fleming
2013-09-21 15:21     ` Leif Lindholm
2013-09-21 15:41       ` Borislav Petkov
2013-09-21 15:50         ` Borislav Petkov
2013-09-21 16:01           ` Leif Lindholm
2013-09-21 16:03             ` Borislav Petkov
2013-09-21 15:59         ` Leif Lindholm
2013-09-19 14:54 ` [PATCH 03/11] x86, pageattr: Lookup address in an arbitrary PGD Borislav Petkov
2013-09-19 14:54 ` [PATCH 04/11] x86, pageattr: Add a PGD pagetable populating function Borislav Petkov
2013-09-19 14:54 ` [PATCH 05/11] x86, pageattr: Add a PUD " Borislav Petkov
2013-09-19 14:54 ` [PATCH 06/11] x86, pageattr: Add a PMD " Borislav Petkov
2013-09-19 14:54 ` [PATCH 07/11] x86, pageattr: Add a PTE " Borislav Petkov
2013-09-19 14:54 ` [PATCH 08/11] x86, pageattr: Add a PUD error unwinding path Borislav Petkov
2013-09-19 14:54 ` [PATCH 09/11] x86, pageattr: Add last levels of error path Borislav Petkov
2013-09-19 14:54 ` [PATCH 10/11] x86, cpa: Map in an arbitrary pgd Borislav Petkov
2013-09-19 14:54 ` [PATCH 11/11] EFI: Runtime services virtual mapping Borislav Petkov
2013-09-21 11:39   ` [PATCH -v2] " Borislav Petkov
2013-09-22 12:35     ` Dave Young
2013-09-22 13:37       ` Borislav Petkov
2013-09-22 14:00         ` Dave Young
2013-09-22 14:31           ` Dave Young
2013-09-22 15:27         ` H. Peter Anvin
2013-09-22 16:38           ` Borislav Petkov
2013-09-23  5:45           ` Dave Young
2013-09-24  2:52           ` Dave Young
2013-09-24  3:06             ` H. Peter Anvin
2013-09-24  4:57               ` Dave Young
2013-09-24  4:58                 ` Dave Young
2013-09-24  5:23                   ` Dave Young
2013-09-24  8:57                     ` Dave Young
2013-09-24  9:43                 ` Borislav Petkov
2013-09-24 10:01                   ` Dave Young
2013-09-24 12:45                   ` Dave Young
2013-10-02 10:04               ` Borislav Petkov
2013-10-02 15:43                 ` H. Peter Anvin
2013-10-02 17:05                   ` Borislav Petkov
2013-10-02 17:32                     ` H. Peter Anvin
2013-10-02 18:42                       ` Borislav Petkov
2013-10-02 18:46                         ` H. Peter Anvin
2013-10-04  9:42                           ` Borislav Petkov
2013-10-04 14:43                             ` H. Peter Anvin
2013-10-04 14:50                               ` Borislav Petkov
2013-09-23  5:47     ` Dave Young
2013-09-23  6:29       ` Borislav Petkov
2013-09-23  7:08         ` Dave Young
2013-09-23  8:45     ` Borislav Petkov
2013-09-25  9:24     ` Borislav Petkov
2013-09-20  7:29 ` Dave Young [this message]
2013-09-20  8:19   ` [PATCH 00/11] EFI runtime " Dave Young
2013-09-20  9:33     ` Borislav Petkov
2013-09-20 10:07       ` Dave Young
2013-09-20  9:05   ` Borislav Petkov
2013-09-20  9:44     ` Matt Fleming
2013-09-20  9:49     ` Matt Fleming
2013-09-20 10:02       ` Borislav Petkov
2013-09-20 11:51     ` Dave Young
2013-09-20 12:29     ` Matt Fleming
2013-09-20 14:04       ` Dave Young
2013-10-08 16:45 ` Borislav Petkov
2013-10-08 16:47   ` [PATCH 11/12] efi: Add an efi= kernel command line parameter Borislav Petkov
2013-10-28 11:02     ` Matt Fleming
2013-10-28 11:10       ` Borislav Petkov
2013-10-08 16:48   ` [PATCH 12/12] EFI: Runtime services virtual mapping Borislav Petkov
2013-10-10  8:06     ` Dave Young
2013-10-10  8:14       ` Dave Young
2013-10-10  8:58         ` Borislav Petkov
2013-10-10 12:34           ` Matt Fleming
2013-10-11  6:24             ` Dave Young
2013-10-11  7:41               ` Borislav Petkov
2013-10-12  7:54                 ` Dave Young
2013-10-12 10:13                   ` Matt Fleming
2013-10-12 10:30                     ` Borislav Petkov
2013-10-13  3:11                       ` Dave Young
2013-10-13  9:25                         ` Borislav Petkov
2013-10-14 15:58                           ` Borislav Petkov
2013-10-21 12:47                             ` Dave Young
2013-10-21 13:37                               ` Borislav Petkov
2013-10-21 15:04                                 ` Dave Young
2013-10-22 11:18                                   ` Borislav Petkov
2013-10-23  2:17                                     ` Dave Young
2013-10-23 12:25                                       ` Borislav Petkov
2013-10-23 12:37                                         ` Matthew Garrett
2013-10-23 12:51                                         ` Dave Young
2013-10-23 13:11                                           ` Borislav Petkov
2013-10-26 15:50                                 ` Matt Fleming
2013-10-13  3:06                     ` Dave Young
2013-10-11 10:27               ` Matt Fleming
2013-10-11 13:42                 ` Dave Young
2013-10-12  2:14                   ` Dave Young
2013-10-14 15:57                     ` Peter Jones
2013-10-16  6:27                       ` Dave Young
2013-10-28 11:22     ` Matt Fleming
2013-10-28 16:00       ` Borislav Petkov
2013-10-29  6:47     ` Dave Young
2013-10-29  9:40       ` Borislav Petkov
2013-10-30  9:32         ` Dave Young
2013-10-30 10:45           ` Borislav Petkov
2013-10-31  7:07             ` Dave Young
2013-10-14 13:04   ` [PATCH 00/11] EFI runtime " Matt Fleming

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130920072904.GA21922@dhcp-16-126.nay.redhat.com \
    --to=dyoung@redhat.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=bp@alien8.de \
    --cc=bp@suse.de \
    --cc=hpa@zytor.com \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt@console-pimps.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=vgoyal@redhat.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).