* [Qemu-devel] [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
@ 2013-05-30 13:20 ` Stefano Stabellini
0 siblings, 0 replies; 12+ messages in thread
From: Stefano Stabellini @ 2013-05-30 13:20 UTC (permalink / raw)
To: qemu-devel
Cc: xen-devel, Stefano Stabellini, hanweidong, qemu-stable,
arei.gonglei, anthony.perard, pbonzini, afaerber
We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
that is 0xf0000000.
Start the PCI hole at 0xe0000000 instead, that is the same value used by
pc_init1 and qemu-xen-traditional.
This fixes a bug with device assignment of graphic cards with large
amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
CC: qemu-stable@nongnu.org
CC: pbonzini@redhat.com
CC: afaerber@suse.de
CC: hanweidong@huawei.com
CC: arei.gonglei@huawei.com
---
hw/i386/pc_piix.c | 6 +++---
include/hw/i386/pc.h | 3 +++
xen-all.c | 12 ++++++------
3 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 43ab480..06416ce 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
kvmclock_create();
}
- if (ram_size >= 0xe0000000 ) {
- above_4g_mem_size = ram_size - 0xe0000000;
- below_4g_mem_size = 0xe0000000;
+ if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
+ above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
+ below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
} else {
above_4g_mem_size = 0;
below_4g_mem_size = ram_size;
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 663426c..626442b 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -77,6 +77,9 @@ extern int fd_bootchk;
void pc_register_ferr_irq(qemu_irq irq);
void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
+#define QEMU_BELOW_4G_RAM_END 0xe0000000
+#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
+
void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
void pc_hot_add_cpu(const int64_t id, Error **errp);
void pc_acpi_init(const char *default_dsdt);
diff --git a/xen-all.c b/xen-all.c
index 539a154..5ca0c26 100644
--- a/xen-all.c
+++ b/xen-all.c
@@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
ram_addr_t block_len;
block_len = ram_size;
- if (ram_size >= HVM_BELOW_4G_RAM_END) {
+ if (ram_size >= QEMU_BELOW_4G_RAM_END) {
/* Xen does not allocate the memory continuously, and keep a hole at
- * HVM_BELOW_4G_MMIO_START of HVM_BELOW_4G_MMIO_LENGTH
+ * QEMU_BELOW_4G_RAM_END of QEMU_BELOW_4G_MMIO_LENGTH
*/
- block_len += HVM_BELOW_4G_MMIO_LENGTH;
+ block_len += QEMU_BELOW_4G_MMIO_LENGTH;
}
memory_region_init_ram(&ram_memory, "xen.ram", block_len);
vmstate_register_ram_global(&ram_memory);
- if (ram_size >= HVM_BELOW_4G_RAM_END) {
- above_4g_mem_size = ram_size - HVM_BELOW_4G_RAM_END;
- below_4g_mem_size = HVM_BELOW_4G_RAM_END;
+ if (ram_size >= QEMU_BELOW_4G_RAM_END) {
+ above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
+ below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
} else {
below_4g_mem_size = ram_size;
}
--
1.7.2.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
@ 2013-05-30 13:20 ` Stefano Stabellini
0 siblings, 0 replies; 12+ messages in thread
From: Stefano Stabellini @ 2013-05-30 13:20 UTC (permalink / raw)
To: qemu-devel
Cc: xen-devel, Stefano Stabellini, hanweidong, qemu-stable,
arei.gonglei, anthony.perard, pbonzini, afaerber
We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
that is 0xf0000000.
Start the PCI hole at 0xe0000000 instead, that is the same value used by
pc_init1 and qemu-xen-traditional.
This fixes a bug with device assignment of graphic cards with large
amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
CC: qemu-stable@nongnu.org
CC: pbonzini@redhat.com
CC: afaerber@suse.de
CC: hanweidong@huawei.com
CC: arei.gonglei@huawei.com
---
hw/i386/pc_piix.c | 6 +++---
include/hw/i386/pc.h | 3 +++
xen-all.c | 12 ++++++------
3 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 43ab480..06416ce 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
kvmclock_create();
}
- if (ram_size >= 0xe0000000 ) {
- above_4g_mem_size = ram_size - 0xe0000000;
- below_4g_mem_size = 0xe0000000;
+ if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
+ above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
+ below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
} else {
above_4g_mem_size = 0;
below_4g_mem_size = ram_size;
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 663426c..626442b 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -77,6 +77,9 @@ extern int fd_bootchk;
void pc_register_ferr_irq(qemu_irq irq);
void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
+#define QEMU_BELOW_4G_RAM_END 0xe0000000
+#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
+
void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
void pc_hot_add_cpu(const int64_t id, Error **errp);
void pc_acpi_init(const char *default_dsdt);
diff --git a/xen-all.c b/xen-all.c
index 539a154..5ca0c26 100644
--- a/xen-all.c
+++ b/xen-all.c
@@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
ram_addr_t block_len;
block_len = ram_size;
- if (ram_size >= HVM_BELOW_4G_RAM_END) {
+ if (ram_size >= QEMU_BELOW_4G_RAM_END) {
/* Xen does not allocate the memory continuously, and keep a hole at
- * HVM_BELOW_4G_MMIO_START of HVM_BELOW_4G_MMIO_LENGTH
+ * QEMU_BELOW_4G_RAM_END of QEMU_BELOW_4G_MMIO_LENGTH
*/
- block_len += HVM_BELOW_4G_MMIO_LENGTH;
+ block_len += QEMU_BELOW_4G_MMIO_LENGTH;
}
memory_region_init_ram(&ram_memory, "xen.ram", block_len);
vmstate_register_ram_global(&ram_memory);
- if (ram_size >= HVM_BELOW_4G_RAM_END) {
- above_4g_mem_size = ram_size - HVM_BELOW_4G_RAM_END;
- below_4g_mem_size = HVM_BELOW_4G_RAM_END;
+ if (ram_size >= QEMU_BELOW_4G_RAM_END) {
+ above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
+ below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
} else {
below_4g_mem_size = ram_size;
}
--
1.7.2.5
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
2013-05-30 13:20 ` Stefano Stabellini
@ 2013-05-30 14:12 ` Andreas Färber
-1 siblings, 0 replies; 12+ messages in thread
From: Andreas Färber @ 2013-05-30 14:12 UTC (permalink / raw)
To: Stefano Stabellini
Cc: xen-devel, hanweidong, qemu-devel, qemu-stable, arei.gonglei,
anthony.perard, pbonzini
Am 30.05.2013 15:20, schrieb Stefano Stabellini:
> We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
> that is 0xf0000000.
> Start the PCI hole at 0xe0000000 instead, that is the same value used by
> pc_init1 and qemu-xen-traditional.
>
> This fixes a bug with device assignment of graphic cards with large
> amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> CC: qemu-stable@nongnu.org
> CC: pbonzini@redhat.com
> CC: afaerber@suse.de
> CC: hanweidong@huawei.com
> CC: arei.gonglei@huawei.com
> ---
> hw/i386/pc_piix.c | 6 +++---
> include/hw/i386/pc.h | 3 +++
> xen-all.c | 12 ++++++------
> 3 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 43ab480..06416ce 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
> kvmclock_create();
> }
>
> - if (ram_size >= 0xe0000000 ) {
> - above_4g_mem_size = ram_size - 0xe0000000;
> - below_4g_mem_size = 0xe0000000;
> + if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
> + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> } else {
> above_4g_mem_size = 0;
> below_4g_mem_size = ram_size;
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 663426c..626442b 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -77,6 +77,9 @@ extern int fd_bootchk;
> void pc_register_ferr_irq(qemu_irq irq);
> void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
>
> +#define QEMU_BELOW_4G_RAM_END 0xe0000000
> +#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
> +
> void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
> void pc_hot_add_cpu(const int64_t id, Error **errp);
> void pc_acpi_init(const char *default_dsdt);
> diff --git a/xen-all.c b/xen-all.c
> index 539a154..5ca0c26 100644
> --- a/xen-all.c
> +++ b/xen-all.c
> @@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
> ram_addr_t block_len;
>
> block_len = ram_size;
> - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
Is the HVM_ constant still used elsewhere? I don't see it being removed.
Otherwise looks straightforward.
Andreas
> /* Xen does not allocate the memory continuously, and keep a hole at
> - * HVM_BELOW_4G_MMIO_START of HVM_BELOW_4G_MMIO_LENGTH
> + * QEMU_BELOW_4G_RAM_END of QEMU_BELOW_4G_MMIO_LENGTH
> */
> - block_len += HVM_BELOW_4G_MMIO_LENGTH;
> + block_len += QEMU_BELOW_4G_MMIO_LENGTH;
> }
> memory_region_init_ram(&ram_memory, "xen.ram", block_len);
> vmstate_register_ram_global(&ram_memory);
>
> - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> - above_4g_mem_size = ram_size - HVM_BELOW_4G_RAM_END;
> - below_4g_mem_size = HVM_BELOW_4G_RAM_END;
> + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
> + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> } else {
> below_4g_mem_size = ram_size;
> }
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
@ 2013-05-30 14:12 ` Andreas Färber
0 siblings, 0 replies; 12+ messages in thread
From: Andreas Färber @ 2013-05-30 14:12 UTC (permalink / raw)
To: Stefano Stabellini
Cc: xen-devel, hanweidong, qemu-devel, qemu-stable, arei.gonglei,
anthony.perard, pbonzini
Am 30.05.2013 15:20, schrieb Stefano Stabellini:
> We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
> that is 0xf0000000.
> Start the PCI hole at 0xe0000000 instead, that is the same value used by
> pc_init1 and qemu-xen-traditional.
>
> This fixes a bug with device assignment of graphic cards with large
> amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> CC: qemu-stable@nongnu.org
> CC: pbonzini@redhat.com
> CC: afaerber@suse.de
> CC: hanweidong@huawei.com
> CC: arei.gonglei@huawei.com
> ---
> hw/i386/pc_piix.c | 6 +++---
> include/hw/i386/pc.h | 3 +++
> xen-all.c | 12 ++++++------
> 3 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 43ab480..06416ce 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
> kvmclock_create();
> }
>
> - if (ram_size >= 0xe0000000 ) {
> - above_4g_mem_size = ram_size - 0xe0000000;
> - below_4g_mem_size = 0xe0000000;
> + if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
> + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> } else {
> above_4g_mem_size = 0;
> below_4g_mem_size = ram_size;
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 663426c..626442b 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -77,6 +77,9 @@ extern int fd_bootchk;
> void pc_register_ferr_irq(qemu_irq irq);
> void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
>
> +#define QEMU_BELOW_4G_RAM_END 0xe0000000
> +#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
> +
> void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
> void pc_hot_add_cpu(const int64_t id, Error **errp);
> void pc_acpi_init(const char *default_dsdt);
> diff --git a/xen-all.c b/xen-all.c
> index 539a154..5ca0c26 100644
> --- a/xen-all.c
> +++ b/xen-all.c
> @@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
> ram_addr_t block_len;
>
> block_len = ram_size;
> - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
Is the HVM_ constant still used elsewhere? I don't see it being removed.
Otherwise looks straightforward.
Andreas
> /* Xen does not allocate the memory continuously, and keep a hole at
> - * HVM_BELOW_4G_MMIO_START of HVM_BELOW_4G_MMIO_LENGTH
> + * QEMU_BELOW_4G_RAM_END of QEMU_BELOW_4G_MMIO_LENGTH
> */
> - block_len += HVM_BELOW_4G_MMIO_LENGTH;
> + block_len += QEMU_BELOW_4G_MMIO_LENGTH;
> }
> memory_region_init_ram(&ram_memory, "xen.ram", block_len);
> vmstate_register_ram_global(&ram_memory);
>
> - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> - above_4g_mem_size = ram_size - HVM_BELOW_4G_RAM_END;
> - below_4g_mem_size = HVM_BELOW_4G_RAM_END;
> + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
> + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> } else {
> below_4g_mem_size = ram_size;
> }
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
2013-05-30 13:20 ` Stefano Stabellini
@ 2013-05-30 14:22 ` Pasi Kärkkäinen
-1 siblings, 0 replies; 12+ messages in thread
From: Pasi Kärkkäinen @ 2013-05-30 14:22 UTC (permalink / raw)
To: Stefano Stabellini
Cc: xen-devel, hanweidong, qemu-stable, qemu-devel, arei.gonglei,
anthony.perard, pbonzini, afaerber
On Thu, May 30, 2013 at 02:20:46PM +0100, Stefano Stabellini wrote:
> We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
> that is 0xf0000000.
> Start the PCI hole at 0xe0000000 instead, that is the same value used by
> pc_init1 and qemu-xen-traditional.
>
> This fixes a bug with device assignment of graphic cards with large
> amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
>
If I understood correctly this issue is related to all PCI devices with large MMIO size,
not only GPUs.
-- Pasi
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> CC: qemu-stable@nongnu.org
> CC: pbonzini@redhat.com
> CC: afaerber@suse.de
> CC: hanweidong@huawei.com
> CC: arei.gonglei@huawei.com
> ---
> hw/i386/pc_piix.c | 6 +++---
> include/hw/i386/pc.h | 3 +++
> xen-all.c | 12 ++++++------
> 3 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 43ab480..06416ce 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
> kvmclock_create();
> }
>
> - if (ram_size >= 0xe0000000 ) {
> - above_4g_mem_size = ram_size - 0xe0000000;
> - below_4g_mem_size = 0xe0000000;
> + if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
> + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> } else {
> above_4g_mem_size = 0;
> below_4g_mem_size = ram_size;
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 663426c..626442b 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -77,6 +77,9 @@ extern int fd_bootchk;
> void pc_register_ferr_irq(qemu_irq irq);
> void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
>
> +#define QEMU_BELOW_4G_RAM_END 0xe0000000
> +#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
> +
> void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
> void pc_hot_add_cpu(const int64_t id, Error **errp);
> void pc_acpi_init(const char *default_dsdt);
> diff --git a/xen-all.c b/xen-all.c
> index 539a154..5ca0c26 100644
> --- a/xen-all.c
> +++ b/xen-all.c
> @@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
> ram_addr_t block_len;
>
> block_len = ram_size;
> - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
> /* Xen does not allocate the memory continuously, and keep a hole at
> - * HVM_BELOW_4G_MMIO_START of HVM_BELOW_4G_MMIO_LENGTH
> + * QEMU_BELOW_4G_RAM_END of QEMU_BELOW_4G_MMIO_LENGTH
> */
> - block_len += HVM_BELOW_4G_MMIO_LENGTH;
> + block_len += QEMU_BELOW_4G_MMIO_LENGTH;
> }
> memory_region_init_ram(&ram_memory, "xen.ram", block_len);
> vmstate_register_ram_global(&ram_memory);
>
> - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> - above_4g_mem_size = ram_size - HVM_BELOW_4G_RAM_END;
> - below_4g_mem_size = HVM_BELOW_4G_RAM_END;
> + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
> + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> } else {
> below_4g_mem_size = ram_size;
> }
> --
> 1.7.2.5
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Xen-devel] [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
@ 2013-05-30 14:22 ` Pasi Kärkkäinen
0 siblings, 0 replies; 12+ messages in thread
From: Pasi Kärkkäinen @ 2013-05-30 14:22 UTC (permalink / raw)
To: Stefano Stabellini
Cc: xen-devel, hanweidong, qemu-stable, qemu-devel, arei.gonglei,
anthony.perard, pbonzini, afaerber
On Thu, May 30, 2013 at 02:20:46PM +0100, Stefano Stabellini wrote:
> We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
> that is 0xf0000000.
> Start the PCI hole at 0xe0000000 instead, that is the same value used by
> pc_init1 and qemu-xen-traditional.
>
> This fixes a bug with device assignment of graphic cards with large
> amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
>
If I understood correctly this issue is related to all PCI devices with large MMIO size,
not only GPUs.
-- Pasi
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> CC: qemu-stable@nongnu.org
> CC: pbonzini@redhat.com
> CC: afaerber@suse.de
> CC: hanweidong@huawei.com
> CC: arei.gonglei@huawei.com
> ---
> hw/i386/pc_piix.c | 6 +++---
> include/hw/i386/pc.h | 3 +++
> xen-all.c | 12 ++++++------
> 3 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 43ab480..06416ce 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
> kvmclock_create();
> }
>
> - if (ram_size >= 0xe0000000 ) {
> - above_4g_mem_size = ram_size - 0xe0000000;
> - below_4g_mem_size = 0xe0000000;
> + if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
> + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> } else {
> above_4g_mem_size = 0;
> below_4g_mem_size = ram_size;
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 663426c..626442b 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -77,6 +77,9 @@ extern int fd_bootchk;
> void pc_register_ferr_irq(qemu_irq irq);
> void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
>
> +#define QEMU_BELOW_4G_RAM_END 0xe0000000
> +#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
> +
> void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
> void pc_hot_add_cpu(const int64_t id, Error **errp);
> void pc_acpi_init(const char *default_dsdt);
> diff --git a/xen-all.c b/xen-all.c
> index 539a154..5ca0c26 100644
> --- a/xen-all.c
> +++ b/xen-all.c
> @@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
> ram_addr_t block_len;
>
> block_len = ram_size;
> - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
> /* Xen does not allocate the memory continuously, and keep a hole at
> - * HVM_BELOW_4G_MMIO_START of HVM_BELOW_4G_MMIO_LENGTH
> + * QEMU_BELOW_4G_RAM_END of QEMU_BELOW_4G_MMIO_LENGTH
> */
> - block_len += HVM_BELOW_4G_MMIO_LENGTH;
> + block_len += QEMU_BELOW_4G_MMIO_LENGTH;
> }
> memory_region_init_ram(&ram_memory, "xen.ram", block_len);
> vmstate_register_ram_global(&ram_memory);
>
> - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> - above_4g_mem_size = ram_size - HVM_BELOW_4G_RAM_END;
> - below_4g_mem_size = HVM_BELOW_4G_RAM_END;
> + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
> + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> } else {
> below_4g_mem_size = ram_size;
> }
> --
> 1.7.2.5
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
2013-05-30 14:12 ` Andreas Färber
@ 2013-05-30 14:23 ` Stefano Stabellini
-1 siblings, 0 replies; 12+ messages in thread
From: Stefano Stabellini @ 2013-05-30 14:23 UTC (permalink / raw)
To: Andreas Färber
Cc: xen-devel, Stefano Stabellini, hanweidong, qemu-stable,
qemu-devel, arei.gonglei, anthony.perard, pbonzini
[-- Attachment #1: Type: text/plain, Size: 2804 bytes --]
On Thu, 30 May 2013, Andreas Färber wrote:
> Am 30.05.2013 15:20, schrieb Stefano Stabellini:
> > We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
> > that is 0xf0000000.
> > Start the PCI hole at 0xe0000000 instead, that is the same value used by
> > pc_init1 and qemu-xen-traditional.
> >
> > This fixes a bug with device assignment of graphic cards with large
> > amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
> >
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> > CC: qemu-stable@nongnu.org
> > CC: pbonzini@redhat.com
> > CC: afaerber@suse.de
> > CC: hanweidong@huawei.com
> > CC: arei.gonglei@huawei.com
> > ---
> > hw/i386/pc_piix.c | 6 +++---
> > include/hw/i386/pc.h | 3 +++
> > xen-all.c | 12 ++++++------
> > 3 files changed, 12 insertions(+), 9 deletions(-)
> >
> > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > index 43ab480..06416ce 100644
> > --- a/hw/i386/pc_piix.c
> > +++ b/hw/i386/pc_piix.c
> > @@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
> > kvmclock_create();
> > }
> >
> > - if (ram_size >= 0xe0000000 ) {
> > - above_4g_mem_size = ram_size - 0xe0000000;
> > - below_4g_mem_size = 0xe0000000;
> > + if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
> > + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> > + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> > } else {
> > above_4g_mem_size = 0;
> > below_4g_mem_size = ram_size;
> > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> > index 663426c..626442b 100644
> > --- a/include/hw/i386/pc.h
> > +++ b/include/hw/i386/pc.h
> > @@ -77,6 +77,9 @@ extern int fd_bootchk;
> > void pc_register_ferr_irq(qemu_irq irq);
> > void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
> >
> > +#define QEMU_BELOW_4G_RAM_END 0xe0000000
> > +#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
> > +
> > void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
> > void pc_hot_add_cpu(const int64_t id, Error **errp);
> > void pc_acpi_init(const char *default_dsdt);
> > diff --git a/xen-all.c b/xen-all.c
> > index 539a154..5ca0c26 100644
> > --- a/xen-all.c
> > +++ b/xen-all.c
> > @@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
> > ram_addr_t block_len;
> >
> > block_len = ram_size;
> > - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> > + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
>
> Is the HVM_ constant still used elsewhere? I don't see it being removed.
>
> Otherwise looks straightforward.
It's defined in the Xen headers so we don't have to remove it here.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
@ 2013-05-30 14:23 ` Stefano Stabellini
0 siblings, 0 replies; 12+ messages in thread
From: Stefano Stabellini @ 2013-05-30 14:23 UTC (permalink / raw)
To: Andreas Färber
Cc: xen-devel, Stefano Stabellini, hanweidong, qemu-stable,
qemu-devel, arei.gonglei, anthony.perard, pbonzini
[-- Attachment #1: Type: text/plain, Size: 2804 bytes --]
On Thu, 30 May 2013, Andreas Färber wrote:
> Am 30.05.2013 15:20, schrieb Stefano Stabellini:
> > We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
> > that is 0xf0000000.
> > Start the PCI hole at 0xe0000000 instead, that is the same value used by
> > pc_init1 and qemu-xen-traditional.
> >
> > This fixes a bug with device assignment of graphic cards with large
> > amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
> >
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> > CC: qemu-stable@nongnu.org
> > CC: pbonzini@redhat.com
> > CC: afaerber@suse.de
> > CC: hanweidong@huawei.com
> > CC: arei.gonglei@huawei.com
> > ---
> > hw/i386/pc_piix.c | 6 +++---
> > include/hw/i386/pc.h | 3 +++
> > xen-all.c | 12 ++++++------
> > 3 files changed, 12 insertions(+), 9 deletions(-)
> >
> > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > index 43ab480..06416ce 100644
> > --- a/hw/i386/pc_piix.c
> > +++ b/hw/i386/pc_piix.c
> > @@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
> > kvmclock_create();
> > }
> >
> > - if (ram_size >= 0xe0000000 ) {
> > - above_4g_mem_size = ram_size - 0xe0000000;
> > - below_4g_mem_size = 0xe0000000;
> > + if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
> > + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> > + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> > } else {
> > above_4g_mem_size = 0;
> > below_4g_mem_size = ram_size;
> > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> > index 663426c..626442b 100644
> > --- a/include/hw/i386/pc.h
> > +++ b/include/hw/i386/pc.h
> > @@ -77,6 +77,9 @@ extern int fd_bootchk;
> > void pc_register_ferr_irq(qemu_irq irq);
> > void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
> >
> > +#define QEMU_BELOW_4G_RAM_END 0xe0000000
> > +#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
> > +
> > void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
> > void pc_hot_add_cpu(const int64_t id, Error **errp);
> > void pc_acpi_init(const char *default_dsdt);
> > diff --git a/xen-all.c b/xen-all.c
> > index 539a154..5ca0c26 100644
> > --- a/xen-all.c
> > +++ b/xen-all.c
> > @@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
> > ram_addr_t block_len;
> >
> > block_len = ram_size;
> > - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> > + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
>
> Is the HVM_ constant still used elsewhere? I don't see it being removed.
>
> Otherwise looks straightforward.
It's defined in the Xen headers so we don't have to remove it here.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
2013-05-30 14:23 ` Stefano Stabellini
@ 2013-05-31 10:58 ` Stefano Stabellini
-1 siblings, 0 replies; 12+ messages in thread
From: Stefano Stabellini @ 2013-05-31 10:58 UTC (permalink / raw)
To: Stefano Stabellini
Cc: xen-devel, hanweidong, qemu-stable, qemu-devel, arei.gonglei,
anthony.perard, pbonzini, Andreas Färber
[-- Attachment #1: Type: text/plain, Size: 3092 bytes --]
On Thu, 30 May 2013, Stefano Stabellini wrote:
> On Thu, 30 May 2013, Andreas Färber wrote:
> > Am 30.05.2013 15:20, schrieb Stefano Stabellini:
> > > We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
> > > that is 0xf0000000.
> > > Start the PCI hole at 0xe0000000 instead, that is the same value used by
> > > pc_init1 and qemu-xen-traditional.
> > >
> > > This fixes a bug with device assignment of graphic cards with large
> > > amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
> > >
> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> > > CC: qemu-stable@nongnu.org
> > > CC: pbonzini@redhat.com
> > > CC: afaerber@suse.de
> > > CC: hanweidong@huawei.com
> > > CC: arei.gonglei@huawei.com
> > > ---
> > > hw/i386/pc_piix.c | 6 +++---
> > > include/hw/i386/pc.h | 3 +++
> > > xen-all.c | 12 ++++++------
> > > 3 files changed, 12 insertions(+), 9 deletions(-)
> > >
> > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > > index 43ab480..06416ce 100644
> > > --- a/hw/i386/pc_piix.c
> > > +++ b/hw/i386/pc_piix.c
> > > @@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
> > > kvmclock_create();
> > > }
> > >
> > > - if (ram_size >= 0xe0000000 ) {
> > > - above_4g_mem_size = ram_size - 0xe0000000;
> > > - below_4g_mem_size = 0xe0000000;
> > > + if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
> > > + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> > > + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> > > } else {
> > > above_4g_mem_size = 0;
> > > below_4g_mem_size = ram_size;
> > > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> > > index 663426c..626442b 100644
> > > --- a/include/hw/i386/pc.h
> > > +++ b/include/hw/i386/pc.h
> > > @@ -77,6 +77,9 @@ extern int fd_bootchk;
> > > void pc_register_ferr_irq(qemu_irq irq);
> > > void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
> > >
> > > +#define QEMU_BELOW_4G_RAM_END 0xe0000000
> > > +#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
> > > +
> > > void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
> > > void pc_hot_add_cpu(const int64_t id, Error **errp);
> > > void pc_acpi_init(const char *default_dsdt);
> > > diff --git a/xen-all.c b/xen-all.c
> > > index 539a154..5ca0c26 100644
> > > --- a/xen-all.c
> > > +++ b/xen-all.c
> > > @@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
> > > ram_addr_t block_len;
> > >
> > > block_len = ram_size;
> > > - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> > > + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
> >
> > Is the HVM_ constant still used elsewhere? I don't see it being removed.
> >
> > Otherwise looks straightforward.
>
> It's defined in the Xen headers so we don't have to remove it here.
If you are happy with it, should I just go ahead and include this patch
in the next PULL request?
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
@ 2013-05-31 10:58 ` Stefano Stabellini
0 siblings, 0 replies; 12+ messages in thread
From: Stefano Stabellini @ 2013-05-31 10:58 UTC (permalink / raw)
To: Stefano Stabellini
Cc: xen-devel, hanweidong, qemu-stable, qemu-devel, arei.gonglei,
anthony.perard, pbonzini, Andreas Färber
[-- Attachment #1: Type: text/plain, Size: 3092 bytes --]
On Thu, 30 May 2013, Stefano Stabellini wrote:
> On Thu, 30 May 2013, Andreas Färber wrote:
> > Am 30.05.2013 15:20, schrieb Stefano Stabellini:
> > > We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
> > > that is 0xf0000000.
> > > Start the PCI hole at 0xe0000000 instead, that is the same value used by
> > > pc_init1 and qemu-xen-traditional.
> > >
> > > This fixes a bug with device assignment of graphic cards with large
> > > amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
> > >
> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> > > CC: qemu-stable@nongnu.org
> > > CC: pbonzini@redhat.com
> > > CC: afaerber@suse.de
> > > CC: hanweidong@huawei.com
> > > CC: arei.gonglei@huawei.com
> > > ---
> > > hw/i386/pc_piix.c | 6 +++---
> > > include/hw/i386/pc.h | 3 +++
> > > xen-all.c | 12 ++++++------
> > > 3 files changed, 12 insertions(+), 9 deletions(-)
> > >
> > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > > index 43ab480..06416ce 100644
> > > --- a/hw/i386/pc_piix.c
> > > +++ b/hw/i386/pc_piix.c
> > > @@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
> > > kvmclock_create();
> > > }
> > >
> > > - if (ram_size >= 0xe0000000 ) {
> > > - above_4g_mem_size = ram_size - 0xe0000000;
> > > - below_4g_mem_size = 0xe0000000;
> > > + if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
> > > + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
> > > + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
> > > } else {
> > > above_4g_mem_size = 0;
> > > below_4g_mem_size = ram_size;
> > > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> > > index 663426c..626442b 100644
> > > --- a/include/hw/i386/pc.h
> > > +++ b/include/hw/i386/pc.h
> > > @@ -77,6 +77,9 @@ extern int fd_bootchk;
> > > void pc_register_ferr_irq(qemu_irq irq);
> > > void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
> > >
> > > +#define QEMU_BELOW_4G_RAM_END 0xe0000000
> > > +#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
> > > +
> > > void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
> > > void pc_hot_add_cpu(const int64_t id, Error **errp);
> > > void pc_acpi_init(const char *default_dsdt);
> > > diff --git a/xen-all.c b/xen-all.c
> > > index 539a154..5ca0c26 100644
> > > --- a/xen-all.c
> > > +++ b/xen-all.c
> > > @@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
> > > ram_addr_t block_len;
> > >
> > > block_len = ram_size;
> > > - if (ram_size >= HVM_BELOW_4G_RAM_END) {
> > > + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
> >
> > Is the HVM_ constant still used elsewhere? I don't see it being removed.
> >
> > Otherwise looks straightforward.
>
> It's defined in the Xen headers so we don't have to remove it here.
If you are happy with it, should I just go ahead and include this patch
in the next PULL request?
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
2013-05-31 10:58 ` Stefano Stabellini
@ 2013-05-31 12:10 ` Paolo Bonzini
-1 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2013-05-31 12:10 UTC (permalink / raw)
To: Stefano Stabellini
Cc: xen-devel, hanweidong, qemu-stable, qemu-devel, arei.gonglei,
anthony.perard, Andreas Färber
Il 31/05/2013 12:58, Stefano Stabellini ha scritto:
> On Thu, 30 May 2013, Stefano Stabellini wrote:
>> On Thu, 30 May 2013, Andreas Färber wrote:
>>> Am 30.05.2013 15:20, schrieb Stefano Stabellini:
>>>> We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
>>>> that is 0xf0000000.
>>>> Start the PCI hole at 0xe0000000 instead, that is the same value used by
>>>> pc_init1 and qemu-xen-traditional.
>>>>
>>>> This fixes a bug with device assignment of graphic cards with large
>>>> amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
>>>>
>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>>>> CC: qemu-stable@nongnu.org
>>>> CC: pbonzini@redhat.com
>>>> CC: afaerber@suse.de
>>>> CC: hanweidong@huawei.com
>>>> CC: arei.gonglei@huawei.com
>>>> ---
>>>> hw/i386/pc_piix.c | 6 +++---
>>>> include/hw/i386/pc.h | 3 +++
>>>> xen-all.c | 12 ++++++------
>>>> 3 files changed, 12 insertions(+), 9 deletions(-)
>>>>
>>>> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
>>>> index 43ab480..06416ce 100644
>>>> --- a/hw/i386/pc_piix.c
>>>> +++ b/hw/i386/pc_piix.c
>>>> @@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
>>>> kvmclock_create();
>>>> }
>>>>
>>>> - if (ram_size >= 0xe0000000 ) {
>>>> - above_4g_mem_size = ram_size - 0xe0000000;
>>>> - below_4g_mem_size = 0xe0000000;
>>>> + if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
>>>> + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
>>>> + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
>>>> } else {
>>>> above_4g_mem_size = 0;
>>>> below_4g_mem_size = ram_size;
>>>> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
>>>> index 663426c..626442b 100644
>>>> --- a/include/hw/i386/pc.h
>>>> +++ b/include/hw/i386/pc.h
>>>> @@ -77,6 +77,9 @@ extern int fd_bootchk;
>>>> void pc_register_ferr_irq(qemu_irq irq);
>>>> void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
>>>>
>>>> +#define QEMU_BELOW_4G_RAM_END 0xe0000000
>>>> +#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
>>>> +
>>>> void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
>>>> void pc_hot_add_cpu(const int64_t id, Error **errp);
>>>> void pc_acpi_init(const char *default_dsdt);
>>>> diff --git a/xen-all.c b/xen-all.c
>>>> index 539a154..5ca0c26 100644
>>>> --- a/xen-all.c
>>>> +++ b/xen-all.c
>>>> @@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
>>>> ram_addr_t block_len;
>>>>
>>>> block_len = ram_size;
>>>> - if (ram_size >= HVM_BELOW_4G_RAM_END) {
>>>> + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
>>>
>>> Is the HVM_ constant still used elsewhere? I don't see it being removed.
>>>
>>> Otherwise looks straightforward.
>>
>> It's defined in the Xen headers so we don't have to remove it here.
>
> If you are happy with it, should I just go ahead and include this patch
> in the next PULL request?
>
Yes, please.
Paolo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
@ 2013-05-31 12:10 ` Paolo Bonzini
0 siblings, 0 replies; 12+ messages in thread
From: Paolo Bonzini @ 2013-05-31 12:10 UTC (permalink / raw)
To: Stefano Stabellini
Cc: xen-devel, hanweidong, qemu-stable, qemu-devel, arei.gonglei,
anthony.perard, Andreas Färber
Il 31/05/2013 12:58, Stefano Stabellini ha scritto:
> On Thu, 30 May 2013, Stefano Stabellini wrote:
>> On Thu, 30 May 2013, Andreas Färber wrote:
>>> Am 30.05.2013 15:20, schrieb Stefano Stabellini:
>>>> We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
>>>> that is 0xf0000000.
>>>> Start the PCI hole at 0xe0000000 instead, that is the same value used by
>>>> pc_init1 and qemu-xen-traditional.
>>>>
>>>> This fixes a bug with device assignment of graphic cards with large
>>>> amount of video memory (http://marc.info/?l=xen-devel&m=136242365010750).
>>>>
>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>>>> CC: qemu-stable@nongnu.org
>>>> CC: pbonzini@redhat.com
>>>> CC: afaerber@suse.de
>>>> CC: hanweidong@huawei.com
>>>> CC: arei.gonglei@huawei.com
>>>> ---
>>>> hw/i386/pc_piix.c | 6 +++---
>>>> include/hw/i386/pc.h | 3 +++
>>>> xen-all.c | 12 ++++++------
>>>> 3 files changed, 12 insertions(+), 9 deletions(-)
>>>>
>>>> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
>>>> index 43ab480..06416ce 100644
>>>> --- a/hw/i386/pc_piix.c
>>>> +++ b/hw/i386/pc_piix.c
>>>> @@ -102,9 +102,9 @@ static void pc_init1(MemoryRegion *system_memory,
>>>> kvmclock_create();
>>>> }
>>>>
>>>> - if (ram_size >= 0xe0000000 ) {
>>>> - above_4g_mem_size = ram_size - 0xe0000000;
>>>> - below_4g_mem_size = 0xe0000000;
>>>> + if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
>>>> + above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
>>>> + below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
>>>> } else {
>>>> above_4g_mem_size = 0;
>>>> below_4g_mem_size = ram_size;
>>>> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
>>>> index 663426c..626442b 100644
>>>> --- a/include/hw/i386/pc.h
>>>> +++ b/include/hw/i386/pc.h
>>>> @@ -77,6 +77,9 @@ extern int fd_bootchk;
>>>> void pc_register_ferr_irq(qemu_irq irq);
>>>> void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
>>>>
>>>> +#define QEMU_BELOW_4G_RAM_END 0xe0000000
>>>> +#define QEMU_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)
>>>> +
>>>> void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
>>>> void pc_hot_add_cpu(const int64_t id, Error **errp);
>>>> void pc_acpi_init(const char *default_dsdt);
>>>> diff --git a/xen-all.c b/xen-all.c
>>>> index 539a154..5ca0c26 100644
>>>> --- a/xen-all.c
>>>> +++ b/xen-all.c
>>>> @@ -161,18 +161,18 @@ static void xen_ram_init(ram_addr_t ram_size)
>>>> ram_addr_t block_len;
>>>>
>>>> block_len = ram_size;
>>>> - if (ram_size >= HVM_BELOW_4G_RAM_END) {
>>>> + if (ram_size >= QEMU_BELOW_4G_RAM_END) {
>>>
>>> Is the HVM_ constant still used elsewhere? I don't see it being removed.
>>>
>>> Otherwise looks straightforward.
>>
>> It's defined in the Xen headers so we don't have to remove it here.
>
> If you are happy with it, should I just go ahead and include this patch
> in the next PULL request?
>
Yes, please.
Paolo
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2013-05-31 12:10 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-30 13:20 [Qemu-devel] [PATCH] xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional) Stefano Stabellini
2013-05-30 13:20 ` Stefano Stabellini
2013-05-30 14:12 ` [Qemu-devel] " Andreas Färber
2013-05-30 14:12 ` Andreas Färber
2013-05-30 14:23 ` [Qemu-devel] " Stefano Stabellini
2013-05-30 14:23 ` Stefano Stabellini
2013-05-31 10:58 ` [Qemu-devel] " Stefano Stabellini
2013-05-31 10:58 ` Stefano Stabellini
2013-05-31 12:10 ` [Qemu-devel] " Paolo Bonzini
2013-05-31 12:10 ` Paolo Bonzini
2013-05-30 14:22 ` [Qemu-devel] [Xen-devel] " Pasi Kärkkäinen
2013-05-30 14:22 ` Pasi Kärkkäinen
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.