[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] pointers in hcalls
This is a followup to our conversation at the Xen summit about userspace passing virtual addresses to the hypervisor. We talked about an API where data structures would be allocated from a special area of memory. This API became rather hairy, which we can talk about. However, it seems to me that the simplest way to handle this is to disallow pointers entirely, instead embedding the structures in the higher-level structure. I've had a look through this, and I actually don't think that would be too bad. When performing this conversion, we could initially exempt the arch-specific hcalls. For consistency I think we'd want to do them all, but that's not necessary for correctness. Also, constraining these expanded structures to a single page would be best. So I had a look through most (all?) of the hcalls in xen/include/public/*.h to see which would pose problems. I don't see any show-stoppers: - some hcalls, such as dom0_setvcpucontext and dom0_getvcpucontext, would be trivial to convert. - I haven't looked at the ACM hcalls in detail, but I think they would be trivial as well. - xc_readconsolering() would need to copy up to a page of data into the caller's buffer. - it would introduce a hard restriction on the size of the extent array in the memory operations (though it's worth noting that the balloon driver already limits this to PAGE_SIZE). - dom0_perfccontrol and dom0_getdomaininfolist would gain restrictions similar to the memory ops. Thoughts? -- Hollis Blanchard IBM Linux Technology Center _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |