[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-ia64-devel] PV-on-HVM driver for IPF



Le Jeudi 24 Août 2006 15:14, DOI Tsunehisa a écrit :
> Hi all,
Hi,

>   I will post patches of PV-on-HVM for IPF.
>
>   We wrote the patch under this consideration:
>
>    * Expand hvm_op hypercall
>      + Introduce HVMOP_setup_shared_info_page
>        - A page allocated on HVM-guest OS is swapped original shared_info
>          page with this hypercall.
>        - In x86 code, original shared_info page is used after pv-on-hvm
>          setup with remapping feature in arch depend HYPERVISOR_memory_op.
>          But, we can't implement same feature for IPF, thus we select to
>          implement with this method.
Can you explain why you can't reuse the HYPERVISOR_memory_op hcall ?
It isn't clear for me.

About the patch:
+static int
+vmx_gnttab_setup_table(unsigned long frame_pa, unsigned long nr_frames)
+{
+    struct domain *d = current->domain;
+    int rc = 0, i;
+    unsigned long o_grant_shared, pgaddr;
+
+    if (nr_frames != NR_GRANT_FRAMES) {
+        return -1;
You'd better to return -EINVAL.

+    }
+    o_grant_shared = (unsigned long)d->grant_table->shared;
+    d->grant_table->shared = (struct grant_entry *)domain_mpa_to_imva(d, 
frame_pa);
+
+    /* Copy existing grant table shared into new page */
+    if (o_grant_shared) {
+        memcpy((void*)d->grant_table->shared,
+                (void*)o_grant_shared, PAGE_SIZE * nr_frames);
You should check the result of domain_mpa_to_imva, as it could fail.

+            if (likely(IS_XEN_HEAP_FRAME(virt_to_page(pgaddr)))) {
+                free_domheap_page(virt_to_page(pgaddr));
+                free_xenheap_page((void *)pgaddr);
+            }
+            else {
+                put_page(virt_to_page(pgaddr));
+            }
May create a function to be called by gnttab_setup_table and 
setup_shared_info_page.

Tristan.

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.