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

Re: [Xen-devel] Genapic

Based upon the discussion so far, I think this is where xen stands:

Xen is currently based upon linux-i386 code, including support for
mach-specific functionality in asm-x86/mach-xxx subdirs.

Xen is responsible for initializing local APICs and so it must include
support for these machines (it can't be deferred to linux).

Linux (dom 0) may or may not need to include support for these machines
as well depending upon other features (timers? numa?) which may be
added in the future.  This is not an issue for Xen 3.0

Adding genapic support to Xen a la linux-i386 should be trivial given
the current state of the code.  [Genapic allows the appropriate mach-xxx
code to be chosen during run time.  This is considered very important
from a distro stand point]

Linux-x86-64 code is very different from i386 from a code organization
standpoint.  Using apic as an example, it chooses between flat or
clustered rather than es7000 vs summit vs xxx.

The question is where to go from here to enable Xen to run on
sub-arch machines.  Given the impending move to Xen 3.0, I think it would
be best to pull in the needed Linux-i386 genapic code near-term.
This code may very well not be sufficient for newer x86-64 machines
Personally, I don't know.  I also don't know if the x86-64 code can be
easily ported to work on the i386 machines currently being targeted.
If it can then a move to the x86-64 style may be a good move for the
future.  Or maybe we need to find a way for both to coexist within Xen.
I see this as a post-Xen 3.0 discussion.

Does this sound like a viable way forward?  Or have I missed something?


On Wed, 18 May 2005 17:54:43 +0100, Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> wrote:

On 18 May 2005, at 16:45, Puthiyaparambil, Aravindh wrote:

Genapic is done differently for i386 and x86_64 in the LK. In i386 it is
machine specific and in x86_64 it is APIC model specific. Do you want
Xen to mimic that? Further more both i386 and x86_64 have separate
apic.c, io_apic.c (just to name a couple) files. Xen shares them between
the two. Will that cause any problems?

I am wondering if it is possible to have a unified genapic for Xen. Or
is it way too complicated?

Shared platform code (apics and the like) has been remarkably simple. This is to be expected: processor differences aside, i386 and x86/64 are identical platforms. So, for example, fixing Xen's smpboot.c (derived from Linux/i386) for x86/64 required one or two lines to be changed. Same for ACPI parsing, MP-table parsing, and so on. I wonder why i386 and x86/64 have been allowed to diverge so wildly in Linux? :-)

  -- Keir

Xen-devel mailing list



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