From: Zdenek Kabelac <zdenek.kabelac@gmail.com>
To: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Christoph Hellwig <hch@lst.de>, "Rafael J. Wysocki" <rjw@sisk.pl>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-mmc@vger.kernel.org, viro@zeniv.linux.org.uk
Subject: Re: Regression in suspend to ram in 2.6.31-rc kernels
Date: Fri, 4 Sep 2009 11:13:02 +0200 [thread overview]
Message-ID: <c4e36d110909040213t4d4258b4w3e2d4725e0b2a161@mail.gmail.com> (raw)
In-Reply-To: <87ljkvmt71.fsf@devron.myhome.or.jp>
2009/9/4 OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>:
> Christoph Hellwig <hch@lst.de> writes:
>
>> On Fri, Sep 04, 2009 at 12:29:04AM +0200, Zdenek Kabelac wrote:
>>> Ok - another bisect game played - and unexpected winner is:
>>>
>>> (fat: add ->sync_fs)
>>>
>>> f83d6d46e7adf241a064a4a425e5cd8a8fd8925f
>>>
>>> Reverting this commit with current -rc8 kernel makes the system happy
>>> during the suspend/resume cycle. Obviously it has it price :) so just
>>> plain revert is probably not a good solution so the problem looks
>>> 'more serious' (fat is not the only fs with this patch) thus adding
>>> original author to this thread.
>
> From it, I suspect the possible reason seems to read mmc after remove
> event. I.e. the following sequence or something
>
> sync fs process
> [...]
> removed mmc event
> [...]
> fat_sync_fs() <- sync again?
> fat_clusters_flush()
> sb_bread() <- read block on removed mmc
>
> Can you add dump_stack() to the top of fat_sync_fs()? I hope it tells
> why fat_sync_fs() is called (it is called from device unplug event?).
>
> Well, that commit seems a bit strange. It calls fat_clusters_flush()
> unconditionally without checking sb->s_dirt. However, if my guess is
> right, "sync after removed event" itself sounds like the issue in
> suspend process.
>
> Thanks.
>
>> Note that when you rever this patch on a current kernel you do actually
>> get different behvaviour than when going back to before this commit.
>>
>> In 2.6.30 we called ->write_super in the various sync functions and
>> then ->sync_fs, in 2.6.31-rc8 you would not call any syncing at all
>> anymore. I think this patch might just be a symptom for a situation
>> where the suspend code causes a sync and the mmc driver can't handle
>> it anymore.
So - here is the console trace from suspend when I've added
dump_stack() to the fat_sync_fs() (and also added debug prints
around each call in this function -so its obvious the function is
actually left - but then it freezes later somewhere.)
It's interesting that 3 calls to sync happens.
Zdenek
usb 3-1: USB disconnect, address 2
btusb_intr_complete: hci0 urb ffff880137fdd630 failed to resubmit (19)
btusb_bulk_complete: hci0 urb ffff880137fdd738 failed to resubmit (19)
btusb_bulk_complete: hci0 urb ffff880137fdd840 failed to resubmit (19)
PM: Removing info for No Bus:ep_81
PM: Removing info for No Bus:ep_82
PM: Removing info for No Bus:ep_02
PM: Removing info for usb:3-1:1.0
btusb_send_frame: hci0 urb ffff88013356b528 submission failed
PM: Removing info for No Bus:rfkill0
PM: Removing info for No Bus:hci0
PM: Removing info for No Bus:ep_83
PM: Removing info for No Bus:ep_03
PM: Removing info for usb:3-1:1.1
PM: Removing info for No Bus:ep_84
PM: Removing info for No Bus:ep_04
PM: Removing info for usb:3-1:1.2
PM: Removing info for usb:3-1:1.3
PM: Removing info for No Bus:ep_00
PM: Removing info for usb:3-1
PM: Removing info for No Bus:usbdev3.2
PM: Adding info for No Bus:vcs63
PM: Adding info for No Bus:vcsa63
FAT: dump before lock
Pid: 2271, comm: sync Not tainted 2.6.31-rc8-00043-g54a3792 #32
Call Trace:
[<ffffffffa0537d94>] fat_sync_fs+0x24/0x80 [fat]
[<ffffffff81132206>] __sync_filesystem+0x36/0x50
[<ffffffff81132318>] sync_filesystems+0xf8/0x130
[<ffffffff811323a7>] sys_sync+0x17/0x40
[<ffffffff8100c15b>] system_call_fastpath+0x16/0x1b
FAT: fat_cluster_flush
FAT: before unlock
FAT: leaving fat_sync_fs
FAT: dump before lock
Pid: 2271, comm: sync Not tainted 2.6.31-rc8-00043-g54a3792 #32
Call Trace:
[<ffffffffa0537d94>] fat_sync_fs+0x24/0x80 [fat]
[<ffffffff81132206>] __sync_filesystem+0x36/0x50
[<ffffffff81132318>] sync_filesystems+0xf8/0x130
[<ffffffff811323b1>] sys_sync+0x21/0x40
[<ffffffff8100c15b>] system_call_fastpath+0x16/0x1b
FAT: fat_cluster_flush
FAT: before unlock
FAT: leaving fat_sync_fs
PM: Removing info for No Bus:iwl-phy0::assoc
PM: Syncing filesystems ...
FAT: dump before lock
Pid: 2143, comm: pm-suspend Not tainted 2.6.31-rc8-00043-g54a3792 #32
Call Trace:
[<ffffffffa0537d94>] fat_sync_fs+0x24/0x80 [fat]
[<ffffffff81132206>] __sync_filesystem+0x36/0x50
[<ffffffff81132318>] sync_filesystems+0xf8/0x130
[<ffffffff811323a7>] sys_sync+0x17/0x40
[<ffffffff8108d22b>] enter_state+0x6b/0x150
[<ffffffff8108c7f9>] state_store+0x99/0x100
[<ffffffff81226807>] kobj_attr_store+0x17/0x20
[<ffffffff8116e8f9>] sysfs_write_file+0xd9/0x160
[<ffffffff8110cc78>] vfs_write+0xb8/0x1a0
[<ffffffff8109eb8b>] ? audit_syscall_entry+0x28b/0x2b0
[<ffffffff8110d781>] sys_write+0x51/0x90
[<ffffffff8100c15b>] system_call_fastpath+0x16/0x1b
FAT: fat_cluster_flush
FAT: before unlock
FAT: leaving fat_sync_fs
PM: Removing info for No Bus:iwl-phy0::RX
PM: Removing info for No Bus:iwl-phy0::TX
PM: Removing info for No Bus:iwl-phy0::radio
FAT: dump before lock
Pid: 2143, comm: pm-suspend Not tainted 2.6.31-rc8-00043-g54a3792 #32
Call Trace:
[<ffffffffa0537d94>] fat_sync_fs+0x24/0x80 [fat]
[<ffffffff81132206>] __sync_filesystem+0x36/0x50
[<ffffffff81132318>] sync_filesystems+0xf8/0x130
[<ffffffff811323b1>] sys_sync+0x21/0x40
[<ffffffff8108d22b>] enter_state+0x6b/0x150
[<ffffffff8108c7f9>] state_store+0x99/0x100
[<ffffffff81226807>] kobj_attr_store+0x17/0x20
[<ffffffff8116e8f9>] sysfs_write_file+0xd9/0x160
[<ffffffff8110cc78>] vfs_write+0xb8/0x1a0
[<ffffffff8109eb8b>] ? audit_syscall_entry+0x28b/0x2b0
[<ffffffff8110d781>] sys_write+0x51/0x90
[<ffffffff8100c15b>] system_call_fastpath+0x16/0x1b
FAT: fat_cluster_flush
FAT: before unlock
FAT: leaving fat_sync_fs
done.
PM: Preparing system for mem sleep
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
PM: Entering mem sleep
platform dock.0: preparing suspend
platform dock.1: preparing suspend
platform dock.2: preparing suspend
agpgart-intel 0000:00:00.0: preparing suspend
pci 0000:00:02.0: preparing suspend
pci 0000:00:02.1: preparing suspend
e1000e 0000:00:19.0: preparing suspend, may wakeup
uhci_hcd 0000:00:1a.0: preparing suspend
uhci_hcd 0000:00:1a.1: preparing suspend
ehci_hcd 0000:00:1a.7: preparing suspend
HDA Intel 0000:00:1b.0: preparing suspend
pcieport-driver 0000:00:1c.0: preparing suspend
pcieport-driver 0000:00:1c.1: preparing suspend
pcieport-driver 0000:00:1c.2: preparing suspend
pcieport-driver 0000:00:1c.3: preparing suspend
pcieport-driver 0000:00:1c.4: preparing suspend
uhci_hcd 0000:00:1d.0: preparing suspend
uhci_hcd 0000:00:1d.1: preparing suspend
uhci_hcd 0000:00:1d.2: preparing suspend
ehci_hcd 0000:00:1d.7: preparing suspend
pci 0000:00:1e.0: preparing suspend
pci 0000:00:1f.0: preparing suspend
ata_piix 0000:00:1f.1: preparing suspend
ahci 0000:00:1f.2: preparing suspend
i801_smbus 0000:00:1f.3: preparing suspend
iwl3945 0000:03:00.0: preparing suspend
pci 0000:15:00.0: preparing suspend
sdhci-pci 0000:15:00.2: preparing suspend
pci 0000:15:00.3: preparing suspend
pci 0000:15:00.4: preparing suspend
pci 0000:15:00.5: preparing suspend
platform vesafb.0: preparing suspend
serial8250 serial8250: preparing suspend
i8042 i8042: preparing suspend
platform hdaps: preparing suspend
usb usb1: preparing type suspend, may wakeup
usb usb2: preparing type suspend, may wakeup
usb usb3: preparing type suspend, may wakeup
usb usb4: preparing type suspend, may wakeup
usb usb5: preparing type suspend, may wakeup
usb usb6: preparing type suspend, may wakeup
usb usb7: preparing type suspend, may wakeup
usb 1-4: preparing type suspend, may wakeup
usb 3-2: preparing type suspend, may wakeup
usb 1-4.4: preparing type suspend, may wakeup
iTCO_wdt iTCO_wdt: preparing suspend
platform regulatory.0: preparing suspend
thinkpad_acpi thinkpad_acpi: preparing suspend
thinkpad_hwmon thinkpad_hwmon: preparing suspend
backlight acpi_video0: legacy class suspend
drm card0: legacy class suspend
pci 0000:00:02.0: power state changed by ACPI to D3
mmcblk mmc0:b368: legacy suspend
leds mmc0::: legacy class suspend
rfkill rfkill2: legacy class suspend
ieee80211 phy0: legacy class suspend
leds tpacpi::thinkvantage: legacy class suspend
leds tpacpi::standby: legacy class suspend
leds tpacpi::power: legacy class suspend
leds tpacpi::thinklight: legacy class suspend
rfkill rfkill1: legacy class suspend
thinkpad_hwmon thinkpad_hwmon: suspend
thinkpad_acpi thinkpad_acpi: suspend
psmouse serio2: legacy suspend
platform regulatory.0: suspend
iTCO_wdt iTCO_wdt: suspend
usb 1-4.4: type suspend, may wakeup
usb 3-2: type suspend, may wakeup
usb 1-4: type suspend, may wakeup
usb usb7: type suspend, may wakeup
usb usb6: type suspend, may wakeup
usb usb5: type suspend, may wakeup
usb usb4: type suspend, may wakeup
usb usb3: type suspend, may wakeup
usb usb2: type suspend, may wakeup
usb usb1: type suspend, may wakeup
sr 3:0:0:0: legacy suspend
scsi target3:0:0: legacy suspend
sd 0:0:0:0: legacy suspend
sd 0:0:0:0: [sda] Synchronizing SCSI cache
sd 0:0:0:0: [sda] Stopping disk
scsi target0:0:0: legacy suspend
platform hdaps: suspend
psmouse serio1: legacy suspend
atkbd serio0: legacy suspend
i8042 i8042: suspend
scsi host4: legacy suspend
scsi host3: legacy suspend
scsi host2: legacy suspend
scsi host1: legacy suspend
scsi host0: legacy suspend
serial8250 serial8250: suspend
platform vesafb.0: suspend
pnp 00:0a: legacy suspend
i8042 aux 00:09: legacy suspend
i8042 kbd 00:08: legacy suspend
rtc_cmos 00:07: legacy suspend, may wakeup
pnp 00:06: legacy suspend
pnp 00:05: legacy suspend
pnp 00:04: legacy suspend
pnp 00:03: legacy suspend
system 00:02: legacy suspend
pnp 00:01: legacy suspend
system 00:00: legacy suspend
pci 0000:15:00.5: suspend
pci 0000:15:00.4: suspend
pci 0000:15:00.3: suspend
sdhci-pci 0000:15:00.2: suspend
mmc0: card b368 removed
PM: Removing info for mmc:mmc0:b368
FAT: dump before lock
Pid: 2143, comm: pm-suspend Not tainted 2.6.31-rc8-00043-g54a3792 #32
Call Trace:
[<ffffffffa0537d94>] fat_sync_fs+0x24/0x80 [fat]
[<ffffffff81132206>] __sync_filesystem+0x36/0x50
[<ffffffff8113240a>] sync_filesystem+0x3a/0x70
[<ffffffff8113b8ce>] fsync_bdev+0x2e/0x70
[<ffffffff8121b3ce>] invalidate_partition+0x2e/0x50
[<ffffffff81169d2f>] del_gendisk+0x3f/0x140
[<ffffffffa02791ee>] mmc_blk_remove+0x2e/0x60 [mmc_block]
[<ffffffffa022b2f7>] mmc_bus_remove+0x17/0x20 [mmc_core]
[<ffffffff812d2036>] __device_release_driver+0x66/0xc0
[<ffffffff812d219d>] device_release_driver+0x2d/0x40
[<ffffffff812d112c>] bus_remove_device+0xac/0xe0
[<ffffffff812cf2af>] device_del+0x12f/0x1a0
[<ffffffffa022b3db>] mmc_remove_card+0x5b/0x90 [mmc_core]
[<ffffffffa022d097>] mmc_sd_remove+0x27/0x50 [mmc_core]
[<ffffffffa022ae9d>] mmc_suspend_host+0xed/0x120 [mmc_core]
[<ffffffffa023bda8>] sdhci_suspend_host+0x38/0x60 [sdhci]
[<ffffffffa025d270>] sdhci_pci_suspend+0x50/0x130 [sdhci_pci]
[<ffffffff81242c3d>] pci_legacy_suspend+0x4d/0xf0
[<ffffffff8124369d>] pci_pm_suspend+0xdd/0x130
[<ffffffff812d660b>] pm_op+0x15b/0x1b0
[<ffffffff812d7763>] dpm_suspend_start+0x423/0x580
[<ffffffff8108d04f>] suspend_devices_and_enter+0x5f/0x1d0
[<ffffffff8108d2e8>] enter_state+0x128/0x150
[<ffffffff8108c7f9>] state_store+0x99/0x100
[<ffffffff81226807>] kobj_attr_store+0x17/0x20
[<ffffffff8116e8f9>] sysfs_write_file+0xd9/0x160
[<ffffffff8110cc78>] vfs_write+0xb8/0x1a0
[<ffffffff8109eb8b>] ? audit_syscall_entry+0x28b/0x2b0
[<ffffffff8110d781>] sys_write+0x51/0x90
[<ffffffff8100c15b>] system_call_fastpath+0x16/0x1b
FAT: fat_cluster_flush
FAT: before unlock
FAT: leaving fat_sync_fs
FAT: dump before lock
Pid: 2143, comm: pm-suspend Not tainted 2.6.31-rc8-00043-g54a3792 #32
Call Trace:
[<ffffffffa0537d94>] fat_sync_fs+0x24/0x80 [fat]
[<ffffffff81132206>] __sync_filesystem+0x36/0x50
[<ffffffff8113241b>] sync_filesystem+0x4b/0x70
[<ffffffff8113b8ce>] fsync_bdev+0x2e/0x70
[<ffffffff8121b3ce>] invalidate_partition+0x2e/0x50
[<ffffffff81169d2f>] del_gendisk+0x3f/0x140
[<ffffffffa02791ee>] mmc_blk_remove+0x2e/0x60 [mmc_block]
[<ffffffffa022b2f7>] mmc_bus_remove+0x17/0x20 [mmc_core]
[<ffffffff812d2036>] __device_release_driver+0x66/0xc0
[<ffffffff812d219d>] device_release_driver+0x2d/0x40
[<ffffffff812d112c>] bus_remove_device+0xac/0xe0
[<ffffffff812cf2af>] device_del+0x12f/0x1a0
[<ffffffffa022b3db>] mmc_remove_card+0x5b/0x90 [mmc_core]
[<ffffffffa022d097>] mmc_sd_remove+0x27/0x50 [mmc_core]
[<ffffffffa022ae9d>] mmc_suspend_host+0xed/0x120 [mmc_core]
[<ffffffffa023bda8>] sdhci_suspend_host+0x38/0x60 [sdhci]
[<ffffffffa025d270>] sdhci_pci_suspend+0x50/0x130 [sdhci_pci]
[<ffffffff81242c3d>] pci_legacy_suspend+0x4d/0xf0
[<ffffffff8124369d>] pci_pm_suspend+0xdd/0x130
[<ffffffff812d660b>] pm_op+0x15b/0x1b0
[<ffffffff812d7763>] dpm_suspend_start+0x423/0x580
[<ffffffff8108d04f>] suspend_devices_and_enter+0x5f/0x1d0
[<ffffffff8108d2e8>] enter_state+0x128/0x150
[<ffffffff8108c7f9>] state_store+0x99/0x100
[<ffffffff81226807>] kobj_attr_store+0x17/0x20
[<ffffffff8116e8f9>] sysfs_write_file+0xd9/0x160
[<ffffffff8110cc78>] vfs_write+0xb8/0x1a0
[<ffffffff8109eb8b>] ? audit_syscall_entry+0x28b/0x2b0
[<ffffffff8110d781>] sys_write+0x51/0x90
[<ffffffff8100c15b>] system_call_fastpath+0x16/0x1b
FAT: fat_cluster_flush
FAT: before unlock
FAT: leaving fat_sync_fs
next prev parent reply other threads:[~2009-09-04 9:13 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-31 11:51 Zdenek Kabelac
2009-08-31 19:19 ` Rafael J. Wysocki
2009-09-01 9:34 ` Zdenek Kabelac
2009-09-03 22:29 ` Zdenek Kabelac
2009-09-03 23:23 ` Christoph Hellwig
2009-09-04 0:47 ` OGAWA Hirofumi
2009-09-04 9:13 ` Zdenek Kabelac [this message]
2009-09-05 17:22 ` OGAWA Hirofumi
2009-09-05 19:53 ` Zdenek Kabelac
2009-09-05 22:42 ` OGAWA Hirofumi
2009-09-08 8:10 ` Zdenek Kabelac
2009-09-09 13:15 ` OGAWA Hirofumi
2009-09-07 12:51 ` Pavel Machek
2009-09-09 13:21 ` OGAWA Hirofumi
2009-09-10 19:23 ` Pavel Machek
2009-09-11 6:39 ` OGAWA Hirofumi
2009-09-11 20:09 ` Pavel Machek
2009-09-11 21:14 ` Zdenek Kabelac
2009-09-11 21:32 ` Pavel Machek
2009-09-11 21:45 ` Zdenek Kabelac
2009-09-11 21:51 ` Pavel Machek
2009-09-11 22:22 ` Rafael J. Wysocki
2009-09-14 20:05 ` Pierre Ossman
2009-09-14 20:25 ` Pavel Machek
2009-09-11 22:29 ` Chris Ball
2009-09-11 22:36 ` Rafael J. Wysocki
2009-09-14 8:39 ` Zdenek Kabelac
2009-09-14 19:17 ` Rafael J. Wysocki
2009-09-14 20:27 ` Pavel Machek
2009-09-18 11:15 ` OGAWA Hirofumi
2009-09-18 21:39 ` Rafael J. Wysocki
2009-09-11 22:22 ` Chris Ball
2009-09-11 22:04 ` Rafael J. Wysocki
2009-09-11 22:21 ` Pavel Machek
2009-09-11 22:32 ` Rafael J. Wysocki
2009-09-08 19:06 ` Christoph Hellwig
2009-09-08 19:48 ` Rafael J. Wysocki
2009-09-09 13:52 ` OGAWA Hirofumi
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=c4e36d110909040213t4d4258b4w3e2d4725e0b2a161@mail.gmail.com \
--to=zdenek.kabelac@gmail.com \
--cc=hch@lst.de \
--cc=hirofumi@mail.parknet.co.jp \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=rjw@sisk.pl \
--cc=viro@zeniv.linux.org.uk \
/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
all inboxes | Powered by JetHome®