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

RE: [Xen-devel] Genapic



Genapic loosely refers to the generic sub architecture for i386 and
x86_64 platforms though it is implemented differently for the two. It
makes switching between different mach types a run-time option. This is
what Andi Kleen had to say about it when he submitted the patch to the
LK.

   [PATCH] generic subarchitecture for ia32
   
   From: Andi Kleen <ak@xxxxxx>
   
   This patch adds an generic x86 subarchitecture. It is intended to
provide
   an dynamic interface for APIC drivers. There are already three
subarchitectures
   (bigsmp, summit, default) that only differ in how they drive the
local APIC.
   A fourth - Unisys ES7000 - is scheduled to be merged soon.
   
   The subarchitecture concept separated this nicely, but it has the big
   drawback that they are compile time options. A Linux vendor cannot
   ship own binary kernel rpms for all of these machines. Runtime
probing
   is needed instead.
   
   This patch adds a new "generic" subarchitecture that just acts as a
   dynamic switching layer for APIC drivers. It only tries to virtualize
   the APICs, no attempt is made to cover further incompatiblities.
   This means machines like the Visual Workstation, pc9800 or
   Voyager are not covered; but these are unlikely to be supported by
   binary distributions anyways.
   
   The generic arch reuses the existing interface in mach_ipi /
mach_mpparse.h /
   mach_apic.h and just pulls it using some macros into an "struct
genapic"
   object. The main APIC code does not recognize it, it is all hidden
   in the mach-generic include files.
   
   Auto detection of APIC types is supported in the usual way used by
   existing ports like Summit - checking ACPI or mptables for specific
   signatures - or it can be specified by the user using a new "apic="
   boot option. I also moved the DMI scan to before the generic
   subarchitecture probe, so DMI could be used in future too to probe
   specific machines.
   
   Some minor hacks were needed to avoid circular declaration of a few
   symbols, but overall it's fairly clean.
   
   The patch has been tested on a Summit machine, an generic 4 virtual
CPUs
   Xeon and on an ES7000.


But for now I shall bring in the mach-es7000 as a compile time option.

Aravindh

-----Original Message-----
From: Keir Fraser [mailto:Keir.Fraser@xxxxxxxxxxxx] 
Sent: Wednesday, May 18, 2005 3:34 AM
To: Puthiyaparambil, Aravindh
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx; Vessey, Bruce A; Subrahmanian, Raj
Subject: Re: [Xen-devel] Genapic


On 17 May 2005, at 22:18, Puthiyaparambil, Aravindh wrote:

> Now that Xen has platform code has been upgraded to be based off of
the
> LK 2.6 code base, it seems that the best way of introducing other
> platform specific code would be to add "genapic" support. Is anybody
> working on this? Is the unstable tree ready for this?

I'm not sure what 'genapic' support is, but if you mean porting things 
like mach-es7000 across to Xen, then yes: I think we are now ready for 
that.

Longer term I'd like to make switching between the different mach types 
a run-time rather than compile-time decision. But that will require a 
fair bit of modification to the standard Linux way of doing things -- 
for initial 3.0 I think we'll stick to compile-time switches for 
selecting esoteric platform configurations.

  -- Keir


_______________________________________________
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®.