[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-ia64-devel] RE: vcpu_translate issue
OK, I've checked in a fix incorporating Matt's discovery and the vcpu_translate region 0 handling code I had earlier backed out. ltp-mmap09 now works properly. Matt can you confirm that your dom0 boot problem is also fixed? Thanks, Dan > -----Original Message----- > From: Magenheimer, Dan (HP Labs Fort Collins) > Sent: Friday, November 11, 2005 8:48 AM > To: 'Matt Chapman'; Tian, Kevin > Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > Subject: RE: [Xen-ia64-devel] RE: vcpu_translate issue > > Good catch! I'm guessing the solution will be for > vcpu_itc (and fast_itc, though it is turned off > by default) to handle this case by using the > correct (rr0) rid when in metaphysical mode. > > Dan > > > -----Original Message----- > > From: Matt Chapman [mailto:matthewc@xxxxxxxxxxxxxxx] > > Sent: Thursday, November 10, 2005 11:02 PM > > To: Tian, Kevin > > Cc: Magenheimer, Dan (HP Labs Fort Collins); > > xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > > Subject: Re: [Xen-ia64-devel] RE: vcpu_translate issue > > > > On Thu, Nov 10, 2005 at 05:02:52PM +0800, Tian, Kevin wrote: > > > > > > >I think delivering a TLB miss is not sufficient. Because the > > > >mapping for the zero page is indeed in Linux's pagetable, the TLB > > > >miss handler succeeds in finding and inserting it, and the page > > > >fault handler is not triggered. > > > > > > Actually that depends. Only when short format vhpt entry > > exists in TLB > > > which contains that mapping for zero page, low level TLB > > miss handler > > > can hit it. Or else the flow still goes to C code page > > fault handler, > > > right? > > > > Yes, the C page fault handler is invoked if it's not in the > pagetable. > > But as far as Linux is concerned, there is a valid read-only VMA at > > address 0, so the C page fault handler won't raise a fault > on read, it > > will simply insert a read-only mapping in the page table. > > > > So, a write to the zero page will result in an access fault and > > termination of the process. A read from the zero page will succeed > > (incorrectly). But that doesn't explain why it now hangs there. > > > > The more important problem seems to be that itc inserts > into the wrong > > region when we're metaphysical, so the execution flow is like this: > > > > 1. [rr0=X] guest accesses address 0 -> fault > > 2. [rr0=X] Xen accesses VHPT at 0x1fffff000000000 -> deliver > > IA64_VHPT_FAULT > > 3. guest switches to metaphysical to walk pagetable > > 4. [rr0=mprid] guest inserts translation for 0 and > 0x1fffff0000000000 > > 5. guest returns to virtual mode (rfi) > > 6. [rr0=X] goto 1 > > > > Matt > > > > > _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |