On 26/05/2015 17:00, Alexey Kardashevskiy wrote:
>>>> Why do you need different regions?  Why can't you have always the same
>>>> IOMMU regions, and either:
>>>
>>> They may change a size.
>>
>> That's not a problem, there's memory_region_set_size for that.
> 
> It was not there when I started doing this DDW :) If so, I can keep the
> existing structure and just set size to zero instead of
> memory_region_del_subregion().

del/add_subregion is okay.  It's just init/unparent that is wrong.

> I need windows appear and disappear on a bus dynamically, that's it. The
> actual sPAPRTCETable objects exist always.

Great.

> Aliases will do the job as far as I can tell.

Then you can choose between init_alias/add/del/unparent(alias) and
del/set_size/add which Michael has mentioned.  The latter is probably
cleaner and faster.

> sPAPRTCETable stores the actual table and if I want it to migrate, the
> destination QEMU must have the object created-and-vmstate_register'ated.
> But the table (and class) may be absent or present on the source side so
> I need to start the destination with or without -device sPAPRTCETable,
> and if I need to create this object, I need to make it a child of a PHB
> and last time I checked - there is no command line interface for linking
> children.

Yup, understood now.

> But I started thinking that always having 2 sPAPRTCETable objects (some
> may be "disabled") it not better than a single sPAPRTCETable with
> multiple TCE tables...

Whatever works best for you.  Either is okay.

Paolo

Reply via email to