DPDK 설명서의 좋은 부분을 읽었지만 인터럽트를 지원하는지 또는 권장하는지 혼란 스럽습니다. DPDK는 인터럽트를 사용하지 않지만 인터럽트를 등록하고 성공적으로받을 수 있다고 나와 있습니다.DPDK 응용 프로그램에서 선점 형 사용자 수준 스레드 스케줄러를 작성할 때의 고려 사항
특히 DPDK 응용 프로그램에 대한 사용자 수준 선점 형 스레드 스케줄러를 작성할 수 있는지 여부를 조사하고 있습니다. 이걸 만들려면 타이머 인터럽트를 등록해야합니다. 설명서에 DPDK가 스케줄러를 지원하지 않는다고 나와 있습니다.
DPDK에는 lthread 추상화가 있지만 스케줄러 구현을 위해서는 타이머 인터럽트를 기반으로 스케줄러로 자동 전송되도록 제어하지 않고 각 개별 스레드가 수동으로 스케줄러에 제어권을 부여해야합니다.
폴링을 기반으로 타이머 인터럽트를 시뮬레이트하는 알람 기능 (rte_alarm)이 있습니다. 그러나 폴링을 수행하는 또 다른 pthread가 필요하며 현재 폴링 pthread는 콜백 함수를 실행하는 pthread입니다 (반면 콜백 함수를 실행하기 위해 원래 타이머를 설정 한 pthread를 원합니다).
DPDK가 OS에서 실제 인터럽트에 등록 할 수있을 때 선점을 지원하지 않는 lthread 추상화를 구현하는 이유를 알지 못합니다. 잠금이없는 링 버퍼와 같은 특정 객체를 사용할 때는 좀 더 조심해야 할 수도 있지만 관리가 쉽습니다.
누군가가 DPDK가 지원하는 것에 대한 설명을 제공 할 수 있습니까?