2011/12/6 Zhi Hui Li <zhihu...@linux.vnet.ibm.com>: > > > 2011/12/6 Stefan Hajnoczi <stefa...@gmail.com> >> >> On Tue, Dec 6, 2011 at 10:01 AM, Zhi Hui Li <zhihu...@linux.vnet.ibm.com> >> wrote: >> > On 2011年12月06日 17:40, Stefan Hajnoczi wrote: >> >> >> >> On Tue, Dec 6, 2011 at 9:07 AM, Zhi Hui Li<zhihu...@linux.vnet.ibm.com> >> >> wrote: >> >>> >> >>> >> >>> 1) : >> >>> >> >>> for example: >> >>> >> >>> BDRVQcowState *s = bs->opaque; >> >>> >> >>> s->snapshots >> >>> s->nb_snapshots >> >>> >> >>> >> >>> 1:use the command: qemu-img snapshot ./test.qcow2 -c aa >> >>> the memory of the s->snapshot don't free, >> >>> if the s->nb_snapshots is large, Does it have some problems. >> >>> >> >>> 2: use the command: qemu-system-x86_64 ./test.qcow2 -snapshot >> >>> when the program ends, Does it need to free the s->snapshots ? >> >> >> Okay, I think you're saying that in #1 s->snapshots is leaked because >> qcow2_free_snapshots() is not being called from qcow2_close(). >> >> Do you want to send a patch to fix this? > > > Ok, I will send a patch tomorrow. > But I think in the #2 it also need to call qcow2_free_snapshots() , if you > have called several times savevm, > the s->snapshots will very large, when the process end, it also need to > free.
Right, I think I understand what you're saying. I was thinking about what #1 and #2 mean differently, but it doesn't matter. If qcow2_close() frees s->snapshots then the problem is solved in all possible qcow2 use cases, including #2 with savevm. Stefan