[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] qcow2: Fix L1 table memory allocation
From: |
malc |
Subject: |
Re: [Qemu-devel] [PATCH] qcow2: Fix L1 table memory allocation |
Date: |
Tue, 7 Jul 2009 22:40:00 +0400 (MSD) |
On Tue, 7 Jul 2009, Avi Kivity wrote:
> On 07/07/2009 07:09 PM, Kevin Wolf wrote:
> > Contrary to what one could expect, the size of L1 tables is not cluster
> > aligned. So as we're writing whole sectors now instead of single entries,
> > we need to ensure that the L1 table in memory is large enough; otherwise
> > write would access memory after the end of the L1 table.
> >
> >
> > new_l1_size2 = sizeof(uint64_t) * new_l1_size;
> > - new_l1_table = qemu_mallocz(new_l1_size2);
> > + new_l1_table = qemu_mallocz(align_offset(new_l1_size2, 512));
> > memcpy(new_l1_table, s->l1_table, s->l1_size * sizeof(uint64_t));
> >
>
> Unrelated note: using qemu_memalign() here would reduce the copying for
> cache=none.
>
Another unrelated note, qemu_memalign(and by extension qemu_vmalloc)
is NULL happy. And FWIW 487414f1cbd638beb0227c7da71fe7b8a821e155
removed NULL checks for qemu_memalgn and after that new code was added
that doesn't check for NULLs either (for instance e3f4e2a4 which has
bitten me).
--
mailto:address@hidden