PCI latency timer
이러한 질문에 대한 대답은 각각의 PCI 디바이스가 가지고 있는 설정 가능한 PCI bus latency timer와 관련이 있다. 각각의 PCI 디바이스에 맞는 PCI 버스 latency timer 값을 적절히 설정하는 것은 Linux의 역할이다. 대부분 디폴트 세팅이 적당히 되어있다 (최적의 세팅은 아니다). 모든 디바이스는 훌륭히 수행되고 시스템도 적절히 작동한다. PCI 버스 latency timer는 0에서 248 까지 설정할 수 있다. 디바이스가 zero 세팅이 되어있을 경우 다른 디바이스가 전송이 필요하다면 이것은 즉시 버스를 포기한다. 만일 디바이스 세팅이 248로 되어 있다면 멈추기 전까지 오랜 시간동안 버스의 사용을 지속할 것이다. 다른 디바이스는 순서를 기다린다.
모든 디바이스의 PCI 버스 latency timer가 비교적 높게 설정되어 있고 많은 데이터가 버스를 통해 보내질 때 PCI 카드는 일반적으로 버스 제어권을 얻기 전까지 더 오랜시간을 기다린 후에 데이터 전송을 시작할 수 있다. 하지만 버스 제어권을 일단 얻으면 버스가 다른 디바이스로 넘어가기 전까지 이것을 통해서 많은 데이터를 전송할 수 있을 것이다. 왜냐하면 높은 PCI 버스 latency timer 설정은 latency를 늘릴 뿐만 아니라(데이터 전송 지연) 효과적인 대역을 증가시킨다. 각각의 디바이스가 인터럽트 없이 버스를 통해 많은 데이터를 전송하기 때문에 PCI 버스 latency timer 세팅은 좀더 효율적으로 사용되고 PCI 디바이스는 더 많은 데이터를 전송할 수 있는 것이다.
다른 한편으로 PCI 디바이스가 낮은 PCI 버스 레이턴시로 설정되어 있다면 다른 카드가 데이터 전송을 해야 할 때 버스를 기꺼이 포기 할 것이다. 데이터 전송 지연이 훨씬 느려진다. 왜냐하면 어떤 디바이스도 늘어난 시간동안 버스를 붙잡고 있지 않을 것이기 때문이다. 이것의 단점은 낮게 설정된 PCI bus latency timer가 두개 이상의 PCI 디바이스가 동시에 작동할 때 효율적인 PCI 버스 대역을 감소시킨다는 점이다. 많은 데이터 폭주는 자주 발생하지 않으며 버스 제어는 오버헤드를 늘리며 빠르게 변한다