mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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

  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