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

[Xen-devel] Xen/ia64 to-do list

  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
  • From: "Magenheimer, Dan (HP Labs Fort Collins)" <dan.magenheimer@xxxxxx>
  • Date: Mon, 20 Dec 2004 08:56:34 -0800
  • Delivery-date: Mon, 20 Dec 2004 16:57:39 +0000
  • List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
  • Thread-index: AcTmtNynvJ4DsqG5RyaxPPHy2DNkJQ==
  • Thread-topic: Xen/ia64 to-do list

I've had a few requests of the sort "If I had some time to help
out with Xen/ia64, what things need to be done?" so I put together
the following preliminary to-do list over the weekend.  I'm
undoubtedly missing some things... this is just a first draft.

Happy holidays to all!



Xen/ia64 to-do list
Rev 041220

- Write a user-mode privop substitution program for domain0.  (Top
  of my list.)

- Deliver a complete set of bits so others can look at the code and
  try it out on other boxes. (Also at the top of my list.)

- Architect/implement the hypercalls necessary to support multiple
  domains.  (This is next on my list but I could probably use some
  help.)  I expect this will require some cooperation with the core
  Xen team as the current interface is fairly x86-centric.  Some
  interesting challenges off the top of my head:
  - how to do page-flipping on a variable page-size architecture where
    different guests may have different page sizes (and all larger
    than 4k)
  - is there an opportunity for using "fast hypercalls" modeled after
    Linux/ia64 fast syscalls; if so, are multicalls still necessary?
  - what changes are *required* in the interface to higher levels (e.g.
    xend).  Example: multiple page sizes

- Add proper generation of an offsets.h to the build process.  Right now
  I am just using a few hardcoded constants.  Note that the offsets.h
  needs to be "public" as it will be used with a paravirtualized

- Implement "poor man's exception handling" to enable a broader range of
  "user" (xen->domain) access, leveraging Linux and Linux/ia64 code if
  all possible.  Note that some special linker magic is required so
  and build script changes may be needed too.  Better user access will
  necessary to support multicall hypercalls.

- Finish implementing (long-format) VHPT support in Xen itself.
  the biggest reason guest performance is currently so poor is the
  TLB miss ratio since the hardware walker always misses.  I have some
  code for this somewhere... :-}

- Related to the VHPT, I've got some ideas about improving support for
  non-idempotent metaphysical->physical TLB mapping that should be
  implemented to reduce TLB misses on (future) guests.

- Implement SMP support for Xen itself.  Since so much code is leveraged
  from Linux and Xen/x86, which both support SMP, this might be easy to
  turn on, but there are surely lurking races and global variables which
  will be fun to debug.  Later... catch up with Xen/x86 by implementing
  SMP guests.

- Integrate perfmon support into Xen so tuning can be measured.  May
  adding hypercalls to fetch performance data so is dependent on user
  access work (above). [CERN has first dibs on this if they want it.]

- Work on a transparent/optimized paravirtualizion of Linux/ia64.  I did
  this before on vBlades (albeit with 2.4.x... 2.6 may be a bit harder)
  and have a lot of ideas/input.  The hardest part is ivt.S so detailed
  knowledge of the bowels of ia64 is a must.  Note that the offsets.h
  work should be done first.

- Move all the linux dependencies/patches forward to 2.6.10 when it
  comes out.

- Fix/implement discontiguous memory support.  I ran into a problem with
  discontiguous memory so I turned it off (and added a hack to disallow
  physical memory above 4GB).  There's been much work in this area since
  2.6.7 so this probably should wait until after the move forward to

- Improve "early printk" support.  Leverage the new work in 2.6.10 to
  EFI conout.  Currently there is a hardcoded assembly routine for
  output; this may not work on boxes other than the hp rx2600 for which
  was written.  For extra credit, connect the new EFI conout stuff in
  (with a minimal patch) so that Linux early printk causes hypercalls to
  iff it is running on Xen.

- Look into building versions of Linux with front-end (and perhaps
  virtual device drivers using transparent paravirtualization and
  a patch to Linux/ia64 that does this.

- Understand and fix the "timer tick delivered before it's due" problem.
  Also, is there a problem with idle that causes unexpected delay of
  ticks?  Extra credit: Can the "idle domain" be eliminated entirely?

- Implement and test CONFIG_IA32_SUPPORT.  There is one known privop
  the rest may turn on easily or may turn out to be hard... don't know.

- See if kernel modules can be made to work with domain0 (and later with
  guests).  Currently domain0 must be fully linked (no module support)
  means, for example, a stock Red Hat kernel doesn't work.

- Implement an integration of fpswa.efi (floating point software assist)
  into Xen/ia64.  (Any security/performance isolation issues here?)

- Test NaT support and fix the (probably many) bugs that arise.

- Develop a patch for Linux/ia64 so it will run unchanged both on ski
  on real hardware.  (Xen does, but it would be nice if Xenlinux did

- Look into whether Xen can run directly as an EFI application to
eliminate the
  need to use elilo as a bootloader.

- Test Xen/ia64 on other distributions and generate rpm's/deb's etc,
  preferably with some automation.

- Test Xen/ia64 with other open source OS's (e.g. NetBSD?) to find/fix
  before they show up in some future version of Linux.

- Develop a good automated Xen/ia64 regression test suite/package that

- Develop a good automated Xen/ia64 performance test suite that is

- Help with documentation.

- Help/ideas for keeping up Xen/ia64 with core Xen (a moving target).

- Get a Xen/ia64 web page up (at Cambridge or HPL or ???)

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.
Xen-devel mailing list



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