Neal H. Walfield wrote:
This interface poses a problem for virtualization. One of the goals of Viengoos is that all interfaces be virtualizable. This has (so far) included the ability to fully virtualize kernel objects. Virtualizing an object is done by way of a message buffer, on which the same interface is implemented as the object that is being virtualized. This means that to virtualize a cappage, it must also be possible to virtualize cappage indexing. Imagine that to find the source message buffer in the above msg_buf_enqueue invocation includes traversing a virtualized cappage. That is, after translating some bits of the address, the kernel encounters a message buffer. This means that instead of a kernel-implemented cappage, a message buffer is encountered while traversing the address space. Instead of failing, the kernel should conceptually index the message buffer. This means sending it an index message with the residual address.
Erm, are you sure that this kind of feature is required? Allowing the address translation process to be extended in such a way is a somewhat orthogonal issue imho (though of course there are interrelations as you show) opening a completely new realm of problems. I'm not convinced that you want to do that. Are there compelling use case?
-- -ness-
