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