This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Re: [PATCH] xen: register timer interrupt with IRQF_TIMER

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: [Xen-devel] Re: [PATCH] xen: register timer interrupt with IRQF_TIMER
From: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Date: Tue, 24 Nov 2009 10:41:34 +0000
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 24 Nov 2009 02:42:00 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1259057783-23186-1-git-send-email-ian.campbell@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <1259057783-23186-1-git-send-email-ian.campbell@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Tue, 2009-11-24 at 10:16 +0000, Ian Campbell wrote:
> Otherwise the timer is disabled by dpm_suspend_noirq() which in turn prevents
> correct operation of stop_machine on multi-processor systems and breaks
> suspend.

This appears to have been broken since after 2.6.29 sometime (I see
failures with 2.6.30). I suspect this commit, or one related to it, made
IRQF_TIMER a hard requirement:

        commit 0a0c5168df270a50e3518e4f12bddb31f8f5f38f
        Author: Rafael J. Wysocki <rjw@xxxxxxx>
        Date:   Mon Mar 16 22:33:49 2009 +0100
            PM: Introduce functions for suspending and resuming device 
            Introduce helper functions allowing us to prevent device drivers 
            getting any interrupts (without disabling interrupts on the CPU)
            during suspend (or hibernation) and to make them start to receive
            interrupts again during the subsequent resume.  These functions 
make it
            possible to keep timer interrupts enabled while the "late" suspend 
            "early" resume callbacks provided by device drivers are being
            executed.  In turn, this allows device drivers' "late" suspend and
            "early" resume callbacks to sleep, execute ACPI callbacks etc.
            The functions introduced here will be used to rework the handling of
            interrupts during suspend (hibernation) and resume.  Namely,
            interrupts will only be disabled on the CPU right before suspending
            sysdevs, while device drivers will be prevented from receiving
            interrupts, with the help of the new helper function, before their
            "late" suspend callbacks run (and analogously during resume).


Xen-devel mailing list