![성능 오류: 25를 사용하여 mmap할 수 없습니다(장치의 ioctl이 부적절함).](https://linux55.com/image/59614/%EC%84%B1%EB%8A%A5%20%EC%98%A4%EB%A5%98%3A%2025%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20mmap%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4(%EC%9E%A5%EC%B9%98%EC%9D%98%20ioctl%EC%9D%B4%20%EB%B6%80%EC%A0%81%EC%A0%88%ED%95%A8)..png)
3.8 Linux 커널이 설치된 시스템에서 perf를 사용하려고 합니다. 다음 명령을 사용하면 오류가 발생합니다.
$ perf record -c 100000 -e '{cycles,instructions}:S' ./nonloop 1000
failed to mmap with 25 (Inappropriate ioctl for device)
nonloop: Terminated
누구든지 이 문제를 해결하는 방법을 말해 줄 수 있나요?
답변1
:S가 문제인 것 같습니다.
성능 기록 -c 100000-ecycles, 명령 ./somebin
잘 달리고 있어요. :S란 무엇인가요?
실행할 때 비슷한 오류가 표시됩니다.
sudo 성능 기록 -esyscalls:sys_enter -p $(pidof some_bin) 22(잘못된 매개변수)를 사용하여 매핑할 수 없습니다.
그중 perf 목록에서는 syscalls:sys_enter를 사용할 수 있어야 한다고 제안합니다.