From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47868) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDFnP-0007RM-Oe for qemu-devel@nongnu.org; Mon, 19 Jan 2015 12:07:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YDFnK-0005ts-P5 for qemu-devel@nongnu.org; Mon, 19 Jan 2015 12:07:23 -0500 Received: from mail-wi0-x22a.google.com ([2a00:1450:400c:c05::22a]:58508) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDFnK-0005tk-IG for qemu-devel@nongnu.org; Mon, 19 Jan 2015 12:07:18 -0500 Received: by mail-wi0-f170.google.com with SMTP id em10so6998432wid.1 for ; Mon, 19 Jan 2015 09:07:17 -0800 (PST) Sender: Paolo Bonzini Message-ID: <54BD39C2.8000605@redhat.com> Date: Mon, 19 Jan 2015 18:07:14 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1421120079-987-1-git-send-email-jsnow@redhat.com> <1421120079-987-2-git-send-email-jsnow@redhat.com> In-Reply-To: <1421120079-987-2-git-send-email-jsnow@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 01/14] libqos: Split apart pc_alloc_init List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow , qemu-devel@nongnu.org Cc: kwolf@redhat.com, marc.mari.barcelo@gmail.com, armbru@redhat.com, stefanha@redhat.com, mreitz@redhat.com 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 > --- > 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