PCI ACS(액세스 제어 서비스) 비활성화

PCI ACS(액세스 제어 서비스) 비활성화

맞춤형 PCIe 비디오 인코더 공급업체는 카드 드라이버가 제대로 작동하려면 컴퓨터에서 ACS(액세스 제어 서비스)를 비활성화해야 한다고 말했습니다.

그들은 어떻게 해야 하는지 말하지 않았습니다.

이 문서는 NVIDIA GPU에 관한 것입니다.해당 명령을 사용한다고 하는데 setpciNVIDIA를 사용하지 않고 마더보드가 다르기 때문에 장치 주소가 다를 것입니다(아마도).

예를 들어,

setpci -s 02:01.0 f2a.w=0000아무것도 하지 마세요...

편집 2 예를 들어:

# setpci -v -s 02:04.0 220.w
0000:02:04.0 @220 = 000d
# setpci -v -s 02:04.0 220.w=0000
0000:02:04.0 @220 0000
# setpci -v -s 02:04.0 220.w
0000:02:04.0 @220 = 000d

내 마더보드에서 실제 PCI 브리지의 레지스터 주소를 어떻게 찾나요?

(트림된) 출력 lspci -vvv은 다음과 같습니다.

편집하다

죄송합니다. 운영 체제 정보를 잊어버렸습니다.

32비트 Centos6, 커널 4.4.127-1.el6.elrepo.i686 #1 SMP Sun Apr 8 09:44:43 EDT 2018 i686 i686 i386 GNU/Linux

00:1c.0 PCI bridge: Intel Corporation Device a114 (rev f1) (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-
    Capabilities: [140 v1] Access Control Services
        ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
        ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
    Kernel driver in use: pcieport


00:1c.5 PCI bridge: Intel Corporation Device a115 (rev f1) (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-
    Capabilities: [140 v1] Access Control Services
        ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
        ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-

02:01.0 PCI bridge: Pericom Semiconductor Device b608 (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-
    Capabilities: [220 v1] Access Control Services
        ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl+ DirectTrans+
        ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-

02:02.0 PCI bridge: Pericom Semiconductor Device b608 (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-
    Capabilities: [220 v1] Access Control Services
        ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl+ DirectTrans+
        ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-

02:03.0 PCI bridge: Pericom Semiconductor Device b608 (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-
    Capabilities: [220 v1] Access Control Services
        ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl+ DirectTrans+
        ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-

02:04.0 PCI bridge: Pericom Semiconductor Device b608 (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-
    Capabilities: [220 v1] Access Control Services
        ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl+ DirectTrans+
        ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-

답변1

시험해보고 출력이 향상되는지 확인하시겠습니까?

setpci -v -s 02:04.0 ecap_acs+6.w
setpci -v -s 02:04.0 ecap_acs+6.w=0
setpci -v -s 02:04.0 ecap_acs+6.w

편집 1: setpci 명령이 ACS 확장으로 전송됩니다.아니요오른쪽 오프셋을 따릅니다(6) 을 위한ACS 제어 레지스터

편집 2: 방법이 궁금하시다면 PCI 설정 유틸리티는 PCI Express 기능 및 확장 기능을 처리하고 있으며 특정 하드웨어 포트 또는 장치에 대한 액세스 문제를 해결하고 있습니다... 또 다른 흥미로운 관점은 옵션을 추가하는 것입니다 -G . 이는 일반적으로 그다지 효율적이지 않지만 여기에서 볼 수 있듯이 전체 프로세스에 대한 보기를 제공합니다.능력그리고확장목록을 반복합니다. 예를 들어, 루트 포트에서 --

user@host:~$ sudo setpci -G -v -s 00:01.1 ecap_acs+6.w
Trying method linux-sysfs......using /sys/bus/pci...OK
Decided to use linux-sysfs
0000:00:01.1 0000:00:01.1: Found capability 0001 of type 1 at 0050
0000:00:01.1: Found capability 0010 of type 1 at 0058
0000:00:01.1: Found capability 0005 of type 1 at 00a0
0000:00:01.1: Found capability 000d of type 1 at 00c0
0000:00:01.1: Found capability 0008 of type 1 at 00c8
0000:00:01.1: Found capability 0001 of type 1 at 0050
0000:00:01.1: Found capability 0010 of type 1 at 0058
0000:00:01.1: Found capability 0005 of type 1 at 00a0
0000:00:01.1: Found capability 000d of type 1 at 00c0
0000:00:01.1: Found capability 0008 of type 1 at 00c8
0000:00:01.1: Found capability 000b of type 2 at 0100
0000:00:01.1: Found capability 0001 of type 2 at 0150
0000:00:01.1: Found capability 0019 of type 2 at 0270
0000:00:01.1: Found capability 000d of type 2 at 02a0
0000:00:01.1: Found capability 001e of type 2 at 0370
0000:00:01.1: Found capability 001d of type 2 at 0380
0000:00:01.1: Found capability 0025 of type 2 at 0400
0000:00:01.1: Found capability 0026 of type 2 at 0410
0000:00:01.1: Found capability 0027 of type 2 at 0440
(ecap 000d @2a0) @2a6 = 0000

관련 정보