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

Re: [Xen-devel] create shadow pages


  • To: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
  • From: ding baozeng <baozengding@xxxxxxxxx>
  • Date: Thu, 11 Nov 2010 16:43:47 +0800
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Thu, 11 Nov 2010 00:44:38 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=hvh8Up2IKmfJhhOxhCg5X9eJot4BIuh+ep4P807o/0MqePb7sucOLDfo1QNfJ80j+s WjS2l11oxaWuGWp7HP2aDg75cSGOTFORqOFxFkkQ0YF0YUwVcxl1vjcF3ni7x5iaTDbH PRpG2ENw1fRRHBNoya7uDRWaxE9UicA956dIA=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi,
   I wrote a module test.c in hvm domU, simple as the following:
  struct page * pg;
  unsigned long *vaddr;
  pg = alloc_pages(GFP_HIGHUSER, 1);
  if (!pg) return 0;
  vaddr = page_address(pg);
  if (!vaddr) return 0;
  printk("The address allocated is %lx\n", (unsigned long)vaddr);
  printk("The value at the address is %lx\n", *vaddr);
  __free_pages(pg, 1);
 return 1;
 
After compile and insmod the module, the result is:
The address allocated is fab3d000;
 The value at the address is 3125
 I have a few questions about it:
As we could obtain the value at the address fab3d000, does that means the shadow pages for it has been built? When is the shadow page for the built, at "alloc_pages" or "page_address " or is not built at all?

Best  Regards,
                           Baozeng  Ding

2010/11/6 ding baozeng <baozengding@xxxxxxxxx>


2010/11/5 Tim Deegan <Tim.Deegan@xxxxxxxxxx>

At 11:42 +0000 on 05 Nov (1288957359), ding baozeng wrote:
> I use the SPT to obtain security effect and the overhead is also
> small. I would disable EPT. When putting the security code in-vm, I
> further use the VT-d technology, CR3_TARGET_LIST to decrease the
> overhead. As we know, when processes switch, it would update CR3, and
> so trap into xen, which bring up a lot of overhead.  But after we
> write the value of CR3 into the CR3_TARGET_LIST, it would not trap
> into xen when process switch. So I would create another address space
> to put the security code and put the address of its shadow page into
> CR3_TARGET_LIST. (when you have time, please take look at the paper in
> attachment, thx)

I've read the paper ("Secure In-VM Monitoring Using Hardware
Virtualization", from Proc. CCS '09, for anyone reading along) and the
thing they do there will be difficult in the Xen shadow pagetables
because Xen shadows individual frames of memory rather than %CR3 values,
so if the guest kernel shares pagetables between the secure and
non-secure %CR3s they will always see exactly the same mappings in the
shadows.
We do not share pagetables. Is it possible that we just create our own shadow pagetables for SIM address space?(The guest pagetables for SIM may be not needed). This may consume some memory in xen, but i think it is a way to implement it. If it is possible, how to implement it?
 
It would take quite a lot of work to make Xen's shadow pagetables treat
one process differently from all the others.  Have you tried asking the
authors for their KVM code?
I asked, but they said their code is not opened. 

Cheers,

Tim.

--
Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, Xen Platform Team
Citrix Systems UK Ltd.  (Company #02937203, SL9 0BG)


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