All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
To: Borislav Petkov <bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org>
Cc: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	X86 ML <x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Borislav Petkov <bp-l3A5Bk7waGM@public.gmane.org>,
	Matt Fleming
	<matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>,
	Matthew Garrett <mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>,
	James Bottomley
	<james.bottomley-JuX6DAaQMKPCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>,
	Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH -v2] EFI: Runtime services virtual mapping
Date: Tue, 24 Sep 2013 17:12:26 -0700	[thread overview]
Message-ID: <52422A6A.8080305@zytor.com> (raw)
In-Reply-To: <e39e1065bddc2afee2cb6eed957e3ba8.squirrel-Fq0NhQX/+7ild1e1puMNDg@public.gmane.org>

On 09/24/2013 07:56 AM, Borislav Petkov wrote:
> On Tue, September 24, 2013 2:45 pm, Dave Young wrote:
>> Think again about this, how about 1:1 map them from a base address
>> like -64G phy_addr -> (-64G + phy_addr), in this way we can avoid
>> depending on the previous region size.
> 
> Right, how we layout the regions is arbitrary as long as we start at
> the same VA and use the same regions, in the same order and of the same
> size...
> 
>> For the zero region problem, we can resolve it as a standalone
>> problem.
> 
> ... however, we still need to understand why it fails mapping the boot
> services region as some implementations apparently do call boot services
> even after ExitBootServices(). IOW, we need that region mapped in the
> kexec'ed kernel too.
> 

I am starting to think that we really should explicitly pass along the
EFI mappings to the secondary kernel.  This will also help if we have to
change the algorithm in a future kernel.

The most logical way to do this is to define a new setup_data type and
pass the entire set of physical-to-virtual mappings that way.

For example:

struct efi_mapping {
	u64 va;			/* Virtual start address */
	u64 pa;			/* Physical start address */
	u64 len;		/* Length in bytes */
	u64 type;		/* Mapping type */
	u64 reserved[3];	/* Reserved, must be zero */
};

Adding some reserved fields seems like a prudent precaution; the map
shouldn't be all that large anyway.

	-hpa

WARNING: multiple messages have this Message-ID (diff)
From: "H. Peter Anvin" <hpa@zytor.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Dave Young <dyoung@redhat.com>, 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>,
	James Bottomley <james.bottomley@hansenpartnership.com>,
	Vivek Goyal <vgoyal@redhat.com>,
	linux-efi@vger.kernel.org
Subject: Re: [PATCH -v2] EFI: Runtime services virtual mapping
Date: Tue, 24 Sep 2013 17:12:26 -0700	[thread overview]
Message-ID: <52422A6A.8080305@zytor.com> (raw)
In-Reply-To: <e39e1065bddc2afee2cb6eed957e3ba8.squirrel@www.skyhub.de>

On 09/24/2013 07:56 AM, Borislav Petkov wrote:
> On Tue, September 24, 2013 2:45 pm, Dave Young wrote:
>> Think again about this, how about 1:1 map them from a base address
>> like -64G phy_addr -> (-64G + phy_addr), in this way we can avoid
>> depending on the previous region size.
> 
> Right, how we layout the regions is arbitrary as long as we start at
> the same VA and use the same regions, in the same order and of the same
> size...
> 
>> For the zero region problem, we can resolve it as a standalone
>> problem.
> 
> ... however, we still need to understand why it fails mapping the boot
> services region as some implementations apparently do call boot services
> even after ExitBootServices(). IOW, we need that region mapped in the
> kexec'ed kernel too.
> 

I am starting to think that we really should explicitly pass along the
EFI mappings to the secondary kernel.  This will also help if we have to
change the algorithm in a future kernel.

The most logical way to do this is to define a new setup_data type and
pass the entire set of physical-to-virtual mappings that way.

For example:

struct efi_mapping {
	u64 va;			/* Virtual start address */
	u64 pa;			/* Physical start address */
	u64 len;		/* Length in bytes */
	u64 type;		/* Mapping type */
	u64 reserved[3];	/* Reserved, must be zero */
};

Adding some reserved fields seems like a prudent precaution; the map
shouldn't be all that large anyway.

	-hpa


  parent reply	other threads:[~2013-09-25  0:12 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-24 14:56 [PATCH -v2] EFI: Runtime services virtual mapping Borislav Petkov
2013-09-24 14:56 ` Borislav Petkov
     [not found] ` <e39e1065bddc2afee2cb6eed957e3ba8.squirrel-Fq0NhQX/+7ild1e1puMNDg@public.gmane.org>
2013-09-25  0:12   ` H. Peter Anvin [this message]
2013-09-25  0:12     ` H. Peter Anvin
     [not found]     ` <52422A6A.8080305-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2013-09-25  2:36       ` Dave Young
2013-09-25  2:36         ` Dave Young
2013-09-25  5:47       ` Borislav Petkov
2013-09-25  5:47         ` Borislav Petkov
2013-09-26  3:12       ` Dave Young
2013-09-26  3:12         ` Dave Young
     [not found]         ` <20130926031242.GA4487-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-09-30 20:17           ` Borislav Petkov
2013-09-30 20:17             ` Borislav Petkov
     [not found]             ` <20130930201730.GD16383-fF5Pk5pvG8Y@public.gmane.org>
2013-09-30 20:35               ` Vivek Goyal
2013-09-30 20:35                 ` Vivek Goyal
     [not found]                 ` <20130930203505.GA6116-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-09-30 20:41                   ` Borislav Petkov
2013-09-30 20:41                     ` Borislav Petkov
2013-09-30 20:46                     ` Vivek Goyal
     [not found]                       ` <20130930204642.GB6116-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-09-30 21:06                         ` Borislav Petkov
2013-09-30 21:06                           ` Borislav Petkov
     [not found]                           ` <20130930210646.GF19411-fF5Pk5pvG8Y@public.gmane.org>
2013-09-30 21:09                             ` Vivek Goyal
2013-09-30 21:09                               ` Vivek Goyal
2013-10-08  9:18               ` Dave Young
2013-10-08  9:18                 ` Dave Young
2013-09-25  2:31   ` Dave Young
2013-09-25  2:31     ` Dave Young
  -- strict thread matches above, loose matches on Subject: below --
2013-09-19 14:54 [PATCH 00/11] EFI runtime " Borislav Petkov
2013-09-19 14:54 ` [PATCH 11/11] EFI: Runtime " Borislav Petkov
     [not found]   ` <1379602494-26684-12-git-send-email-bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org>
2013-09-21 11:39     ` [PATCH -v2] " Borislav Petkov
2013-09-21 11:39       ` Borislav Petkov
2013-09-23  5:47       ` Dave Young
     [not found]         ` <20130923054741.GC7007-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-09-23  6:29           ` Borislav Petkov
2013-09-23  6:29             ` Borislav Petkov
     [not found]             ` <20130923062947.GA2527-fF5Pk5pvG8Y@public.gmane.org>
2013-09-23  7:08               ` Dave Young
2013-09-23  7:08                 ` Dave Young
     [not found]       ` <20130921113929.GB1587-fF5Pk5pvG8Y@public.gmane.org>
2013-09-22 12:35         ` Dave Young
2013-09-22 12:35           ` Dave Young
     [not found]           ` <20130922123515.GA7476-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-09-22 13:37             ` Borislav Petkov
2013-09-22 13:37               ` Borislav Petkov
     [not found]               ` <20130922133722.GC28718-fF5Pk5pvG8Y@public.gmane.org>
2013-09-22 14:00                 ` Dave Young
2013-09-22 14:00                   ` Dave Young
     [not found]                   ` <20130922140038.GB7476-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-09-22 14:31                     ` Dave Young
2013-09-22 14:31                       ` Dave Young
2013-09-22 15:27                 ` H. Peter Anvin
2013-09-22 15:27                   ` H. Peter Anvin
     [not found]                   ` <1ba7eca6-419c-4181-9927-9ba0927a6abf-2ueSQiBKiTY7tOexoI0I+QC/G2K4zDHf@public.gmane.org>
2013-09-22 16:38                     ` Borislav Petkov
2013-09-22 16:38                       ` Borislav Petkov
2013-09-23  5:45                     ` Dave Young
2013-09-23  5:45                       ` Dave Young
2013-09-24  2:52                     ` Dave Young
2013-09-24  2:52                       ` Dave Young
     [not found]                       ` <20130924025209.GA5561-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-09-24  3:06                         ` H. Peter Anvin
2013-09-24  3:06                           ` H. Peter Anvin
     [not found]                           ` <2d27a1bc-eabf-4d45-8303-27ae58511b11-2ueSQiBKiTY7tOexoI0I+QC/G2K4zDHf@public.gmane.org>
2013-09-24  4:57                             ` Dave Young
2013-09-24  4:57                               ` Dave Young
     [not found]                               ` <20130924045705.GB5561-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-09-24  4:58                                 ` Dave Young
2013-09-24  4:58                                   ` Dave Young
     [not found]                                   ` <20130924045818.GC5561-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-09-24  5:23                                     ` 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  9:43                                   ` Borislav Petkov
     [not found]                                   ` <bd9528a453bce9b52ad4be75dcc0f034.squirrel-Fq0NhQX/+7ild1e1puMNDg@public.gmane.org>
2013-09-24 10:01                                     ` Dave Young
2013-09-24 10:01                                       ` Dave Young
2013-09-24 12:45                                     ` Dave Young
2013-09-24 12:45                                       ` Dave Young
2013-10-02 10:04                             ` Borislav Petkov
2013-10-02 10:04                               ` Borislav Petkov
     [not found]                               ` <20131002100426.GB20568-fF5Pk5pvG8Y@public.gmane.org>
2013-10-02 15:43                                 ` H. Peter Anvin
2013-10-02 15:43                                   ` H. Peter Anvin
     [not found]                                   ` <524C3F38.6050507-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2013-10-02 17:05                                     ` Borislav Petkov
2013-10-02 17:05                                       ` Borislav Petkov
     [not found]                                       ` <20131002170522.GA20647-fF5Pk5pvG8Y@public.gmane.org>
2013-10-02 17:32                                         ` H. Peter Anvin
2013-10-02 17:32                                           ` H. Peter Anvin
     [not found]                                           ` <524C58A3.4090704-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2013-10-02 18:42                                             ` Borislav Petkov
2013-10-02 18:42                                               ` Borislav Petkov
     [not found]                                               ` <20131002184229.GE20568-fF5Pk5pvG8Y@public.gmane.org>
2013-10-02 18:46                                                 ` H. Peter Anvin
2013-10-02 18:46                                                   ` H. Peter Anvin
     [not found]                                                   ` <524C6A14.40905-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2013-10-04  9:42                                                     ` Borislav Petkov
2013-10-04  9:42                                                       ` Borislav Petkov
     [not found]                                                       ` <20131004094247.GA6796-K5JNixvcfoxupOikMc4+xw@public.gmane.org>
2013-10-04 14:43                                                         ` H. Peter Anvin
2013-10-04 14:43                                                           ` H. Peter Anvin
     [not found]                                                           ` <89e0284e-89b5-42ad-8120-128ef1bf0152-2ueSQiBKiTY7tOexoI0I+QC/G2K4zDHf@public.gmane.org>
2013-10-04 14:50                                                             ` Borislav Petkov
2013-10-04 14:50                                                               ` Borislav Petkov
2013-09-23  8:45         ` Borislav Petkov
2013-09-23  8:45           ` Borislav Petkov
2013-09-25  9:24         ` Borislav Petkov
2013-09-25  9:24           ` Borislav Petkov

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=52422A6A.8080305@zytor.com \
    --to=hpa-ymnouzjc4hwavxtiumwx3w@public.gmane.org \
    --cc=bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org \
    --cc=bp-l3A5Bk7waGM@public.gmane.org \
    --cc=dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=james.bottomley-JuX6DAaQMKPCXq6kfMZ53/egYHeGw8Jk@public.gmane.org \
    --cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org \
    --cc=mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org \
    --cc=vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.