[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] passing hypercall parameters by pointer
On Aug 19, 2005, at 9:35 AM, Keir Fraser wrote: On 19 Aug 2005, at 14:57, Hollis Blanchard wrote:- replace libxc calls to mlock() with register_this_address() (which could be a privcmd ioctl)Yep. I think libxc would request via a privcmd ioctl. The kernel can extend the parameter-passing region, or allocate a subsection of the existing region, and mmap it into user space. It would also return to libxc the range of parameter-passing addresses that have been allocated to it.- libxc ignorantly creates its structures with userspace addresseslibxc would create structs with parameter-passing addresses. Does "parameter-passing addresses" mean offsets inside the parameter passing space? I think pseudocode is going to be more effective than English here. Let's take DOM0_PERFCCONTROL as an example: main() { xc_perfc_desc_t *desc = malloc(); mlock(desc); // <------------- [1] xc_perfc_control(desc); } xc_perfc_control(xc_perfc_desc_t *desc) { dom0_op_t dop; dop.cmd = DOM0_PERFCCONTROL; dop.u.perfccontrol.desc = desc; // <------------ [2] do_dom0_op(&dop); }Even if you replace malloc/mlock at [1] with a call that maps "parameter passing" space into this process, what address will you put in the struct at [2]? That would have to be an offset within the parameter passing space, right? -- 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 |