Bug 33617 - Долгий фриз на выходе из suspend с ядрами 4.x.y
: Долгий фриз на выходе из suspend с ядрами 4.x.y
Status: NEW
: Sisyphus
(All bugs in Sisyphus/kernel-image-std-def)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2017-07-05 01:31 by
Modified: 2017-07-05 18:52 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2017-07-05 01:31:57
Платформа Centrino

$ lspci -k|grep -A2 VGA
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML
Express Graphics Controller (rev 03)
    Subsystem: Hewlett-Packard Company NX6110/NC6120
    Kernel driver in use: i915



Система

$ apt-repo 
rpm http://mirror.datacenter.by/pub/ALTLinux Sisyphus/i586 classic
rpm http://mirror.datacenter.by/pub/ALTLinux Sisyphus/noarch classic


$ xfce4-about -V
xfce4-about 4.12.1 (Xfce 4.12)


$ rpm -qf /sbin/init 
sysvinit-2.88-alt5.i586



Ядро 3.14.79-std-def

$ uname -r
3.14.79-std-def-alt0.M70P.2


# Выключение - моментальное включение
$ time -f %e xfce4-session-logout -s
9.35


$ strace xfce4-session-logout -s > too-shot-time-31479-from-suspend-strace.txt 


$ tail -n 1 too-shot-time-31479-from-suspend-strace.txt 
+++ exited with 0 +++

Результат:
На выходе из suspend систему не фризит. Время просыпания системы с готовностью
к работе - 1-2 секунды.



Ядро 4.9.31-std-def

$ uname -r
4.9.31-std-def-alt1


$ time -f %e xfce4-session-logout -s
Command exited with non-zero status 1
27.14


$ echo '27.14-9.35'|bc -l
17.79  # 17.79 секунд фриза на выходе из suspend !!!


$ strace xfce4-session-logout -s > too-long-time-from-suspend-strace.txt 


$ tail -n 1 too-long-time-from-suspend-strace.txt 
+++ exited with 1 +++


Получена ошибка при 
попытке завершения сеанса

Did not receive a reply. Possible causes include: the 
remote application did not send a reply, the message 
bus security policy blocked the reply, the reply 
timeout expired, or the network connection was 
broken.


Разница между временем выхода из STR на ядре 4.9.31-std-def и 3.14.79-std-def
18 секунд (!) при максимально свободных ресурсах. В этот период мёртвая вся
система включая курсор и сеть.
Этой ошибке подвержены все четвёртые ядра. По сравнению с ядрами 3.14.xy, в
ядрах 4.x.y очевидная регрессия.
------- Comment #1 From 2017-07-05 02:02:19 -------
Однако стоит и сравнить:

Slackware "unstable" pre14.2

$ grep 'model name' /proc/cpuinfo 
model name    : Intel(R) Pentium(R) M processor 2.13GHz


# lspci -k|grep -A2 VGA
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML
Express Graphics Controller (rev 03)
    Subsystem: Hewlett-Packard Company Mobile 915GM/GMS/910GML Express Graphics
Controller (NX6110/NC6120)
    Kernel driver in use: i915


$ sed "" /etc/slackware-version 
Slackware 14.2


$ uname -r
4.4.17


$ grep -v ^# /etc/slackpkg/mirrors
http://ftp.osuosl.org/.2/slackware/slackware-current/


$ xfce4-about -V
xfce4-about 4.12.1 (Xfce 4.12)


# slackpkg file-search sbin/init

Looking for sbin/init in package list. Please wait... DONE

The list below shows the packages that contains "sbin/init" file.

[ installed ] - sysvinit-2.88dsf-i486-4


$ strace -o slackware-strace-xfce4-session-logout-s.txt xfce4-session-logout -s


$ tail -n 1 slackware-strace-xfce4-session-logout-s.txt 
+++ exited with 0 +++


$ /usr/bin/time -f %e xfce4-session-logout -s
0.05

Время выполнения команды, - пять сотых секунды.
Время оживления системы - 14 секунд.


Грузим сизифный alt с наиболее близким по версии ядром:
Да, с ядром 4.4.27-std-def окно с ошибкой не вываливается

$ strace -o alt-4427-from-suspend-strace.txt xfce4-session-logout -s 


$ tail -n 1 alt-4427-from-suspend-strace.txt 
+++ exited with 0 +++


но это ничего не меняет:
со времени нажатия на кнопку Power чтобы выйти из STR (Suspend To Ram), альтам
понадобится 19 секунд чтобы курсор проснулся и поднялась сеть

$ time -f %e xfce4-session-logout -s
24.13

Это время всего лишь в половину меньше необходимого для полной загрузки системы
на sysv с IDE-винчестера.


Кстати:
- Разница между Slackware и ALT Linux в отработке команды

$ xfce4-session-logout -s


состоит в том, что в Slackware эта команда отработает за пять сотых секунды
_до_ выключения питания. А в альтах, эта команда завершит свою работу после
выхода из STR, в том числе после 15-20-секундного замораживания системы на
выходе из STR.

Т.е. ошибка замораживания системы на выходе из suspend, общесистемная.
------- Comment #2 From 2017-07-05 02:06:22 -------
После выхода из STR окно вылетает на всех ядрах 4.9.x-std-def

Получена ошибка при
попытке завершения сеанса

Did not receive a reply. Possible causes include: the
remote application did not send a reply, the message
bus security policy blocked the reply, the reply
timeout expired, or the network connection was
broken.


Ошибке не подвержены ядра 4.4.x (за редким исключением)

# ls -1 /boot/{vmlinuz,initrd}-*|sort
/boot/initrd-3.14.79-std-def-alt0.M70P.2.img
/boot/initrd-4.4.27-std-def-alt1.img
/boot/initrd-4.4.30-std-def-alt1.img
/boot/initrd-4.4.31-std-def-alt1.img
/boot/initrd-4.4.34-std-def-alt1.img
/boot/initrd-4.4.35-std-def-alt1.img
/boot/initrd-4.4.44-std-def-alt1.1.img
/boot/initrd-4.4.47-std-def-alt1.1.img
/boot/initrd-4.4.53-std-def-alt1.img
/boot/initrd-4.9.17-std-def-alt1.img
/boot/initrd-4.9.20-std-def-alt1.img
/boot/initrd-4.9.21-std-def-alt1.img
/boot/initrd-4.9.22-std-def-alt1.img
/boot/initrd-4.9.30-std-def-alt1.img
/boot/initrd-4.9.31-std-def-alt1.img
/boot/initrd-std-def.img
/boot/vmlinuz-3.14.79-std-def-alt0.M70P.2
/boot/vmlinuz-4.4.27-std-def-alt1
/boot/vmlinuz-4.4.30-std-def-alt1
/boot/vmlinuz-4.4.31-std-def-alt1
/boot/vmlinuz-4.4.34-std-def-alt1
/boot/vmlinuz-4.4.35-std-def-alt1
/boot/vmlinuz-4.4.44-std-def-alt1.1
/boot/vmlinuz-4.4.47-std-def-alt1.1
/boot/vmlinuz-4.4.53-std-def-alt1
/boot/vmlinuz-4.9.17-std-def-alt1
/boot/vmlinuz-4.9.20-std-def-alt1
/boot/vmlinuz-4.9.21-std-def-alt1
/boot/vmlinuz-4.9.22-std-def-alt1
/boot/vmlinuz-4.9.30-std-def-alt1
/boot/vmlinuz-4.9.31-std-def-alt1
/boot/vmlinuz-std-def


# uname -r
4.4.53-std-def-alt1


$ strace -o alt-xfce-4453-std-def-strace-from-suspend.txt xfce4-session-logout
-s


$ tail -n 1 alt-xfce-4453-std-def-strace-from-suspend.txt 
+++ exited with 0 +++


несмотря на то что выход такой же долгий

$ time -f %e xfce4-session-logout -s
23.49
------- Comment #3 From 2017-07-05 02:12:44 -------
Теперь останавливаемся на опорных точках, как выжимке регрессии:

- Все ядра 4.9.x-std-def на ноутбуке HP Compaq nx6110 с sysv-xfce на сизифе, на
выходе из STR после завершения выполнения команды

$ xfce4-session-logout -s

на выходе из suspend замораживают систему на 15-20 секунд и и по выходу
выбрасывают окно ошибки, завершая команду с ошибкой код 1:

$ tail -n 1 too-long-time-from-suspend-strace.txt
+++ exited with 1 +++


- Все ядра 4-той линейки на ноутбуке HP Compaq nx6110 с sysv-xfce на сизифе, на
выходе из STR при выполнении команды 

$ xfce4-session-logout -s

замораживают систему на 15-20 секунд.
Эта ошибка общесистемная и так же проявляется на стабильном Slackware 14.2.

- Этим ошибкам в системе с sysv-xfce на сизифе, не подвержены ядра
3.14.xx-std-def из p7/branch.