* [Qemu-devel] [PATCH 00/80] COW: Speed up writes
@ 2013-11-06 12:12 Charlie Shepherd
2013-11-06 12:12 ` [Qemu-devel] [PATCH 01/80] pc: add etc/e820 fw_cfg file Charlie Shepherd
2013-11-06 12:12 ` [Qemu-devel] [PATCH 02/80] pc: register e820 entries for ram Charlie Shepherd
0 siblings, 2 replies; 4+ messages in thread
From: Charlie Shepherd @ 2013-11-06 12:12 UTC (permalink / raw)
To: qemu-devel; +Cc: kwolf, pbonzini, gabriel, Charlie Shepherd, stefanha
Following on from Paolo's commits 26ae980 and 276cbc7, this patchset
implements some changes he recommended earlier which I didn't previously have
time to do while on GSoC.
Patch 2 was written initially I was intending to use cow_co_is_allocated in
Patch 3 and needed it to consider all sectors but in the end cow_find_streak
was sufficient, so it may not strictly be necessary.
Andreas Färber (49):
mips_mipssim: Silence BIOS loading warning for qtest
puv3: Turn puv3_load_kernel() into a no-op for qtest without -kernel
mainstone: Don't enforce use of -pflash for qtest
gumstix: Don't enforce use of -pflash for qtest
z2: Don't enforce use of -pflash for qtest
palm: Don't enforce loading ROM or kernel for qtest
omap_sx1: Don't enforce use of kernel or flash for qtest
exynos4_boards: Silence lack of -smp 2 warning for qtest
armv7m: Don't enforce use of kernel for qtest
axis_dev88: Don't enforce use of kernel for qtest
mcf5208: Don't enforce use of kernel for qtest
an5206: Don't enforce use of kernel for qtest
milkymist: Suppress -kernel/-bios/-drive error for qtest
shix: Drop debug output
shix: Don't require firmware presence for qtest
leon3: Don't enforce use of -bios with qtest
qtest: Prepare QOM machine tests
a9mpcore: Split off instance_init
arm_gic: Extract headers hw/intc/arm_gic{,_common}.h
a9mpcore: Embed GICState
a9scu: QOM cleanups
a9mpcore: Embed A9SCUState
arm_mptimer: Convert to QOM realize
a9mpcore: Embed ARMMPTimerState
a9mpcore: Convert to QOM realize
a9mpcore: Prepare for QOM embedding
a15mpcore: Split off instance_init
a15mpcore: Embed GICState
a15mpcore: Convert to QOM realize
a15mpcore: Prepare for QOM embedding
a9scu: Build only once
arm11mpcore: Fix typo in MemoryRegion name
arm11mpcore: Drop unused fields
arm11mpcore: Create container MemoryRegion in instance_init
arm11mpcore: Split off SCU device
arm11mpcore: Convert ARM11MPCorePriveState to QOM realize
realview_gic: Convert to QOM realize
realview_gic: Prepare for QOM embedding
arm11mpcore: Convert mpcore_rirq_state to QOM realize
arm11mpcore: Prepare for QOM embedding
arm11mpcore: Split off RealView MPCore
qdev-monitor: Clean up qdev_device_add() variable naming
qdev-monitor: Avoid qdev as variable name
qdev-monitor: Inline qdev_init() for device_add
pxa: Fix typo "dettach"
pcmcia: QOM'ify PCMCIACardState and MicroDriveState
microdrive: Coding Style cleanups
ide: Drop ide_init2_with_non_qdev_drives()
pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState
Anthony Liguori (1):
ossaudio: do not enable by default
Antony Pavlov (1):
milkymist-uart: Use Device::realize instead of SysBusDevice::init
Charlie Shepherd (3):
COW: Speed up writes
COW: Extend checking allocated bits to beyond one sector
COW: Skip setting already set bits
Gerd Hoffmann (3):
pc: add etc/e820 fw_cfg file
pc: register e820 entries for ram
qxl: replace pipe signaling with bottom half
Igor Mammedov (1):
qdev-monitor: Fix crash when device_add is called with abstract driver
Jan Kiszka (1):
rtc: remove dead SQW IRQ code
Marc-André Lureau (1):
vga: fix invalid read after free
Michael S. Tsirkin (3):
pc: disable acpi info for isapc and old pc machine
exec: limit system memory size
qom: Fix pointer to int property helpers' documentation
Mike Frysinger (1):
configure: detect endian via compile test
Paolo Bonzini (1):
vl: allow "cont" from panicked state
Peter Maydell (10):
bswap.h: Remove cpu_to_le16wu()
bswap.h: Remove cpu_to_le32wu()
bswap.h: Remove le16_to_cpupu()
bswap.h: Remove le32_to_cpupu()
bswap.h: Remove be32_to_cpupu()
bswap.h: Remove cpu_to_be16wu()
bswap.h: Remove cpu_to_be32wu()
bswap.h: Remove cpu_to_be64wu()
bswap.h: Remove cpu_to_32wu()
docs/memory.txt: Clarify and expand priority/overlap documentation
Stefan Hajnoczi (3):
qdev-monitor: Unref device when device_add fails
qdev: Drop misleading qdev_free() function
tests: fix 64-bit int literals for 32-bit hosts
Wenchao Xia (2):
qapi: fix memleak by adding implict struct functions in dealloc
visitor
tests: fix memleak in error path test for input visitor
^ permalink raw reply [flat|nested] 4+ messages in thread* [Qemu-devel] [PATCH 01/80] pc: add etc/e820 fw_cfg file 2013-11-06 12:12 [Qemu-devel] [PATCH 00/80] COW: Speed up writes Charlie Shepherd @ 2013-11-06 12:12 ` Charlie Shepherd 2013-11-06 12:15 ` Charlie Shepherd 2013-11-06 12:12 ` [Qemu-devel] [PATCH 02/80] pc: register e820 entries for ram Charlie Shepherd 1 sibling, 1 reply; 4+ messages in thread From: Charlie Shepherd @ 2013-11-06 12:12 UTC (permalink / raw) To: qemu-devel Cc: kwolf, Andrea Arcangeli, stefanha, Charlie Shepherd, Gerd Hoffmann, pbonzini, gabriel From: Gerd Hoffmann <kraxel@redhat.com> Unlike the existing FW_CFG_E820_TABLE entry which carries reservations only the new etc/e820 file also has entries for RAM. Format is simliar to the FW_CFG_E820_TABLE, it is a simple list of e820_entry structs. Unlike FW_CFG_E820_TABLE it has no count though as the number of entries can be figured from the file size. Cc: Andrea Arcangeli <aarcange@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Charlie Shepherd <charlie@ctshepherd.com> --- hw/i386/pc.c | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index dee409d..a653ae4 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -90,7 +90,9 @@ struct e820_table { struct e820_entry entry[E820_NR_ENTRIES]; } QEMU_PACKED __attribute((__aligned__(4))); -static struct e820_table e820_table; +static struct e820_table e820_reserve; +static struct e820_entry *e820_table; +static unsigned e820_entries; struct hpet_fw_config hpet_cfg = {.count = UINT8_MAX}; void gsi_handler(void *opaque, int n, int level) @@ -577,19 +579,32 @@ static void handle_a20_line_change(void *opaque, int irq, int level) int e820_add_entry(uint64_t address, uint64_t length, uint32_t type) { - int index = le32_to_cpu(e820_table.count); + int index = le32_to_cpu(e820_reserve.count); struct e820_entry *entry; - if (index >= E820_NR_ENTRIES) - return -EBUSY; - entry = &e820_table.entry[index++]; + if (type != E820_RAM) { + /* old FW_CFG_E820_TABLE entry -- reservations only */ + if (index >= E820_NR_ENTRIES) { + return -EBUSY; + } + entry = &e820_reserve.entry[index++]; + + entry->address = cpu_to_le64(address); + entry->length = cpu_to_le64(length); + entry->type = cpu_to_le32(type); + + e820_reserve.count = cpu_to_le32(index); + } - entry->address = cpu_to_le64(address); - entry->length = cpu_to_le64(length); - entry->type = cpu_to_le32(type); + /* new "etc/e820" file -- include ram too */ + e820_table = g_realloc(e820_table, + sizeof(struct e820_entry) * (e820_entries+1)); + e820_table[e820_entries].address = cpu_to_le64(address); + e820_table[e820_entries].length = cpu_to_le64(length); + e820_table[e820_entries].type = cpu_to_le32(type); + e820_entries++; - e820_table.count = cpu_to_le32(index); - return index; + return e820_entries; } /* Calculates the limit to CPU APIC ID values @@ -640,7 +655,9 @@ static FWCfgState *bochs_bios_init(void) fw_cfg_add_bytes(fw_cfg, FW_CFG_SMBIOS_ENTRIES, smbios_table, smbios_len); fw_cfg_add_bytes(fw_cfg, FW_CFG_E820_TABLE, - &e820_table, sizeof(e820_table)); + &e820_reserve, sizeof(e820_reserve)); + fw_cfg_add_file(fw_cfg, "etc/e820", e820_table, + sizeof(struct e820_entry) * e820_entries); fw_cfg_add_bytes(fw_cfg, FW_CFG_HPET, &hpet_cfg, sizeof(hpet_cfg)); /* allocate memory for the NUMA channel: one (64bit) word for the number -- 1.8.4.rc3 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH 01/80] pc: add etc/e820 fw_cfg file 2013-11-06 12:12 ` [Qemu-devel] [PATCH 01/80] pc: add etc/e820 fw_cfg file Charlie Shepherd @ 2013-11-06 12:15 ` Charlie Shepherd 0 siblings, 0 replies; 4+ messages in thread From: Charlie Shepherd @ 2013-11-06 12:15 UTC (permalink / raw) To: qemu-devel Cc: kwolf, Andrea Arcangeli, stefanha, Charlie Shepherd, Gerd Hoffmann, pbonzini, gabriel Sorry all, some confusion using git-publish, apologies for the spam. Charlie ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH 02/80] pc: register e820 entries for ram 2013-11-06 12:12 [Qemu-devel] [PATCH 00/80] COW: Speed up writes Charlie Shepherd 2013-11-06 12:12 ` [Qemu-devel] [PATCH 01/80] pc: add etc/e820 fw_cfg file Charlie Shepherd @ 2013-11-06 12:12 ` Charlie Shepherd 1 sibling, 0 replies; 4+ messages in thread From: Charlie Shepherd @ 2013-11-06 12:12 UTC (permalink / raw) To: qemu-devel Cc: kwolf, Andrea Arcangeli, stefanha, Charlie Shepherd, Gerd Hoffmann, pbonzini, gabriel From: Gerd Hoffmann <kraxel@redhat.com> So RAM shows up in the new etc/e820 fw_cfg file. Cc: Andrea Arcangeli <aarcange@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Charlie Shepherd <charlie@ctshepherd.com> --- hw/i386/pc.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index a653ae4..12c436e 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1174,13 +1174,7 @@ FWCfgState *pc_memory_init(MemoryRegion *system_memory, memory_region_init_alias(ram_below_4g, NULL, "ram-below-4g", ram, 0, below_4g_mem_size); memory_region_add_subregion(system_memory, 0, ram_below_4g); - if (0) { - /* - * Ideally we should do that too, but that would ruin the e820 - * reservations added by seabios before initializing fw_cfg. - */ - e820_add_entry(0, below_4g_mem_size, E820_RAM); - } + e820_add_entry(0, below_4g_mem_size, E820_RAM); if (above_4g_mem_size > 0) { ram_above_4g = g_malloc(sizeof(*ram_above_4g)); memory_region_init_alias(ram_above_4g, NULL, "ram-above-4g", ram, -- 1.8.4.rc3 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-11-06 12:15 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-11-06 12:12 [Qemu-devel] [PATCH 00/80] COW: Speed up writes Charlie Shepherd 2013-11-06 12:12 ` [Qemu-devel] [PATCH 01/80] pc: add etc/e820 fw_cfg file Charlie Shepherd 2013-11-06 12:15 ` Charlie Shepherd 2013-11-06 12:12 ` [Qemu-devel] [PATCH 02/80] pc: register e820 entries for ram Charlie Shepherd
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).