Il 02/07/2013 16:42, Jan Kiszka ha scritto: >> > +typedef PhysPageEntry Node[L2_SIZE]; >> > + >> > struct AddressSpaceDispatch { >> > /* This is a multi-level map on the physical address space. >> > * The bottom level has pointers to MemoryRegionSections. >> > */ >> > PhysPageEntry phys_map; >> > + Node *nodes; >> > + MemoryRegionSection *sections; > Why not sticking the whole current PhysPageMap into here? Wouldn't that > also allow to overcome prev_map completely (next patch)?
(BTW, this is also why patch 21 has two separate arguments to phys_page_find). Sticking a pointer would add one useless pointer chase. Storing it by value makes it unclear who owns the PhysPageMap and doesn't say that AddressSpaceDispatch cannot extend the vectors. In the end, this seemed like a good compromise. Paolo