CRASH UTILITY · VMCORE · SLUB · EVIDENCE

vmcore의 SLUB 점유: 객체가 많다고 누수가 증명되지는 않습니다

kmem과 search가 보여 주는 사실, 아직 모르는 소유자, 다음에 필요한 수명 증거를 나눕니다.

ALLOCATED는 누적 호출 횟수가 아닙니다

crash의 kmem -s에서 ALLOCATED는 해당 덤프 시점에 할당 상태인 캐시 객체 수로 읽습니다. 한 객체를 반복 할당·해제한 횟수가 아닙니다. 객체 크기와의 곱은 명목 객체 점유 계산이며 slab의 여유 공간·관리 정보까지 포함한 전체 비용과 구분합니다.

crash kmem 도움말

공개 사례는 조사 출발점이지 원인 확정이 아닙니다

Austin Kim의 공개 기사는 Raspberry Pi 4의 Linux 5.15.74-v8+ 덤프에서 kmalloc-256의 ALLOCATED=12,438,464를 제시합니다. 그 값에 256을 곱하면 약 2.97 GiB입니다. 여기서는 저자가 공개한 출력에 대한 산술로만 사용합니다. 원본 vmcore·동일 빌드 심벌로 수치를 재현한 결과가 아닙니다.

큰 점유는 조사할 이유지만 한 시점만으로 계속 증가하는 누수나 해제를 놓친 모듈을 확정하지 않습니다. OOM 스택에서 마지막 할당을 시도한 경로와 그전에 객체를 보유한 주체도 같다고 단정할 수 없습니다.

Austin Kim의 원기사

심벌·덤프 범위·사전 추적을 함께 남깁니다

분석한 커널 빌드와 vmlinux·module 심벌을 맞추고 dump 필터로 빠진 영역을 기록합니다. 작업량과 시간에 따른 점유 변화, 종료 경로에서 참조가 줄어드는지 확인합니다. SLUB의 U 추적 같은 기능은 지원·사전 활성화 조건과 비용이 있으며 이미 사라진 과거 할당 이력을 나중에 켜서 복원하지 못합니다.

기존 SLUB 글의 Linux 6.18.37 구현과 위 5.15 사례는 서로 다른 버전입니다. 이 글은 명령의 해석 경계를 설명하며 덤프 실행, 원본 표지 이미지 검증, 특정 누수 수정 완료를 주장하지 않습니다.

kdump와 분석 준비

SLUB 추적 설정과 비용