GDB / Child VSpace#521
Conversation
Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
Signed-off-by: Krishnan Winter <krishnan.winter@unsw.edu.au>
|
These thoughts relate to the Vspace/Frame handling rather than the GDB logic. It would be great if we could implement a more general solution to accessing frame capabilities, both one's own and another PD's. Another approach that I have experimented with is the idea that you can share frames on a per memory region basis i.e. if PD A wants the frames that PD B has for memory region X it could unambiguously specify this in the SDF. Some potential caveats being the stack, maybe also the IPC buffer frame and intermediate page table caps.... This would then give PD A essentially an array of frame caps ordered on the corresponding virtual addresses that PD B has them mapped at. Then by providing the base frame capability (slot in PD A's CNode), base virtual address, maybe the base physical address if needed, memory region size and frame type (small, large, huge) etc PD A can do a constant time lookup to any frame based on the virtual address PD B has mapped it at. This would also assume a memory region only uses one type of frame. Then based on the user application e.g. GDB a PD could allocate itself an appropriately sized memory region to build any application specific data structures such as page tables or hash map or trees etc. |
From Krishnan.