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

Re: [Xen-devel] Xen EPT modifications and interceptions



Hi,

At 03:00 +0000 on 03 Feb (1265166046), ken mark wrote:
> We use map_domain_page to map the ept table that contains the target
> entry. After changing the access bits in that entry, we use
> unmap_domain_page to activate the modification.

unmap_domain_page() won't "activate" anything; it just indicates that
you're done with the mapping.  On 64-bit Xen it's a no-op.

> But it seems that when we again map the ept table and fetch the exact
> entry we've modified just before, our modifications haven't taken
> effect.

Sorry to ask the obvious questions, but:
 - Are you sure you're mapping the right entry?  Is it the same MFN
   both times?
 - Have you tried tracking all other mappings of the same page to see if 
   it's put back in between?
 - Are you running a multiprocessor system?  Do you hve sufficient locking
   around the operation to stop confusion from simultaneous changes on
   other CPUs?  The EPT code has historically been lacking in this area.

> Any sometimes the modification will cause interception while in some
> cases it doesn'. Is there anything to do which our using of map/unmap
> functions? Or do we need to flush something when we have made the
> modifications? 

Yes, you need to flush the EPT entries from TLBs before changes will
take place.  You need to call hvm_flush_guest_tlbs() on every CPU in the
guest's domain_dirty_cpumask.  Xen's normal flush_tlb_mask() operation
does this as a side-effect.

Cheers,

Tim.

-- 
Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, Citrix Systems (R&D) Ltd.
[Company #02300071, SL9 0DZ, UK.]

_______________________________________________
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®.