On 2014/10/17 16:56, Gonglei wrote: > On 2014/10/17 16:33, Daniel P. Berrange wrote: > >> On Fri, Oct 17, 2014 at 04:27:17PM +0800, haifeng....@huawei.com wrote: >>> From: linhaifeng <haifeng....@huawei.com> >>> >>> The VM start with share hugepage should close the hugefile fd >>> when exit.Because the hugepage fd may be send to other process >>> e.g vhost-user If qemu not close the fd the other process can >>> not free the hugepage otherwise exit process,this is ugly,so >>> qemu should close all shared fd when exit. >>> >>> Signed-off-by: linhaifeng <haifeng....@huawei.com> >> >> Err, all file descriptors are closed automatically when a process >> exits. So manually calling close(fd) before exit can't have any >> functional effect on a resource leak. >> >> If QEMU has sent the FD to another process, that process has a >> completely separate copy of the FD. Closing the FD in QEMU will >> not close the FD in the other process. You need the other process >> to exit for the copy to be closed. >> > > Actually, when vhost-user close the FD manually, the hugepage leak too > unless the vhost-user process exit. So, maybe the FD is not a separate > copy IMHO, but simply add the ref-count of FD. When QEMU exit, > because the ref is not zero, the operate system will not free the FD > automatically, and when vhost-user close the FD, because of the same > reason, OS will not free FD resource. > > BTW, I don't think this patch is good. When Qemu exit exceptionally, > sush as 'by kill -9', this problem of memory leak still exist. >
So,we should close qemu by 'kill -15' or close with virsh. > Best Regards, > -Gonglei > > > > > . > -- Regards, Haifeng