On 3/9/22 11:33, Peter Maydell wrote:
Hi; does anybody know how device reference counting is supposed
to work when the device creates a "container" MemoryRegion which
it then puts some of its own subregions in to?

As far as I can see when you do memory_region_add_subregion it
increases the refcount on the owner of the subregion. So if a
device creates a container MR in its own init or realize method
and adds sub-MRs that it owns to that container, this increases
the refcount on the device permanently, and so the device won't
ever be deinited.

The unparent method is supposed to break reference cycles.

In the case of QOM, unparent calls unrealize, so unrealize should remove the subregions it created.

Paolo

Reply via email to