WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: HVM hypercalls

I am running 2.6.30 (downloaded from kernel.org) on top of CENTOS 5.4.
Do u mean i should enable following option

--> Processor type and features
      [*] Paravirtualized guest support  --->
             --> [ ]   Xen guest support (NEW)

But enabling this also selects PARAVIRT and does it make my guest PV guest or PVHVM guest?

--- Paravirtualized guest support
[*]   Xen guest support
(32)    Maximum allowed size of a domain in gigabytes (NEW)
[ ]     Enable Xen debug and tuning parameters in debugfs
[ ]   KVM paravirtualized clock (NEW)
[ ]   KVM Guest support (NEW)
-*-   Enable paravirtualization code
[ ]     Paravirtualization layer for spinlocks

Could you please suggest how to enable only PVHVM support? I am fine for moving to recent kernels if required.

Thanks & Regards,
VSR.

On Tue, May 24, 2011 at 5:38 PM, Ian Campbell-12 [via Xen] <[hidden email]> wrote:
On Mon, 2011-05-23 at 14:52 +0100, veerasena reddy wrote:

> Hi,
>
> Thanks a lot for quick reply.
>
> I modified my code to get physical page address and now i do not see
> error message on XEN hypervisor.
> Could you please correct if am writing proper physical address or not?
>
> We can write the page address to hypervisor using wrmsr() but who
> should set hypercall_page which is declared as extern in hypercall.h
> on HVM? Because when i try to invoke HYPERCALL_xxxx(), it reported
> hypercall_page not declared. Do we need to enable CONFIG_XEN in HVM
> kernel in order to invoke hypercalls to hypervisor?
Which kernel are you running with?

This should all be taken care of for you in a kernel with PVHVM support
enabled.

> Could you please share any sample code if you have to get a clear
> understanding of HVM hypercalls.
>
> {
>         char id[13];
>         unsigned int msr1;
>         unsigned long  my_hpage_phys;
>         int my_hpage_lo, my_hpage_hi;
>
>         __asm__ __volatile__(
>                 "cpuid"
>                 : "=b" (*(int *)(&id[0])),
>                   "=d" (*(int *)(&id[8])),
>                   "=c" (*(int *)(&id[4]))
>                 : "a" (0x40000000)
>         );
>         id[12]='\0';
>         printk("CPU ID read- %s\n", id);
>
>         /* Read MSR register */
>         __asm__ __volatile__(
>                 "cpuid"
>                 : "=b" (*(int *)(&msr1))
>                 : "a" (0x40000002)
>         );
>
>         my_hpage_phys = __get_free_page(GFP_ATOMIC);
>         hypercall_page = virt_to_phys(my_hpage_phys);
>         printk("my_hpage_phys get_free = %lx\n", my_hpage_phys);
>         printk("hypercal_page = %p\n", hypercall_page);
>
>         my_hpage_lo = (unsigned long)hypercall_page & 0xffffffff;
>         my_hpage_hi = (unsigned long)hypercall_page >> 32;
>         printk("my_hpage lo = %x hi = %x\n", my_hpage_lo,
> my_hpage_hi);
>         /* Write hypercall page address to MSR */
>         wrmsr(msr1, my_hpage_lo, my_hpage_hi);
>
>         return 0;
> }
>
> ================= output on HVM ==========
> [root@localhost src]# dmesg
> my_hypercall_page @ ffffffffa0388000
> CPU ID read- XenVMMXenVMM
> my_hpage_phys get_free = ffff880005c0b000
> hypercal_page = 0000000005c0b000
> my_hpage lo = 5c0b000 hi = 0
> ============================
>
> Thanks & Regards,
> VSR.
>
> On Mon, May 23, 2011 at 1:52 PM, Ian Campbell
> <[hidden email]> wrote:

>         On Mon, 2011-05-23 at 08:48 +0100, veeruyours wrote:
>         > Hi,
>         >
>         > I recently started working on XEN, and I am looking for ways
>         to invoke
>         > hypercalls from HVM.
>         > I followed your instructions and succeeded in reading MSR
>         register.
>         > But when i attempt to write the physical address of a 4K
>         page from my HVM
>         > guest (2.6.30 kernel), i observed the XEN hypervisor
>         reporting it as bad
>         > GMFN as follows.
>         >
>         > [root@f13 ~]# xm dmesg -c
>         > (XEN) traps.c:664:d17 Bad GMFN ffff88001e925 (MFN
>         ffffffffffffffff) to MSR
>         > 40000000
>        
>        
>         That supposed GMFN (fff88001e925) looks an awful lot like a
>         virtual
>         address and not a physical one to me, unless your guest really
>         has >4TB
>         of RAM assigned...
>        
>        
>         >
>         > Could you please help me in understanding what went wrong in
>         my
>         > implementation.
>         >
>         > I am running XEN 4.0.1 on AMD 64bit machine with svm support
>         and the dom0
>         > kernel running 2.6.32.39.
>         >
>         > The
>         > Thanks & Regards,
>         > VSR.
>         >
>         >
>         > --
>         > View this message in context:
>         http://xen.1045712.n5.nabble.com/HVM-hypercalls-tp2541346p4418332.html
>         > Sent from the Xen - Dev mailing list archive at Nabble.com.
>         >
>         > _______________________________________________
>         > Xen-devel mailing list
>         > [hidden email]
>         > http://lists.xensource.com/xen-devel
>        
>        
>        
>



_______________________________________________
Xen-devel mailing list
[hidden email]

If you reply to this email, your message will be added to the discussion below:
http://xen.1045712.n5.nabble.com/HVM-hypercalls-tp2541346p4421864.html
To unsubscribe from HVM hypercalls, click here.



View this message in context: Re: HVM hypercalls
Sent from the Xen - Dev mailing list archive at Nabble.com.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel