LINUX.ORG.RU

Не выключается и не перезагружается миникомпьютер на ядрах 4.4.x.x, 4.8.x.x, 4.10.x.x

 , , , ,


0

1

Проблема такая.Есть миникомп gygabyte brix. И на нем не работает нормально система управления питанием. А точнее при перезагрузке /выключении система виснет. Происходит это на ядрах 4.2.x.x, 4.4.x.x, 4.8.x.x, 4.9.x.x, 4.10.x.x, а также на ветке 3.19.x.x. И все это вне зависимости от дистриба, было проверено на Debian, Xubuntu, Lubuntu, Arch, Manjaro. При чем на ветке 3.16.x.x работает нормально. Как это дело исправить, если это возможно?


Ответ на: комментарий от post-factum

Ответ от Младека:

Just to be sure. Do you see the same problem also with

the last released kernel-4.13? Eventually, kernel-4.7 or any more recent would be enough.

I ask because a related race was fixed in kernel-4.7 by the commit feb26ac31a2a5cb88 («usb: core: hub: hub_port_init lock controller instead of bus»).

Next, could you please try if an ordered workqueue would help? You might switch to it using the following change:

diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 41eaf0b52518..4f58b07a191c 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -5281,7 +5281,7 @@ int usb_hub_init(void)
          * device was gone before the EHCI controller had handed its port
          * over to the companion full-speed controller.
          */
- hub_wq = alloc_workqueue("usb_hub_wq", WQ_FREEZABLE, 0);
+ hub_wq = alloc_ordered_workqueue("usb_hub_wq", WQ_FREEZABLE);
         if (hub_wq)
                 return 0;

Finally, it would be great to resend the problem description

with all the above people and mailing lists in CC. Especially when the commit from kernel-4.7 does not help. I am willing to help. But the above people are more familiar with the USB code and would know how to debug it more effectively.

Сделал я sudo git bisect reset feb26ac31a2a5cb88. Собрал ядро, поставил. И без изменений. Но дело не в бобине.
Вернулся к сообшениям об ошибках ehci-pci 0000:00:1d:0:port 1 reset error -110 о которых я писал выше и не предал им значения (все ведь работает все грузитсо), а зря. В биосе зашел в XHCI Mode управления конроллером. Опция отвечает за переключение USB 3.0 в режим 2.0 и обратно. По умолчанию он стоял на Smart Auto. Переключив в Auto ничего не изменилось, а вот в положении Enabled, перезагрузка стала работать коррректо)

Kaernk
() автор топика
Ответ на: комментарий от Kaernk

Также работает вариант с изменением hub_wq = alloc_workqueue("usb_hub_wq", WQ_FREEZABLE, 0);
на
hub_wq = alloc_ordered_workqueue("usb_hub_wq", WQ_FREEZABLE);

Kaernk
() автор топика
Ответ на: комментарий от post-factum

В смысле? Наобарот работает. Или ты имеешь ввиду манипуляции с hub.c не допустимы, а потому считать этот вариант рабочим нельзя?

Kaernk
() автор топика
Ответ на: комментарий от Kakadu

Насколько я понял. При активации Enabled, Usb 3.0 будет работать только как 3.0. При активации Auto, usb порт 3.0, будет работать как 2.0 до тех пор пока не загрузится драйвер операционной системы. Ну и SmartAuto не допускает переход в режим 2.0 после перезагрузки. https://www.tonymacx86.com/threads/usb-3-0-on-gigabyte-uefi-motherboards-xhci...

Kaernk
() автор топика
Ответ на: комментарий от Kakadu

Вообще проблема немного необычная. Когда я загружался в каждое собранное ядро, где-то в промежутке между 3.17.0-rc4 и 3.17.0-rc6 некторые ядра перезагружались не с первого раза. Поэтому непонятно было, что командовать good или bad.

Kaernk
() автор топика
Ответ на: комментарий от Kaernk

Не, у меня похоже какая-то проблема со свопом. В конце вот такие сервисы в systemd висят. Я где-то читал, что отключение свопа должно помочь, но у меня с этим идет что-то не так: такое ощущение, что без свопа, это как с полностью забитым свопом. Жутко тормозит и жужжит диском.

 JOB UNIT                                                          TYPE  STATE  
3265 systemd-poweroff.service                                      start waiting
3271 dev-disk-by\x2duuid-…ee1\x2d4fee\x2d9908\x2dd939830521bb.swap stop  running
3431 systemd-halt.service                                          start waiting
3430 halt.target                                                   start waiting
3266 umount.target                                                 start waiting
3264 poweroff.target                                               start waiting
3268 dev-disk-by\x2did-at…04N21V1_WD\x2dWX71EA3XTP53\x2dpart2.swap stop  running
3279 final.target                                                  start waiting
3270 dev-disk-by\x2dpath-…2d0000:00:1f.2\x2data\x2d6\x2dpart2.swap stop  running
3272 dev-sda2.swap                                                 stop  running
3269 dev-disk-by\x2dpartuuid-0003c06f\x2d02.swap                   stop  running
3267 dev-disk-by\x2did-wwn\x2d0x50014ee604a6f53e\x2dpart2.swap     stop  running

Kakadu
()
Ответ на: комментарий от Kaernk

Да вроде браузер без свопа должен открываться (8 Гб всё-таки)... Но такое ощущение, что линукс начаинает своп где-то в /tmp/ заводить... Такое может быть?

Kakadu
()
Ответ на: комментарий от Kakadu

Помоему нет. Для него же отдельная партиция нужна, потом swapon /dev/sdx . Ну и как-то так.

Kaernk
() автор топика
Ответ на: комментарий от Kakadu

У меня ни сна, ни идей (с) Фитц. Вообще судя по логу что, ты скинул, такое в принципе возможно, но хз как.

Kaernk
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.