On 19/09/2017 09:57, Alexey Kardashevskiy wrote: >> We can also resolve "fake" aliases, obtained through a region with only >> one subregion. > I just do this now (will post soon): > > > empty_view = generate_memory_topology(NULL); > [...] > > new_view = generate_memory_topology(physmr); > > if (!new_view->nr) { > flatview_ref(empty_view); > flatview_unref(new_view); > new_view = empty_view; > > [...] > > g_hash_table_insert(views, physmr, new_view); > > and that's it. For non empty FVs I need to render FVs anyway and for > all-disabled/empty FVs it is really cheap so no big loss here.
Is that enough to get 1 shared FV for all bus master address spaces? In any case, your patches provide a very good infrastructure and further optimization can be done easily on top. Paolo