[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Checking hypercall page existence!
Add some tracing to the hypercall function in xen/arch/x86/hvm/hvm.c and see if you are getting that far and, if so, what error path you are taking. -- Keir On 3/11/08 08:49, "Jayaraman, Bhaskar" <Bhaskar.Jayaraman@xxxxxxx> wrote: > Keir, from a dump of the hypercall page loaded by the VM, I'm able to see the > vmcall instruction in the hypercall page; please see attached file and you'll > find the opcode 0xc1010f00 for VMCALL instruction. In the Intel instruction > set reference the opcode given is 0F01C1 for VMCALL and I guess that's in big > endian notation?? > > I also checked with a Linux HVM 2.6.18 kernel where I printed the hypercall > page into the kernel log and the dmesg on that VM also throws the same output > as you see in the attached file. So I'm not sure why any hypercalls should > return a -1 value (I hope I'm supposed to check the return value), especially > the two that I'm invoking. I'll now try invoking other hypercalls one by one > and see if they all fail on VxWorks. > > This is the code portion that's breaking: - > for (i = 0; i < XENFEAT_NR_SUBMAPS; i++) { > fi.submap_idx = i; > if (HYPERVISOR_xen_version(XENVER_get_features, &fi) < 0) { > break; > } > ............. > } > > The xen_feature_info_t structure has NULL initialized fields and I pass it > with the hypercall but it doesn't contain any values when the hypercall > returns. I'm assuming that this means the hypercall fails but I'm not sure if > the structure is supposed to conatain anything other than 0 filled values in > it after the hypercall returns to an HVM. > > Bhaskar. > -----Original Message----- > From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx] > Sent: Sunday, November 02, 2008 1:44 PM > To: Jayaraman, Bhaskar; xen-devel@xxxxxxxxxxxxxxxxxxx > Subject: Re: [Xen-devel] Checking hypercall page existence! > > Dumping the page contents and disassembling would be sensible. > > -- Keir > > On 2/11/08 07:28, "Jayaraman, Bhaskar" <Bhaskar.Jayaraman@xxxxxxx> wrote: > >> No Keir, VxWorks doesn't have a user, kernel context and everything runs in >> kernel mode in it. All tasks are scheduled in Ring0 on it so I'm not entirely >> sure why my hypercalls are failing, although I'm able to load the hypercall >> page. I'll try invoking a few more calls and check if all the hypercalls are >> failing. I'm hoping that if I call more hypercalls and if the hypercall page >> hasn't even loaded properly maybe I'm missing an instruction segment >> interrupt >> (Invalid opcode etc) as the hypercall branch is probably going to a >> legitimate >> instruction address for the ones I'm calling right now. >> On the other hand I was also thinking of dumping the whole 4k page laoded by >> wrmsr onto the terminal and check for hypercall opcodes within it to see if >> the page was actually loaded. If there's some other way of checking if the >> page has loaded properly, or if you think I may have to do something else to >> make the calls work please let me know. >> Bhaskar. >> ________________________________________ >> From: Keir Fraser [keir.fraser@xxxxxxxxxxxxx] >> Sent: Saturday, November 01, 2008 4:40 AM >> To: Jayaraman, Bhaskar; xen-devel@xxxxxxxxxxxxxxxxxxx >> Subject: Re: [Xen-devel] Checking hypercall page existence! >> >> You can only execute hypercalls from ring 0 (kernel context), not user >> space. Is that your problem? >> >> -- Keir >> >> On 1/11/08 08:15, "Jayaraman, Bhaskar" <Bhaskar.Jayaraman@xxxxxxx> wrote: >> >>> Hi, I've mapped hypercall pages onto a VxWorks HVM using the CPUID and WRMSR >>> instructions on a 32 bit pentium machine. However, when I'm trying to make a >>> hypercall on it the hypercall on it I'm unable to succeed and it fails. I >>> tried the HYPERVISOR_xen_version and HYPERVISOR_vm_assist hypercalls and >>> they >>> both are returning < 0 values. >>> I was wondering whether there is any way in which I can verify whether the >>> hypercall pages have actually been mapped. I could take a dump of the pages >>> that wrmsr maps into my domain and look through it for hypercall opcodes but >>> if there is an easier way to confirm that, like a signature in the page >>> mapped, please let me know. >>> Thanks. >>> Bhaskar. >>> >>> _______________________________________________ >>> Xen-devel mailing list >>> Xen-devel@xxxxxxxxxxxxxxxxxxx >>> http://lists.xensource.com/xen-devel >> >> > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |