All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: anthony.perard@citrix.com
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	Xen Devel <xen-devel@lists.xensource.com>,
	QEMU-devel <qemu-devel@nongnu.org>,
	Alexander Graf <agraf@suse.de>
Subject: [Qemu-devel] Re: [PATCH V12 05/17] xen: Add xenfv machine
Date: Fri, 08 Apr 2011 15:48:57 +0200	[thread overview]
Message-ID: <4D9F1249.6080305@siemens.com> (raw)
In-Reply-To: <1301423290-12443-6-git-send-email-anthony.perard@citrix.com>

[ Late comments, I know, sorry. Just happen to came across this. ]

On 2011-03-29 20:27, anthony.perard@citrix.com wrote:
> From: Anthony PERARD <anthony.perard@citrix.com>
> 
> Introduce the Xen FV (Fully Virtualized) machine to Qemu, some more Xen
> specific call will be added in further patches.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
>  hw/pc.c      |   19 +++++++++++++++++--
>  hw/pc_piix.c |   17 +++++++++++++++++
>  hw/xen.h     |    4 ++++
>  3 files changed, 38 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/pc.c b/hw/pc.c
> index 6939c04..d7732d4 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -41,6 +41,7 @@
>  #include "sysemu.h"
>  #include "blockdev.h"
>  #include "ui/qemu-spice.h"
> +#include "xen.h"
>  
>  /* output Bochs bios info messages */
>  //#define DEBUG_BIOS
> @@ -918,7 +919,11 @@ static void pc_cpu_reset(void *opaque)
>      CPUState *env = opaque;
>  
>      cpu_reset(env);
> -    env->halted = !cpu_is_bsp(env);
> +    if (!xen_enabled()) {
> +        env->halted = !cpu_is_bsp(env);
> +    } else {
> +        env->halted = 1;
> +    }

Not a fault of your patch, but pc_cpu_reset should not exist in the
first place. Setting env->halted should be done in i386's cpu_reset.

I think Xen would be better off with installing a custom VCPU reset
handler and overwrite halted according to its own needs. KVM is doing
the same. Then we could clean up pc_cpu_reset without bothering Xen.

>  }
>  
>  static CPUState *pc_new_cpu(const char *cpu_model)
> @@ -952,7 +957,12 @@ void pc_cpus_init(const char *cpu_model)
>  #endif
>      }
>  
> -    for(i = 0; i < smp_cpus; i++) {
> +    if (!xen_enabled()) {
> +        for(i = 0; i < smp_cpus; i++) {
> +            pc_new_cpu(cpu_model);
> +        }
> +    } else {
> +        /* Xen require only one Qemu VCPU */
>          pc_new_cpu(cpu_model);

This looks a bit fishy. What is the semantic of -smp 2 or more in Xen
mode? If that is an invalid/unused configuration option, catch that and
reject it instead of installing this workaround. If it has a valid
semantic, please elaborate why you need to restrict the number of
instantiated cpus. Just to optimize memory usage?

>      }
>  }
> @@ -980,6 +990,11 @@ void pc_memory_init(ram_addr_t ram_size,
>      *above_4g_mem_size_p = above_4g_mem_size;
>      *below_4g_mem_size_p = below_4g_mem_size;
>  
> +    if (xen_enabled()) {
> +        /* Nothing to do for Xen */
> +        return;
> +    }
> +

This looks fragile /wrt potential future changes of pc_memory_init.
Can't those bits Xen is interested in, ie. the above/below_4g_mem_size
calculation, be moved into a separate function or even to the caller
(should be trivial enough, the interface of pc_memory_init is clumsy in
this regard anyway) so that you can simply skip pc_memory_init when in
Xen mode?

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

WARNING: multiple messages have this Message-ID (diff)
From: Jan Kiszka <jan.kiszka@siemens.com>
To: anthony.perard@citrix.com
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	Xen Devel <xen-devel@lists.xensource.com>,
	QEMU-devel <qemu-devel@nongnu.org>,
	Anthony Liguori <anthony@codemonkey.ws>,
	Alexander Graf <agraf@suse.de>
Subject: Re: [PATCH V12 05/17] xen: Add xenfv machine
Date: Fri, 08 Apr 2011 15:48:57 +0200	[thread overview]
Message-ID: <4D9F1249.6080305@siemens.com> (raw)
In-Reply-To: <1301423290-12443-6-git-send-email-anthony.perard@citrix.com>

[ Late comments, I know, sorry. Just happen to came across this. ]

On 2011-03-29 20:27, anthony.perard@citrix.com wrote:
> From: Anthony PERARD <anthony.perard@citrix.com>
> 
> Introduce the Xen FV (Fully Virtualized) machine to Qemu, some more Xen
> specific call will be added in further patches.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
>  hw/pc.c      |   19 +++++++++++++++++--
>  hw/pc_piix.c |   17 +++++++++++++++++
>  hw/xen.h     |    4 ++++
>  3 files changed, 38 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/pc.c b/hw/pc.c
> index 6939c04..d7732d4 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -41,6 +41,7 @@
>  #include "sysemu.h"
>  #include "blockdev.h"
>  #include "ui/qemu-spice.h"
> +#include "xen.h"
>  
>  /* output Bochs bios info messages */
>  //#define DEBUG_BIOS
> @@ -918,7 +919,11 @@ static void pc_cpu_reset(void *opaque)
>      CPUState *env = opaque;
>  
>      cpu_reset(env);
> -    env->halted = !cpu_is_bsp(env);
> +    if (!xen_enabled()) {
> +        env->halted = !cpu_is_bsp(env);
> +    } else {
> +        env->halted = 1;
> +    }

Not a fault of your patch, but pc_cpu_reset should not exist in the
first place. Setting env->halted should be done in i386's cpu_reset.

I think Xen would be better off with installing a custom VCPU reset
handler and overwrite halted according to its own needs. KVM is doing
the same. Then we could clean up pc_cpu_reset without bothering Xen.

>  }
>  
>  static CPUState *pc_new_cpu(const char *cpu_model)
> @@ -952,7 +957,12 @@ void pc_cpus_init(const char *cpu_model)
>  #endif
>      }
>  
> -    for(i = 0; i < smp_cpus; i++) {
> +    if (!xen_enabled()) {
> +        for(i = 0; i < smp_cpus; i++) {
> +            pc_new_cpu(cpu_model);
> +        }
> +    } else {
> +        /* Xen require only one Qemu VCPU */
>          pc_new_cpu(cpu_model);

This looks a bit fishy. What is the semantic of -smp 2 or more in Xen
mode? If that is an invalid/unused configuration option, catch that and
reject it instead of installing this workaround. If it has a valid
semantic, please elaborate why you need to restrict the number of
instantiated cpus. Just to optimize memory usage?

>      }
>  }
> @@ -980,6 +990,11 @@ void pc_memory_init(ram_addr_t ram_size,
>      *above_4g_mem_size_p = above_4g_mem_size;
>      *below_4g_mem_size_p = below_4g_mem_size;
>  
> +    if (xen_enabled()) {
> +        /* Nothing to do for Xen */
> +        return;
> +    }
> +

This looks fragile /wrt potential future changes of pc_memory_init.
Can't those bits Xen is interested in, ie. the above/below_4g_mem_size
calculation, be moved into a separate function or even to the caller
(should be trivial enough, the interface of pc_memory_init is clumsy in
this regard anyway) so that you can simply skip pc_memory_init when in
Xen mode?

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

  reply	other threads:[~2011-04-08 13:49 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-29 18:27 [Qemu-devel] [PATCH V12 00/17] Xen device model support anthony.perard
2011-03-29 18:27 ` anthony.perard
2011-03-29 18:27 ` [Qemu-devel] [PATCH V12 01/17] xen: Replace some tab-indents with spaces (clean-up) anthony.perard
2011-03-29 18:27   ` anthony.perard
2011-03-29 18:27 ` [Qemu-devel] [PATCH V12 02/17] xen: Make Xen build once anthony.perard
2011-03-29 18:27   ` anthony.perard
2011-03-29 18:27 ` [Qemu-devel] [PATCH V12 03/17] xen: Support new libxc calls from xen unstable anthony.perard
2011-03-29 18:27   ` anthony.perard
2011-03-29 18:27 ` [Qemu-devel] [PATCH V12 04/17] xen: Add initialisation of Xen anthony.perard
2011-03-29 18:27   ` anthony.perard
2011-03-29 18:27 ` [Qemu-devel] [PATCH V12 05/17] xen: Add xenfv machine anthony.perard
2011-03-29 18:27   ` anthony.perard
2011-04-08 13:48   ` Jan Kiszka [this message]
2011-04-08 13:48     ` Jan Kiszka
2011-04-11 18:10     ` [Qemu-devel] " Anthony PERARD
2011-04-11 18:10       ` Anthony PERARD
2011-04-11 19:55       ` [Qemu-devel] " Jan Kiszka
2011-04-11 19:55         ` Jan Kiszka
2011-04-12 14:57         ` [Qemu-devel] " Anthony PERARD
2011-04-12 14:57           ` Anthony PERARD
2011-04-12 15:52           ` [Qemu-devel] " Jan Kiszka
2011-04-12 15:52             ` Jan Kiszka
2011-04-13 10:56             ` [Qemu-devel] " Stefano Stabellini
2011-04-13 10:56               ` Stefano Stabellini
2011-04-13 11:28               ` Jan Kiszka
2011-04-13 11:49                 ` Stefano Stabellini
2011-04-13 13:05                   ` Jan Kiszka
2011-04-13 13:05                     ` Jan Kiszka
2011-04-13 15:22                     ` [Qemu-devel] " Stefano Stabellini
2011-04-13 15:22                       ` Stefano Stabellini
2011-03-29 18:27 ` [Qemu-devel] [PATCH V12 06/17] xen: Add the Xen platform pci device anthony.perard
2011-03-29 18:27   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 07/17] piix_pci: Introduces Xen specific call for irq anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 08/17] xen: Introduce Xen Interrupt Controller anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 09/17] xen: Introduce the Xen mapcache anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 10/17] xen: Adds a cap to the number of map cache entries anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 11/17] configure: Always use 64bits target physical addresses with xen enabled anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 12/17] Introduce qemu_put_ram_ptr anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 13/17] pci: Use of qemu_put_ram_ptr in pci_add_option_rom anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 14/17] vl.c: Introduce getter for shutdown_requested and reset_requested anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 15/17] xen: Initialize event channels and io rings anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 16/17] xen: Set running state in xenstore anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-29 18:28 ` [Qemu-devel] [PATCH V12 17/17] xen: Add Xen hypercall for sleep state in the cmos_s3 callback anthony.perard
2011-03-29 18:28   ` anthony.perard
2011-03-30 10:56 ` [Qemu-devel] Re: [PATCH V12 00/17] Xen device model support Alexander Graf
2011-03-30 10:56   ` Alexander Graf
2011-03-31 11:48 ` [Qemu-devel] Re: [Xen-devel] " Anthony PERARD
2011-03-31 11:48   ` Anthony PERARD

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=4D9F1249.6080305@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=agraf@suse.de \
    --cc=anthony.perard@citrix.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --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.