Tamas, what do you think, why the same hypercall operations (get_param) are executed by Xen differently? Does Xen know anything about caller domU CPL: usermode or kernelmode?
Thank you for answers! Best Regards, Rockosov Dmitry 2016-08-22 21:28 GMT+03:00 Tamas K Lengyel <tamas.k.leng...@gmail.com>: > On Mon, Aug 22, 2016 at 12:12 PM, Dmitry Rockosov <rocko...@gmail.com> > wrote: > > The problem is in hypervisor checking definitely. I deeper debugged the > > code, I met vmcall instruction execution. This means EFAULT is coming > from > > hypervisor. > > As it should, question is where exactly it gets denied in Xen. > > > > > Best Regards, > > Rockosov Dmitry > > > > 2016-08-22 18:09 GMT+03:00 Dmitry Rockosov <rocko...@gmail.com>: > >> > >> Hello Tamas, > >> > >> Thank you for the answer! > >> > >> I installed the same xen source code (4.7.0) as on dom0 to domU, built > >> dist-tools, installed xen-tools, updated rc.d configuration and > rebooted. > >> IOCTL channel to privcmd driver is working fine, but all requests to > >> hypervisor like hvm_get_param, translate_foreign_address, > >> altp2m_vcpu_enable_notify return EFAULT errno (Bad access). > >> > >> Just for experiment I wrote below code in usermode: > >> =================================== > >> ... > >> rc = xc_hvm_param_get(xch, DOMID_SELF, HVM_PARAM_CONSOLE_PFN, &value); > >> if (rc < 0) { > >> PERROR("Fail to get CONSOLE PFN HVM PARAM\n"); > >> goto exit; > >> } > >> DPRINTF("CONSOLE PFN == %llx", (unsigned long long)value); > >> ... > >> =================================== > >> > >> and below code in kernelmode: > >> =================================== > >> ... > >> printk(KERN_INFO "We are in Xen domain HVM = %d\n", xen_hvm_domain()); > >> err = hvm_get_parameter(HVM_PARAM_CONSOLE_PFN, &value); > >> printk(KERN_INFO "err = %d\n", err); > >> printk(KERN_INFO "CONSOLE PFN = %llx\n", value); > >> ... > >> =================================== > >> > >> In the usermode I got an error: > >> =================================== > >> Fail to get CONSOLE PFN HVM PARAM > >> : Bad address > >> =================================== > >> > >> In the kernelmode code executed fine: > >> =================================== > >> [23261.230188] We are in Xen domain HVM = 1 > >> [23261.307840] err = 0 > >> [23261.352587] CONSOLE PFN = fefff > >> =================================== > >> > >> Looks like usermode wrappers don't support many requests to hypervisor, > >> right? > > Not sure about HVMOP_get_param but AFAIK for > HVMOP_altp2m_vcpu_enable_notify to work you would have to create the > domain with altp2mhvm=1 enabled, then also issue the required commands > from dom0 to enable it (xc_altp2m_set_domain_state) and also perhaps > create a couple altp2m views. > > Tamas > > >> > >> Best Regards, > >> Rockosov Dmitry > >> > >> 2016-08-21 20:27 GMT+03:00 Tamas K Lengyel <tamas.k.leng...@gmail.com>: > >>> > >>> Hi Dmitry, > >>> as long as you are testing with a HVM Linux guest you should be able > >>> to just compile the Xen tools in the guest and then use libxc from > >>> within the guest to issue that hypercall via > >>> xc_altp2m_set_vcpu_enable_notify. You will need to load a couple Xen > >>> related kernel-modules for it to work (like xen-privcmd). Let us know > >>> if you got it working! > >>> > >>> Cheers, > >>> Tamas > >>> > >>> On Fri, Aug 19, 2016 at 1:19 PM, Dmitry Rockosov <rocko...@gmail.com> > >>> wrote: > >>> > Hello Xen Team! > >>> > > >>> > Does anybody have any code examples of HVMOP_altp2m_vcpu_enable_ > notify? > >>> > > >>> > I want to fully test #VE, VMFUNC and EPTP Switching VM Function 0 in > >>> > Xen, > >>> > but doesn't have any documentations/examples for it. > >>> > I tried xen-access test from tools/tests/xen-access, but looks like > it > >>> > doesn't use VMFUNC and #VE, it simply changes VMCS entries with > >>> > vmwrite, w/o > >>> > VMFUNC 0 (EPTP Switching). > >>> > > >>> > Thanks in advance! > >>> > > >>> > Best Regards, > >>> > Rockosov Dmitry > >>> > > >>> > _______________________________________________ > >>> > Xen-devel mailing list > >>> > Xen-devel@lists.xen.org > >>> > https://lists.xen.org/xen-devel > >>> > > >> > >> > > >
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel