[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 01/14] libqos: Split apart pc_alloc_init
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 01/14] libqos: Split apart pc_alloc_init |
Date: |
Mon, 19 Jan 2015 18:07:14 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 |
On 13/01/2015 04:34, John Snow wrote:
> Move the list-specific initialization over into
> malloc.c, to keep all of the list implementation
> details within the same file.
>
> The allocation and freeing of these structures are
> now both back within the same layer.
>
> Signed-off-by: John Snow <address@hidden>
> ---
> tests/libqos/malloc-pc.c | 20 ++++----------------
> tests/libqos/malloc.c | 17 +++++++++++++++++
> tests/libqos/malloc.h | 1 +
> 3 files changed, 22 insertions(+), 16 deletions(-)
>
> diff --git a/tests/libqos/malloc-pc.c b/tests/libqos/malloc-pc.c
> index c9c48fd..36a0740 100644
> --- a/tests/libqos/malloc-pc.c
> +++ b/tests/libqos/malloc-pc.c
> @@ -32,31 +32,19 @@ void pc_alloc_uninit(QGuestAllocator *allocator)
>
> QGuestAllocator *pc_alloc_init_flags(QAllocOpts flags)
> {
> - QGuestAllocator *s = g_malloc0(sizeof(*s));
> + QGuestAllocator *s;
> uint64_t ram_size;
> QFWCFG *fw_cfg = pc_fw_cfg_init();
> - MemBlock *node;
> +
> + ram_size = qfw_cfg_get_u64(fw_cfg, FW_CFG_RAM_SIZE);
> + s = alloc_init(1 << 20, MIN(ram_size, 0xE0000000));
>
> s->opts = flags;
> s->page_size = PAGE_SIZE;
>
> - ram_size = qfw_cfg_get_u64(fw_cfg, FW_CFG_RAM_SIZE);
> -
> - /* Start at 1MB */
> - s->start = 1 << 20;
> -
> - /* Respect PCI hole */
> - s->end = MIN(ram_size, 0xE0000000);
> -
> /* clean-up */
> g_free(fw_cfg);
>
> - QTAILQ_INIT(&s->used);
> - QTAILQ_INIT(&s->free);
> -
> - node = mlist_new(s->start, s->end - s->start);
> - QTAILQ_INSERT_HEAD(&s->free, node, MLIST_ENTNAME);
> -
> return s;
> }
>
> diff --git a/tests/libqos/malloc.c b/tests/libqos/malloc.c
> index 5debf18..0d34ecd 100644
> --- a/tests/libqos/malloc.c
> +++ b/tests/libqos/malloc.c
> @@ -268,3 +268,20 @@ void guest_free(QGuestAllocator *allocator, uint64_t
> addr)
> mlist_check(allocator);
> }
> }
> +
> +QGuestAllocator *alloc_init(uint64_t start, uint64_t end)
> +{
> + QGuestAllocator *s = g_malloc0(sizeof(*s));
> + MemBlock *node;
> +
> + s->start = start;
> + s->end = end;
> +
> + QTAILQ_INIT(&s->used);
> + QTAILQ_INIT(&s->free);
> +
> + node = mlist_new(s->start, s->end - s->start);
> + QTAILQ_INSERT_HEAD(&s->free, node, MLIST_ENTNAME);
> +
> + return s;
> +}
> diff --git a/tests/libqos/malloc.h b/tests/libqos/malloc.h
> index 465efeb..677db77 100644
> --- a/tests/libqos/malloc.h
> +++ b/tests/libqos/malloc.h
> @@ -50,4 +50,5 @@ void alloc_uninit(QGuestAllocator *allocator);
> uint64_t guest_alloc(QGuestAllocator *allocator, size_t size);
> void guest_free(QGuestAllocator *allocator, uint64_t addr);
>
> +QGuestAllocator *alloc_init(uint64_t start, uint64_t end);
> #endif
>
Reviewed-by: Paolo Bonzini <address@hidden>
- Re: [Qemu-devel] [PATCH 04/14] libqos: add qtest_vboot, (continued)
- [Qemu-devel] [PATCH 05/14] libqos: add alloc_init_flags, John Snow, 2015/01/12
- [Qemu-devel] [PATCH 02/14] qtest/ahci: Create ahci.h, John Snow, 2015/01/12
- [Qemu-devel] [PATCH 03/14] libqos: create libqos.c, John Snow, 2015/01/12
- [Qemu-devel] [PATCH 01/14] libqos: Split apart pc_alloc_init, John Snow, 2015/01/12
- [Qemu-devel] [PATCH 10/14] qtest/ahci: remove guest_malloc global, John Snow, 2015/01/12
- [Qemu-devel] [PATCH 07/14] qtest/ahci: Store hba_base in AHCIQState, John Snow, 2015/01/12
- [Qemu-devel] [PATCH 06/14] libqos: add pc specific interface, John Snow, 2015/01/12
- [Qemu-devel] [PATCH 11/14] libqos/ahci: Functional register helpers, John Snow, 2015/01/12
- [Qemu-devel] [PATCH 08/14] qtest/ahci: finalize AHCIQState consolidation, John Snow, 2015/01/12