WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] bug in LDT error checking on stable branch

To: "Kip Macy" <kmacy@xxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] bug in LDT error checking on stable branch
From: "Ian Pratt" <m+Ian.Pratt@xxxxxxxxxxxx>
Date: Wed, 9 Feb 2005 01:05:38 -0000
Cc: "Keir Fraser" <Keir.Fraser@xxxxxxxxxxxx>, <ian.pratt@xxxxxxxxxxxx>
Delivery-date: Wed, 09 Feb 2005 01:07:45 +0000
Envelope-to: xen+James.Bulpin@xxxxxxxxxxxx
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
Thread-index: AcUKKiV8kwestDqUTLS5WSrQmTXzNwEGAVdg
Thread-topic: [Xen-devel] bug in LDT error checking on stable branch
> do_mmu_update blindly assumes that setting the LDT will 
> always succeed:

It's deferring the operation for performance reasons, which makes it
tricky to tell the guest whether it failed or not. I guess we could
return an error for the whole hypercall batch, but at the point the
failure is detected it would be slighty messy to report which op failed.

I guess the current behaviour is a pain if you're debugging a guest
port...

Ian

> under MMUEXT_SET_LDT:
>           if ( ents != 0 )
>                 percpu_info[cpu].deferred_ops |= DOP_RELOAD_LDT;
> 
> further down:
>    if ( deferred_ops & DOP_RELOAD_LDT )
>         (void)map_ldt_shadow_page(0);
> 
> if xen thinks that one of the pages passed is mapped r/w somewhere the
> operation will fail:
> /* Map shadow page at offset @off. */
> int map_ldt_shadow_page(unsigned int off)
> {
> <...>
> 
>     if ( unlikely(!(l1e & _PAGE_PRESENT)) ||
>          unlikely(!get_page_and_type(&frame_table[l1e >> PAGE_SHIFT],
>                                      d, PGT_ldt_page)) )
>         return 0;
> 
> <...>
> 
> The user won't know about it until he re-loads a segment register or
> successfully infers what operation the "Bad type" messages on the
> console refer to.
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: IntelliVIEW -- Interactive 
> Reporting
> Tool for open source databases. Create drag-&-drop reports. Save time
> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
> Download a FREE copy at http://www.intelliview.com/go/osdn_nl
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/xen-devel
> 


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id396&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel

<Prev in Thread] Current Thread [Next in Thread>