From: "H. Peter Anvin" <hpa@zytor.com>
To: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
Cc: "Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
"Roger Pau Monné" <roger.pau@citrix.com>,
"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
"Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Ingo Molnar" <mingo@redhat.com>,
"Borislav Petkov" <bp@alien8.de>,
"Rusty Russell" <rusty@rustcorp.com.au>,
"Andy Lutomirski" <luto@amacapital.net>,
mcb30@ipxe.org, "Juergen Gross" <jgross@suse.com>,
"Jan Beulich" <JBeulich@suse.com>,
joro@8bytes.org, "Andrey Ryabinin" <ryabinin.a.a@gmail.com>,
andreyknvl@google.com, long.wanglong@huawei.com,
qiuxishi@huawei.com, aryabinin@virtuozzo.com,
"Mauro Carvalho Chehab" <mchehab@osg.samsung.com>,
"Valentin Rothberg" <valentinrothberg@gmail.com>,
"Peter Senna Tschudin" <peter.senna@gmail.com>,
"X86 ML" <x86@kernel.org>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [RFC v1 4/8] x86/init: add linker table support
Date: Thu, 21 Jan 2016 11:50:04 -0800 [thread overview]
Message-ID: <56A1366C.6070702@zytor.com> (raw)
In-Reply-To: <CAB=NE6Wv-iPBMGFe3U+1zt7TT0qXCE9D-egSXfhvZ3E61+z9gA@mail.gmail.com>
On 01/21/16 11:46, Luis R. Rodriguez wrote:
> On Thu, Jan 21, 2016 at 11:25 AM, H. Peter Anvin <hpa@zytor.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.
>
Right... we already do that.
I don't even think you need to initialize any tables. At least on i386,
we have to do this in assembly code. However, it is just a simple table
walk. :)
-hpa
WARNING: multiple messages have this Message-ID (diff)
From: "H. Peter Anvin" <hpa@zytor.com>
To: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
Cc: "Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
"Roger Pau Monné" <roger.pau@citrix.com>,
"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
"Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Ingo Molnar" <mingo@redhat.com>,
"Borislav Petkov" <bp@alien8.de>,
"Rusty Russell" <rusty@rustcorp.com.au>,
"Andy Lutomirski" <luto@amacapital.net>,
mcb30@ipxe.org, "Juergen Gross" <jgross@suse.com>,
"Jan Beulich" <JBeulich@suse.com>,
joro@8bytes.org, "Andrey Ryabinin" <ryabinin.a.a@gmail.com>,
andreyknvl@google.com, long.wanglong@huawei.com,
qiuxishi@huawei.com, aryabinin@virtuozzo.com,
"Mauro Carvalho Chehab" <mchehab@osg.samsung.com>,
"Valentin Rothberg" <valentinrothberg@gmail.com>,
"Peter Senna Tschudin" <peter.senna@gmail.com>,
"X86 ML" <x86@kernel.org>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
linux-kernel@vger.kern
Subject: Re: [RFC v1 4/8] x86/init: add linker table support
Date: Thu, 21 Jan 2016 11:50:04 -0800 [thread overview]
Message-ID: <56A1366C.6070702@zytor.com> (raw)
In-Reply-To: <CAB=NE6Wv-iPBMGFe3U+1zt7TT0qXCE9D-egSXfhvZ3E61+z9gA@mail.gmail.com>
On 01/21/16 11:46, Luis R. Rodriguez wrote:
> On Thu, Jan 21, 2016 at 11:25 AM, H. Peter Anvin <hpa@zytor.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.
>
Right... we already do that.
I don't even think you need to initialize any tables. At least on i386,
we have to do this in assembly code. However, it is just a simple table
walk. :)
-hpa
next prev parent reply other threads:[~2016-01-21 19:51 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-15 22:16 [RFC v1 0/8] x86/init: Linux linker tables Luis R. Rodriguez
2015-12-15 22:16 ` [Cocci] [RFC v1 1/8] paravirt: rename paravirt_enabled to paravirt_legacy Luis R. Rodriguez
2015-12-15 22:16 ` Luis R. Rodriguez
2016-01-20 19:32 ` Konrad Rzeszutek Wilk
2016-02-04 22:50 ` [Cocci] " Luis R. Rodriguez
2016-02-04 22:50 ` Luis R. Rodriguez
2016-02-04 22:50 ` Luis R. Rodriguez
2015-12-15 22:16 ` [RFC v1 2/8] tables.h: add linker table support Luis R. Rodriguez
2015-12-15 22:16 ` Luis R. Rodriguez
2016-01-20 20:04 ` Konrad Rzeszutek Wilk
2016-01-20 23:15 ` Michael Brown
2016-01-20 23:24 ` H. Peter Anvin
2015-12-15 22:16 ` [RFC v1 3/8] x86/boot: add BIT() to boot/bitops.h Luis R. Rodriguez
2016-01-20 20:17 ` Konrad Rzeszutek Wilk
2016-01-20 20:33 ` Luis R. Rodriguez
2015-12-15 22:16 ` [RFC v1 4/8] x86/init: add linker table support Luis R. Rodriguez
2016-01-20 20:45 ` Konrad Rzeszutek Wilk
2016-01-20 21:00 ` Konrad Rzeszutek Wilk
2016-01-20 21:33 ` Luis R. Rodriguez
2016-01-20 21:41 ` H. Peter Anvin
2016-01-20 22:12 ` Luis R. Rodriguez
2016-01-20 22:12 ` Luis R. Rodriguez
2016-01-20 22:20 ` H. Peter Anvin
2016-01-20 22:20 ` H. Peter Anvin
2016-01-22 0:25 ` Luis R. Rodriguez
2016-01-22 0:25 ` Luis R. Rodriguez
2016-01-22 0:42 ` H. Peter Anvin
2016-01-22 0:42 ` H. Peter Anvin
2016-02-11 20:45 ` Luis R. Rodriguez
2016-02-11 20:45 ` Luis R. Rodriguez
2016-01-21 8:38 ` Roger Pau Monné
2016-01-21 8:38 ` Roger Pau Monné
2016-01-21 13:45 ` Boris Ostrovsky
2016-01-21 19:25 ` H. Peter Anvin
2016-01-21 19:46 ` Luis R. Rodriguez
2016-01-21 19:46 ` Luis R. Rodriguez
2016-01-21 19:50 ` H. Peter Anvin [this message]
2016-01-21 19:50 ` H. Peter Anvin
2016-01-21 19:52 ` H. Peter Anvin
2016-01-21 19:52 ` H. Peter Anvin
2016-01-22 0:19 ` Luis R. Rodriguez
2016-01-22 0:19 ` Luis R. Rodriguez
2016-01-21 20:05 ` Luis R. Rodriguez
2016-01-21 20:05 ` Luis R. Rodriguez
2016-01-21 21:36 ` H. Peter Anvin
2016-01-21 21:36 ` H. Peter Anvin
2015-12-15 22:16 ` [RFC v1 5/8] x86/init: move ebda reservations into linker table Luis R. Rodriguez
2015-12-17 20:48 ` Andy Lutomirski
2015-12-17 20:55 ` H. Peter Anvin
2015-12-17 20:57 ` Andy Lutomirski
2015-12-17 23:40 ` Luis R. Rodriguez
2016-01-20 20:46 ` Konrad Rzeszutek Wilk
2015-12-15 22:16 ` [RFC v1 6/8] x86/init: use linker table for i386 early setup Luis R. Rodriguez
2016-01-20 21:14 ` Konrad Rzeszutek Wilk
2016-01-20 21:41 ` Luis R. Rodriguez
2016-02-11 19:55 ` Luis R. Rodriguez
2016-02-11 19:55 ` Luis R. Rodriguez
2015-12-15 22:16 ` [RFC v1 7/8] x86/init: user linker table for ce4100 " Luis R. Rodriguez
2016-01-20 21:14 ` Konrad Rzeszutek Wilk
2015-12-15 22:16 ` [RFC v1 8/8] x86/init: use linker table for mid " Luis R. Rodriguez
2016-01-20 21:15 ` Konrad Rzeszutek Wilk
2015-12-15 22:59 ` [RFC v1 0/8] x86/init: Linux linker tables H. Peter Anvin
2015-12-17 20:38 ` H. Peter Anvin
2015-12-17 23:46 ` Luis R. Rodriguez
2015-12-17 23:58 ` Luis R. Rodriguez
2015-12-17 23:58 ` Luis R. Rodriguez
2015-12-18 4:25 ` H. Peter Anvin
2015-12-18 4:40 ` H. Peter Anvin
2016-01-21 20:19 ` H. Peter Anvin
2016-01-21 20:33 ` Luis R. Rodriguez
2016-01-21 21:37 ` Konrad Rzeszutek Wilk
2016-01-21 22:25 ` [Xen-devel] " Luis R. Rodriguez
2016-01-21 23:56 ` H. Peter Anvin
2016-01-22 0:28 ` Luis R. Rodriguez
2016-01-22 0:28 ` Luis R. Rodriguez
2016-01-22 8:15 ` Michael Brown
2016-01-22 13:44 ` Michael Matz
2016-01-22 19:06 ` H. Peter Anvin
2016-01-22 21:52 ` Luis R. Rodriguez
2016-01-22 21:52 ` Luis R. Rodriguez
2016-02-03 0:22 ` Luis R. Rodriguez
2016-02-03 0:25 ` H. Peter Anvin
2016-02-03 0:28 ` Luis R. Rodriguez
2016-02-03 0:48 ` Luis R. Rodriguez
2016-02-03 0:48 ` Luis R. Rodriguez
2016-02-02 23:48 ` H. Peter Anvin
2016-02-03 0:15 ` Luis R. Rodriguez
2016-02-03 0:15 ` Luis R. Rodriguez
2015-12-18 18:50 ` Luis R. Rodriguez
2015-12-18 18:58 ` H. Peter Anvin
2016-01-20 21:16 ` Konrad Rzeszutek Wilk
2016-01-20 21:49 ` 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=56A1366C.6070702@zytor.com \
--to=hpa@zytor.com \
--cc=JBeulich@suse.com \
--cc=andreyknvl@google.com \
--cc=aryabinin@virtuozzo.com \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=jgross@suse.com \
--cc=joro@8bytes.org \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=long.wanglong@huawei.com \
--cc=luto@amacapital.net \
--cc=mcb30@ipxe.org \
--cc=mcgrof@do-not-panic.com \
--cc=mchehab@osg.samsung.com \
--cc=mingo@redhat.com \
--cc=peter.senna@gmail.com \
--cc=qiuxishi@huawei.com \
--cc=roger.pau@citrix.com \
--cc=rusty@rustcorp.com.au \
--cc=ryabinin.a.a@gmail.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tglx@linutronix.de \
--cc=valentinrothberg@gmail.com \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xensource.com \
/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.