Skip to content
  1. Jul 16, 2008
  2. Jul 09, 2008
  3. Jul 08, 2008
  4. Jun 26, 2008
  5. Jun 25, 2008
  6. Jun 24, 2008
  7. Jun 20, 2008
  8. Jun 02, 2008
    • Jeremy Fitzhardinge's avatar
      xen: restore vcpu_info mapping · 9c7a7942
      Jeremy Fitzhardinge authored
      
      
      If we're using vcpu_info mapping, then make sure its restored on all
      processors before relasing them from stop_machine.
      
      The only complication is that if this fails, we can't continue because
      we've already made assumptions that the mapping is available (baked in
      calls to the _direct versions of the functions, for example).
      
      Fortunately this can only happen with a 32-bit hypervisor, which may
      possibly run out of mapping space.  On a 64-bit hypervisor, this is a
      non-issue.
      
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      9c7a7942
    • Jeremy Fitzhardinge's avatar
      xen: avoid hypercalls when updating unpinned pud/pmd · e2426cf8
      Jeremy Fitzhardinge authored
      
      
      When operating on an unpinned pagetable (ie, one under construction or
      destruction), it isn't necessary to use a hypercall to update a
      pud/pmd entry.  Jan Beulich observed that a similar optimisation
      avoided many thousands of hypercalls while doing a kernel build.
      
      One tricky part is that early in the kernel boot there's no page
      structure, so we can't check to see if the page is pinned.  In that
      case, we just always use the hypercall.
      
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Jan Beulich <jbeulich@novell.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      e2426cf8
  9. May 31, 2008
  10. May 27, 2008
    • Jeremy Fitzhardinge's avatar
      xen: implement save/restore · 0e91398f
      Jeremy Fitzhardinge authored
      
      
      This patch implements Xen save/restore and migration.
      
      Saving is triggered via xenbus, which is polled in
      drivers/xen/manage.c.  When a suspend request comes in, the kernel
      prepares itself for saving by:
      
      1 - Freeze all processes.  This is primarily to prevent any
          partially-completed pagetable updates from confusing the suspend
          process.  If CONFIG_PREEMPT isn't defined, then this isn't necessary.
      
      2 - Suspend xenbus and other devices
      
      3 - Stop_machine, to make sure all the other vcpus are quiescent.  The
          Xen tools require the domain to run its save off vcpu0.
      
      4 - Within the stop_machine state, it pins any unpinned pgds (under
          construction or destruction), performs canonicalizes various other
          pieces of state (mostly converting mfns to pfns), and finally
      
      5 - Suspend the domain
      
      Restore reverses the steps used to save the domain, ending when all
      the frozen processes are thawed.
      
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      0e91398f
    • Jeremy Fitzhardinge's avatar
      xen: add p2m mfn_list_list · d5edbc1f
      Jeremy Fitzhardinge authored
      
      
      When saving a domain, the Xen tools need to remap all our mfns to
      portable pfns.  In order to remap our p2m table, it needs to know
      where all its pages are, so maintain the references to the p2m table
      for it to use.
      
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      d5edbc1f
    • Jeremy Fitzhardinge's avatar
      xen: make dummy_shared_info non-static · a0d695c8
      Jeremy Fitzhardinge authored
      
      
      Rename dummy_shared_info to xen_dummy_shared_info and make it
      non-static, in anticipation of users outside of enlighten.c
      
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      a0d695c8
    • Jeremy Fitzhardinge's avatar
      xen: make phys_to_machine structure dynamic · d451bb7a
      Jeremy Fitzhardinge authored
      
      
      We now support the use of memory hotplug, so the physical to machine
      page mapping structure must be dynamic.  This is implemented as a
      two-level radix tree structure, which allows us to efficiently
      incrementally allocate memory for the p2m table as new pages are
      added.
      
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      d451bb7a
    • Jeremy Fitzhardinge's avatar
      xen: make earlyprintk=xen work again · 83abc70a
      Jeremy Fitzhardinge authored
      
      
      For some perverse reason, if you call add_preferred_console() it prevents
      setup_early_printk() from successfully enabling the boot console -
      unless you make it a preferred console too...
      
      Also, make xenboot console output distinct from normal console output,
      since it gets repeated when the console handover happens, and the
      duplicated output is confusing without disambiguation.
      
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Markus Armbruster <armbru@redhat.com>
      Cc: Gerd Hoffmann <kraxel@redhat.com>
      83abc70a
    • Markus Armbruster's avatar
      xen: Enable console tty by default in domU if it's not a dummy · 9e124fe1
      Markus Armbruster authored
      
      
      Without console= arguments on the kernel command line, the first
      console to register becomes enabled and the preferred console (the one
      behind /dev/console).  This is normally tty (assuming
      CONFIG_VT_CONSOLE is enabled, which it commonly is).
      
      This is okay as long tty is a useful console.  But unless we have the
      PV framebuffer, and it is enabled for this domain, tty0 in domU is
      merely a dummy.  In that case, we want the preferred console to be the
      Xen console hvc0, and we want it without having to fiddle with the
      kernel command line.  Commit b8c2d3df
      did that for us.
      
      Since we now have the PV framebuffer, we want to enable and prefer tty
      again, but only when PVFB is enabled.  But even then we still want to
      enable the Xen console as well.
      
      Problem: when tty registers, we can't yet know whether the PVFB is
      enabled.  By the time we can know (xenstore is up), the console setup
      game is over.
      
      Solution: enable console tty by default, but keep hvc as the preferred
      console.  Change the preferred console to tty when PVFB probes
      successfully, unless we've been given console kernel parameters.
      
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      9e124fe1
Loading