kernel-testers.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alan Jenkins <alan-jenkins-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org>
To: Zhenyu Wang <zhenyuw-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Cc: Eric Anholt <eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org>,
	dri-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	Kernel Testers List
	<kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	pm list
	<linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
Subject: [regression] "drm/i915: implement new pm ops" disables irq on aborted s2disk
Date: Wed, 03 Feb 2010 11:18:56 +0000	[thread overview]
Message-ID: <4B695BA0.4000007@tuffmail.co.uk> (raw)

Hi

I found this regression on my EeePC 701 with modesetting enabled.  When 
I hibernate using s2disk, I can abort the hibernation by pressing the 
backspace key.  Doing so breaks X on 2.6.32-rc6 (but not 2.6.32).

X resumes where it left off, but the problem is that the screen is 
frozen (except for the cursor).  The system still responds to input.  
E.g. if I hibernate from Konsole and type "find /" on resume, I don't 
see any result on the screen, but I can see the disk activity LED 
flashing madly.  I can also switch to text consoles, which work as normal.

The first bad commit in this scenario is v2.6.32-7504-gcbda12d: 
"drm/i915: implement new pm ops for i915".  I think the problem is that 
it (deliberately) turns "thaw" into a no-op.  That said, this "first 
bad" behaviour was somewhat different.  When I checked out this commit 
and tested it, it looked more like X was crashing and being repeatedly 
restarted.  The screen went black, and every few seconds it flickered, 
showing a text console for a fraction of a second and then going black 
again.

A few commits further on at v2.6.32-7518-ge3d8aff, I get the same 
behaviour as v2.6.33-rc6.  I didn't bother to find out exactly where 
this change happens.

On v2.6.32-7518-ge3d8aff, I was able to observe that aborting s2disk 
leaves the i915 interrupt [IRQ16] disabled:

Before s2disk:

$ cat /proc/interrupts
            CPU0                        
   0:       2030   IO-APIC-edge      timer
   1:        191   IO-APIC-edge      i8042
   8:          1   IO-APIC-edge      rtc0
   9:         51   IO-APIC-fasteoi   acpi
  12:        525   IO-APIC-edge      i8042
  14:          0   IO-APIC-edge      ata_piix
  15:       4954   IO-APIC-edge      ata_piix
  16:        123   IO-APIC-fasteoi   uhci_hcd:usb5, i915
  18:        134   IO-APIC-fasteoi   uhci_hcd:usb4, ath
  19:          0   IO-APIC-fasteoi   uhci_hcd:usb3     
  23:        345   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2
  27:        169   PCI-MSI-edge      HDA Intel
  28:        150   PCI-MSI-edge      eth0
 NMI:          0   Non-maskable interrupts
...

After aborting s2disk:

$ cat /proc/interrupts
            CPU0
   0:       3241   IO-APIC-edge      timer
   1:        325   IO-APIC-edge      i8042
   8:          1   IO-APIC-edge      rtc0
   9:         79   IO-APIC-fasteoi   acpi
  12:        525   IO-APIC-edge      i8042
  14:          0   IO-APIC-edge      ata_piix
  15:       5812   IO-APIC-edge      ata_piix
  16:        160   IO-APIC-fasteoi   uhci_hcd:usb5
  18:        231   IO-APIC-fasteoi   uhci_hcd:usb4, ath
  19:          0   IO-APIC-fasteoi   uhci_hcd:usb3
  23:        726   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2
  27:          0   PCI-MSI-edge      HDA Intel
  28:        102   PCI-MSI-edge      eth0
 NMI:          0   Non-maskable interrupts
...


Without looking at the code, my suggestion is that

a) It looks like "freeze" disables the interrupt, and "thaw" is no 
longer re-enabling it.

b) *If* this is the only problem, it could be fixed by not explicitly 
disabling the interrupt in the "freeze" callback.  In any case this 
would be the right thing to do, since the PCI core now takes 
responsibility for disabling IRQs over suspend (mentioned here: 
http://article.gmane.org/gmane.linux.kernel.pci/4696).

Regards
Alan

             reply	other threads:[~2010-02-03 11:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-03 11:18 Alan Jenkins [this message]
     [not found] ` <4B695BA0.4000007-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org>
2010-02-03 22:44   ` [linux-pm] [regression] "drm/i915: implement new pm ops" disables irq on aborted s2disk Rafael J. Wysocki
     [not found]     ` <201002032344.41915.rjw-KKrjLPT3xs0@public.gmane.org>
2010-02-04  1:31       ` Zhenyu Wang
     [not found]         ` <20100204013157.GA30011-/VnEId6AORcBH7GVJk7YB9h3ngVCH38I@public.gmane.org>
2010-02-07 20:48           ` [PATCH] i915 / PM: Fix crash while aborting hibernation (Re: [linux-pm] [regression] "drm/i915: implement new pm ops" disables irq on aborted s2disk) Rafael J. Wysocki
     [not found]             ` <201002072148.24588.rjw-KKrjLPT3xs0@public.gmane.org>
2010-02-08  9:49               ` Alan Jenkins
     [not found]                 ` <4B6FDE14.8070406-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org>
2010-02-08 11:06                   ` Rafael J. Wysocki
2010-02-11  0:59             ` Eric Anholt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B695BA0.4000007@tuffmail.co.uk \
    --to=alan-jenkins-ccz0lq7mmjm9fhfhhbbuya@public.gmane.org \
    --cc=dri-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org \
    --cc=kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=zhenyuw-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).