LINUX.ORG.RU

Энергопотребление и Thunderbolt

 , , , tcss,


0

2

При подключении туннелированных через Thunderbolt 3/4 PCIe-устройств package c-state не падает ниже pc3. При отключении – >80% pc10, остальная система настроена правильно. Оборудование такое:

00:07.0 PCI bridge: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #1 (rev 01) (prog-if 00 [Normal decode])
20:00.0 PCI bridge: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] (rev 02) (prog-if 00 [Normal decode]) 
22:00.0 Non-Volatile memory controller: Silicon Motion, Inc. SM2262/SM2262EN SSD Controller (rev 03) (prog-if 02 [NVM Express])

L1.1 и L1.2 разрешить удается.

Прежде, чем разбираться с этим вопросом серьезно, хочу спросить у уважаемых участников форума: а как должно быть?
Должны ли вообще достигаться низкие c-states? У кого-нибудь >pc3 достигается при подключенных Thunderbolt устройствах? А на macOS?

★★★★★

Последнее исправление: i586 (всего исправлений: 4)

Ответ на: комментарий от t184256

Речь не об этом.

Само присутствие AlpineRidge препятствует переходу в pc6. С обычным pcie линком так не должно быть, даже если само устройство в D0.

Линк через Толстый Болт, видимо, устроен как-то иначе. Я просто не знаю, как он устроен и как должно быть. Хотя бы эмпирически.

В некоторых прошивках есть настройки, включающие/выключающие ASPM/LTR. У кого-нибудь это работает?

@GPFault @i-rinat @intelfx

i586 ★★★★★
() автор топика
Последнее исправление: i586 (всего исправлений: 1)
Ответ на: комментарий от i586

У моего ноута нет в настройках прошивки ничего про ASPM. Похоже, не настраивается. Когда-то давно я ковырялся в битах-байтах конфигурации PCI в /sys, и убедил себя, что ASPM включен. Да и NVMe накопитель в простое ел заметно меньше батарейки, чем SATA. С тех пор я успокоился и больше не пытался экспериментировать.

Устройство Thunderbolt, которое у меня было, сейчас не очень доступно. Возможно, в ближайшем будущем и появится возможность потестировать, но прогнозы не особо благоприятные.

И у меня на ноуте процессор глубже чем в pc8 не уходит. Счётчики PC9 и PC10 всегда по нулям. Счётчик PC7 тоже всегда содержит нулевое значение, но вряд ли это важно. Ядра достигают C10.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Что же, вопрос удалось решить.

Тут два сюжета.

Первый – почему линк «AlpineRidge – endpoint device» переходит в L1.0, а линк «tgl root port – alpine ridge» остается в L0 несмотря на то, что все условия из стандарта PCIe v4 выполнены. При наличии линка в L0 ничего ниже pc3 быть не может.

Выяснилось, что в мостах Alpine Ridge/Titan Ridge предусмотрена возможность override описанные в стандарте настройки ASPM. Эта настройка расположена в регистре vesc_reg1 (Vendor Specific Enhanced Capability, capability 0xb). По дефолту она почему-то включена, при ее выключении линк падает в L1, a package c-state – в pc8. Как и положено.

Второй сюжет – и в этих мостах, и в процессорном мосте L1 substate capability по дефолту отключена, и не просто отключена, а ее даже в связном списке capabilities нет. Соответственно, линк не может быть в L1.2, поэтому достигается pc8, но не pc10. Но эту задачу понято как решать, опираясь на стандарт.


У вас, вероятно, тоже какое-то pcie устройство не дает уйти в L1.2 (для него намного больше условий и оно требует правильной настройки таймингов). С этим можно разобраться.

i586 ★★★★★
() автор топика
Последнее исправление: i586 (всего исправлений: 3)

Все равно вопрос «у кого и как оно работает» остается актуальным.

Я не думаю, что решение выше – это то, что предусмотрено производителем. Не зря же L1 заблокировано для upstream port бриджа, но разблокировано для downstream port. Не дураки же в intel/hp/lenovo сидят.

i586 ★★★★★
() автор топика
30 марта 2024 г.