From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emre Can Sezer Subject: Re: Two shadow page tables for HVM Date: Fri, 30 Jan 2009 11:15:01 -0500 Message-ID: <49832785.3010809@ncsu.edu> References: <494985DF.9040701@ncsu.edu> <20081218113225.GN460@york.uk.xensource.com> <494FC8C7.8030508@ncsu.edu> <20081223161006.GB28336@york.uk.xensource.com> <4958F7E0.8050207@ncsu.edu> <20081229165415.GB5734@york.uk.xensource.com> <4967CAFB.7090907@ncsu.edu> <20090112094609.GN12729@york.uk.xensource.com> <497E57AC.1090508@ncsu.edu> <20090127103413.GB990@york.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20090127103413.GB990@york.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Xen Devel List-Id: xen-devel@lists.xenproject.org >> I'm using 64-bit PT's and as far as I >> can tell EFER.NXE is turned on. At least cpu_has_nx returns true and >> that I get page faults with PFEC_instr_fetch error with both paging modes. >> >> Here is the summary of page fault errors: >> ... >> (XEN) sh_page_fault: d:v=1:0 va=0xffffffffa000f050 err=17, >> rip=ffffffffa000f050 >> (XEN) Switching to ALTERNATE paging mode >> (XEN) sh_page_fault: d:v=1:0 va=0xffffffff8062cef0 err=0, >> rip=ffffffffa000f050 >> (XEN) sh_page_fault: d:v=1:0 va=0xffffffff805d8010 err=0, >> rip=ffffffffa000f050 >> (XEN) sh_page_fault: d:v=1:0 va=0xffffffff8020cea0 err=10, >> rip=ffffffff8020cea0 >> (XEN) Switching to NORMAL paging mode >> (XEN) Done >> ... >> >> I'm also confused about the last page fault. No page fault occurred >> that propagated this page's pte from the guest (I turned off >> prefetching). I'm inclined to think that I have some artifacts from the >> initial paging mode. >> > > Seems like a fair explanation. > The intel software development manual states: P flag = 0 --> PF due to page not present P flag = 1 --> PF due to protection violation If this flag is used as it is, it would explain the error code being 0. I'm looking into why there isn't another instruction fetch. John >