[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAB=NE6Wv-iPBMGFe3U+1zt7TT0qXCE9D-egSXfhvZ3E61+z9gA@mail.gmail.com>
Date: Thu, 21 Jan 2016 11:46:10 -0800
From: "Luis R. Rodriguez" <mcgrof@...not-panic.com>
To: "H. Peter Anvin" <hpa@...or.com>
Cc: Boris Ostrovsky <boris.ostrovsky@...cle.com>,
Roger Pau Monné <roger.pau@...rix.com>,
Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>,
Stefano Stabellini <stefano.stabellini@...citrix.com>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
Rusty Russell <rusty@...tcorp.com.au>,
Andy Lutomirski <luto@...capital.net>, mcb30@...e.org,
Juergen Gross <jgross@...e.com>,
Jan Beulich <JBeulich@...e.com>, joro@...tes.org,
Andrey Ryabinin <ryabinin.a.a@...il.com>,
andreyknvl@...gle.com, long.wanglong@...wei.com,
qiuxishi@...wei.com, aryabinin@...tuozzo.com,
Mauro Carvalho Chehab <mchehab@....samsung.com>,
Valentin Rothberg <valentinrothberg@...il.com>,
Peter Senna Tschudin <peter.senna@...il.com>,
X86 ML <x86@...nel.org>,
"xen-devel@...ts.xensource.com" <xen-devel@...ts.xensource.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [RFC v1 4/8] x86/init: add linker table support
On Thu, Jan 21, 2016 at 11:25 AM, H. Peter Anvin <hpa@...or.com> wrote:
>> And that's exactly what HVMlite does. Most of this shim layer is setting
>> up boot_params, after which we jump to standard x86 boot path (i.e.
>> startup_{32|64}). With hardware_subarch set to zero.
>
> Which is the way to do it as long as the early code can be the same.
To be clear, with the subarchand linker table suggested in my patch
series, it should be possible to have the same exact entry point, the
Xen PV setup code could run early in the order. For instance in the
linker table we could use the reserved order levels 01-09 for PV
hypervisor code:
+/* Init order levels, we can start at 01 but reserve 01-09 for now */
+#define X86_INIT_ORDER_EARLY 10
+#define X86_INIT_ORDER_NORMAL 30
+#define X86_INIT_ORDER_LATE 50
So perhaps X86_INIT_ORDER_PV as 05 later.
The standard x86 init would just then be:
asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
{
x86_init_fn_init_tables();
x86_init_fn_early_init();
}
The PV init code would kick in early and could parse the
boot_params.hdr.hardware_subarch_data pointer as it sees fit.
Luis
Powered by blists - more mailing lists