From: Yinghai Lu <yinghai.lu@oracle.com>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>,
Cyrill Gorcunov <gorcunov@gmail.com>,
Pekka Enberg <penberg@cs.helsinki.fi>,
Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
Andrew Morton <akpm@linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] x86: Setup early console as early as possible
Date: Mon, 12 Jul 2010 16:37:21 -0700 [thread overview]
Message-ID: <4C3BA731.40508@oracle.com> (raw)
In-Reply-To: <4C3B9DD4.1040808@goop.org>
On 07/12/2010 03:57 PM, Jeremy Fitzhardinge wrote:
> On 07/12/2010 11:11 AM, Yinghai Lu wrote:
>> On 07/12/2010 11:09 AM, H. Peter Anvin wrote:
>>
>>> On 07/12/2010 10:44 AM, Cyrill Gorcunov wrote:
>>>
>>>> Peter, while reviewing this patch I found another nit in
>>>> context of early_param usage, so the patch is below. It's
>>>> completely trivial. Actually I thought I've already fixed
>>>> all early_param cases long ago but this one somehow sneaked ;)
>>>>
>>>> Anyway, Yinghai, Peter,
>>>>
>>>> I'm not sure but can't we use some boot_param "pad" field for
>>>> "being copied" flag instead of new variable? There is a case
>>>> when boot_param is used as __initdata and I'm not sure we clear
>>>> this section explicitly.
>>>>
>>>>
>>> Actually, even better would be to simply use boot_params.hdr.version,
>>> which will never be zero.
>>>
>> Jeremy,
>>
>> any reason that xen cat not use x86_64_start_kernel directly?
>>
>
> As I remember it, I split x86_64_start_kernel into two pieces, one
> containing the bits that were awkward with Xen. I don't remember which
> were the problematic parts, but it all looks pretty tricky. Specifically:
>
> * Xen will pre-clear the bss, so that's not necessary
> * we don't go via head, so cleanup_highmap isn't either
> * PV domains don't have an IDT available to them, or any of their
> associated structures
>
> So the whole thing looks at best reundant, and at worst has the
> potential for causing subtle damage.
>
> Why do you ask? Does it relate to the early console stuff, or are you
> just asking because you're looking at it?
yes, make setup_early_console()/copy_bootdata two times....
and that looks strange.
+static int __initdata bootdata_copied;
static void __init copy_bootdata(char *real_mode_data)
{
char * command_line;
+ if (bootdata_copied)
+ return;
+
memcpy(&boot_params, real_mode_data, sizeof boot_params);
if (boot_params.hdr.cmd_line_ptr) {
command_line = __va(boot_params.hdr.cmd_line_ptr);
memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
}
+
+ bootdata_copied = 1;
}
void __init x86_64_start_kernel(char * real_mode_data)
@@ -73,6 +80,10 @@ void __init x86_64_start_kernel(char * real_mode_data)
/* clear bss before set_intr_gate with early_idt_handler */
clear_bss();
+ /* boot_params is in bss */
+ copy_bootdata(__va(real_mode_data));
+ setup_early_console();
+
/* Make NULL pointers segfault */
zap_identity_mappings();
@@ -97,8 +108,11 @@ void __init x86_64_start_kernel(char * real_mode_data)
void __init x86_64_start_reservations(char *real_mode_data)
{
copy_bootdata(__va(real_mode_data));
+ setup_early_console();
+
Thanks
Yinghai Lu
next prev parent reply other threads:[~2010-07-12 23:40 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-11 21:44 Yinghai Lu
2010-07-12 8:58 ` Pekka Enberg
2010-07-12 15:47 ` H. Peter Anvin
2010-07-12 16:21 ` Yinghai Lu
2010-07-12 17:30 ` H. Peter Anvin
2010-07-13 17:43 ` Pekka Enberg
2010-07-13 20:35 ` Yinghai Lu
2010-07-13 20:46 ` Pekka Enberg
2010-07-14 2:07 ` [PATCH] x86: only set early_serial_base after port is initialized Yinghai Lu
2010-07-14 8:41 ` Pekka Enberg
2010-07-14 18:26 ` [PATCH -v2] x86: only set early_serial_base after port is initialized in setup code Yinghai Lu
2010-07-14 19:12 ` [tip:x86/setup] x86, setup: Only set early_serial_base after port is initialized tip-bot for Yinghai Lu
2010-07-13 21:12 ` [tip:x86/setup] x86, setup: Make the setup code also accept console=uart8250 tip-bot for Yinghai Lu
2010-07-12 17:44 ` [PATCH] x86: Setup early console as early as possible Cyrill Gorcunov
2010-07-12 18:09 ` H. Peter Anvin
2010-07-12 18:11 ` Yinghai Lu
2010-07-12 22:57 ` Jeremy Fitzhardinge
2010-07-12 23:37 ` Yinghai Lu [this message]
[not found] <f5czp-42V-9@gated-at.bofh.it>
[not found] ` <f5n1M-2lt-21@gated-at.bofh.it>
[not found] ` <f5tqz-3ll-37@gated-at.bofh.it>
[not found] ` <f5u3g-4mj-11@gated-at.bofh.it>
[not found] ` <f5v90-5Wo-7@gated-at.bofh.it>
2010-07-12 20:57 ` Bodo Eggert
2010-07-12 21:52 ` H. Peter Anvin
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=4C3BA731.40508@oracle.com \
--to=yinghai.lu@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=gorcunov@gmail.com \
--cc=hpa@zytor.com \
--cc=jeremy.fitzhardinge@citrix.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=penberg@cs.helsinki.fi \
--cc=tglx@linutronix.de \
/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
Powered by JetHome