ACPI _OSC control

2

Eu notei um erro da saída do dmesg que o ubuntu canot habilitou o ASPM:

[    0.192722]  pci0000:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[    0.192728]  pci0000:00: Unable to request _OSC control (_OSC support mask: 0x08)

Embora eu saiba que isso não é um bug, gostaria de perguntar se existe uma maneira de corrigi-lo e habilitar o ASPM, pois o motivo é que ele deve aumentar a vida útil da bateria (powertop mostra que o PCIe está sempre 100% ligado ).

Edit: Eu estou correndo em um eee pc 1015px com a versão mais recente do BIOS (1401)

    
por nmc 18.10.2012 / 02:31

1 resposta

6

Estou colando isso no meu blog (mais algumas alterações), pois adiciona algum contexto a essa pergunta.

Os dispositivos seriais com base em PCI Express podem ser gerenciados pelo ASPM (Gerenciamento Ativo de Energia de Estado) para prolongar a vida útil da bateria em dispositivos móveis, como laptops e netbooks. O ASPM é um protocolo de gerenciamento de energia que permite que o gerenciamento de energia de um sistema operacional coloque a camada física do link em um modo de baixo consumo de energia e tem a capacidade de instruir outros dispositivos no link a entrar em um modo de energia mais baixo.

O lado positivo é que economizamos energia com o ASPM, no entanto, ele introduzirá alguma latência, já que o barramento precisa de tempo para ser despertado quando estiver em um estado de baixa energia. A especificação PCIe (versão 2.0) define dois modos de energia:

  • L0s, que define o modo de baixa energia em direção no link (geralmente do controlador da camada de link físico downstream)

  • L1, que define o modo de baixa energia em ambas as direções no link, no entanto, há maior latência de ativação.

Infelizmente parece que seu firmware está indicando ao kernel que ele realmente não suporta o ASPM em seu hardware. O kernel consultou o firmware usando o controle ACPI _OSC para ver se o ASPM é suportado e é informado que não é suportado, portanto, o ASPM está desativado. As razões para isso ser desativado são específicas do fornecedor. Pode ser porque, no Windows, algumas coisas simplesmente não funcionam ou não são confiáveis com o ASPM ativado, portanto, o firmware o desativa completamente.

O Linux também fornece alguns parâmetros do kernel do driver do ASPM para permitir algum nível de flexibilidade. Os seguintes parâmetros do kernel podem ser usados:

desabilite o ASPM:

pcie_aspm=off

use a configuração de firmware padrão:

pcie_aspm=default

desativa o gerenciamento de energia do ASPM e do clock:

pcie_aspm=performance

modo de economia de energia mais alto, habilite o gerenciamento de energia do ASPM e do relógio:

pcie_aspm=powersave

força o ASPM em:

pcie_aspm=force

Você pode querer mexer na última configuração para ver se pode substituir as configurações padrão do ASPM.

    
por Colin Ian King 29.11.2012 / 23:48