All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, quintela@redhat.com,
	chrisw@redhat.com
Subject: Re: [RFC PATCH 3/6] RAMBlock: Add a name field
Date: Tue, 08 Jun 2010 15:07:29 -0500	[thread overview]
Message-ID: <4C0EA301.4020605@codemonkey.ws> (raw)
In-Reply-To: <20100608191557.4451.30384.stgit@localhost.localdomain>

On 06/08/2010 02:15 PM, Alex Williamson wrote:
> The offset given to a block created via qemu_ram_alloc/map() is arbitrary,
> let the caller specify a name so we can make a positive match.
>
> Note, this only addresses the qemu-kvm callers so far.
>
> Signed-off-by: Alex Williamson<alex.williamson@redhat.com>
> ---
>
>   cpu-all.h              |    1 +
>   cpu-common.h           |    4 ++--
>   exec.c                 |    8 +++++---
>   hw/device-assignment.c |    8 ++++++--
>   hw/pc.c                |    8 ++++----
>   hw/pci.c               |    5 ++++-
>   hw/vga.c               |    2 +-
>   hw/vmware_vga.c        |    2 +-
>   8 files changed, 24 insertions(+), 14 deletions(-)
>
> diff --git a/cpu-all.h b/cpu-all.h
> index 458cb4b..a5b886a 100644
> --- a/cpu-all.h
> +++ b/cpu-all.h
> @@ -865,6 +865,7 @@ typedef struct RAMBlock {
>       uint8_t *host;
>       ram_addr_t offset;
>       ram_addr_t length;
> +    char name[64];
>       QLIST_ENTRY(RAMBlock) next;
>   } RAMBlock;
>
> diff --git a/cpu-common.h b/cpu-common.h
> index 4b0ba60..5b00544 100644
> --- a/cpu-common.h
> +++ b/cpu-common.h
> @@ -40,8 +40,8 @@ static inline void cpu_register_physical_memory(target_phys_addr_t start_addr,
>   }
>
>   ram_addr_t cpu_get_physical_page_desc(target_phys_addr_t addr);
> -ram_addr_t qemu_ram_map(ram_addr_t size, void *host);
> -ram_addr_t qemu_ram_alloc(ram_addr_t);
> +ram_addr_t qemu_ram_map(const char *name, ram_addr_t size, void *host);
> +ram_addr_t qemu_ram_alloc(const char *name, ram_addr_t);
>   void qemu_ram_free(ram_addr_t addr);
>   /* This should only be used for ram local to a device.  */
>   void *qemu_get_ram_ptr(ram_addr_t addr);
> diff --git a/exec.c b/exec.c
> index d785de3..dd57515 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -2774,13 +2774,15 @@ static void *file_ram_alloc(ram_addr_t memory, const char *path)
>   }
>   #endif
>
> -ram_addr_t qemu_ram_map(ram_addr_t size, void *host)
> +ram_addr_t qemu_ram_map(const char *name, ram_addr_t size, void *host)
>   {
>       RAMBlock *new_block;
>
>       size = TARGET_PAGE_ALIGN(size);
>       new_block = qemu_malloc(sizeof(*new_block));
>
> +    // XXX check duplicates
> +    snprintf(new_block->name, sizeof(new_block->name), "%s", strdup(name));
>    

That strdup() is probably unintentional.

>       new_block->host = host;
>
>       new_block->offset = ram.last_offset;
> @@ -2801,7 +2803,7 @@ ram_addr_t qemu_ram_map(ram_addr_t size, void *host)
>       return new_block->offset;
>   }
>
> -ram_addr_t qemu_ram_alloc(ram_addr_t size)
> +ram_addr_t qemu_ram_alloc(const char *name, ram_addr_t size)
>   {
>       void *host;
>
> @@ -2833,7 +2835,7 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size)
>   #endif
>       }
>
> -    return qemu_ram_map(size, host);
> +    return qemu_ram_map(name, size, host);
>   }
>
>   void qemu_ram_free(ram_addr_t addr)
> diff --git a/hw/device-assignment.c b/hw/device-assignment.c
> index 2b963b5..1d631f6 100644
> --- a/hw/device-assignment.c
> +++ b/hw/device-assignment.c
> @@ -569,9 +569,13 @@ static int assigned_dev_register_regions(PCIRegion *io_regions,
>
>               if (!slow_map) {
>                   void *virtbase = pci_dev->v_addrs[i].u.r_virtbase;
> +                char name[14];
>
> -                pci_dev->v_addrs[i].memory_index = qemu_ram_map(cur_region->size,
> -                                                                virtbase);
> +                snprintf(name, sizeof(name), "pci:%02x.%x.bar%d",
> +                         PCI_SLOT(pci_dev->dev.devfn),
> +                         PCI_FUNC(pci_dev->dev.devfn), i);
> +                pci_dev->v_addrs[i].memory_index = qemu_ram_map(name,
> +                                                  cur_region->size, virtbase);
>               } else
>                   pci_dev->v_addrs[i].memory_index = 0;
>
> diff --git a/hw/pc.c b/hw/pc.c
> index eae0db4..76be151 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -834,7 +834,7 @@ void pc_memory_init(ram_addr_t ram_size,
>       linux_boot = (kernel_filename != NULL);
>
>       /* allocate RAM */
> -    ram_addr = qemu_ram_alloc(below_4g_mem_size);
> +    ram_addr = qemu_ram_alloc("ram.pc.lowmem", below_4g_mem_size);
>       cpu_register_physical_memory(0, 0xa0000, ram_addr);
>       cpu_register_physical_memory(0x100000,
>                    below_4g_mem_size - 0x100000,
> @@ -845,7 +845,7 @@ void pc_memory_init(ram_addr_t ram_size,
>   #if TARGET_PHYS_ADDR_BITS == 32
>           hw_error("To much RAM for 32-bit physical address");
>   #else
> -        ram_addr = qemu_ram_alloc(above_4g_mem_size);
> +        ram_addr = qemu_ram_alloc("ram.pc.highmem", above_4g_mem_size);
>           cpu_register_physical_memory(0x100000000ULL,
>                                        above_4g_mem_size,
>                                        ram_addr);
> @@ -866,7 +866,7 @@ void pc_memory_init(ram_addr_t ram_size,
>           (bios_size % 65536) != 0) {
>           goto bios_error;
>       }
> -    bios_offset = qemu_ram_alloc(bios_size);
> +    bios_offset = qemu_ram_alloc("ram.pc.bios", bios_size);
>       ret = rom_add_file_fixed(bios_name, (uint32_t)(-bios_size));
>       if (ret != 0) {
>       bios_error:
> @@ -892,7 +892,7 @@ void pc_memory_init(ram_addr_t ram_size,
>       }
>       option_rom[nb_option_roms++] = qemu_strdup(VAPIC_FILENAME);
>
> -    option_rom_offset = qemu_ram_alloc(PC_ROM_SIZE);
> +    option_rom_offset = qemu_ram_alloc("ram.pc.rom", PC_ROM_SIZE);
>       cpu_register_physical_memory(PC_ROM_MIN_VGA, PC_ROM_SIZE, option_rom_offset);
>
>       /* map all the bios at the top of memory */
> diff --git a/hw/pci.c b/hw/pci.c
> index f0b6790..b2632a8 100644
> --- a/hw/pci.c
> +++ b/hw/pci.c
> @@ -1889,6 +1889,7 @@ static int pci_add_option_rom(PCIDevice *pdev)
>       int size;
>       char *path;
>       void *ptr;
> +    char name[13];
>
>       if (!pdev->romfile)
>           return 0;
> @@ -1924,7 +1925,9 @@ static int pci_add_option_rom(PCIDevice *pdev)
>           size = 1<<  qemu_fls(size);
>       }
>
> -    pdev->rom_offset = qemu_ram_alloc(size);
> +    snprintf(name, sizeof(name), "pci:%02x.%x.rom",
> +             PCI_SLOT(pdev->devfn), PCI_FUNC(pdev->devfn));
> +    pdev->rom_offset = qemu_ram_alloc(name, size);
>
>       ptr = qemu_get_ram_ptr(pdev->rom_offset);
>       load_image(path, ptr);
> diff --git a/hw/vga.c b/hw/vga.c
> index 0a535ae..47b800f 100644
> --- a/hw/vga.c
> +++ b/hw/vga.c
> @@ -2292,7 +2292,7 @@ void vga_common_init(VGACommonState *s, int vga_ram_size)
>   #else
>       s->is_vbe_vmstate = 0;
>   #endif
> -    s->vram_offset = qemu_ram_alloc(vga_ram_size);
> +    s->vram_offset = qemu_ram_alloc("ram.vga.vram", vga_ram_size);
>       s->vram_ptr = qemu_get_ram_ptr(s->vram_offset);
>       s->vram_size = vga_ram_size;
>       s->get_bpp = vga_get_bpp;
> diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c
> index bf2a699..9df8c08 100644
> --- a/hw/vmware_vga.c
> +++ b/hw/vmware_vga.c
> @@ -1164,7 +1164,7 @@ static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size)
>
>
>       s->fifo_size = SVGA_FIFO_SIZE;
> -    s->fifo_offset = qemu_ram_alloc(s->fifo_size);
> +    s->fifo_offset = qemu_ram_alloc("ram.vmsvga.fifo", s->fifo_size);
>       s->fifo_ptr = qemu_get_ram_ptr(s->fifo_offset);
>
>       vga_common_init(&s->vga, vga_ram_size);
>    

Regards,

Anthony Liguori



WARNING: multiple messages have this Message-ID (diff)
From: Anthony Liguori <anthony@codemonkey.ws>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: chrisw@redhat.com, qemu-devel@nongnu.org, kvm@vger.kernel.org,
	quintela@redhat.com
Subject: [Qemu-devel] Re: [RFC PATCH 3/6] RAMBlock: Add a name field
Date: Tue, 08 Jun 2010 15:07:29 -0500	[thread overview]
Message-ID: <4C0EA301.4020605@codemonkey.ws> (raw)
In-Reply-To: <20100608191557.4451.30384.stgit@localhost.localdomain>

On 06/08/2010 02:15 PM, Alex Williamson wrote:
> The offset given to a block created via qemu_ram_alloc/map() is arbitrary,
> let the caller specify a name so we can make a positive match.
>
> Note, this only addresses the qemu-kvm callers so far.
>
> Signed-off-by: Alex Williamson<alex.williamson@redhat.com>
> ---
>
>   cpu-all.h              |    1 +
>   cpu-common.h           |    4 ++--
>   exec.c                 |    8 +++++---
>   hw/device-assignment.c |    8 ++++++--
>   hw/pc.c                |    8 ++++----
>   hw/pci.c               |    5 ++++-
>   hw/vga.c               |    2 +-
>   hw/vmware_vga.c        |    2 +-
>   8 files changed, 24 insertions(+), 14 deletions(-)
>
> diff --git a/cpu-all.h b/cpu-all.h
> index 458cb4b..a5b886a 100644
> --- a/cpu-all.h
> +++ b/cpu-all.h
> @@ -865,6 +865,7 @@ typedef struct RAMBlock {
>       uint8_t *host;
>       ram_addr_t offset;
>       ram_addr_t length;
> +    char name[64];
>       QLIST_ENTRY(RAMBlock) next;
>   } RAMBlock;
>
> diff --git a/cpu-common.h b/cpu-common.h
> index 4b0ba60..5b00544 100644
> --- a/cpu-common.h
> +++ b/cpu-common.h
> @@ -40,8 +40,8 @@ static inline void cpu_register_physical_memory(target_phys_addr_t start_addr,
>   }
>
>   ram_addr_t cpu_get_physical_page_desc(target_phys_addr_t addr);
> -ram_addr_t qemu_ram_map(ram_addr_t size, void *host);
> -ram_addr_t qemu_ram_alloc(ram_addr_t);
> +ram_addr_t qemu_ram_map(const char *name, ram_addr_t size, void *host);
> +ram_addr_t qemu_ram_alloc(const char *name, ram_addr_t);
>   void qemu_ram_free(ram_addr_t addr);
>   /* This should only be used for ram local to a device.  */
>   void *qemu_get_ram_ptr(ram_addr_t addr);
> diff --git a/exec.c b/exec.c
> index d785de3..dd57515 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -2774,13 +2774,15 @@ static void *file_ram_alloc(ram_addr_t memory, const char *path)
>   }
>   #endif
>
> -ram_addr_t qemu_ram_map(ram_addr_t size, void *host)
> +ram_addr_t qemu_ram_map(const char *name, ram_addr_t size, void *host)
>   {
>       RAMBlock *new_block;
>
>       size = TARGET_PAGE_ALIGN(size);
>       new_block = qemu_malloc(sizeof(*new_block));
>
> +    // XXX check duplicates
> +    snprintf(new_block->name, sizeof(new_block->name), "%s", strdup(name));
>    

That strdup() is probably unintentional.

>       new_block->host = host;
>
>       new_block->offset = ram.last_offset;
> @@ -2801,7 +2803,7 @@ ram_addr_t qemu_ram_map(ram_addr_t size, void *host)
>       return new_block->offset;
>   }
>
> -ram_addr_t qemu_ram_alloc(ram_addr_t size)
> +ram_addr_t qemu_ram_alloc(const char *name, ram_addr_t size)
>   {
>       void *host;
>
> @@ -2833,7 +2835,7 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size)
>   #endif
>       }
>
> -    return qemu_ram_map(size, host);
> +    return qemu_ram_map(name, size, host);
>   }
>
>   void qemu_ram_free(ram_addr_t addr)
> diff --git a/hw/device-assignment.c b/hw/device-assignment.c
> index 2b963b5..1d631f6 100644
> --- a/hw/device-assignment.c
> +++ b/hw/device-assignment.c
> @@ -569,9 +569,13 @@ static int assigned_dev_register_regions(PCIRegion *io_regions,
>
>               if (!slow_map) {
>                   void *virtbase = pci_dev->v_addrs[i].u.r_virtbase;
> +                char name[14];
>
> -                pci_dev->v_addrs[i].memory_index = qemu_ram_map(cur_region->size,
> -                                                                virtbase);
> +                snprintf(name, sizeof(name), "pci:%02x.%x.bar%d",
> +                         PCI_SLOT(pci_dev->dev.devfn),
> +                         PCI_FUNC(pci_dev->dev.devfn), i);
> +                pci_dev->v_addrs[i].memory_index = qemu_ram_map(name,
> +                                                  cur_region->size, virtbase);
>               } else
>                   pci_dev->v_addrs[i].memory_index = 0;
>
> diff --git a/hw/pc.c b/hw/pc.c
> index eae0db4..76be151 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -834,7 +834,7 @@ void pc_memory_init(ram_addr_t ram_size,
>       linux_boot = (kernel_filename != NULL);
>
>       /* allocate RAM */
> -    ram_addr = qemu_ram_alloc(below_4g_mem_size);
> +    ram_addr = qemu_ram_alloc("ram.pc.lowmem", below_4g_mem_size);
>       cpu_register_physical_memory(0, 0xa0000, ram_addr);
>       cpu_register_physical_memory(0x100000,
>                    below_4g_mem_size - 0x100000,
> @@ -845,7 +845,7 @@ void pc_memory_init(ram_addr_t ram_size,
>   #if TARGET_PHYS_ADDR_BITS == 32
>           hw_error("To much RAM for 32-bit physical address");
>   #else
> -        ram_addr = qemu_ram_alloc(above_4g_mem_size);
> +        ram_addr = qemu_ram_alloc("ram.pc.highmem", above_4g_mem_size);
>           cpu_register_physical_memory(0x100000000ULL,
>                                        above_4g_mem_size,
>                                        ram_addr);
> @@ -866,7 +866,7 @@ void pc_memory_init(ram_addr_t ram_size,
>           (bios_size % 65536) != 0) {
>           goto bios_error;
>       }
> -    bios_offset = qemu_ram_alloc(bios_size);
> +    bios_offset = qemu_ram_alloc("ram.pc.bios", bios_size);
>       ret = rom_add_file_fixed(bios_name, (uint32_t)(-bios_size));
>       if (ret != 0) {
>       bios_error:
> @@ -892,7 +892,7 @@ void pc_memory_init(ram_addr_t ram_size,
>       }
>       option_rom[nb_option_roms++] = qemu_strdup(VAPIC_FILENAME);
>
> -    option_rom_offset = qemu_ram_alloc(PC_ROM_SIZE);
> +    option_rom_offset = qemu_ram_alloc("ram.pc.rom", PC_ROM_SIZE);
>       cpu_register_physical_memory(PC_ROM_MIN_VGA, PC_ROM_SIZE, option_rom_offset);
>
>       /* map all the bios at the top of memory */
> diff --git a/hw/pci.c b/hw/pci.c
> index f0b6790..b2632a8 100644
> --- a/hw/pci.c
> +++ b/hw/pci.c
> @@ -1889,6 +1889,7 @@ static int pci_add_option_rom(PCIDevice *pdev)
>       int size;
>       char *path;
>       void *ptr;
> +    char name[13];
>
>       if (!pdev->romfile)
>           return 0;
> @@ -1924,7 +1925,9 @@ static int pci_add_option_rom(PCIDevice *pdev)
>           size = 1<<  qemu_fls(size);
>       }
>
> -    pdev->rom_offset = qemu_ram_alloc(size);
> +    snprintf(name, sizeof(name), "pci:%02x.%x.rom",
> +             PCI_SLOT(pdev->devfn), PCI_FUNC(pdev->devfn));
> +    pdev->rom_offset = qemu_ram_alloc(name, size);
>
>       ptr = qemu_get_ram_ptr(pdev->rom_offset);
>       load_image(path, ptr);
> diff --git a/hw/vga.c b/hw/vga.c
> index 0a535ae..47b800f 100644
> --- a/hw/vga.c
> +++ b/hw/vga.c
> @@ -2292,7 +2292,7 @@ void vga_common_init(VGACommonState *s, int vga_ram_size)
>   #else
>       s->is_vbe_vmstate = 0;
>   #endif
> -    s->vram_offset = qemu_ram_alloc(vga_ram_size);
> +    s->vram_offset = qemu_ram_alloc("ram.vga.vram", vga_ram_size);
>       s->vram_ptr = qemu_get_ram_ptr(s->vram_offset);
>       s->vram_size = vga_ram_size;
>       s->get_bpp = vga_get_bpp;
> diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c
> index bf2a699..9df8c08 100644
> --- a/hw/vmware_vga.c
> +++ b/hw/vmware_vga.c
> @@ -1164,7 +1164,7 @@ static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size)
>
>
>       s->fifo_size = SVGA_FIFO_SIZE;
> -    s->fifo_offset = qemu_ram_alloc(s->fifo_size);
> +    s->fifo_offset = qemu_ram_alloc("ram.vmsvga.fifo", s->fifo_size);
>       s->fifo_ptr = qemu_get_ram_ptr(s->fifo_offset);
>
>       vga_common_init(&s->vga, vga_ram_size);
>    

Regards,

Anthony Liguori

  reply	other threads:[~2010-06-08 20:07 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-08 19:14 [RFC PATCH 0/6] RAM migration overhaul Alex Williamson
2010-06-08 19:14 ` [Qemu-devel] " Alex Williamson
2010-06-08 19:15 ` [RFC PATCH 1/6] qemu_ram_alloc: Remove duplicate code Alex Williamson
2010-06-08 19:15   ` [Qemu-devel] " Alex Williamson
2010-06-08 21:00   ` Chris Wright
2010-06-08 21:00     ` [Qemu-devel] " Chris Wright
2010-06-08 19:15 ` [RFC PATCH 2/6] ram_blocks: Convert to a QLIST Alex Williamson
2010-06-08 19:15   ` [Qemu-devel] " Alex Williamson
2010-06-08 21:26   ` Chris Wright
2010-06-08 21:26     ` [Qemu-devel] " Chris Wright
2010-06-08 21:45     ` Alex Williamson
2010-06-08 21:45       ` [Qemu-devel] " Alex Williamson
2010-06-08 21:51       ` Chris Wright
2010-06-08 21:51         ` [Qemu-devel] " Chris Wright
2010-06-09  8:19       ` Juan Quintela
2010-06-09  8:19         ` [Qemu-devel] " Juan Quintela
2010-06-09 20:11   ` [Qemu-devel] " Cam Macdonell
2010-06-09 20:11     ` Cam Macdonell
2010-06-09 20:55     ` Alex Williamson
2010-06-09 20:55       ` Alex Williamson
2010-06-09 21:12       ` Yoshiaki Tamura
2010-06-09 21:12         ` Yoshiaki Tamura
2010-06-08 19:15 ` [RFC PATCH 3/6] RAMBlock: Add a name field Alex Williamson
2010-06-08 19:15   ` [Qemu-devel] " Alex Williamson
2010-06-08 20:07   ` Anthony Liguori [this message]
2010-06-08 20:07     ` [Qemu-devel] " Anthony Liguori
2010-06-08 20:09     ` Alex Williamson
2010-06-08 20:09       ` [Qemu-devel] " Alex Williamson
2010-06-08 21:41   ` Chris Wright
2010-06-08 21:41     ` [Qemu-devel] " Chris Wright
2010-06-09  3:13     ` Alex Williamson
2010-06-09  3:13       ` [Qemu-devel] " Alex Williamson
2010-06-09 11:55     ` Avi Kivity
2010-06-09 11:55       ` [Qemu-devel] " Avi Kivity
2010-06-09 12:56     ` Paul Brook
2010-06-09 12:56       ` Paul Brook
2010-06-09  2:30   ` [Qemu-devel] " Paul Brook
2010-06-09  2:30     ` Paul Brook
2010-06-09  2:40     ` Anthony Liguori
2010-06-09  2:40       ` Anthony Liguori
2010-06-09  2:54       ` Paul Brook
2010-06-09  2:54         ` Paul Brook
2010-06-09  4:19         ` Alex Williamson
2010-06-09  4:19           ` Alex Williamson
2010-06-09 12:18           ` Paul Brook
2010-06-09 12:18             ` Paul Brook
2010-06-09 16:37             ` Alex Williamson
2010-06-09 16:37               ` Alex Williamson
2010-06-09 20:36               ` Paul Brook
2010-06-09 20:36                 ` Paul Brook
2010-06-10  8:23                 ` Gerd Hoffmann
2010-06-10  8:23                   ` Gerd Hoffmann
2010-06-10 14:33                   ` Alex Williamson
2010-06-10 14:33                     ` Alex Williamson
2010-06-10 14:49                     ` Paul Brook
2010-06-10 14:49                       ` Paul Brook
2010-06-10 15:21                       ` Alex Williamson
2010-06-10 15:21                         ` Alex Williamson
2010-06-11  8:48                         ` Gerd Hoffmann
2010-06-11  8:48                           ` Gerd Hoffmann
2010-06-11 15:50                           ` Alex Williamson
2010-06-11 15:50                             ` Alex Williamson
2010-06-11 16:12                             ` Paul Brook
2010-06-11 16:12                               ` Paul Brook
2010-06-11  8:45                     ` Gerd Hoffmann
2010-06-11  8:45                       ` Gerd Hoffmann
2010-06-10 15:05                 ` Alex Williamson
2010-06-10 15:05                   ` Alex Williamson
2010-06-10 16:40               ` Chris Wright
2010-06-10 16:40                 ` Chris Wright
2010-06-10 16:45                 ` Paul Brook
2010-06-10 16:45                   ` Paul Brook
2010-06-09 11:58         ` Avi Kivity
2010-06-09 11:58           ` Avi Kivity
2010-06-09 13:57           ` Anthony Liguori
2010-06-09 13:57             ` Anthony Liguori
2010-06-09 14:09             ` Paul Brook
2010-06-09 14:09               ` Paul Brook
2010-06-09  7:28       ` Gerd Hoffmann
2010-06-09  7:28         ` Gerd Hoffmann
2010-06-08 19:16 ` [RFC PATCH 4/6] Remove uses of ram.last_offset (aka last_ram_offset) Alex Williamson
2010-06-08 19:16   ` [Qemu-devel] " Alex Williamson
2010-06-08 19:16 ` [RFC PATCH 5/6] savevm: Migrate RAM based on name/offset Alex Williamson
2010-06-08 19:16   ` [Qemu-devel] " Alex Williamson
2010-06-08 20:12   ` Anthony Liguori
2010-06-08 20:12     ` [Qemu-devel] " Anthony Liguori
2010-06-08 21:12     ` Alex Williamson
2010-06-08 21:12       ` [Qemu-devel] " Alex Williamson
2010-06-08 20:54   ` Chris Wright
2010-06-08 20:54     ` [Qemu-devel] " Chris Wright
2010-06-08 21:22     ` Alex Williamson
2010-06-08 21:22       ` [Qemu-devel] " Alex Williamson
2010-06-08 19:16 ` [RFC PATCH 6/6] savevm: Use RAM blocks for basis of migration Alex Williamson
2010-06-08 19:16   ` [Qemu-devel] " Alex Williamson

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=4C0EA301.4020605@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=alex.williamson@redhat.com \
    --cc=chrisw@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.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.