[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [patch] pae: tlbflush linear page table updates



On Tue, Aug 09, 2005 at 05:14:14PM +0100, Keir Fraser wrote:
> 
> On 9 Aug 2005, at 16:44, Gerd Knorr wrote:
> 
> >Hmm, that happens when xen is build with debug=y only, without
> >that it crashes much earlier ...
> 
> Weird. The calls to create_pae_xen_mappings were definitely on the 
> error paths in mod_l3_entry(), which is obviously wrong. I'm surprised 
> that fixing it would make things worse, unless some other patch in the 
> meantime has screwed pae...

No, it's actually the changeset
6056:a1f7e01b0990a378584e718e6d48eac38824fdb9 which broke it.

The create_pae_xen_mappings() call in the error path is broken
indead.  That must have sneaked in somewhen, I'm pretty sure I
wrote that initially as something like

         if ( unlikely(!UPDATE_ENTRY(l3, pl3e, ol3e, nl3e)) ||
              !create_pae_xen_mappings(pl3e) )
         {
             put_page_from_l3e(nl3e, pfn);
             return 0;
         }

so create_pae_xen_mappings() failure (due to the guest OS trying
illegal things) will *trigger* the error path.  Strange it never
showed up, maybe linux never ever updates l3 entries after
creating them.

BUG_ON(!create_pae_xen_mappings()) is a bad idea, it _can_ fail,
the failure should just be propagated up (so in the end the
hypercall running into this returns some errror) or the domain
should simply be killed ...

  Gerd

-- 
panic("it works"); /* avoid being flooded with debug messages */

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.