Bug 34926

Summary: На Lenovo G50-80 с 4.9.98-std-def отсутствует /dev/rtc* и hwclock не работает
Product: Sisyphus Reporter: Speccyfighter <zxwarior>
Component: kernel-image-std-defAssignee: Vitaly Chikunov <vt>
Status: REOPENED --- QA Contact: qa-sisyphus
Severity: major    
Priority: P3 CC: kernelbot, placeholder, vt
Version: unstable   
Hardware: all   
OS: Linux   

Description Speccyfighter 2018-05-19 01:25:37 MSK
Сабж:

# uname -rmv
4.9.98-std-def-alt0.M80P.1 #1 SMP Sun May 6 17:54:08 UTC 2018 i686


# grep 'CONFIG_WDAT_WDT\|CONFIG_ITCO_WDT' /boot/config-$(uname -r)
CONFIG_WDAT_WDT=m
CONFIG_ITCO_WDT=m


# LC_ALL=C grep -r . /sys/class/rtc/rtc0/
grep: /sys/class/rtc/rtc0/: No such file or directory


# LC_ALL=C ls -l /dev/rtc{,0}
ls: cannot access '/dev/rtc': No such file or directory
ls: cannot access '/dev/rtc0': No such file or directory


# dmesg | grep rtc
[    0.740734] rtc_cmos 00:01: RTC can wake from S4
[    0.740747] rtc_cmos: probe of 00:01 failed with error -16
[    0.742344] Using IPI No-Shortcut mode
[    0.743974] hctosys: unable to open rtc device (rtc0)


# LC_ALL=C hwclock --debug
hwclock from util-linux 2.30.2
Trying to open: /dev/rtc0
Trying to open: /dev/rtc
Trying to open: /dev/misc/rtc
No usable clock interface found.
hwclock: Cannot access the Hardware Clock via any known method.


Комментарий с сообщением о ошибке:
https://bugzilla.kernel.org/show_bug.cgi?id=199033#c72

Аттачи acpidump dmidecode proc/ioports lsmod
https://bugzilla.kernel.org/show_bug.cgi?id=199033#c73
https://bugzilla.kernel.org/show_bug.cgi?id=199033#c74
https://bugzilla.kernel.org/show_bug.cgi?id=199033#c75
https://bugzilla.kernel.org/show_bug.cgi?id=199033#c76

Сообщение о том, что ядро 4.4.131-std-pae-alt0.M80P.1 без CONFIG_WDAT_WDT работает прекрасно:
https://bugzilla.kernel.org/show_bug.cgi?id=199033#c77
Comment 1 Speccyfighter 2018-05-19 22:16:20 MSK
На трекере kernel.org говорят, что проблема в конфликте RTC и WDAT:
https://bugzilla.kernel.org/show_bug.cgi?id=199033#c5

Альтовое ядро

# uname -rmv
4.4.131-std-pae-alt0.M80P.1 #1 SMP Sun May 6 20:01:39 UTC 2018 i686

собрано без WDAT_WDT

# grep 'CONFIG_WDAT_WDT\|CONFIG_ITCO_WDT' /boot/config-$(uname -r)
CONFIG_ITCO_WDT=m

и работает замечатьльно на Lenovo G50-80:

- hwclock работает;
- зависаний ядра нет.
Comment 2 Speccyfighter 2018-05-20 01:59:01 MSK
Посмотрел на ядро из c8.
С ним hwclock без CONFIG_WDAT_WDT тоже работает:

# uname -rmv
4.4.116-std-def-alt0.M80C.1 #1 SMP Mon Feb 19 18:50:45 UTC 2018 i686


# grep 'CONFIG_WDAT_WDT\|CONFIG_ITCO_WDT' /boot/config-$(uname -r)
CONFIG_ITCO_WDT=m


# hwclock --debug
hwclock из util-linux 2.30.2
Trying to open: /dev/rtc0
Using the rtc interface to the clock.
Дата последней корректировки отклонения - 0 секунд после 1969
Дата последней калибровки - 0 секунд после 1969
Аппаратные часы выставлены по местному времени
Подразумевается, что аппаратные часы выставлены по местному времени.
Ожидается тиканье часов...
...получено тиканье часов
Время, прочитанное с аппаратных часов: 2018/05/20 01:55:49
Аппаратное время: 2018/05/20 01:55:49 = 1526770549 секунд с 1969
Time since last adjustment is 1526770549 seconds
Calculated Hardware Clock drift is 0.000000 seconds
Comment 3 Speccyfighter 2018-05-20 16:30:15 MSK
Багрепорт переведён в статус critical из-за рандомного зависания ядер собранных с CONFIG_WDAT_WDT на Lenovo G50-80.
Comment 4 Speccyfighter 2018-05-22 11:57:12 MSK
Мика Вестерберг предлагает опробовать патч
Subject: [PATCH] ACPI / watchdog: Prefer iTCO_wdt always when WDAT table uses
 RTC SRAM
https://bugzilla.kernel.org/show_bug.cgi?id=199033#c81

Может ли кто-то собрать на пробу ядро 4.9.100 с этим патчем, чтобы сообщить результат на kernel.org? Предпочтительно ядро i586.
Comment 5 Speccyfighter 2018-07-12 13:34:42 MSK
Исправлено как минимум в ядре 4.9.105-std-def:


# uname -rm
4.9.105-std-def-alt0.M80P.1 i686

# grep 'CONFIG_WDAT_WDT\|CONFIG_ITCO_WDT' /boot/config-$(uname -r)
# CONFIG_WDAT_WDT is not set
CONFIG_ITCO_WDT=m



# uname -rm
4.9.110-std-def-alt0.M80P.1 i686

# grep 'CONFIG_WDAT_WDT\|CONFIG_ITCO_WDT' /boot/config-$(uname -r)
# CONFIG_WDAT_WDT is not set
CONFIG_ITCO_WDT=m

# ls -l /dev/rtc*
lrwxrwxrwx 1 root root      4 июл 12 10:17 /dev/rtc -> rtc0
crw------- 1 root root 252, 0 июл 12 10:17 /dev/rtc0
Comment 6 Speccyfighter 2018-10-21 23:00:23 MSK
# uname -r
4.14.77-std-def-alt1


# ls -l /dev/rtc*
ls: невозможно получить доступ к '/dev/rtc*': Нет такого файла или каталога


# hwclock --localtime --debug
hwclock из util-linux 2.30.2
Trying to open: /dev/rtc0
Trying to open: /dev/rtc
Trying to open: /dev/misc/rtc
Не найден пригодный часовой интерфейс.
hwclock: Cannot access the Hardware Clock via any known method.


https://bugzilla.kernel.org/show_bug.cgi?id=199033#c81
https://bugzilla.kernel.org/show_bug.cgi?id=199033#c88
https://bugzilla.kernel.org/show_bug.cgi?id=199033#c91
Comment 7 Speccyfighter 2018-10-21 23:30:24 MSK
(В ответ на комментарий №6)
> # uname -r
> 4.14.77-std-def-alt1
> 
> 
> # ls -l /dev/rtc*
> ls: невозможно получить доступ к '/dev/rtc*': Нет такого файла или каталога
> 
> 
> # hwclock --localtime --debug
> hwclock из util-linux 2.30.2
> Trying to open: /dev/rtc0
> Trying to open: /dev/rtc
> Trying to open: /dev/misc/rtc
> Не найден пригодный часовой интерфейс.
> hwclock: Cannot access the Hardware Clock via any known method.
> 
> 
> https://bugzilla.kernel.org/show_bug.cgi?id=199033#c81
> https://bugzilla.kernel.org/show_bug.cgi?id=199033#c88
> https://bugzilla.kernel.org/show_bug.cgi?id=199033#c91

В текущем сизифном, с такой конфигурацией /dev/rtc* исчезает

# grep 'ITCO_WDT\|WDAT_WDT' /boot/config-4.14.77-std-def-alt1
CONFIG_WDAT_WDT=m
CONFIG_ITCO_WDT=m

На ядрах старее 4.18, где патча ещё нет, для CONFIG_WDAT_WDT требуется is not set и предпочитать ITCO_WDT чтобы не исчезал /dev/rtc*

С такой конфигурацией, /dev/rtc* на месте (ядро из p8/branch)

# grep 'ITCO_WDT\|WDAT_WDT' /boot/config-4.9.133-std-def-alt0.M80P.1
# CONFIG_WDAT_WDT is not set
CONFIG_ITCO_WDT=m

Ошибка проявляется на Lenovo G50-80, Z50-70 и аналогичных, где таблица WDAT использует RTC SRAM