인터럽트 가능 장치가 너무 많은 인터럽트를 발생시키지 않도록 Linux(또는 하드웨어)는 어떤 메커니즘을 사용합니까?

인터럽트 가능 장치가 너무 많은 인터럽트를 발생시키지 않도록 Linux(또는 하드웨어)는 어떤 메커니즘을 사용합니까?

인터럽트 수준에서는 최대 속도를 정의하는 방법이 있어야 한다고 생각할 수 있습니다. 그렇지 않으면 불량 장치가 지속적으로 인터럽트를 실행하여 시스템 속도를 저하시킬 수 있습니다. 이러한 제한 중 일부는 버스 하드웨어, 인터럽트 제어 하드웨어 수준 또는 운영 체제 코드 수준에서 수행될 수 있는 것으로 보입니다. 누군가 이 주제에 대한 광범위한 개요를 제공할 수 있습니까?

답변1

Linux 커널은 최대 인터럽트 속도를 정의하는 도구를 제공하지 않습니다. 따라서 하드웨어 구성 요소 자체에만 제한이 있습니다.

일부 호환 장치의 경우 일부 특정 드라이버(예: 네트워크 어댑터)가 인터럽트 속도를 제한할 수 있는 기회를 제공할 수 있지만 이는 다소 예외이며 손상된 장치로 인해 시스템이 인터럽트로 가득 차는 것을 방지할 수는 없습니다.

관련 정보