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

[Xen-devel] Question about linear mapping of shadow page tables for 64bit HVM guest


  • To: gianluca.guida@xxxxxxxxxxxxx, Tim.Deegan@xxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Abe Petrov <abe.petrov@xxxxxxxxx>
  • Date: Sat, 21 Nov 2009 13:38:54 -0500
  • Cc:
  • Delivery-date: Sat, 21 Nov 2009 10:39:20 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=ZsGarpaQwbjpZR4j5S2OUhLzFrXgBcfIxV3fGB25WFv1Ow+AvlBaV86GU0HrhHnFLB iCDnlfgXZ1BI8D+rVJhbsVVy9U2P25jBs7xD3X+ov0fjHQ1vzCbTcDn83MKzDfscP5xn JBF/OVLrKB3Bkelu3T+8jfZCaMsUGSJ9FkD+o=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Linear mapping of shadow page tables is used to find shadow PTEs that
map a given guest VA. If I understand the following macros correctly

    #define __sh_linear_l1_table ((shadow_l1e_t *)(SH_LINEAR_PT_VIRT_START))
    #define __sh_linear_l2_table ((shadow_l2e_t *)
          \
        (__sh_linear_l1_table +
shadow_l1_linear_offset(SH_LINEAR_PT_VIRT_START)))

there is an overlap between L1 and L2 (also L3 and L4) tables. That
creates potential conflicts between different guest VAs.

For example L1 shadow PTE for guest VA1 = 0x818000000000 (the same as
SH_LINEAR_PT_VIRT_START) coincides with L2 shadow PTE for the guest
VA2 = 0x0. So updating L1 shadow PTE for guest VA1 would overwrite L2
shadow PTE for the guest VA2.

What am I missing? Sorry for the novice question.

Thank you,

Abe.

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


 


Rackspace

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