xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: "Luis R. Rodriguez" <mcgrof@kernel.org>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: "Matt Fleming" <matt@codeblueprint.co.uk>,
	"Michael Chang" <MChang@suse.com>,
	linux-kernel@vger.kernel.org,
	"Julien Grall" <julien.grall@arm.com>,
	"Jan Beulich" <JBeulich@suse.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Daniel Kiper" <daniel.kiper@oracle.com>,
	x86@kernel.org, "Vojtěch Pavlík" <vojtech@suse.cz>,
	"Gary Lin" <GLin@suse.com>,
	xen-devel@lists.xenproject.org,
	"Jeffrey Cheung" <JCheung@suse.com>,
	"Charles Arndol" <carnold@suse.com>,
	"Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
	joeyli <jlee@suse.com>, "Borislav Petkov" <bp@alien8.de>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Juergen Gross" <jgross@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Jim Fehlig" <jfehlig@suse.com>,
	"Andy Lutomirski" <luto@amacapital.net>,
	"Luis R. Rodriguez" <mcgrof@kernel.org>,
	"David Vrabel" <david.vrabel@citrix.com>,
	"Linus Torvalds" <torvalds@linux-foundation.org>
Subject: Re: HVMLite / PVHv2 - using x86 EFI boot entry
Date: Thu, 14 Apr 2016 00:23:17 +0200	[thread overview]
Message-ID: <20160413222317.GH1990__38880.4224705838$1460586301$gmane$org@wotan.suse.de> (raw)
In-Reply-To: <20160413210801.GC5962@char.us.oracle.com>

On Wed, Apr 13, 2016 at 05:08:01PM -0400, Konrad Rzeszutek Wilk wrote:
> On Wed, Apr 13, 2016 at 10:40:55PM +0200, Luis R. Rodriguez wrote:
> > On Wed, Apr 13, 2016 at 02:56:29PM -0400, Konrad Rzeszutek Wilk wrote:
> > > On Wed, Apr 13, 2016 at 08:29:51PM +0200, Luis R. Rodriguez wrote:
> > > > On Mon, Apr 11, 2016 at 07:12:08AM +0200, Juergen Gross wrote:
> > > > 
> > > > > What would be gained by using the same entry but having two different boot
> > > > > paths after it?
> > > > 
> > > > Its a good question. In summary for me it would be the push for sharing more
> > > > code and the push for semantics on early boot to address differences
> > > > proactively, and ultimately it may enable us to help bring closer the old PV
> > > > boot path closer.
> > > 
> > > But why? We want to kill PV (eventually).
> > 
> > Yeah yeah, but its still there, and we'll have to live with it for
> > at least minimum 5 years I hear. Part of my interest is to see to it
> > that this path gets less disruption and issues, and we also address
> > dead code issues which pvops simply folded under the rug. The dead code
> > concerns may exist still for hvmlite, so unless someone is willing
> > to make a bold claim there is none, its something to consider.
> 
> What is this dead code you speak of? Is it MTRR? Is early path code
> that PV misses (like KASL or other?)

Kasan is dead code to Xen. If you boot x86 Xen with Kasan enabled
Xen explodes. Quick question, will Kasan not explode with HVMLite ?

MTRR used to be dead code concern but since we have vetted most of that code
now we are pretty certain that code should never run now.

KASLR may be -- not sure as I  haven't vetted that, but from
what I have loosely heard maybe.

VGA code will be dead code for HVMlite for sure as the design doc
says it will not run VGA, the ACPI flag will be set but the check
for that is not yet on Linux. That means the VGA Linux code will
be there but we have no way to ensure it will not run nor that
anything will muck with it.

To be clear -- dead code concerns still exist even without
virtualization solutions, its just that with virtualization
this stuff comes up more and there has been no proactive
measures to address this. The question of semantics here is
to see to what extent we need earlier boot code annotations
to ensure we address semantics proactively.

> The entrace point in Linux "proper" is startup_32 or startup_64 - the same
> path that EFI uses.
> 
> If you were to draw this (very simplified):
> 
> a)- GRUB2 ---------------------\ (creates an bootparam structure)
>                                 \
>                                  +---- startup_32 or startup_64
> b) EFI -> Linux EFI stub -------/
>        (creates bootparm)      /
> c) GRUB2-EFI  -> Linux EFI----/
>                stub         /
> d) HVMLite ----------------/
>       (creates bootparm)

b) and d) might be able to share paths there...
d) still has its own entry, it does more than create boot params.

> (I am not sure about the c) - I would have to look in source to
> be source). There is also LILO in this, but I am not even sure if
> works anymore.
> 
> 
> What you have is that every entry point creates the bootparams
> and ends up calling startup_X. The startup_64 then hit the rest
> of the kernel. The startp_X code is the one that would setup
> the basic pagetables, segments, etc.

Sure.. a full diagram should include both sides and how when using
a custom entry one runs the risk of skipping a lot of code setup.
There is that and as others have pointed out how certain guests types
are assumed to not have certain peripherals, and we have no idea
to ensure certain old legacy code may not ever run or be accessed
by drivers.

> > How we address semantics then is *very* important to me.
> 
> Which semantics? How the CPU is going to be at startup_X ? Or
> how the CPU is going to be when EFI firmware invokes the EFI stub?
> Or when GRUB2 loads Linux?

What hypervisor kicked me and what guest type I am.

Let me elaborate more below.

> That (those bootloaders) is clearly defined. The URL I provided
> mentions the HVMLite one. The Documentation/x86/boot.c mentions
> what the semantics are to expected when providing an bootstrap
> (which is what HVMLitel stub code in Linux would write against -
> and what EFI stub code had been written against too).
> > 
> > > > I'll elaborate on this but first let's clarify why a new entry is used for
> > > > HVMlite to start of with:
> > > > 
> > > >   1) Xen ABI has historically not wanted to set up the boot params for Linux
> > > >      guests, instead it insists on letting the Linux kernel Xen boot stubs fill
> > > >      that out for it. This sticking point means it has implicated a boot stub.
> > > 
> > > 
> > > Which is b/c it has to be OS agnostic. It has nothing to do 'not wanting'.
> > 
> > It can still be OS agnostic and pass on type and custom data pointer.
> 
> Sure. It has that (it MUST otherwise how else would you pass data).
> It is documented as well http://xenbits.xen.org/docs/unstable/hypercall/x86_64/include,public,xen.h.html#incontents_startofday
> (see " Start of day structure passed to PVH guests in %ebx.")

The design doc begs for a custom OS entry point though.
If we had a single 'type' and 'custom data' passed to the kernel that
should suffice for the default Linux entry point to just pivot off
of that and do what it needs without more entry points. Once.

  Luis

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2016-04-13 22:23 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20160406024027.GX1990@wotan.suse.de>
2016-04-06  9:40 ` HVMLite / PVHv2 - using x86 EFI boot entry David Vrabel
2016-04-06 11:07 ` George Dunlap
2016-04-06 11:11 ` Daniel Kiper
     [not found] ` <CAFLBxZbRjB6QWH5GbG6osCXat9NQVUAyDYrAMrdALbCofpX3Dg@mail.gmail.com>
2016-04-06 15:02   ` Matt Fleming
2016-04-07 18:51   ` Luis R. Rodriguez
     [not found]   ` <20160406150240.GO2701@codeblueprint.co.uk>
2016-04-06 16:05     ` Konrad Rzeszutek Wilk
2016-04-06 16:23       ` Konrad Rzeszutek Wilk
2016-04-08 21:53         ` Luis R. Rodriguez
2016-04-13 10:03     ` Roger Pau Monné
     [not found]     ` <20160413100312.647eocdtbmak4btk@mac>
2016-04-13 10:21       ` Matt Fleming
     [not found]   ` <20160407185148.GL1990@wotan.suse.de>
2016-04-08 14:16     ` George Dunlap
     [not found]     ` <5707BD2E.20204@citrix.com>
2016-04-08 21:58       ` Luis R. Rodriguez
     [not found]       ` <20160408215854.GU1990@wotan.suse.de>
2016-04-12 22:12         ` Luis R. Rodriguez
2016-04-13  9:54         ` Roger Pau Monné
     [not found]         ` <20160412221225.GN1990@wotan.suse.de>
2016-04-13 10:05           ` George Dunlap
2016-04-13 10:25           ` Roger Pau Monné
     [not found]           ` <CAFLBxZbiGppNad=Z6-fLgx89O0yAFrSyARTCwv=vHBR3zJ=NsA@mail.gmail.com>
2016-04-13 18:54             ` Luis R. Rodriguez
     [not found]             ` <20160413185451.GY1990@wotan.suse.de>
2016-04-14  9:42               ` George Dunlap
     [not found]               ` <570F65F7.5050108@citrix.com>
2016-04-14 19:59                 ` Luis R. Rodriguez
     [not found]           ` <20160413102156.b4qwhwbqvnnpmxgw@mac>
2016-04-13 19:10             ` Luis R. Rodriguez
     [not found]         ` <20160413095428.5mcbrimvc6vxffcw@mac>
2016-04-13 18:50           ` Luis R. Rodriguez
     [not found]           ` <20160413185010.GX1990@wotan.suse.de>
2016-04-13 19:02             ` Konrad Rzeszutek Wilk
2016-04-13 19:14               ` Luis R. Rodriguez
     [not found]               ` <20160413191408.GA1990@wotan.suse.de>
2016-04-13 19:22                 ` Konrad Rzeszutek Wilk
2016-04-13 20:01                   ` Luis R. Rodriguez
     [not found]                   ` <20160413200118.GC1990@wotan.suse.de>
2016-04-13 20:11                     ` Konrad Rzeszutek Wilk
2016-04-13 20:35                       ` Luis R. Rodriguez
     [not found]                       ` <CAB=NE6VdTB1Bc=c0oCd_tTHpwwkQcxhnOFdcLfck2jX=JjuOAQ@mail.gmail.com>
2016-04-13 20:48                         ` Konrad Rzeszutek Wilk
2016-04-14 10:13                 ` George Dunlap
2016-04-13 15:44     ` George Dunlap
     [not found]     ` <CAFLBxZbJ4QyJQ1-ZuXg_Q-9YNXnWzDyPNp4SX=d9g0DS8mJKaw@mail.gmail.com>
2016-04-13 19:52       ` Luis R. Rodriguez
     [not found]       ` <20160413195257.GB1990@wotan.suse.de>
2016-04-14  9:53         ` George Dunlap
     [not found]         ` <570F68AB.2040400@citrix.com>
2016-04-14 19:44           ` Luis R. Rodriguez
     [not found]           ` <20160414194408.GP1990@wotan.suse.de>
2016-04-14 20:38             ` Konrad Rzeszutek Wilk
     [not found]             ` <20160414203847.GB21657@localhost.localdomain>
2016-04-14 21:12               ` Luis R. Rodriguez
     [not found]               ` <20160414211201.GS1990@wotan.suse.de>
2016-04-15  2:14                 ` Konrad Rzeszutek Wilk
2016-04-15  5:50             ` Juergen Gross
2016-04-15  9:59             ` George Dunlap
     [not found]             ` <57108121.1070307@suse.com>
2016-04-15 15:24               ` Luis R. Rodriguez
     [not found]             ` <5710BB74.2060409@citrix.com>
2016-04-15 15:30               ` Luis R. Rodriguez
     [not found]               ` <20160415153028.GX1990@wotan.suse.de>
2016-04-15 16:03                 ` George Dunlap
     [not found]                 ` <571110BB.2000408@citrix.com>
2016-04-15 17:17                   ` Luis R. Rodriguez
     [not found] ` <5704D978.1050101@citrix.com>
2016-04-08 20:40   ` Luis R. Rodriguez
     [not found]   ` <20160408204032.GR1990@wotan.suse.de>
2016-04-11  5:12     ` Juergen Gross
     [not found]     ` <570B3228.90400@suse.com>
2016-04-12 21:02       ` Andy Lutomirski
     [not found]       ` <CALCETrXvGR3XKJf5Ab_ZPc-iuNuzR8AzLpRBciemKz4r0vSrGA@mail.gmail.com>
2016-04-13  9:02         ` Roger Pau Monné
     [not found]         ` <20160413090202.bg2vfdl3iol7eedv@mac>
2016-04-13 10:15           ` Matt Fleming
     [not found]           ` <20160413101515.GJ2829@codeblueprint.co.uk>
2016-04-13 10:40             ` Matt Fleming
2016-04-13 11:12             ` George Dunlap
2016-04-13 11:59             ` Roger Pau Monné
     [not found]             ` <20160413115846.hyt4lg24rfkenbxu@mac>
2016-04-15 22:53               ` Matt Fleming
2016-04-13 18:29       ` Luis R. Rodriguez
     [not found]       ` <20160413182951.GW1990@wotan.suse.de>
2016-04-13 18:56         ` Konrad Rzeszutek Wilk
2016-04-13 20:40           ` Luis R. Rodriguez
     [not found]           ` <20160413204055.GD1990@wotan.suse.de>
2016-04-13 21:08             ` Konrad Rzeszutek Wilk
2016-04-13 22:23               ` Luis R. Rodriguez [this message]
     [not found]               ` <20160413222317.GH1990@wotan.suse.de>
2016-04-14  1:01                 ` Konrad Rzeszutek Wilk
     [not found]                 ` <20160414010131.GA21510@localhost.localdomain>
2016-04-14 18:40                   ` Luis R. Rodriguez
     [not found]                   ` <20160414184048.GM1990@wotan.suse.de>
2016-04-14 19:56                     ` Konrad Rzeszutek Wilk
2016-04-14 20:56                       ` Luis R. Rodriguez
     [not found]                       ` <20160414205619.GR1990@wotan.suse.de>
2016-04-15  2:02                         ` Konrad Rzeszutek Wilk
2016-04-15 10:06                         ` Julien Grall
     [not found]                         ` <5710BD0B.2070306@arm.com>
2016-04-15 14:55                           ` Luis R. Rodriguez
     [not found]                           ` <CAB=NE6UDuLOnW8xfTcgCGSbJ1aS4TkkokcGdeJGHMBps0T9=Sg@mail.gmail.com>
2016-04-15 18:44                             ` Stefano Stabellini
     [not found]                         ` <20160415020246.GA6956@localhost.localdomain>
2016-04-15 17:08                           ` Luis R. Rodriguez
     [not found] ` <20160406111130.GG3489@olila.local.net-space.pl>
2016-04-07 19:12   ` Luis R. Rodriguez
2016-04-09 17:02   ` Luis R. Rodriguez
2016-04-06  2:40 Luis R. Rodriguez

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='20160413222317.GH1990__38880.4224705838$1460586301$gmane$org@wotan.suse.de' \
    --to=mcgrof@kernel.org \
    --cc=GLin@suse.com \
    --cc=JBeulich@suse.com \
    --cc=JCheung@suse.com \
    --cc=MChang@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bp@alien8.de \
    --cc=carnold@suse.com \
    --cc=daniel.kiper@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=hpa@zytor.com \
    --cc=jfehlig@suse.com \
    --cc=jgross@suse.com \
    --cc=jlee@suse.com \
    --cc=julien.grall@arm.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=matt@codeblueprint.co.uk \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=torvalds@linux-foundation.org \
    --cc=vojtech@suse.cz \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.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).