1

http://www.xakep.ru/post/61125/photo.jpg

Один из разработчиков ядра Linux Сара Шарп из компании Intel посыпает голову пеплом: за восемь лет работы над стеком Linux USB они неоднократно сталкивались с ситуацией, когда USB-устройство внезапно отключалось после выхода из режима ожидания при включенной функции auto-suspend. Все это время проблему списывали на китайских производителей дешевых флэшек, мышек и клавиатур. Обсуждалась даже идея внедрить «черный список» моделей таких устройств прямо в ядро, чтобы для них не активировался режим энергосбережения. От идеи отказались только когда стало ясно, что список будет слишком большим: так много было USB-устройств, которые вели себя некорректно.

Сейчас выяснилось, что сбои не всегда были аппаратными.

В коде хост-контроллера Intel xHCI (drivers/usb/core/hub.c) есть строчка с лаконичным комментарием "TRSMRCY = 10 msec". В соответствии с пунктом 7.1.7.7 спецификаций USB 2.0, система USB System Software должна обеспечить время в 10 миллисекунд для восстановления работы устройства, в течение которых не отправлять на него никаких запросов. В ядро Linux просто вставили таймаут 10 мс. Но специалисты по аппаратному обеспечению сейчас обратили внимание разработчиков ядра Linux, что в таблице 7-14 спецификаций USB 2.0 указано, что таймаут должен быть минимум 10 миллисекунд, а не максимум. Это означает, что устройство может восстанавливаться дольше, чем сейчас установлено в строке TRSMRCY в Linux USB. В таких случаях при попытке обратиться к нему может возникнуть ошибка передачи данных — тогда операционная система считает устройство отключенным.

Тесты показали, что выход устройства из спящего режима никогда не занимает больше 17 мс, но в 8% случаев превышают 10 мс. Для исправления бага достаточно увеличить значение таймаута с 10 до 20 мс, после чего все USB-устройства начнут нормально работать. Сара Шарп уже подготовила патч.

Разработчики говорят, что больше всего от бага страдают пользователи ChromeOS, потому что эта система очень агрессивно использует режим энергосбережения для USB, активируя auto-suspend для всех внутренних USB-устройств, включая WiFi и Bluetooth.

Источник: http://www.xakep.ru/post/61125/

In Tux We Trust     Centos 6.5
Самурай без меча подобен самураю с мечом, но только без меча, однако как-будто с мечом, которого у него нет, но и без него он как с ним...

2

Хорошо что это исправили ab .

Fedora 21 Workstation KDE 4.14.4
Gigabyte GA-Z77-D3H, Intel Core i5-3470, nVidia GeForce GTX 660 2GB, 8GB RAM, 1TB HDD

3

Так вот оно что.... а я то думал.... пора прокачиваться и читать исходники ядра всякий раз, когда железяка начинает глючить =).

4

[CENSORED]. Это из-за этого у меня свисток вафли не просыпается? Баг так баг.

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

5

XliN, "Доверь женщине делать шашлык, и она испортит баранину!"  ag

In Tux We Trust     Centos 6.5
Самурай без меча подобен самураю с мечом, но только без меча, однако как-будто с мечом, которого у него нет, но и без него он как с ним...

6

Чего-то Сара второй раз за полтора месяца попадает в новости...

95% процентов проблем находятся между клавиатурой и стулом.

7

Fat-Zer пишет:

Чего-то Сара второй раз за полтора месяца попадает в новости...

И вроде как тоже про usb. Она его пилит и пилит bx

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

8

XliN⇓ пишет:

И вроде как тоже про usb. Она его пилит и пилит

учитывая, что она, фактически, основной разработчик usb 3, было бы странно, если было б иначе...

95% процентов проблем находятся между клавиатурой и стулом.

9

ну главное нашли и пофиксили  (:

Верить нельзя никому...

10

бывало такое, голову ломал в чем трабл.