From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Andi Kleen <ak@suse.de>
Cc: Glauber de Oliveira Costa <gcosta@redhat.com>,
linux-kernel@vger.kernel.org, akpm@linux-foundation.org,
rusty@rustcorp.com.au, mingo@elte.hu, chrisw@sous-sol.org,
avi@qumranet.com, anthony@codemonkey.ws,
virtualization@lists.linux-foundation.org, lguest@ozlabs.org,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [PATCH 23/25] [PATCH] paravirt hooks for arch initialization
Date: Thu, 09 Aug 2007 10:43:52 -0700 [thread overview]
Message-ID: <46BB5258.8040609@goop.org> (raw)
In-Reply-To: <200708081144.04119.ak@suse.de>
Andi Kleen wrote:
>> -static void discover_ebda(void)
>> +void native_ebda_info(unsigned *addr, unsigned *size)
>>
>
> I guess it would be better to use the resources frame work here.
> Before checking EBDA check if it is already reserved. Then lguest/Xen
> can reserve these areas and stop using it.
>
What's the EBDA actually used for? The only place which seems to use
ebda_addr is in the e820 code to avoid that area as RAM.
Seems to me that we can just arrange to have the early lguest/xen setup
code set the EBDA_ADDR pointer to NULL and make discover_ebda() special
case that to zero out ebda_addr/size.
>> +/* Overridden in paravirt.c if CONFIG_PARAVIRT */
>> +void __attribute__((weak)) memory_setup(void)
>> +{
>> + return setup_memory_region();
>> +}
>> +
>> +
>> void __init setup_arch(char **cmdline_p)
>> {
>> printk(KERN_INFO "Command line: %s\n", boot_command_line);
>> @@ -231,12 +255,19 @@ void __init setup_arch(char **cmdline_p)
>> saved_video_mode = SAVED_VIDEO_MODE;
>> bootloader_type = LOADER_TYPE;
>>
>> + /*
>> + * By returning non-zero here, a paravirt impl can choose to
>> + * skip the rest of the setup process
>> + */
>> + if (paravirt_arch_setup())
>> + return;
>>
>
> Sorry, but that's an extremly ugly and clumpsy interface and will lead
> to extensive code duplication in hypervisors because so much code
> is disabled.
>
> This needs to be solved in some better way.
>
Yeah, it seems a bit hamfisted. Looks like it would be better to deal
with it by some combination of:
1. implement pv analogues of existing functions
2. try to neutralize functions we don't care about in pv-land
3. refactoring the setup() function to make the pv-friendly and
pv-hostile parts clearly distinct
and remember: native isn't a special case; its just another pv driver.
J
next prev parent reply other threads:[~2007-08-09 17:46 UTC|newest]
Thread overview: 192+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-08 4:18 Introducing paravirt_ops for x86_64 Glauber de Oliveira Costa
2007-08-08 4:18 ` Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 1/25] [PATCH] header file move Glauber de Oliveira Costa
2007-08-08 4:18 ` Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 2/25] [PATCH] tlb flushing routines Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 3/25] [PATCH] irq_flags / halt routines Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 4/25] [PATCH] Add debugreg/load_rsp native hooks Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 5/25] [PATCH] native versions for system.h functions Glauber de Oliveira Costa
2007-08-08 4:18 ` Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 6/25] [PATCH] add native_apic read and write functions, as well as boot clocks ones Glauber de Oliveira Costa
2007-08-08 4:18 ` Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 7/25] [PATCH] interrupt related native paravirt functions Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 8/25] [PATCH] use macro for sti/cli in spinlock definitions Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 9/25] [PATCH] report ring kernel is running without paravirt Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 10/25] [PATCH] export math_state_restore Glauber de Oliveira Costa
2007-08-08 4:18 ` Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 11/25] [PATCH] introduce paravirt_release_pgd() Glauber de Oliveira Costa
2007-08-08 4:18 ` Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 12/25] [PATCH] native versions for set pagetables Glauber de Oliveira Costa
2007-08-08 4:18 ` Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 13/25] [PATCH] turn msr.h functions into native versions Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 14/25] [PATCH] add native functions for descriptors handling Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 15/25] [PATCH] get rid of inline asm for load_cr3 Glauber de Oliveira Costa
2007-08-08 4:19 ` Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 16/25] [PATCH] introducing paravirt_activate_mm Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 17/25] [PATCH] turn page operations into native versions Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 18/25] [PATCH] turn priviled operations into macros in entry.S Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 19/25] [PATCH] time-related functions paravirt provisions Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 20/25] [PATCH] replace syscall_init Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 21/25] [PATCH] export cpu_gdt_descr Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 22/25] [PATCH] turn priviled operation into a macro Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 23/25] [PATCH] paravirt hooks for arch initialization Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 24/25] [PATCH] provide paravirt patching function Glauber de Oliveira Costa
2007-08-08 4:19 ` Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 25/25] [PATCH] add paravirtualization support for x86_64 Glauber de Oliveira Costa
2007-08-08 10:00 ` Andi Kleen
2007-08-08 10:00 ` Andi Kleen
2007-08-08 11:58 ` Steven Rostedt
2007-08-08 11:58 ` Steven Rostedt
2007-08-08 14:49 ` Glauber de Oliveira Costa
2007-08-08 23:18 ` Rusty Russell
2007-08-09 0:24 ` Andi Kleen
2007-08-09 0:24 ` Andi Kleen
2007-08-09 0:44 ` Rusty Russell
2007-08-09 5:38 ` Jeremy Fitzhardinge
2007-08-09 5:38 ` Jeremy Fitzhardinge
2007-08-09 0:44 ` Rusty Russell
2007-08-08 23:18 ` Rusty Russell
2007-08-08 14:49 ` Glauber de Oliveira Costa
2007-08-09 6:53 ` Jeremy Fitzhardinge
2007-08-09 14:26 ` Andi Kleen
2007-08-09 14:26 ` Andi Kleen
2007-08-09 14:37 ` Steven Rostedt
2007-08-09 14:37 ` Steven Rostedt
2007-08-09 15:09 ` Jeremy Fitzhardinge
2007-08-09 15:09 ` Jeremy Fitzhardinge
2007-08-09 6:53 ` Jeremy Fitzhardinge
2007-08-09 6:35 ` Jeremy Fitzhardinge
2007-08-09 6:35 ` Jeremy Fitzhardinge
2007-08-09 7:02 ` Glauber de Oliveira Costa
2007-08-09 7:02 ` Jeremy Fitzhardinge
2007-08-09 7:02 ` Jeremy Fitzhardinge
2007-08-09 7:07 ` Glauber de Oliveira Costa
2007-08-09 7:12 ` Jeremy Fitzhardinge
2007-08-09 7:12 ` Jeremy Fitzhardinge
2007-08-09 12:30 ` Steven Rostedt
2007-08-09 12:30 ` Steven Rostedt
2007-08-09 14:26 ` Andi Kleen
2007-08-09 14:26 ` Andi Kleen
2007-08-09 7:07 ` Glauber de Oliveira Costa
2007-08-09 7:02 ` Glauber de Oliveira Costa
2007-08-08 4:19 ` Glauber de Oliveira Costa
2007-08-08 9:44 ` [PATCH 23/25] [PATCH] paravirt hooks for arch initialization Andi Kleen
2007-08-08 14:08 ` Glauber de Oliveira Costa
2007-08-08 14:08 ` Glauber de Oliveira Costa
2007-08-08 14:13 ` Andi Kleen
2007-08-08 14:13 ` Andi Kleen
2007-08-09 17:43 ` Jeremy Fitzhardinge [this message]
2007-08-09 18:03 ` Alan Cox
2007-08-09 18:03 ` Alan Cox
2007-08-10 18:08 ` Glauber de Oliveira Costa
2007-08-10 18:25 ` Alan Cox
2007-08-10 18:25 ` Alan Cox
2007-08-10 18:51 ` Jeremy Fitzhardinge
2007-08-10 19:17 ` Glauber de Oliveira Costa
2007-08-10 19:17 ` Glauber de Oliveira Costa
2007-08-10 20:01 ` Jeremy Fitzhardinge
2007-08-10 20:01 ` Jeremy Fitzhardinge
2007-08-10 20:13 ` Glauber de Oliveira Costa
2007-08-10 20:30 ` Jeremy Fitzhardinge
2007-08-10 20:30 ` Jeremy Fitzhardinge
2007-08-10 20:13 ` Glauber de Oliveira Costa
2007-08-10 18:51 ` Jeremy Fitzhardinge
2007-08-10 18:08 ` Glauber de Oliveira Costa
2007-08-09 17:43 ` Jeremy Fitzhardinge
2007-08-08 9:44 ` Andi Kleen
2007-08-08 4:19 ` Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 22/25] [PATCH] turn priviled operation into a macro Glauber de Oliveira Costa
2007-08-08 11:32 ` [PATCH 21/25] [PATCH] export cpu_gdt_descr Arjan van de Ven
2007-08-08 14:24 ` Glauber de Oliveira Costa
2007-08-08 14:24 ` Glauber de Oliveira Costa
2007-08-08 11:32 ` Arjan van de Ven
2007-08-08 4:19 ` Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 20/25] [PATCH] replace syscall_init Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 19/25] [PATCH] time-related functions paravirt provisions Glauber de Oliveira Costa
2007-08-08 9:38 ` [PATCH 18/25] [PATCH] turn priviled operations into macros in entry.S Andi Kleen
2007-08-08 11:52 ` Steven Rostedt
2007-08-08 12:24 ` Andi Kleen
2007-08-08 12:24 ` Andi Kleen
2007-08-08 12:37 ` Steven Rostedt
2007-08-08 13:52 ` Andi Kleen
2007-08-08 13:23 ` Steven Rostedt
2007-08-08 13:23 ` Steven Rostedt
2007-08-08 13:26 ` Steven Rostedt
2007-08-08 13:26 ` Steven Rostedt
2007-08-08 13:30 ` Andi Kleen
2007-08-08 13:30 ` Andi Kleen
2007-08-08 13:47 ` Steven Rostedt
2007-08-08 14:03 ` Andi Kleen
2007-08-08 14:03 ` Andi Kleen
2007-08-08 17:07 ` Steven Rostedt
2007-08-08 17:07 ` Steven Rostedt
2007-08-09 5:21 ` Jeremy Fitzhardinge
2007-08-09 5:21 ` Jeremy Fitzhardinge
2007-08-09 12:17 ` Steven Rostedt
2007-08-09 12:17 ` Steven Rostedt
2007-08-08 13:47 ` Steven Rostedt
2007-08-08 13:29 ` Andi Kleen
2007-08-08 13:29 ` Andi Kleen
2007-08-08 14:01 ` Steven Rostedt
2007-08-08 14:01 ` Steven Rostedt
2007-08-08 13:52 ` Andi Kleen
2007-08-08 12:37 ` Steven Rostedt
2007-08-08 14:00 ` Glauber de Oliveira Costa
2007-08-08 14:00 ` Glauber de Oliveira Costa
2007-08-08 11:52 ` Steven Rostedt
2007-08-08 13:58 ` Glauber de Oliveira Costa
2007-08-08 13:58 ` Glauber de Oliveira Costa
2007-08-08 14:11 ` Andi Kleen
2007-08-08 14:11 ` Andi Kleen
2007-08-08 14:53 ` Glauber de Oliveira Costa
2007-08-08 14:53 ` Glauber de Oliveira Costa
2007-08-08 9:38 ` Andi Kleen
2007-08-08 4:19 ` Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 17/25] [PATCH] turn page operations into native versions Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 16/25] [PATCH] introducing paravirt_activate_mm Glauber de Oliveira Costa
2007-08-08 4:19 ` [PATCH 14/25] [PATCH] add native functions for descriptors handling Glauber de Oliveira Costa
2007-08-08 9:25 ` [PATCH 13/25] [PATCH] turn msr.h functions into native versions Andi Kleen
2007-08-08 9:25 ` Andi Kleen
2007-08-08 14:19 ` Glauber de Oliveira Costa
2007-08-08 14:23 ` Andi Kleen
2007-08-08 14:23 ` Andi Kleen
2007-08-08 14:19 ` Glauber de Oliveira Costa
2007-08-08 4:19 ` Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 9/25] [PATCH] report ring kernel is running without paravirt Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 8/25] [PATCH] use macro for sti/cli in spinlock definitions Glauber de Oliveira Costa
2007-08-09 5:52 ` [PATCH 7/25] [PATCH] interrupt related native paravirt functions Jeremy Fitzhardinge
2007-08-09 5:52 ` Jeremy Fitzhardinge
2007-08-08 4:18 ` Glauber de Oliveira Costa
2007-08-08 7:29 ` [PATCH 5/25] [PATCH] native versions for system.h functions Glauber de Oliveira Costa
2007-08-08 7:29 ` Glauber de Oliveira Costa
2007-08-08 9:16 ` [PATCH 4/25] [PATCH] Add debugreg/load_rsp native hooks Andi Kleen
2007-08-09 5:47 ` Jeremy Fitzhardinge
2007-08-09 5:47 ` Jeremy Fitzhardinge
2007-08-09 5:49 ` Glauber de Oliveira Costa
2007-08-09 5:49 ` Glauber de Oliveira Costa
2007-08-08 9:16 ` Andi Kleen
2007-08-08 4:18 ` Glauber de Oliveira Costa
2007-08-08 9:14 ` [PATCH 3/25] [PATCH] irq_flags / halt routines Andi Kleen
2007-08-08 14:10 ` Glauber de Oliveira Costa
2007-08-08 14:10 ` Glauber de Oliveira Costa
2007-08-08 14:14 ` Andi Kleen
2007-08-08 14:23 ` Glauber de Oliveira Costa
2007-08-08 14:23 ` Glauber de Oliveira Costa
2007-08-08 14:14 ` Andi Kleen
2007-08-09 7:29 ` Glauber de Oliveira Costa
2007-08-09 7:29 ` Glauber de Oliveira Costa
2007-08-08 9:14 ` Andi Kleen
2007-08-08 4:18 ` Glauber de Oliveira Costa
2007-08-08 4:18 ` [PATCH 2/25] [PATCH] tlb flushing routines Glauber de Oliveira Costa
2007-08-08 14:53 ` Introducing paravirt_ops for x86_64 Nakajima, Jun
2007-08-08 14:58 ` Glauber de Oliveira Costa
2007-08-08 14:58 ` Glauber de Oliveira Costa
2007-08-09 0:28 ` Nakajima, Jun
2007-08-09 0:31 ` Glauber de Oliveira Costa
2007-08-09 0:31 ` Glauber de Oliveira Costa
2007-08-09 0:28 ` Nakajima, Jun
2007-08-09 5:35 ` Jeremy Fitzhardinge
2007-08-09 5:35 ` Jeremy Fitzhardinge
2007-08-09 12:46 ` [Lguest] " Steven Rostedt
2007-08-09 12:46 ` Steven Rostedt
2007-08-08 14:53 ` Nakajima, Jun
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=46BB5258.8040609@goop.org \
--to=jeremy@goop.org \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=anthony@codemonkey.ws \
--cc=avi@qumranet.com \
--cc=chrisw@sous-sol.org \
--cc=gcosta@redhat.com \
--cc=lguest@ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
--cc=rusty@rustcorp.com.au \
--cc=virtualization@lists.linux-foundation.org \
/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.