]> git.baikalelectronics.ru Git - kernel.git/commit
xen: Suspend ticks on all CPUs during suspend
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Tue, 28 Apr 2015 22:46:20 +0000 (18:46 -0400)
committerDavid Vrabel <david.vrabel@citrix.com>
Wed, 29 Apr 2015 16:10:05 +0000 (17:10 +0100)
commit0ada54516e22788ef6d54f8cb9bfb19600b6cdca
tree759a33813d003d3e020ba0ce1f34d12963398e09
parentd26f168bbc5ec6e16a2b3962e90cdf89539c6b52
xen: Suspend ticks on all CPUs during suspend

Commit 12009c40c6c0 ("clockevents: Manage device's state separately for
the core") decouples clockevent device's modes from states. With this
change when a Xen guest tries to resume, it won't be calling its
set_mode op which needs to be done on each VCPU in order to make the
hypervisor aware that we are in oneshot mode.

This happens because clockevents_tick_resume() (which is an intermediate
step of resuming ticks on a processor) doesn't call clockevents_set_state()
anymore and because during suspend clockevent devices on all VCPUs (except
for the one doing the suspend) are left in ONESHOT state. As result, during
resume the clockevents state machine will assume that device is already
where it should be and doesn't need to be updated.

To avoid this problem we should suspend ticks on all VCPUs during
suspend.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
arch/x86/xen/suspend.c
drivers/xen/manage.c
include/xen/xen-ops.h