리눅스 프로젝트 중인데 질문입니다 ㅜㅜ


Raspberry Pi를 사용해서 1분 간격으로 L1 cache miss rate 을 화면에 출력하고 cache miss rate가 50 퍼센트를 넘기면 LED 전구를 키려고합니다.

LED 전구는 GPIO 사용해서 킬건데 임의로 L1 cache miss rate를 어떻게 소스코드로 50프로 이상 올려야되는지가 어떻게 해야할지 의문입니다... 하루종일 구글링했는데 잘 안나오네요...

그리고 perf나 valgrind 쓰면 L2는 나오는데 L1 은 안나오고 I1 같은건 나옵니다... L1은 어떻게 해야 출력할수 있는건가요? 또 간격을 1분씩 주려면 어떻게 해야 할까요.

고수님들 답변 부탁드립니다. 커널쪽은 처음이라 많이 어렵네요 ㅜㅜ

  • 2016년 03월 19일에 작성됨

  • L1 cache의 miss가 50% 까지 날 수 있을지 잘 모르겠네요. L2 캐쉬는 데이터가 큰 파일을 읽거나 하면 50%를 넘는 경우도 발생하는데...    허대영(Daeyoung Heo)   2016.3.19 09:58     
  • 답변 정말 감사드립니다. 만약에 그럼 L2캐쉬 miss rate를 임의로 50프로 넘기게 하려면 어떻게 해야할까요?    hsyoon702   2016.3.19 10:35     
조회수 292


1 답변


좋아요
1
싫어요
채택취소하기

https://hashcode.co.kr/questions/1521 참고

다음 명령은 perf를 통해서 얻을 수 있는 측정값 목록입니다.

perf list

그중 perf 에서 다음 항목이 L1 cache 입니다.

L1-dcache-loads
L1-dcache-load-misses
L1-dcache-stores
L1-dcache-store-misses
L1-dcache-prefetches
L1-dcache-prefetch-misses
L1-icache-loads
L1-icache-load-misses
L1-icache-prefetches
L1-icache-prefetch-misses

perf <perf 명령어> -e <측정 항목,...> <실행명령어>

간단한 perf 명령어

  • stat : 통계 처리 결과 출력
  • list : 측정 목록 보여주기
  • record : 측정하여 파일로 저장하기. 기본 저장 파일 perf.data

예시

perf stat -e  L1-dcache-loads,L1-dcache-load-misses ls

위 예는 ls 명령의 L1 캐쉬 측정값을 출력해줄겁니다.

참고

  • icache 는 명령어(Instruction) Cache 의 약자
  • dcache 는 데이터(Data) Cache 약자

반복적으로 명령실행하는 방법

watch -n <N초> <반복할 명령어>

앞의 perf 명령 구문을 반복할 명령어 구문에 쓰고, N을 60으로 하면 1분마다 반복하겠습니다.

  • 2016년 06월 01일에 수정됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.
  • 2016년 03월 19일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.

  • 답변 정말 감사드립니다. 만약에 그럼 L2캐쉬 miss rate를 임의로 50프로 넘기게 하려면 어떻게 해야할까요?    hsyoon702   2016.3.19 10:36     
  • 한번 wc(워드카운트) 명령어를 사용하여 2M 이상의 크기에 적용하여 LLC-loads,LLC-load-misses를 비교해보세요. L2 캐쉬보다 큰 크기의 파일을 처음부터 끝까지 읽게 하면 cache-miss가 증가할 수 밖에 없습니다. 그리고 여러개의 프로세스가 바쁘게 동작(동시에 실행)하고 있다면, 그것도 cache-miss가 증가하게 될겁니다.    허대영(Daeyoung Heo)   2016.3.19 10:53     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close