2015年6月8日 星期一

查驗Linux是否啟動ASPM

ASPM關閉可以透過BIOS作用,但在Linux下,其設定往往會被overwrite掉。
當ASPM開啟後,系統的PCIe (尤其是網卡network Adapter),在進入省電模式下,要立即馬上再恢復工作,極可能產生網路斷線問題。

解決方法,除了在grub裡面加入 pcie_aspm=off 外,還有一項可以確認是否為開啟狀態。


  1. 透過指令lspci找尋裝置 (example, 查看 i350 network adapter)
  2.  lspci -vv |grep -i i350
  3. 例如查看i350網卡的第一個port,其Bus及device raw data
  4. 查閱i350規格書,並找 Link Control Register位置。
  5. 查看 0xB0 及 0xB1 位置,對照第2點的register raw data。0x40為8bits+8bits組合,00也為相同模式,可以解析成以下圖:
    0x40 為 1000 0000 拆解,對應Intel規格書,第1+2bit的值(看上圖黑色數字),可以是以下組合:

  6. 00b = PM disabled.
    01b = L0s entry supported.
    10b = L1 Entry Enabled.
    11b = L0s and L1 supported.
    也就是說,目前為00L0s及L1全部關閉狀態
    如果有出現0x41 (1000 0001),那麼L0s就為開啟。
    反之,出現0x42 (1000 0010),為L1開啟,L0s關閉。
    如果是0x43 (1000 0011),那麼就是L0s及L1全部開啟(enabled)。








1 則留言: