From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kip Macy Subject: Re: writable page tables appear to be causing xen to lock up Date: Tue, 19 Apr 2005 10:45:53 -0700 Message-ID: References: Reply-To: Kip Macy Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Pratt Cc: xen-devel List-Id: xen-devel@lists.xenproject.org Sticking a printk in the writable page table macros tracked down the problem immediately. I had gone through pmap.c carefully differentiating between page table and page directory updates, but I neglected to do that in machdep.c. WP PT_SET ../../../i386-xen/i386-xen/machdep.c:1461 (XEN) (file=3Dtraps.c, line=3D343) Page fault: fc550862 -> fc552df4 (XEN) Stack trace from ESP=3Dfc503c04: ... Easy enough to solve on my end. As of this point I did not have my trap table setup so I would have thought that xen should've simply killed the guest rather than retrying indefinitely. -Kip On 4/19/05, Kip Macy wrote: > My guess from this is FreeBSD is DOSing xen by endlessly triggering > failsafe_callback. Although this is *extremely* likely to be my fault, > it raises an interesting point about the need for heavily reducing the > scheduling priority of misbehaved guests. >=20 > 0xfc550862 <__copy_from_user_ll+53>: repz movsb %ds:(%esi),%es:(%edi) > 0xfc552df4 : push %ecx > 0xfc54df1e : add $0x4,%esp > 0xfc550862 <__copy_from_user_ll+53>: repz movsb %ds:(%esi),%es:(%edi) > 0xfc5508f4 : mov %eax,%ebx > 0xfc54da4f : test %eax,%eax > 0xfc54abfc : mov %eax,0xffffffd4(%ebp) > 0xfc54dae5 : leave > 0xfc54cdca : cmpl $0x1,0xffffffd4(%ebp) > 0xfc52ba0f : movl $0x1,0xffffffec(%ebp) > 0xfc52c3a0 : mov %eax,0xfffffffc(%ebp) > 0xfc52cab6 : movl $0x1,0xffffffd8(%ebp) > 0xfc52e6a6 : mov 0xffffffd8(%ebp),%eax > 0xfc5304c1 : test %eax,%eax > 0xfc5426b3 : mov %eax,0xfffffffc(%ebp) > 0xfc540100 : test %eax,%eax > 0xfc53ff60 : mov %eax,0xfffffff4(%ebp) > 0xfc540330 : movl $0x0,0xffffffe0(%ebp) > 0xfc54df1e : add $0x4,%esp > 0xfc54dda3 : mov %eax,%gs:(%esi) > 0xfc54de75 : jmp > 0xfc54dcd7 >=20 > On 4/18/05, Kip Macy wrote: > > > You'll have to give us a bit more to go on. I presume this is in > > > unstable? > > > > Yes this is as of your last pushed checkin from 72hrs ago. LOL. If I > > had more I'd give it to you. I've just disabled writable pagetables in > > FreeBSD for the moment. > > > > > > > It's probably worth adding a show_stack and a show_guest_stack to see > > > how you're getting there. > > > > I'll stick that in and let you know. > > > > -Kip > > >