LINUX.ORG.RU

слушаю.

// сорри, почитал - не возьмусь. Думал там простенько.

Собственно, можно же связаться с автором.

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

Автор уже поднял лапки кверху, даже за длинным рублём не хочет охотиться, я уже ударился в панику! На фриланцру если тендер обьявить, найдётся умелец, как думаете?

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

Подскажите, еслть ли самуочитель на русском? Или хотя бы на англицком. ASL это очень трудно?

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

не подскажу, я с ним знаком на уровне добавления/удаления устройств (хакинтош), их включения-выключения методом копипасты, а также правки ошибок, которые сможет править и лапоть любой.

science ★★☆
()
Ответ на: комментарий от Pyzia

acpi.org там всё есть

но лучше посмотри а dmesg, потом найди кусочек кода и просто отмени проверку boot_flags или что там.

dimon555 ★★★★★
()
Ответ на: комментарий от Pyzia

вон в статье код упоминается, возьми и снеси эту проверку нафиг и пересобери ядро. какая тебе разница есть ли этот флаг в acpi, пусть linux управляет как умеет.

inux/drivers/acpi/pci_root.c:599:			if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_ASPM) {
/usr/src/linux/drivers/acpi/pci_root.c:601:				 * We have ASPM control, but the FADT indicates
/usr/src/linux/drivers/acpi/pci_root.c:612:				"disabling ASPM\n");
dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

А можно чуть помедленнее? Если я приведу тут кусок кода, покажешь, что конкретно вырезать? И ещё, я так понимаю, главная цель-это чтобы в

lspci -vv | grep -i aspm
		LnkCap:	Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
		LnkCtl:	ASPM Disabled; Disabled- Retrain- CommClk-
		LnkCap:	Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
		LnkCap:	Port #2, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
		LnkCap:	Port #3, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 <64us
		LnkCtl:	ASPM L0s L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <64us
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 <64us
		LnkCtl:	ASPM L0s Enabled; RCB 64 bytes Disabled- Retrain- CommClk+

не было disabled?

Я что-то нашаманил в dsdt и теперь в dmesg такое:

[    0.726619]  pci0000:00: Requesting ACPI _OSC control (0x1d)
[    0.727503]  pci0000:00: ACPI _OSC control (0x1d) granted
Но при этом в lspci всё Disabled. Куда смотреть?

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

вот только одно почему-то не задизейблено, но может это просто pcie port и туда ничего не вставлено?

		LnkCap:	Port #3, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+

одно из шести не так плохо))

ну сам в этот LnkCtl попиши

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

Не совсем понял, что не задизейблено?

		LnkCap:	Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
		LnkCtl:	ASPM Disabled; Disabled- Retrain- CommClk-
Первый и насколько я понимаю главный порт, через который и подключена видяха не работает, остальные почти никак на энергопотребление не влияют и значит не представляют интереса. Как писать в lnkctl не представляю. Кстати, вырезал проверку из pci_root.c, стало только хуже, хотя, может я что-то лишнее вырезал.

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

у тебя везде aspm включён, кроме как ты говоришь, видяхи.

Port #0, Speed unknown, Width x0

туда вообще линий от pci express не подключили

писать через setpci.

ты уверен, что включать aspm на видяхе - хорошая идея?

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

Я включил мозги и разобрался, это оказывается был аудиовход, а поскольку звук я не юзаю, то да, он отключён, значит всё ок.

00:1c.2 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 3 (rev 02) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
	I/O behind bridge: 00002000-00002fff
	Memory behind bridge: 83000000-83ffffff
	Prefetchable memory behind bridge: 0000000082000000-0000000082ffffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag- RBE- FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #3, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
			ClockPM- Surprise- LLActRep+ BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
			Slot #2, PowerLimit 6.500W; Interlock- NoCompl-
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq+ LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet- LinkState-
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
	Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee0f00c  Data: 4161
	Capabilities: [90] Subsystem: Acer Incorporated [ALI] Device 061f
	Capabilities: [a0] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [100 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed+ WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
		VC1:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable- ID=0 ArbSelect=Fixed TC/VC=00
			Status:	NegoPending- InProgress-
	Capabilities: [180 v1] Root Complex Link
		Desc:	PortNumber=03 ComponentID=02 EltType=Config
		Link0:	Desc:	TargetPort=00 TargetComponent=02 AssocRCRB- LinkType=MemMapped LinkValid+
			Addr:	00000000fed1c001
	Kernel driver in use: pcieport
Как узнать, что это за порт? Может, его можно вообще отрубить? Всё-таки это не видео (кажется). Проблема в том, что в результате всех манипуляций ноутбук не стал работать дольше.

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

lspci -t

или можешь пошариться по /sys/devices

это просто некий pci express port может туда ничего и не подключено, может даже его можно выключить в bios

aspm как я понял и так работает, поэтому немудрено, что ничего не изменилось в энергопотреблении. Так же я не думаю, что это много жрёт.

попробуй лучше powertop, он и советы даёт во время работы.

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

Оказывается, это был просто пустой кардридер! Большое спасибо вам за помощь, без вас я бы дрючил ядро ещё месяц. Думаю, пустой кардридер не слишком активно потребляет энергию и им можно пренебречь :D

Pyzia ★★★★★
() автор топика

pcie_aspm=force в параметрах ядра пробовали? Судя по тому, что я вижу в коде, это эффективнее, чем правка DSDT (варнинги в dmesg останутся, что сбивает с толку, но на деле все функции, отвечающие за отключение ASPM, превращаются в пустышки). Потом ещё нужно сделать так:

echo powersave > /sys/module/pcie_aspm/parameters/policy

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

ASL сам по себе — это не трудно (гибрид ассемблера и не пойми чего), но правка DSDT требует знаний о том, как устроен ваш чипсет.

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

Да, я первым делом врубил pcie_aspm=force а вот про

echo powersave > /sys/module/pcie_aspm/parameters/policy
не знал, спасибо! Вроде как стал жить чуть дольше (370 минут вместо 350) Кстати, после перезагрузки этот параметр сбивается в default, есть ли смысл накатать соответствующий скрипт в автозапуск или есть какие-то штатные средства?

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

Ну собственно это и есть отмашка на включение ASPM. Если так не сделать, энергосбережение останется на том же уровне, что настроил BIOS при старте системы.

Да, стоит добавить в автозапуск. Если systemd, то проще всего создать файл /etc/tmpfiles.d/aspm.conf (имя можно любое *.conf) с таким содержанием:

w /sys/module/pcie_aspm/parameters/policy - - - - powersave

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

powertop показал кучу интересного в html-отчёте! Из его советов я извлёк ещё +10 минут работы от батареи, но кое-что насторожило, а именно:

Untunable Software Issues
Description
PCI Device ----
И так 8 пунктов
Может ли это быть ошибкой? Перед этим он выдал рецепты сохранения энергии на каждый из этих девайсов и они вроде как помогли.

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

Хрен бы знал (хотя я примерно представляю, что именно он пытается настроить).

Могу дать свою коллекцию скриптов для энергосбережения. Что у вас за дистрибутив? Используется ли systemd?

intelfx ★★★★★
()
Ответ на: комментарий от Pyzia

Если будете использовать «как есть», надо для каждого (нужного) скрипта в /usr/lib/power-management/script.d сделать systemctl enable power-saving@<имя-скрипта>. Потом udevadm control --reload и переткнуть питание, чтобы сработали правила udev.

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

Может ли это быть ошибкой?

может быть, а может быть и нет))

надо смотреть.

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