25 Aug, 2008

1 commit


18 Jul, 2008

1 commit

  • Today's linux-next build (x86_64 allmodconfig) failed like this:

    drivers/xen/manage.c: In function 'xen_suspend':
    drivers/xen/manage.c:66: error: too few arguments to function 'device_power_up'
    drivers/xen/manage.c: In function 'do_suspend':
    drivers/xen/manage.c:117: error: too few arguments to function 'device_resume'

    Caused by commit 1eede070a59e1cc73da51e1aaa00d9ab86572cfc ("Introduce new
    top level suspend and hibernation callbacks") interacting with new
    usages ...

    Signed-off-by: Stephen Rothwell
    Cc: Jeremy Fitzhardinge
    Acked-by: Rafael J. Wysocki
    Cc: Jesse Barnes
    Signed-off-by: Ingo Molnar

    Stephen Rothwell
     

16 Jul, 2008

1 commit

  • 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: Isaku Yamahata
    Cc: Stephen Tweedie
    Cc: Eduardo Habkost
    Cc: Mark McLoughlin
    Signed-off-by: Ingo Molnar

    Isaku Yamahata
     

02 Jun, 2008

1 commit


27 May, 2008

3 commits

  • 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: Jeremy Fitzhardinge
    Signed-off-by: Thomas Gleixner

    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: Jeremy Fitzhardinge
    Signed-off-by: Thomas Gleixner

    Jeremy Fitzhardinge
     
  • move arch/x86/xen/manage.c under drivers/xen/to share codes
    with x86 and ia64.
    ia64/xen also uses manage.c

    Signed-off-by: Isaku Yamahata
    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Thomas Gleixner

    Isaku Yamahata