All of lore.kernel.org
 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 [PATCH] x86: Setup early console as early as possible 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 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.