From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sina Bahram" Subject: RE: Implementing split memory in Xen is annoyingly hard? Date: Fri, 12 Dec 2008 04:50:05 -0500 Message-ID: <25BA7F7EB3FC4A2CA1438F1799117137@neutrino> References: Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: 'Keir Fraser' , xen-devel@lists.xensource.com, xen-research@lists.xensource.com List-Id: xen-devel@lists.xenproject.org I'm not trying to make the page executable but not readable, as long as I can trap all reads, that's all. I'll be implementing a split TLB which will handle the fact that all executes get shunted to a "split page". Another way of saying that is that if someone looks up a virtual address, it gets translated to one physical address if it's for read/writes and to another one for executes. Sure one can execute the page that is read/write and someone could read/write to the page that is execute, but it will never happen because I'd never translate it that way in my code. Btw, this completely eliminates anything like lisp, javascript, or anything else from running, as they run code they have written all the time, but that's why I only plan on doing it for kernel pages which don't write things that they then execute. Hope that's more clear, and is this possible, do you think, or is my summary in the original email accurate in that it can't be done easily in xen? Take care, Sina -----Original Message----- From: Keir Fraser [mailto:keir.fraser@eu.citrix.com] Sent: Friday, December 12, 2008 4:20 AM To: Sina Bahram; xen-devel@lists.xensource.com; xen-research@lists.xensource.com Subject: Re: [Xen-devel] Implementing split memory in Xen is annoyingly hard? On 12/12/2008 06:47, "Sina Bahram" wrote: > #2: Xen absolutely does not, (can not?), cause a fault or other VM exit to > be generated upon an execute or a read of a page. It's not possible to make a page executable but not readable, so indeed I think you're stumped there, unless you can work out a hackish way to desynchronise the iTLB and the dTLB (an operation not supported architecturally by x86 of course). -- Keir