1. 19 7月, 2014 1 次提交
    • D
      xen: Put EFI machinery in place · be81c8a1
      Daniel Kiper 提交于
      This patch enables EFI usage under Xen dom0. Standard EFI Linux
      Kernel infrastructure cannot be used because it requires direct
      access to EFI data and code. However, in dom0 case it is not possible
      because above mentioned EFI stuff is fully owned and controlled
      by Xen hypervisor. In this case all calls from dom0 to EFI must
      be requested via special hypercall which in turn executes relevant
      EFI code in behalf of dom0.
      
      When dom0 kernel boots it checks for EFI availability on a machine.
      If it is detected then artificial EFI system table is filled.
      Native EFI callas are replaced by functions which mimics them
      by calling relevant hypercall. Later pointer to EFI system table
      is passed to standard EFI machinery and it continues EFI subsystem
      initialization taking into account that there is no direct access
      to EFI boot services, runtime, tables, structures, etc. After that
      system runs as usual.
      
      This patch is based on Jan Beulich and Tang Liang work.
      Signed-off-by: NJan Beulich <jbeulich@suse.com>
      Signed-off-by: NTang Liang <liang.tang@oracle.com>
      Signed-off-by: NDaniel Kiper <daniel.kiper@oracle.com>
      Reviewed-by: NDavid Vrabel <david.vrabel@citrix.com>
      Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      be81c8a1
  2. 13 5月, 2014 1 次提交
  3. 18 3月, 2014 1 次提交
    • S
      xen/acpi-processor: fix enabling interrupts on syscore_resume · cd979883
      Stanislaw Gruszka 提交于
      syscore->resume() callback is expected to do not enable interrupts,
      it generates warning like below otherwise:
      
      [ 9386.365390] WARNING: CPU: 0 PID: 6733 at drivers/base/syscore.c:104 syscore_resume+0x9a/0xe0()
      [ 9386.365403] Interrupts enabled after xen_acpi_processor_resume+0x0/0x34 [xen_acpi_processor]
      ...
      [ 9386.365429] Call Trace:
      [ 9386.365434]  [<ffffffff81667a8b>] dump_stack+0x45/0x56
      [ 9386.365437]  [<ffffffff8106921d>] warn_slowpath_common+0x7d/0xa0
      [ 9386.365439]  [<ffffffff8106928c>] warn_slowpath_fmt+0x4c/0x50
      [ 9386.365442]  [<ffffffffa0261bb0>] ? xen_upload_processor_pm_data+0x300/0x300 [xen_acpi_processor]
      [ 9386.365443]  [<ffffffff814055fa>] syscore_resume+0x9a/0xe0
      [ 9386.365445]  [<ffffffff810aef42>] suspend_devices_and_enter+0x402/0x470
      [ 9386.365447]  [<ffffffff810af128>] pm_suspend+0x178/0x260
      
      On xen_acpi_processor_resume() we call various procedures, which are
      non atomic and can enable interrupts. To prevent the issue introduce
      separate resume notify called after we enable interrupts on resume
      and before we call other drivers resume callbacks.
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      cd979883
  4. 10 10月, 2013 2 次提交
  5. 29 11月, 2012 3 次提交
  6. 29 3月, 2012 1 次提交
  7. 26 2月, 2011 1 次提交
  8. 21 10月, 2010 1 次提交
  9. 23 7月, 2010 1 次提交
  10. 08 6月, 2010 1 次提交
  11. 16 7月, 2008 1 次提交
    • I
      xen: add xen_arch_resume()/xen_timer_resume hook for ia64 support · ad55db9f
      Isaku Yamahata 提交于
      add xen_timer_resume() hook.
      
      Timer resume should be done after event channel is resumed.
      add xen_arch_resume() hook when ipi becomes usable after resume.
      After resume, some cpu specific resource must be reinitialized
      on ia64 that can't be set by another cpu.
      
      However available hooks is run once on only one cpu so that ipi has
      to be used.
      
      During stop_machine_run() ipi can't be used because interrupt is masked.
      So add another hook after stop_machine_run().
      Another approach might be use resume hook which is run by
      device_resume(). However device_resume() may be executed on
      suspend error recovery path.
      
      So it is necessary to determine whether it is executed on real resume path
      or error recovery path.
      Signed-off-by: NIsaku Yamahata <yamahata@valinux.co.jp>
      Cc: Stephen Tweedie <sct@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Mark McLoughlin <markmc@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ad55db9f
  12. 27 5月, 2008 2 次提交
    • J
      xen: maintain clock offset over save/restore · 359cdd3f
      Jeremy Fitzhardinge 提交于
      Hook into the device model to make sure that timekeeping's resume handler
      is called.  This deals with our clocksource's non-monotonicity over the
      save/restore.  Explicitly call clock_has_changed() to make sure that
      all the timers get retriggered properly.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      359cdd3f
    • J
      xen: implement save/restore · 0e91398f
      Jeremy Fitzhardinge 提交于
      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: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      0e91398f
  13. 25 4月, 2008 1 次提交