FreeBSD 10.3-RELEASE 서버에서 일부 커널 페이지 오류(Fatal Trap 12)가 발생했습니다. 이는 몇 밀리초의 가동 시간부터 며칠의 가동 시간까지 어디에서나 발생합니다. 현재 프로세스는 항상 다릅니다(pagedaemon, pkg, find).
온라인에서 읽은 후 대답은 하드웨어 오류를 가리키는 것 같습니다. 내 질문은 결함이 있는 하드웨어가 커널 수준 페이지 오류에서 정확히 어떻게 나타나는가입니다. 하드웨어 오류로 인해 커널 패닉이 발생하지 않고 더 자세한 설명 정보를 제공하지 않는 이유는 무엇입니까?
업데이트: 아래 Bob의 게시물을 기반으로 하드웨어 테스트를 수행했습니다. 내 메모리 스틱은 끔찍합니다. 나는 이것을 결정하기 위해 memtest를 사용했습니다.
답변1
커널 패닉은 소프트웨어에서 감지한 오류이거나 커널 코드에서 발생하고 커널에 의해 감지되는 일종의 하드웨어 트랩입니다. 커널이 할 수 있는 유일한 안전한 일은 패닉(즉, 자발적인 중지)입니다. 이는 커널이 잘못된 메모리 내용을 코드로 실행하게 하는 불량 메모리 또는 커널이 잘못된 데이터를 가져오게 하여 일부 오류나 감지된 불일치를 유발하는 불량 메모리로 인해 발생할 수 있습니다.
커널 수준 페이지 오류는 잘못된 커널 데이터로 인해 발생합니다. 커널이 존재하지 않는 페이지에 액세스하려고 시도하는데, 이는 아마도 메모리에서 얻은 잘못된 주소를 사용하기 때문일 수 있습니다. 이 경우 커널은 잘못된 주소를 사용했다는 것만 알 수 있습니다. 디버거로 코드를 추적하여 어떻게 시작했는지에 대한 단서를 얻을 수 있지만 여러 원인을 만나기 전에는 아주 멀리 돌아갈 수는 없습니다.
결론은 커널 수준의 페이지 오류가 발생하면 하드웨어를 테스트하는 것뿐입니다.