[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Problems calling HVMOP_flush_tlbs
Hello xen-devel, I am using xen 4.2.1 and have tried the following with kernel 3.0.0 and 3.2.1. I am trying to invoke the HVMOP_flush_tlbs hypercall but have been unsuccessful. I am basing my call on the functions in in xc_misc.c, trying to guess what is meant by "@arg must be null" in the comment where HVMOP_flush_tlbs is defined. What is the correct way to invoke this hypercall? If I call it like this, I receive an invalid parameter (EINVAL) error: struct privcmd_hypercall { uint64_t op; uint64_t arg[5]; } hypercall; hypercall.op = __HYPERVISOR_hvm_op; hypercall.arg[0] = HVMOP_flush_tlbs; hypercall.arg[1] = 0; ret = do_xen_hypercall(xch, (void*)&hypercall); If I call it like this, I get function not implemented (ENOSYS), where 3 is a valid domain id: hypercall.op = __HYPERVISOR_hvm_op; hypercall.arg[0] = HVMOP_flush_tlbs; hypercall.arg[1] = 3; /* 3 is the domain whose tlbs should be flushed */ hypercall.arg[2] = 0; I have also tried this, mimicking the arg struct for the other HVMOP calls, which also returns ENOSYS: typedef struct _arg_t { domid_t domid; uint64_t ptr; } arg_t; struct privcmd_hypercall { uint64_t op; uint64_t arg[5]; } hypercall; DECLARE_HYPERCALL_BUFFER(arg_t, arg); arg = xc_hypercall_buffer_alloc(xch, arg, sizeof(*arg)); hypercall.op = __HYPERVISOR_hvm_op; hypercall.arg[0] = HVMOP_flush_tlbs; hypercall.arg[1] = HYPERCALL_BUFFER_AS_ARG(arg); hypercall.arg[2]= 0; arg->ptr = 0; arg->domid = 0; /* or a valid dom id, the results are the same */ Any help is appreciated. -Tony _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |