Mám:
0000:00:01.0 - pcie root port, ve které je karta zasunuta
0000:01:00.0 - nvidia gpu
0000:01:00.1 - nvidia audio
"nvidia gpu" a "nvidia audio" jsou jedna fyzická GPU karta GeForce.
Mohu softwarově GPU/PCIE kartě vypnout napájení?
Ve výchozím stavu nvidia používá vfio-pci ovladače a v idle se na gpu točí jeden ventilátor ze dvou.
Zkoušel jsem:
echo 1 | sudo tee /sys/bus/pci/devices/0000:01:00.0/remove
echo 1 | sudo tee /sys/bus/pci/devices/0000:01:00.1/remove
V tu chvíli se roztočil i druhý ventilátor a "pcie root port" se přepnul ze stavu D0 do stavu D3.
echo 1 | sudo tee /sys/bus/pci/devices/0000:00:01.0/remove
Ventilátory na GPU se točí vesele dál
Výňatek výpisu pro "pcie root port" lspci -vv (samozřejmě před tím než jsem použil příkaz .../remove):
Capabilities: [80] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D3 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
A ještě výpis pro nvidia gpu (taktéž před tím než jsem na ni aplikoval .../remove):
Capabilities: [60] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D3 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
V Cčku by to mělo jít provést příkazem:
pci_set_power_state(port_dev, PCI_D3cold);
což by mělo GPU zasunutou v daném portu úplně vypnout z napájení. Jaký je ale ekvivalent pomocí příkazů v linuxu?