‘linux’ 태그의 글
6편 RSS로 구독
6편
O_DIRECT 정렬 요구사항, 추측하지 말고 statx로 묻기
Linux O_DIRECT의 버퍼 주소·오프셋·길이 정렬은 파일시스템과 커널마다 다릅니다. Linux 6.1의 STATX_DIOALIGN, 6.14의 STATX_DIO_READ_ALIGN으로 값을 얻고 stx_mask를 확인하는 방법을 정리합니다.
strace에 clock_gettime()이 안 보이는 이유: 리눅스 vDSO
프로그램은 분명 clock_gettime()을 부르는데 strace에는 안 나올 때가 있습니다. 리눅스 커널이 프로세스에 넣어 주는 vDSO가 무엇이고, 추적 결과를 어떻게 읽어야 하는지 정리합니다.
CPU affinity를 0-7로 걸었는데 2-3에서만 돈다: 리눅스 cpuset이 마스크를 줄이는 방식
sched_setaffinity로 넘긴 CPU 마스크는 cpuset/cgroup이 허용한 CPU, 실제로 있는 CPU와의 교집합으로 조용히 줄어듭니다. 실제 허용 범위를 확인하는 방법과 EINVAL을 진단하는 순서를 man 페이지 기준으로 정리합니다.
perf c2c로 false sharing 찾기: 캐시 라인 하나를 두고 다투는 코드 읽는 법
스레드를 늘렸는데 빨라지지 않을 때 의심할 false sharing을 Linux perf c2c로 찾는 방법. 기록과 리포트 옵션, 오프셋 읽기, CPU별 지원 차이와 완화책까지 공식 문서 기준으로 정리했습니다.
Linux 커널 rbtree: 비교 함수를 저장하지 않고 노드를 구조체에 넣어 쓰는 레드-블랙 트리
Linux의 레드-블랙 트리는 비교 함수를 저장하지 않습니다. 노드를 구조체에 넣는 방식, 직접 쓰는 검색·삽입 루프와 호출마다 비교 함수를 받는 도우미, 색 비트, cached·augmented 트리, 락 없는 조회의 한계를 v6.17 소스로 정리했습니다.
리눅스 minor·major 페이지 폴트: ru_minflt와 ru_majflt가 세는 것
리눅스 getrusage의 ru_minflt와 ru_majflt는 페이지 폴트를 I/O 필요 여부로 나눕니다. 두 숫자가 세는 것과, major 폴트 수를 디스크 읽기 횟수로 읽으면 안 되는 이유를 man-pages 6.19 기준으로 정리합니다.
찾는 글이 없습니다. 다른 낱말로 검색해 보세요.