Bug 38554 - Hibernate broken when KMS enabled on Radeon Mobility M6 LY
Summary: Hibernate broken when KMS enabled on Radeon Mobility M6 LY
Status: RESOLVED MOVED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Radeon (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-22 02:21 UTC by Kjö HansiGlaz
Modified: 2019-11-19 08:19 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Kjö HansiGlaz 2011-06-22 02:21:45 UTC
On IBM ThinkPad X32 with Radeon Mobility M6 LY, enabling KMS breaks suspend to disk (more precisely, the devices phase).

This problem is known under debian squeeze with kernels 2.6.32-18, 2.6.32-13, 2.6.32-20, 2.6.32-25, 2.6.35-1~experimental.1, 2.6.36~rc6-1~experimental.1, 2.6.39-2, 2.6.39-2-686-pae (basically all tested kernel since KMS appeared)

More information can be found on the debian bug tracker: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=583120

Here are some test:

single user mode with KMS
=========================

1) boot in single user mode (see [1] for result of `ps aux`)
2) remove unused modules (see [2] for reslut of `lsmod`)
3) `echo freezer > /sys/power/pm_test` ; `echo disk > /sys/power/state`
   the freeze successes (stuff happens then bash comes back)
4) `echo devices > /sys/power/pm_test` ; `echo disk > /sys/power/state`
   the screen remains black, power and battery LEDs on, kernel doesn't
   answer to sysrq


single user mode without KMS
============================

1) boot in single user mode with `radeon.modeset=0` on kernel command line
   (see [3] for result of `ps aux`)
2) remove unused modules (see [4] for reslut of `lsmod`)
3) `echo freezer > /sys/power/pm_test` ; `echo disk > /sys/power/state`
   the freeze successes
4) `echo devices > /sys/power/pm_test` ; `echo disk > /sys/power/state`
   seems to succeed (stuff happens then bash comes back)


single user mode with KMS, noapic, nolapic
==========================================

Same test with `noapic nolapic` on kernel command line;
Same result as "single user mode with KMS"


single user mode with KMS, acpi=off
===================================

Same test with `acpi=off` on kernel command line;
The system doesn't boot, so I can't test


Hope it helps, feel free to ask for more tests,


Notes
=====

[1]. Result of ps aux, KMS enabled:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  1.3  0.0   2080   608 ?        Ss   11:20   0:00 init [S]         
root         2  0.0  0.0      0     0 ?        S    11:20   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    11:20   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S    11:20   0:00 [kworker/0:0]
root         5  0.0  0.0      0     0 ?        S    11:20   0:00 [kworker/u:0]
root         6  0.0  0.0      0     0 ?        S    11:20   0:00 [migration/0]
root         7  0.0  0.0      0     0 ?        S    11:20   0:00 [watchdog/0]
root         8  0.0  0.0      0     0 ?        S<   11:20   0:00 [cpuset]
root         9  0.0  0.0      0     0 ?        S<   11:20   0:00 [khelper]
root        10  0.0  0.0      0     0 ?        S<   11:20   0:00 [netns]
root        11  0.0  0.0      0     0 ?        S    11:20   0:00 [sync_supers]
root        12  0.0  0.0      0     0 ?        S    11:20   0:00 [bdi-default]
root        13  0.0  0.0      0     0 ?        S<   11:20   0:00 [kintegrityd]
root        14  0.0  0.0      0     0 ?        S<   11:20   0:00 [kblockd]
root        15  0.5  0.0      0     0 ?        S    11:20   0:00 [kworker/0:1]
root        16  0.0  0.0      0     0 ?        S    11:20   0:00 [khungtaskd]
root        17  0.0  0.0      0     0 ?        S    11:20   0:00 [kswapd0]
root        18  0.0  0.0      0     0 ?        SN   11:20   0:00 [ksmd]
root        19  0.0  0.0      0     0 ?        SN   11:20   0:00 [khugepaged]
root        20  0.0  0.0      0     0 ?        S    11:20   0:00 [fsnotify_mark]
root        21  0.0  0.0      0     0 ?        S<   11:20   0:00 [crypto]
root        24  0.0  0.0      0     0 ?        S    11:20   0:00 [kworker/0:2]
root       165  0.0  0.0      0     0 ?        S    11:20   0:00 [khubd]
root       166  0.0  0.0      0     0 ?        S<   11:20   0:00 [ata_sff]
root       169  0.0  0.0      0     0 ?        S    11:20   0:00 [scsi_eh_0]
root       170  0.0  0.0      0     0 ?        S    11:20   0:00 [scsi_eh_1]
root       172  0.0  0.0      0     0 ?        S    11:20   0:00 [kworker/u:1]
root       173  0.0  0.0      0     0 ?        S    11:20   0:00 [kworker/u:2]
root       256  0.0  0.0      0     0 ?        S<   11:20   0:00 [kdmflush]
root       257  0.0  0.0      0     0 ?        S<   11:20   0:00 [kcryptd_io]
root       258  0.0  0.0      0     0 ?        S<   11:20   0:00 [kcryptd]
root       265  0.0  0.0      0     0 ?        S<   11:20   0:00 [kdmflush]
root       270  0.0  0.0      0     0 ?        S<   11:20   0:00 [kdmflush]
root       275  0.0  0.0      0     0 ?        S<   11:20   0:00 [kdmflush]
root       280  0.0  0.0      0     0 ?        S<   11:20   0:00 [kdmflush]
root       285  0.0  0.0      0     0 ?        S<   11:20   0:00 [kdmflush]
root       290  0.0  0.0      0     0 ?        S<   11:20   0:00 [kdmflush]
root       295  0.0  0.0      0     0 ?        S<   11:20   0:00 [kdmflush]
root       311  0.0  0.0      0     0 ?        S    11:20   0:00 [jbd2/dm-1-8]
root       312  0.0  0.0      0     0 ?        S<   11:20   0:00 [ext4-dio-unwrit]
root       368  0.1  0.1   2588  1096 ?        S<s  11:20   0:00 udevd --daemon
root       514  0.7  0.0      0     0 ?        S    11:20   0:00 [kworker/0:3]
root       628  0.0  0.0      0     0 ?        S<   11:20   0:00 [ttm_swap]
root       929  0.0  0.0      0     0 ?        S    11:20   0:00 [jbd2/dm-3-8]
root       930  0.0  0.0      0     0 ?        S<   11:20   0:00 [ext4-dio-unwrit]
root       931  0.0  0.0      0     0 ?        S    11:20   0:00 [jbd2/dm-4-8]
root       932  0.0  0.0      0     0 ?        S<   11:20   0:00 [ext4-dio-unwrit]
root       933  0.0  0.0      0     0 ?        S    11:20   0:00 [jbd2/dm-7-8]
root       934  0.0  0.0      0     0 ?        S<   11:20   0:00 [ext4-dio-unwrit]
root       935  0.0  0.0      0     0 ?        S    11:20   0:00 [jbd2/dm-5-8]
root       936  0.0  0.0      0     0 ?        S<   11:20   0:00 [ext4-dio-unwrit]
root       937  0.0  0.0      0     0 ?        S    11:20   0:00 [jbd2/dm-6-8]
root       938  0.0  0.0      0     0 ?        S<   11:20   0:00 [ext4-dio-unwrit]
daemon    1226  0.0  0.0   1856   492 ?        Ss   11:20   0:00 /sbin/portmap -i 127.0.0.1
statd     1256  0.0  0.0   1984   768 ?        Ss   11:20   0:00 /sbin/rpc.statd
root      1392  0.0  0.0   2080    88 tty4     Ss   11:20   0:00 init [S]         
root      1393  0.3  0.1   3088  1648 tty4     S    11:20   0:00 bash
root      1394  0.0  0.0      0     0 ?        S    11:20   0:00 [flush-254:1]
root      1395  0.0  0.0      0     0 ?        S    11:20   0:00 [flush-254:3]
root      1396  0.0  0.0      0     0 ?        S    11:20   0:00 [flush-254:4]
root      1397  0.0  0.0      0     0 ?        S    11:20   0:00 [flush-254:5]
root      1398  0.0  0.0      0     0 ?        S    11:20   0:00 [flush-254:6]
root      1399  0.0  0.0      0     0 ?        S    11:20   0:00 [flush-254:7]
root      1413  0.0  0.0   2584   956 ?        S<   11:21   0:00 udevd --daemon
root      1414  0.0  0.0   2584   980 ?        S<   11:21   0:00 udevd --daemon
root      1450  0.0  0.0   2400   924 tty4     R+   11:21   0:00 ps aux


[2]. Result of lsmod, KMS enabled:

Module                  Size  Used by
fuse                   55666  1 
radeon                712176  1 
ttm                    46736  1 radeon
drm_kms_helper         26550  1 radeon
drm                   129190  3 radeon,ttm,drm_kms_helper
i2c_algo_bit           12706  1 radeon
power_supply           13283  1 radeon
i2c_core               19022  4 radeon,drm_kms_helper,drm,i2c_algo_bit
processor              26983  1 
ext4                  270998  6 
mbcache                12810  1 ext4
jbd2                   55701  1 ext4
crc16                  12327  1 ext4
sha256_generic         16709  2 
aes_i586               16608  2 
aes_generic            37066  1 aes_i586
cbc                    12659  1 
dm_crypt               17809  1 
dm_mod                 56401  26 dm_crypt
sd_mod                 35060  2 
crc_t10dif             12332  1 sd_mod
ata_piix               21079  1 
libata                132100  1 ata_piix
usbcore                99225  1 
scsi_mod              134453  2 sd_mod,libata
thermal_sys            17667  1 processor


[3]. result of `ps aux`, KMS disabled

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.5  0.0   2080   608 ?        Ss   11:12   0:01 init [S]         
root         2  0.0  0.0      0     0 ?        S    11:12   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    11:12   0:00 [ksoftirqd/0]
root         4  0.1  0.0      0     0 ?        S    11:12   0:00 [kworker/0:0]
root         5  0.0  0.0      0     0 ?        S    11:12   0:00 [kworker/u:0]
root         6  0.0  0.0      0     0 ?        S    11:12   0:00 [migration/0]
root         7  2.0  0.0      0     0 ?        S    11:12   0:04 [watchdog/0]
root         8  0.0  0.0      0     0 ?        S<   11:12   0:00 [cpuset]
root         9  0.0  0.0      0     0 ?        S<   11:12   0:00 [khelper]
root        10  0.0  0.0      0     0 ?        S<   11:12   0:00 [netns]
root        11  0.0  0.0      0     0 ?        S    11:12   0:00 [sync_supers]
root        12  0.0  0.0      0     0 ?        S    11:12   0:00 [bdi-default]
root        13  0.0  0.0      0     0 ?        S<   11:12   0:00 [kintegrityd]
root        14  0.0  0.0      0     0 ?        S<   11:12   0:00 [kblockd]
root        15  0.5  0.0      0     0 ?        S    11:12   0:01 [kworker/0:1]
root        16  0.0  0.0      0     0 ?        S    11:12   0:00 [khungtaskd]
root        17  0.0  0.0      0     0 ?        S    11:12   0:00 [kswapd0]
root        18  0.0  0.0      0     0 ?        SN   11:12   0:00 [ksmd]
root        19  0.0  0.0      0     0 ?        SN   11:12   0:00 [khugepaged]
root        20  0.0  0.0      0     0 ?        S    11:12   0:00 [fsnotify_mark]
root        21  0.0  0.0      0     0 ?        S<   11:12   0:00 [crypto]
root        24  0.0  0.0      0     0 ?        S    11:12   0:00 [kworker/0:2]
root       159  0.0  0.0      0     0 ?        S    11:12   0:00 [khubd]
root       160  0.0  0.0      0     0 ?        S<   11:13   0:00 [ata_sff]
root       161  0.0  0.0      0     0 ?        S    11:13   0:00 [scsi_eh_0]
root       162  0.0  0.0      0     0 ?        S    11:13   0:00 [scsi_eh_1]
root       163  0.0  0.0      0     0 ?        S    11:13   0:00 [kworker/u:1]
root       164  0.0  0.0      0     0 ?        S    11:13   0:00 [kworker/u:2]
root       250  0.0  0.0      0     0 ?        S<   11:14   0:00 [kdmflush]
root       251  0.0  0.0      0     0 ?        S<   11:14   0:00 [kcryptd_io]
root       252  0.0  0.0      0     0 ?        S<   11:14   0:00 [kcryptd]
root       259  0.0  0.0      0     0 ?        S<   11:14   0:00 [kdmflush]
root       264  0.0  0.0      0     0 ?        S<   11:14   0:00 [kdmflush]
root       269  0.0  0.0      0     0 ?        S<   11:14   0:00 [kdmflush]
root       274  0.0  0.0      0     0 ?        S<   11:14   0:00 [kdmflush]
root       279  0.0  0.0      0     0 ?        S<   11:14   0:00 [kdmflush]
root       284  0.0  0.0      0     0 ?        S<   11:14   0:00 [kdmflush]
root       289  0.0  0.0      0     0 ?        S<   11:14   0:00 [kdmflush]
root       305  0.0  0.0      0     0 ?        S    11:15   0:00 [jbd2/dm-1-8]
root       306  0.0  0.0      0     0 ?        S<   11:15   0:00 [ext4-dio-unwrit]
root       362  0.1  0.1   2588  1096 ?        S<s  11:15   0:00 udevd --daemon
root       530  0.0  0.0      0     0 ?        S    11:15   0:00 [kworker/0:3]
root       555  0.0  0.0      0     0 ?        S    11:15   0:00 [flush-254:1]
root       884  0.0  0.0      0     0 ?        S    11:15   0:00 [jbd2/dm-3-8]
root       885  0.0  0.0      0     0 ?        S<   11:15   0:00 [ext4-dio-unwrit]
root       886  0.0  0.0      0     0 ?        S    11:15   0:00 [jbd2/dm-4-8]
root       887  0.0  0.0      0     0 ?        S<   11:15   0:00 [ext4-dio-unwrit]
root       888  0.0  0.0      0     0 ?        S    11:15   0:00 [jbd2/dm-7-8]
root       889  0.0  0.0      0     0 ?        S<   11:15   0:00 [ext4-dio-unwrit]
root       890  0.0  0.0      0     0 ?        S    11:15   0:00 [jbd2/dm-5-8]
root       891  0.0  0.0      0     0 ?        S<   11:15   0:00 [ext4-dio-unwrit]
root       892  0.0  0.0      0     0 ?        S    11:15   0:00 [jbd2/dm-6-8]
root       893  0.0  0.0      0     0 ?        S<   11:15   0:00 [ext4-dio-unwrit]
daemon    1170  0.0  0.0   1856   492 ?        Ss   11:15   0:00 /sbin/portmap -i 127.0.0.1
statd     1182  0.0  0.0   1984   768 ?        Ss   11:15   0:00 /sbin/rpc.statd
root      1347  0.0  0.0   2080    88 tty6     Ss   11:15   0:00 init [S]         
root      1348  0.5  0.1   3096  1720 tty6     S    11:15   0:00 bash
root      1349  0.0  0.0      0     0 ?        S    11:15   0:00 [flush-254:3]
root      1350  0.0  0.0      0     0 ?        S    11:15   0:00 [flush-254:4]
root      1351  0.0  0.0      0     0 ?        S    11:15   0:00 [flush-254:5]
root      1352  0.0  0.0      0     0 ?        S    11:15   0:00 [flush-254:6]
root      1353  0.0  0.0      0     0 ?        S    11:15   0:00 [flush-254:7]
root      1367  0.0  0.0   2584   956 ?        S<   11:16   0:00 udevd --daemon
root      1369  0.0  0.0   2584   956 ?        S<   11:16   0:00 udevd --daemon
root      1407  0.0  0.0   2400   932 tty6     R+   11:16   0:00 ps aux


[4]. result of lsmod, KMS disabled:

Module                  Size  Used by
fuse                   55666  1 
processor              26983  1 
ext4                  270998  6 
mbcache                12810  1 ext4
jbd2                   55701  1 ext4
crc16                  12327  1 ext4
sha256_generic         16709  2 
aes_i586               16608  2 
aes_generic            37066  1 aes_i586
cbc                    12659  1 
dm_crypt               17809  1 
dm_mod                 56401  26 dm_crypt
sd_mod                 35060  2 
crc_t10dif             12332  1 sd_mod
ata_piix               21079  1 
libata                132100  1 ata_piix
scsi_mod              134453  2 sd_mod,libata
usbcore                99225  1 
thermal_sys            17667  1 processor
Comment 1 Orion Poplawski 2011-11-02 13:14:53 UTC
I seem to be hitting exactly the same problem in Fedora 16 with 3.1.0-5.fc16.i686.
Comment 2 manuel.jander 2012-09-20 18:22:11 UTC
Hi,

I own A IBM Thinkpad X31, AFAIK the video controller is the same (ATI RV100 LY [Mobility Radeon 7000]). Since KMS, I have to disable it in order to be able to use hibernation (you really want that on a laptop).

- radeon.modeset=0

Everything works, except the text console is garbled. Each character is filled with vertical lines, and seems to occupy a rectanlge a little bit bigger than usual.

- radeon.modeset=0 load radeonfb while Xorg is running and active

The text console is OK, because it switches to FrameBuffer, hiding the corrupt text console. Hibernate works also.

- radeon.modeset=1 thus radeonfb is loaded before Xorg starts

When I try to hibernate either using pm-hibernate or s2disk with any quirk option I get a black screen and nothing else happens.

I have some driver writing experience, so if somebody can a least give me some pointers to look at, that would be great.
Comment 3 manuel.jander 2012-09-20 18:24:23 UTC
Hi,

I own A IBM Thinkpad X31, AFAIK the video controller is the same (ATI RV100 LY [Mobility Radeon 7000]). Since KMS, I have to disable it in order to be able to use hibernation (you really want that on a laptop).

- radeon.modeset=0

Everything works, except the text console is garbled. Each character is filled with vertical lines, and seems to occupy a rectanlge a little bit bigger than usual.

- radeon.modeset=0 load radeonfb while Xorg is running and active

The text console is OK, because it switches to FrameBuffer, hiding the corrupt text console. Hibernate works also.

- radeon.modeset=1 thus radeonfb is loaded before Xorg starts

When I try to hibernate either using pm-hibernate or s2disk with any quirk option I get a black screen and nothing else happens.

I have some driver writing experience, so if somebody can a least give me some pointers to look at, that would be great.

Linux 3.5.3
Xorg 7.7
Comment 4 Martin Peres 2019-11-19 08:19:34 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/amd/issues/197.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.