WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [Qemu-devel] [PATCH V9 16/16] acpi-piix4: Add Xen hyperc

To: anthony.perard@xxxxxxxxxx
Subject: [Xen-devel] Re: [Qemu-devel] [PATCH V9 16/16] acpi-piix4: Add Xen hypercall for sleep state.
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Date: Wed, 26 Jan 2011 11:49:24 +0900
Cc: Xen Devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, QEMU-devel <qemu-devel@xxxxxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Delivery-date: Tue, 25 Jan 2011 18:50:00 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1295965760-31508-17-git-send-email-anthony.perard@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1295965760-31508-1-git-send-email-anthony.perard@xxxxxxxxxx> <1295965760-31508-17-git-send-email-anthony.perard@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.19 (2009-01-05)
On Tue, Jan 25, 2011 at 02:29:20PM +0000, anthony.perard@xxxxxxxxxx wrote:
> From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> 
> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> ---
>  hw/acpi_piix4.c |    4 ++++
>  hw/xen.h        |    2 ++
>  xen-all.c       |    7 +++++++
>  xen-stub.c      |    4 ++++
>  4 files changed, 17 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
> index 5bbc2b5..ea94bf9 100644
> --- a/hw/acpi_piix4.c
> +++ b/hw/acpi_piix4.c
> @@ -23,6 +23,7 @@
>  #include "acpi.h"
>  #include "sysemu.h"
>  #include "range.h"
> +#include "xen.h"
>  
>  //#define DEBUG
>  
> @@ -181,6 +182,9 @@ static void pm_ioport_write(IORange *ioport, uint64_t 
> addr, unsigned width,
>                      if (s->cmos_s3) {
>                          qemu_irq_raise(s->cmos_s3);
>                      }
> +                    if (xen_enabled()) {
> +                        xen_set_hvm_sleep_state();
> +                    }
>                  default:
>                      break;
>                  }

Why not utilize cmos_s3 callback?
Something like

-       cmos_s3 = qemu_allocate_irqs(pc_cmos_set_s3_resume, rtc_state, 1);
+       cmos_s3 = qemu_allocate_irqs(xen_cmos_set_s3_resume, rtc_state, 1);
        smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100,
                              isa_reserve_irq(9), *cmos_s3, *smi_irq,
                              kvm_enabled());


xen_cmos_set_s3_resume()
        pc_cmos_set_s3_resume()
        xen_set_hvm_sleep_state()


thanks,

> diff --git a/hw/xen.h b/hw/xen.h
> index dd3fb68..8920550 100644
> --- a/hw/xen.h
> +++ b/hw/xen.h
> @@ -44,6 +44,8 @@ int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num);
>  void xen_piix3_set_irq(void *opaque, int irq_num, int level);
>  void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int 
> len);
>  
> +void xen_set_hvm_sleep_state(void);
> +
>  int xen_init(int smp_cpus);
>  
>  #if defined(NEED_CPU_H) && !defined(CONFIG_USER_ONLY)
> diff --git a/xen-all.c b/xen-all.c
> index c2d37d6..86ebfcb 100644
> --- a/xen-all.c
> +++ b/xen-all.c
> @@ -464,6 +464,13 @@ static void xen_main_loop_prepare(XenIOState *state)
>  }
>  
>  
> +/* ACPI */
> +
> +void xen_set_hvm_sleep_state(void)
> +{
> +    xc_set_hvm_param(xen_xc, xen_domid, HVM_PARAM_ACPI_S_STATE, 3);
> +}
> +
>  /* Initialise Xen */
>  
>  static void xen_vm_change_state_handler(void *opaque, int running, int 
> reason)
> diff --git a/xen-stub.c b/xen-stub.c
> index c9f477d..d22f475 100644
> --- a/xen-stub.c
> +++ b/xen-stub.c
> @@ -28,6 +28,10 @@ void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size)
>  {
>  }
>  
> +void xen_set_hvm_sleep_state(void)
> +{
> +}
> +
>  int xen_init(int smp_cpus)
>  {
>      return -ENOSYS;
> -- 
> 1.7.1
> 
> 

-- 
yamahata

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>