All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: anthony.perard@citrix.com
Cc: Xen Devel <xen-devel@lists.xensource.com>,
	QEMU-devel <qemu-devel@nongnu.org>,
	Marcelo Tosatti <mtosatti@redhat.com>
Subject: [Qemu-devel] Re: [PATCH V2 1/3] Introduce log_start/log_stop in CPUPhysMemoryClient
Date: Tue, 18 Jan 2011 19:20:35 +0100	[thread overview]
Message-ID: <4D35D9F3.10001@siemens.com> (raw)
In-Reply-To: <1295353522-31891-1-git-send-email-anthony.perard@citrix.com>

Send patch updates always with proper "[PATCH]" tag, they may get lost
otherwise.

On 2011-01-18 13:25, anthony.perard@citrix.com wrote:
> From: Anthony PERARD <anthony.perard@citrix.com>
> 
> In order to use log_start/log_stop with Xen as well in the vga code,
> this two operations have been put in CPUPhysMemoryClient.
> 
> The two new functions cpu_physical_log_start,cpu_physical_log_stop are
> used in hw/vga.c and replace the kvm_log_start/stop. With this, vga does
> no longer depends on kvm header.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
>  cpu-all.h    |    6 ++++++
>  cpu-common.h |    4 ++++
>  exec.c       |   28 ++++++++++++++++++++++++++++
>  hw/vga.c     |   31 ++++++++++++++++---------------
>  hw/vhost.c   |    2 ++
>  kvm-all.c    |    8 ++++++--
>  kvm-stub.c   |   10 ----------
>  kvm.h        |    3 ---
>  8 files changed, 62 insertions(+), 30 deletions(-)
> 
> diff --git a/cpu-all.h b/cpu-all.h
> index 30ae17d..aaf5442 100644
> --- a/cpu-all.h
> +++ b/cpu-all.h
> @@ -957,6 +957,12 @@ int cpu_physical_memory_get_dirty_tracking(void);
>  int cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
>                                     target_phys_addr_t end_addr);
>  
> +int cpu_physical_log_start(target_phys_addr_t start_addr,
> +                           ram_addr_t size);
> +
> +int cpu_physical_log_stop(target_phys_addr_t start_addr,
> +                           ram_addr_t size);
> +
>  void dump_exec_info(FILE *f, fprintf_function cpu_fprintf);
>  #endif /* !CONFIG_USER_ONLY */
>  
> diff --git a/cpu-common.h b/cpu-common.h
> index 8ec01f4..2344842 100644
> --- a/cpu-common.h
> +++ b/cpu-common.h
> @@ -88,6 +88,10 @@ struct CPUPhysMemoryClient {
>                               target_phys_addr_t end_addr);
>      int (*migration_log)(struct CPUPhysMemoryClient *client,
>                           int enable);
> +    int (*log_start)(struct CPUPhysMemoryClient *client,
> +                     target_phys_addr_t phys_addr, ram_addr_t size);
> +    int (*log_stop)(struct CPUPhysMemoryClient *client,
> +                    target_phys_addr_t phys_addr, ram_addr_t size);
>      QLIST_ENTRY(CPUPhysMemoryClient) list;
>  };
>  
> diff --git a/exec.c b/exec.c
> index c6ed96d..59a6426 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -2073,6 +2073,34 @@ int cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
>      return ret;
>  }
>  
> +int cpu_physical_log_start(target_phys_addr_t start_addr,
> +                           ram_addr_t size)
> +{
> +    CPUPhysMemoryClient *client;
> +    QLIST_FOREACH(client, &memory_client_list, list) {
> +        if (client->log_start) {
> +            int r = client->log_start(client, start_addr, size);
> +            if (r < 0)
> +                return r;
> +        }
> +    }
> +    return 0;
> +}
> +
> +int cpu_physical_log_stop(target_phys_addr_t start_addr,
> +                          ram_addr_t size)
> +{
> +    CPUPhysMemoryClient *client;
> +    QLIST_FOREACH(client, &memory_client_list, list) {
> +        if (client->log_stop) {
> +            int r = client->log_stop(client, start_addr, size);
> +            if (r < 0)
> +                return r;
> +        }
> +    }
> +    return 0;
> +}
> +
>  static inline void tlb_update_dirty(CPUTLBEntry *tlb_entry)
>  {
>      ram_addr_t ram_addr;
> diff --git a/hw/vga.c b/hw/vga.c
> index c057f4f..a9bf172 100644
> --- a/hw/vga.c
> +++ b/hw/vga.c
> @@ -28,7 +28,6 @@
>  #include "vga_int.h"
>  #include "pixel_ops.h"
>  #include "qemu-timer.h"
> -#include "kvm.h"
>  
>  //#define DEBUG_VGA
>  //#define DEBUG_VGA_MEM
> @@ -1597,34 +1596,36 @@ static void vga_sync_dirty_bitmap(VGACommonState *s)
>  
>  void vga_dirty_log_start(VGACommonState *s)
>  {
> -    if (kvm_enabled() && s->map_addr)
> -        kvm_log_start(s->map_addr, s->map_end - s->map_addr);
> +    if (s->map_addr) {
> +        cpu_physical_log_start(s->map_addr, s->map_end - s->map_addr);
> +    }
>  
> -    if (kvm_enabled() && s->lfb_vram_mapped) {
> -        kvm_log_start(isa_mem_base + 0xa0000, 0x8000);
> -        kvm_log_start(isa_mem_base + 0xa8000, 0x8000);
> +    if (s->lfb_vram_mapped) {
> +        cpu_physical_log_start(isa_mem_base + 0xa0000, 0x8000);
> +        cpu_physical_log_start(isa_mem_base + 0xa8000, 0x8000);
>      }
>  
>  #ifdef CONFIG_BOCHS_VBE
> -    if (kvm_enabled() && s->vbe_mapped) {
> -        kvm_log_start(VBE_DISPI_LFB_PHYSICAL_ADDRESS, s->vram_size);
> +    if (s->vbe_mapped) {
> +        cpu_physical_log_start(VBE_DISPI_LFB_PHYSICAL_ADDRESS, s->vram_size);
>      }
>  #endif
>  }
>  
>  void vga_dirty_log_stop(VGACommonState *s)
>  {
> -    if (kvm_enabled() && s->map_addr)
> -	kvm_log_stop(s->map_addr, s->map_end - s->map_addr);
> +    if (s->map_addr) {
> +	cpu_physical_log_stop(s->map_addr, s->map_end - s->map_addr);
> +    }
>  
> -    if (kvm_enabled() && s->lfb_vram_mapped) {
> -	kvm_log_stop(isa_mem_base + 0xa0000, 0x8000);
> -	kvm_log_stop(isa_mem_base + 0xa8000, 0x8000);
> +    if (s->lfb_vram_mapped) {
> +	cpu_physical_log_stop(isa_mem_base + 0xa0000, 0x8000);
> +	cpu_physical_log_stop(isa_mem_base + 0xa8000, 0x8000);
>      }
>  
>  #ifdef CONFIG_BOCHS_VBE
> -    if (kvm_enabled() && s->vbe_mapped) {
> -	kvm_log_stop(VBE_DISPI_LFB_PHYSICAL_ADDRESS, s->vram_size);
> +    if (s->vbe_mapped) {
> +	cpu_physical_log_stop(VBE_DISPI_LFB_PHYSICAL_ADDRESS, s->vram_size);
>      }

Sorry in case they were present earlier and I missed them, but here are
tabs included that should be removed from new code. There is a
check-patch script floating around on the list, I think it's not yet
merged though.

>  #endif
>  }
> diff --git a/hw/vhost.c b/hw/vhost.c
> index 8586f66..932b372 100644
> --- a/hw/vhost.c
> +++ b/hw/vhost.c
> @@ -606,6 +606,8 @@ int vhost_dev_init(struct vhost_dev *hdev, int devfd)
>      hdev->client.set_memory = vhost_client_set_memory;
>      hdev->client.sync_dirty_bitmap = vhost_client_sync_dirty_bitmap;
>      hdev->client.migration_log = vhost_client_migration_log;
> +    hdev->client.log_start = NULL;
> +    hdev->client.log_stop = NULL;
>      hdev->mem = qemu_mallocz(offsetof(struct vhost_memory, regions));
>      hdev->log = NULL;
>      hdev->log_size = 0;
> diff --git a/kvm-all.c b/kvm-all.c
> index 37b99c7..aedfe33 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -267,14 +267,16 @@ static int kvm_dirty_pages_log_change(target_phys_addr_t phys_addr,
>      return kvm_set_user_memory_region(s, mem);
>  }
>  
> -int kvm_log_start(target_phys_addr_t phys_addr, ram_addr_t size)
> +static int kvm_log_start(CPUPhysMemoryClient *client,
> +                         target_phys_addr_t phys_addr, ram_addr_t size)
>  {
>          return kvm_dirty_pages_log_change(phys_addr, size,
>                                            KVM_MEM_LOG_DIRTY_PAGES,
>                                            KVM_MEM_LOG_DIRTY_PAGES);
>  }
>  
> -int kvm_log_stop(target_phys_addr_t phys_addr, ram_addr_t size)
> +static int kvm_log_stop(CPUPhysMemoryClient *client,
> +                        target_phys_addr_t phys_addr, ram_addr_t size)
>  {
>          return kvm_dirty_pages_log_change(phys_addr, size,
>                                            0,
> @@ -596,6 +598,8 @@ static CPUPhysMemoryClient kvm_cpu_phys_memory_client = {
>  	.set_memory = kvm_client_set_memory,
>  	.sync_dirty_bitmap = kvm_client_sync_dirty_bitmap,
>  	.migration_log = kvm_client_migration_log,
> +        .log_start = kvm_log_start,
> +        .log_stop = kvm_log_stop,
>  };
>  
>  int kvm_init(int smp_cpus)
> diff --git a/kvm-stub.c b/kvm-stub.c
> index 5384a4b..41324e4 100644
> --- a/kvm-stub.c
> +++ b/kvm-stub.c
> @@ -33,16 +33,6 @@ int kvm_init_vcpu(CPUState *env)
>      return -ENOSYS;
>  }
>  
> -int kvm_log_start(target_phys_addr_t phys_addr, ram_addr_t size)
> -{
> -    return -ENOSYS;
> -}
> -
> -int kvm_log_stop(target_phys_addr_t phys_addr, ram_addr_t size)
> -{
> -    return -ENOSYS;
> -}
> -
>  int kvm_coalesce_mmio_region(target_phys_addr_t start, ram_addr_t size)
>  {
>      return -ENOSYS;
> diff --git a/kvm.h b/kvm.h
> index 60a9b42..fc77b81 100644
> --- a/kvm.h
> +++ b/kvm.h
> @@ -49,9 +49,6 @@ int kvm_init_vcpu(CPUState *env);
>  int kvm_cpu_exec(CPUState *env);
>  
>  #if !defined(CONFIG_USER_ONLY)
> -int kvm_log_start(target_phys_addr_t phys_addr, ram_addr_t size);
> -int kvm_log_stop(target_phys_addr_t phys_addr, ram_addr_t size);
> -
>  void kvm_setup_guest_memory(void *start, size_t size);
>  
>  int kvm_coalesce_mmio_region(target_phys_addr_t start, ram_addr_t size);

Besides the tabs, I'm fine with it:
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>

Maybe this patch should be picked up by qemu-kvm's upstream branch (it
will definitely collide with my coding style patch if not more, but
that's easily resolvable there).

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: Xen Devel <xen-devel@lists.xensource.com>,
	QEMU-devel <qemu-devel@nongnu.org>,
	Marcelo Tosatti <mtosatti@redhat.com>
Subject: Re: [PATCH V2 1/3] Introduce log_start/log_stop in CPUPhysMemoryClient
Date: Tue, 18 Jan 2011 19:20:35 +0100	[thread overview]
Message-ID: <4D35D9F3.10001@siemens.com> (raw)
In-Reply-To: <1295353522-31891-1-git-send-email-anthony.perard@citrix.com>

Send patch updates always with proper "[PATCH]" tag, they may get lost
otherwise.

On 2011-01-18 13:25, anthony.perard@citrix.com wrote:
> From: Anthony PERARD <anthony.perard@citrix.com>
> 
> In order to use log_start/log_stop with Xen as well in the vga code,
> this two operations have been put in CPUPhysMemoryClient.
> 
> The two new functions cpu_physical_log_start,cpu_physical_log_stop are
> used in hw/vga.c and replace the kvm_log_start/stop. With this, vga does
> no longer depends on kvm header.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
>  cpu-all.h    |    6 ++++++
>  cpu-common.h |    4 ++++
>  exec.c       |   28 ++++++++++++++++++++++++++++
>  hw/vga.c     |   31 ++++++++++++++++---------------
>  hw/vhost.c   |    2 ++
>  kvm-all.c    |    8 ++++++--
>  kvm-stub.c   |   10 ----------
>  kvm.h        |    3 ---
>  8 files changed, 62 insertions(+), 30 deletions(-)
> 
> diff --git a/cpu-all.h b/cpu-all.h
> index 30ae17d..aaf5442 100644
> --- a/cpu-all.h
> +++ b/cpu-all.h
> @@ -957,6 +957,12 @@ int cpu_physical_memory_get_dirty_tracking(void);
>  int cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
>                                     target_phys_addr_t end_addr);
>  
> +int cpu_physical_log_start(target_phys_addr_t start_addr,
> +                           ram_addr_t size);
> +
> +int cpu_physical_log_stop(target_phys_addr_t start_addr,
> +                           ram_addr_t size);
> +
>  void dump_exec_info(FILE *f, fprintf_function cpu_fprintf);
>  #endif /* !CONFIG_USER_ONLY */
>  
> diff --git a/cpu-common.h b/cpu-common.h
> index 8ec01f4..2344842 100644
> --- a/cpu-common.h
> +++ b/cpu-common.h
> @@ -88,6 +88,10 @@ struct CPUPhysMemoryClient {
>                               target_phys_addr_t end_addr);
>      int (*migration_log)(struct CPUPhysMemoryClient *client,
>                           int enable);
> +    int (*log_start)(struct CPUPhysMemoryClient *client,
> +                     target_phys_addr_t phys_addr, ram_addr_t size);
> +    int (*log_stop)(struct CPUPhysMemoryClient *client,
> +                    target_phys_addr_t phys_addr, ram_addr_t size);
>      QLIST_ENTRY(CPUPhysMemoryClient) list;
>  };
>  
> diff --git a/exec.c b/exec.c
> index c6ed96d..59a6426 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -2073,6 +2073,34 @@ int cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
>      return ret;
>  }
>  
> +int cpu_physical_log_start(target_phys_addr_t start_addr,
> +                           ram_addr_t size)
> +{
> +    CPUPhysMemoryClient *client;
> +    QLIST_FOREACH(client, &memory_client_list, list) {
> +        if (client->log_start) {
> +            int r = client->log_start(client, start_addr, size);
> +            if (r < 0)
> +                return r;
> +        }
> +    }
> +    return 0;
> +}
> +
> +int cpu_physical_log_stop(target_phys_addr_t start_addr,
> +                          ram_addr_t size)
> +{
> +    CPUPhysMemoryClient *client;
> +    QLIST_FOREACH(client, &memory_client_list, list) {
> +        if (client->log_stop) {
> +            int r = client->log_stop(client, start_addr, size);
> +            if (r < 0)
> +                return r;
> +        }
> +    }
> +    return 0;
> +}
> +
>  static inline void tlb_update_dirty(CPUTLBEntry *tlb_entry)
>  {
>      ram_addr_t ram_addr;
> diff --git a/hw/vga.c b/hw/vga.c
> index c057f4f..a9bf172 100644
> --- a/hw/vga.c
> +++ b/hw/vga.c
> @@ -28,7 +28,6 @@
>  #include "vga_int.h"
>  #include "pixel_ops.h"
>  #include "qemu-timer.h"
> -#include "kvm.h"
>  
>  //#define DEBUG_VGA
>  //#define DEBUG_VGA_MEM
> @@ -1597,34 +1596,36 @@ static void vga_sync_dirty_bitmap(VGACommonState *s)
>  
>  void vga_dirty_log_start(VGACommonState *s)
>  {
> -    if (kvm_enabled() && s->map_addr)
> -        kvm_log_start(s->map_addr, s->map_end - s->map_addr);
> +    if (s->map_addr) {
> +        cpu_physical_log_start(s->map_addr, s->map_end - s->map_addr);
> +    }
>  
> -    if (kvm_enabled() && s->lfb_vram_mapped) {
> -        kvm_log_start(isa_mem_base + 0xa0000, 0x8000);
> -        kvm_log_start(isa_mem_base + 0xa8000, 0x8000);
> +    if (s->lfb_vram_mapped) {
> +        cpu_physical_log_start(isa_mem_base + 0xa0000, 0x8000);
> +        cpu_physical_log_start(isa_mem_base + 0xa8000, 0x8000);
>      }
>  
>  #ifdef CONFIG_BOCHS_VBE
> -    if (kvm_enabled() && s->vbe_mapped) {
> -        kvm_log_start(VBE_DISPI_LFB_PHYSICAL_ADDRESS, s->vram_size);
> +    if (s->vbe_mapped) {
> +        cpu_physical_log_start(VBE_DISPI_LFB_PHYSICAL_ADDRESS, s->vram_size);
>      }
>  #endif
>  }
>  
>  void vga_dirty_log_stop(VGACommonState *s)
>  {
> -    if (kvm_enabled() && s->map_addr)
> -	kvm_log_stop(s->map_addr, s->map_end - s->map_addr);
> +    if (s->map_addr) {
> +	cpu_physical_log_stop(s->map_addr, s->map_end - s->map_addr);
> +    }
>  
> -    if (kvm_enabled() && s->lfb_vram_mapped) {
> -	kvm_log_stop(isa_mem_base + 0xa0000, 0x8000);
> -	kvm_log_stop(isa_mem_base + 0xa8000, 0x8000);
> +    if (s->lfb_vram_mapped) {
> +	cpu_physical_log_stop(isa_mem_base + 0xa0000, 0x8000);
> +	cpu_physical_log_stop(isa_mem_base + 0xa8000, 0x8000);
>      }
>  
>  #ifdef CONFIG_BOCHS_VBE
> -    if (kvm_enabled() && s->vbe_mapped) {
> -	kvm_log_stop(VBE_DISPI_LFB_PHYSICAL_ADDRESS, s->vram_size);
> +    if (s->vbe_mapped) {
> +	cpu_physical_log_stop(VBE_DISPI_LFB_PHYSICAL_ADDRESS, s->vram_size);
>      }

Sorry in case they were present earlier and I missed them, but here are
tabs included that should be removed from new code. There is a
check-patch script floating around on the list, I think it's not yet
merged though.

>  #endif
>  }
> diff --git a/hw/vhost.c b/hw/vhost.c
> index 8586f66..932b372 100644
> --- a/hw/vhost.c
> +++ b/hw/vhost.c
> @@ -606,6 +606,8 @@ int vhost_dev_init(struct vhost_dev *hdev, int devfd)
>      hdev->client.set_memory = vhost_client_set_memory;
>      hdev->client.sync_dirty_bitmap = vhost_client_sync_dirty_bitmap;
>      hdev->client.migration_log = vhost_client_migration_log;
> +    hdev->client.log_start = NULL;
> +    hdev->client.log_stop = NULL;
>      hdev->mem = qemu_mallocz(offsetof(struct vhost_memory, regions));
>      hdev->log = NULL;
>      hdev->log_size = 0;
> diff --git a/kvm-all.c b/kvm-all.c
> index 37b99c7..aedfe33 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -267,14 +267,16 @@ static int kvm_dirty_pages_log_change(target_phys_addr_t phys_addr,
>      return kvm_set_user_memory_region(s, mem);
>  }
>  
> -int kvm_log_start(target_phys_addr_t phys_addr, ram_addr_t size)
> +static int kvm_log_start(CPUPhysMemoryClient *client,
> +                         target_phys_addr_t phys_addr, ram_addr_t size)
>  {
>          return kvm_dirty_pages_log_change(phys_addr, size,
>                                            KVM_MEM_LOG_DIRTY_PAGES,
>                                            KVM_MEM_LOG_DIRTY_PAGES);
>  }
>  
> -int kvm_log_stop(target_phys_addr_t phys_addr, ram_addr_t size)
> +static int kvm_log_stop(CPUPhysMemoryClient *client,
> +                        target_phys_addr_t phys_addr, ram_addr_t size)
>  {
>          return kvm_dirty_pages_log_change(phys_addr, size,
>                                            0,
> @@ -596,6 +598,8 @@ static CPUPhysMemoryClient kvm_cpu_phys_memory_client = {
>  	.set_memory = kvm_client_set_memory,
>  	.sync_dirty_bitmap = kvm_client_sync_dirty_bitmap,
>  	.migration_log = kvm_client_migration_log,
> +        .log_start = kvm_log_start,
> +        .log_stop = kvm_log_stop,
>  };
>  
>  int kvm_init(int smp_cpus)
> diff --git a/kvm-stub.c b/kvm-stub.c
> index 5384a4b..41324e4 100644
> --- a/kvm-stub.c
> +++ b/kvm-stub.c
> @@ -33,16 +33,6 @@ int kvm_init_vcpu(CPUState *env)
>      return -ENOSYS;
>  }
>  
> -int kvm_log_start(target_phys_addr_t phys_addr, ram_addr_t size)
> -{
> -    return -ENOSYS;
> -}
> -
> -int kvm_log_stop(target_phys_addr_t phys_addr, ram_addr_t size)
> -{
> -    return -ENOSYS;
> -}
> -
>  int kvm_coalesce_mmio_region(target_phys_addr_t start, ram_addr_t size)
>  {
>      return -ENOSYS;
> diff --git a/kvm.h b/kvm.h
> index 60a9b42..fc77b81 100644
> --- a/kvm.h
> +++ b/kvm.h
> @@ -49,9 +49,6 @@ int kvm_init_vcpu(CPUState *env);
>  int kvm_cpu_exec(CPUState *env);
>  
>  #if !defined(CONFIG_USER_ONLY)
> -int kvm_log_start(target_phys_addr_t phys_addr, ram_addr_t size);
> -int kvm_log_stop(target_phys_addr_t phys_addr, ram_addr_t size);
> -
>  void kvm_setup_guest_memory(void *start, size_t size);
>  
>  int kvm_coalesce_mmio_region(target_phys_addr_t start, ram_addr_t size);

Besides the tabs, I'm fine with it:
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>

Maybe this patch should be picked up by qemu-kvm's upstream branch (it
will definitely collide with my coding style patch if not more, but
that's easily resolvable there).

Jan

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

  reply	other threads:[~2011-01-18 18:20 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-14 18:10 [Qemu-devel] [PATCH V2 0/3] Xen VGA dirtybit support anthony.perard
2011-01-14 18:10 ` anthony.perard
2011-01-14 18:10 ` [Qemu-devel] [PATCH V2 1/3] Introduce log_start/log_stop in CPUPhysMemoryClient anthony.perard
2011-01-14 18:10   ` anthony.perard
2011-01-17 15:54   ` [Qemu-devel] " Jan Kiszka
2011-01-17 15:54     ` Jan Kiszka
2011-01-17 18:25     ` [Qemu-devel] " Anthony PERARD
2011-01-17 18:25       ` Anthony PERARD
2011-01-18 12:25       ` [Qemu-devel] " anthony.perard
2011-01-18 12:25         ` anthony.perard
2011-01-18 18:20         ` Jan Kiszka [this message]
2011-01-18 18:20           ` Jan Kiszka
2011-01-14 18:10 ` [Qemu-devel] [PATCH V2 2/3] xen: Add xc_domain_add_to_physmap to xen_interface anthony.perard
2011-01-14 18:10   ` anthony.perard
2011-01-14 18:10 ` [Qemu-devel] [PATCH V2 3/3] xen: Introduce VGA sync dirty bitmap support anthony.perard
2011-01-14 18:10   ` anthony.perard
2011-01-17 15:09   ` [Qemu-devel] Re: [Xen-devel] " Stefano Stabellini
2011-01-17 15:09     ` Stefano Stabellini

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=4D35D9F3.10001@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=anthony.perard@citrix.com \
    --cc=mtosatti@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --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.