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

[Xen-devel] RE: Propose "xen_init()" call first thing in Xen drivers

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] RE: Propose "xen_init()" call first thing in Xen drivers
From: "Magenheimer, Dan (HP Labs Fort Collins)" <dan.magenheimer@xxxxxx>
Date: Thu, 22 Sep 2005 10:19:09 -0700
Delivery-date: Thu, 22 Sep 2005 17:17:38 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcW+9pLOkyKDvrA9Qg+azC7D1BUrcQAowUGg
Thread-topic: Propose "xen_init()" call first thing in Xen drivers
No comments or objections?  If not, I will include
the (minimal) changes in the next ia64 merge which
I am preparing now. 

> -----Original Message-----
> From: Magenheimer, Dan (HP Labs Fort Collins) 
> Sent: Wednesday, September 21, 2005 3:51 PM
> To: xen-devel@xxxxxxxxxxxxxxxxxxx
> Cc: 'Matt Chapman'
> Subject: Propose "xen_init()" call first thing in Xen drivers
> 
> Here's another patch needed for ia64 in various xen drivers
> that should probably be discussed before the actual patch
> code is attached/applied.
> 
> Per previous posts, Xenlinux/ia64 is transparently paravirtualized,
> which means the same bits run on top of Xen as on top of raw
> iron.
> 
> To accomplish this, we have to be very careful to avoid doing
> Xen-like things when we are not running on Xen.  The Xen
> drivers tend to do Xen-like things early and often.  To avoid
> the Xen drivers doing nasty things when not running on Xen,
> we have added a single line at the beginning of various
> drivers/xen/xxx xxx_init() routines, namely:
> 
>       if (xen_init() < 0) return -ENODEV
> 
> Where xen_init does "if (running_on_xen()) return -1;"
> (among other things... see below) and where
> running_on_xen() does the obvious (archdep) test.
> We have been maintaining these changes out-of-tree.
> 
> Note that the routine need not be provided on x86 as
> the line can be easily ifdef'd away by adding
> 
>       #define xen_init()      (0)
> 
> in a file such as asm-x86/hypervisor.h.
> 
> But wait... on xenlinux/ia64, xen_init does something
> else!  In xenlinux/x86 there was (not sure if it is still
> there) some funky linker stuff to ensure that the drivers
> are linked in the right order as bad things happened
> if they weren't (due to the way init() works on Linux).
> On xenlinux/ia64, xen_init() eliminates this problem with
> a simple static one-shot variable in xen_init; regardless
> of which routine calls xen_init first, xen_init does the
> necessary initialization once.  No linker magic required.
> 
> So adding the xen_init test need not be ifdef'd away
> for x86.
> 
> For xenlinux/ia64, we have the test added in a few
> places, namely: xencons_init, gnttab_init, xenbus_probe_init.
> It may also be needed elsewhere as we've been struggling
> out-of-tree with keeping up with changes in driver/xen,
> haven't tested on raw iron in awhile, don't have networking
> working yet, etc.
> 
> So... how about we add the one line test to the init routines
> of the various Xen drivers (including "core" drivers)?
> 
> Thanks,
> Dan
> 
> P.S. The xen_init approach should be properly credited to
> Matt Chapman.  I am just proposing it for the core tree.
> 

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] RE: Propose "xen_init()" call first thing in Xen drivers, Magenheimer, Dan (HP Labs Fort Collins) <=