장치 매퍼 대상을 작성 중인데 문제가 발생했습니다. I/O 테스트를 실행할 때 대상에 도달하는 I/O 수가 매우 높아집니다. 이는 파일 시스템 버퍼링으로 인해 발생할 수 있습니다. 때로는 수만 개의 I/O가 내 대상으로 전송되어 다른 명령에 응답하지 않는 것을 볼 수 있습니다. 한 번에 커밋되는 I/O 수를 제한하는 방법이 있습니까? 요청 기반 대상에는 바쁜 콜백이 있어서 트릭을 수행하는 것처럼 보이지만 매핑할 수 있는 장치 유형에 제한이 있어 나에게는 문제가 됩니다. 대부분의 기존 생물학적 표적은 복잡한 기능으로 설정되어 있지만, 이것만으로는 문제가 해결되지 않는 것 같습니다. 대부분의 경우 DM_MAPIO_REQUEUE를 반환하거나 EBUSY를 사용하여 i/o를 완료하면 단순히 EIO로 변환되어 작업이 실패하게 됩니다.
기존 대상과 일부 테스트 코드를 사용한 후에는 높은 진행 중 I/O가 처리를 위해 작업 대기열에 I/O를 배치하는 동시에 I/O를 지원 장치에 즉시 제출하여 이를 제한하는 대상과 연결된 것으로 보입니다. 이것이 사실이라면 제한이 발생하는 메커니즘을 찾을 수 없습니다.
I/O 유입 속도를 늦출 수 있는 방법이 있습니까? 아니면 그렇지 않은 경우 장치의 응답성을 유지하기 위한 모범 사례가 있습니까? 아니면 처리 순서를 제안하시겠습니까?