WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Xeno Linux never pins L1 tables ?

To: "Mark Williamson" <mark.williamson@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] Xeno Linux never pins L1 tables ?
From: Satya <satyakiran@xxxxxxxxx>
Date: Tue, 16 Oct 2007 10:48:44 -0500
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, Keir Fraser <keir@xxxxxxxxxxxxx>
Delivery-date: Tue, 16 Oct 2007 08:49:25 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; bh=7u9fXKalF8XnfY31yrvks0Iejm+Kk+vhKHmZ2v0OUdE=; b=U+fVAVfM7pqMUdJHpqpPwFl0ZLSfwo93zp1teQBS7MS7xp1K89zmciseP/lQ0HLG/6yTg95CB8PHmtroUbSWnBDIXSZ8gl5GMPzJUFslWHHjcNkIXfHztOoVnl4OiWCaP/o+r7SLdHypJViykl116Y6HRsijr5Mu8YZXvW/CouA=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=RC8NH7cGBlh5U221EiXgdegTh244YZ/32oS/4UYQdVsPI96vmAV81/qbTqtiVgak1jrQ9HYX6juKfJ2s7VOsgYgBuII1QMp/IyYDHcv8N4vOBxr3aEZYcbzOKT/dy5PXxb1/4NpVJ6Ps90g+JSLTrYmYuqga58IpiJiejav6jHU=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <200710161629.07209.mark.williamson@xxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <acbcf3840710160744t52246df7se931e65b4d7651e0@xxxxxxxxxxxxxx> <200710161629.07209.mark.williamson@xxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On 10/16/07, Mark Williamson <mark.williamson@xxxxxxxxxxxx> wrote:
> I'm developing my own 32-bit (no PAE) paravirtualized kernel for xen with
> Mini-OS as a starting point. I am currently working on process page table
> support (equivalent of arch/i386/mm/pgtable-xen.c ) and mostly following
> Linux for the moment. I noticed that linux-2.6.18-xen never pins an L1
> table (a pte), yet __pgd_pin() walks the page directory and gives up write
> access on the kernel mappings of pte pages and only pins the pgd page. How
> do set_pte() and set_pte_at() macros work if they are writing directly to
> the page table entires ? do we fault in the kernel to handle this ?!

Xen catches the faults on writing to pagetables.  In more recent versions of
Xen, it traps each write and emulates it.  In older versions, it will unhook
the pagetable temporarily, allowing the guest to write directly to it.

Does that need a vm_assist() call to enable writable page tables? or is this the default? Yes I am using an older version of Xen (Xen 3.0).

There's an explicit pagetable update API for guests to batch changes to
pagetables rather than using trap-and-emulate if there is a large group of
changes to be made.

I plan to use HYPERVISOR_mmu_update() call to batch my pte changes. So going by Keir's reply I guess I have to use this hypercall in my set_pte() function that modifies a pte entry - even though I didn't explicitly issue an L1_PIN request to the hypervisor.

What's troubling me is that linux-2.6.18-xen writes to the pte entry directly by dereferencing a ptep! I think I am missing something here.
 
thanks,
satya.


Cheers,
Mark

--
Dave: Just a question. What use is a unicyle with no seat?  And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!



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