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

[Xen-changelog] [xen-unstable] [IA64] Revert PAL_VM_SUMMARY and PAL_VM_INFO handling for VTI domain



# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 01b257e72d5e72fb6cfbce9ea2ae75ceea76f10a
# Parent  cf05aabe6e65840cd98a97f62cecd452de1b8716
[IA64] Revert PAL_VM_SUMMARY and PAL_VM_INFO handling for VTI domain

Use info from call on physical CPU and only modify virtualized fields.

Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx>
---
 xen/arch/ia64/xen/fw_emul.c |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

diff -r cf05aabe6e65 -r 01b257e72d5e xen/arch/ia64/xen/fw_emul.c
--- a/xen/arch/ia64/xen/fw_emul.c       Wed Oct 25 15:29:00 2006 -0600
+++ b/xen/arch/ia64/xen/fw_emul.c       Sun Oct 29 11:05:53 2006 -0700
@@ -218,7 +218,19 @@ xen_pal_emulator(unsigned long index, u6
                status = ia64_pal_cache_summary(&r9,&r10);
                break;
            case PAL_VM_SUMMARY:
-               {
+               if (VMX_DOMAIN(current)) {
+                       pal_vm_info_1_u_t v1;
+                       pal_vm_info_2_u_t v2;
+                       status = ia64_pal_vm_summary((pal_vm_info_1_u_t *)&v1,
+                                                    (pal_vm_info_2_u_t *)&v2);
+                       v1.pal_vm_info_1_s.max_itr_entry = NITRS - 1;
+                       v1.pal_vm_info_1_s.max_dtr_entry = NDTRS - 1;
+                       v2.pal_vm_info_2_s.impl_va_msb -= 1;
+                       v2.pal_vm_info_2_s.rid_size =
+                               current->domain->arch.rid_bits;
+                       r9 = v1.pvi1_val;
+                       r10 = v2.pvi2_val;
+               } else {
                        /* Use xen-specific values.
                           hash_tag_id is somewhat random! */
                        static const pal_vm_info_1_u_t v1 =
@@ -242,14 +254,18 @@ xen_pal_emulator(unsigned long index, u6
                        v2.pvi2_val = 0;
                        v2.pal_vm_info_2_s.rid_size =
                                current->domain->arch.rid_bits;
-                       v2.pal_vm_info_2_s.impl_va_msb =
-                               VMX_DOMAIN(current) ? GUEST_IMPL_VA_MSB : 50;
+                       v2.pal_vm_info_2_s.impl_va_msb = 50;
                        r9 = v1.pvi1_val;
                        r10 = v2.pvi2_val;
                        status = PAL_STATUS_SUCCESS;
                }
                break;
            case PAL_VM_INFO:
+               if (VMX_DOMAIN(current)) {
+                       status = ia64_pal_vm_info(in1, in2, 
+                                                 (pal_tc_info_u_t *)&r9, &r10);
+                       break;
+               }
 #ifdef VHPT_GLOBAL
                if (in1 == 0 && in2 == 2) {
                        /* Level 1: VHPT  */

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


 


Rackspace

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