|
From: | Alexey Kardashevskiy |
Subject: | Re: [Qemu-devel] [PATCH qemu v7 06/14] spapr_iommu: Introduce "enabled" state for TCE table |
Date: | Wed, 27 May 2015 00:00:21 +1000 |
User-agent: | Mozilla/5.0 (X11; Linux i686 on x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
On 05/26/2015 11:48 PM, Paolo Bonzini wrote:
On 26/05/2015 15:42, Alexey Kardashevskiy wrote:The next patch of this patchset changes: spapr_tce_table_do_enable() memory_region_init_iommu(&iommu) memory_region_add_subregion(&root, &iommu) spapr_tce_table_disable() memory_region_del_subregion(&root, &iommu) object_unref(&iommu) These spapr_tce_xxx are called by request from the guest. &root is a container and exists as long as sPAPRTCETable exists. Where do I get a leaking child property here?When you unref iommu and not unparent it. The next memory_region_init_iommu creates a second child property, and the first is gone.
But when do I get this child property? In memory_region_add_subregion()? And memory_region_del_subregion() does not do the opposite thing (unparent)?
What is different between the various IOMMU regions, so that you cannot create just one?
There are two DMA windows on the same PCI bus (in hardware too), at different offset and with a different page size.
-- Alexey
[Prev in Thread] | Current Thread | [Next in Thread] |