sata_sil + Seagate SATA HD problem
꽤 오래 전에 했던 삽질인데, 앞으로의 미디어 정리 프로젝트 진행을 위해, 정리해 둠.
Problem
현재 www.lastmind.net이 동작하고 있는 machine인 athlon64 machine에 SATA HDD를 꽂고, 데이터를 복사하기 시작하니까 kernel이 hang 되기 시작했다.
문제 재발생/확인은 여러가지 loop 테스트 (CPU/memory/disk)로 했고, /var/log/messages에서 disk I/O 오류를 확인하고, linux kernel의 sysrq debugging을 켜서 disk I/O 관련 루틴에서 hang 되는 것을 확인하였다.
더불어 검색을 통해, 다음과 같은 호환성 문제를 확인하였다.
http://www.uwsg.iu.edu/hypermail/linux/kernel/0404.3/1364.html
http://www.ussg.iu.edu/hypermail/linux/kernel/0406.3/0666.html
즉, 내 nForce2 보드에 들어있는 Silicon Image SATA controller와 sata_sil driver, Seagate 160GB SATA Hard Disk 사이의 문제…
Solution?
kernel 버전을 2.6.8-rc1까지 올려보았으나, 해결되지 않았다. 현재는 Hard Disk를 떼서 Windows machine에 물려놓고, samba로 연결해서 사용중이다. 앞으로 athlon64 machine에 Hard Disk를 추가할 때는 Seagate SATA를 선택하지 않는 것이 간단한 해결책이겠지만, 그래도 Seagate가 성능/소음 면에서 가장 만족스럽기 때문에, 가능하다면 Seagate를 고르고 싶다. (현재 stable이 2.6.9이니 테스트해볼까… 하지만, ChangeLog에 sata_sil 관련 fix는 보이지 않는다.)
사실 전에도 linux와 하드웨어 간의 호환성을 고려하지 않고 하드웨어를 선택해서 곤욕을 치른 적이 있었는데, 비슷한 것을 이번에도 또 반복했다. (요즘에 워낙 지원이 잘 되다보니 … 고려하지 않은 면도 있다.) SATA controller들은 비교적 최근에 추가된 하드웨어이다보니 리눅스에서 잘 지원되지 않거나 문제가 발생하는 경우가 많으니, 리눅스 machine을 고려중이라면, SATA 쪽은 재고해보거나, 호환성 문제를 잘 확인하고 선택하는 것이 바람직하리라고 본다.
다음은 문제 해결(?)에 많은 도움이 되었던 tj형과의 대화 발췌.
tj. doom III this summer, prep for upgrades 님의 말:
우선 콘솔 모드로 부팅해보고
tj. doom III this summer, prep for upgrades 님의 말:
커널 뷜드할 때 debug에 가면 sysrq어쩌고 있거든
tj. doom III this summer, prep for upgrades 님의 말:
그거 켜고 멈췄을 때 ctrl-alt-break-? 치면 도움말 나오고 어디서 멈춰있는 지 알 수 있거든
[세라비/회사] WTL on sf.net! 님의 말:
네
tj. doom III this summer, prep for upgrades 님의 말:
NMI watchdog도 켜고
[세라비/회사] WTL on sf.net! 님의 말:
넵
tj. doom III this summer, prep for upgrades 님의 말:
커널 문제면 보통 그런걸로 찾을 수 있고 아니면 뭔가 하드웨어상의 문제일 듯..
[세라비/회사] WTL on sf.net! 님의 말:
넹 T_T
[세라비/회사] WTL on sf.net! 님의 말:
SATA 달았는데 그것때문인가 ㅎ
tj. doom III this summer, prep for upgrades 님의 말:
우선은 빌드할 때 안 쓰는 옵션은 다 끄고 빌드해
tj. doom III this summer, prep for upgrades 님의 말:
드라이버들
tj. doom III this summer, prep for upgrades 님의 말:
별로 상관은 없겠지만 하여간 커널 버그면 저런걸로 대충 나와
tj. doom III this summer, prep for upgrades 님의 말:
시퓨 온도도 측정해보고 무한 룹 돌리는 거 한참 해보고 그러다보면 알겠지 뭐
[세라비/회사] WTL on sf.net! 님의 말:
아 안그래도 무한룹 해보는 중
[세라비/회사] WTL on sf.net! 님의 말:
음 INT32_MAX에 도달하는데도 꽤 걸리네요 한 1-2초?
tj. doom III this summer, prep for upgrades 님의 말:
아 INT32_MAX면 2G인걸 -_-;
[세라비/회사] WTL on sf.net! 님의 말:
아 10초 정도군
tj. doom III this summer, prep for upgrades 님의 말:
그리고 룹안에 뭔가 좀 길게 넣어놔
tj. doom III this summer, prep for upgrades 님의 말:
그냥 계속 점프만 하는 건
[세라비/회사] WTL on sf.net! 님의 말:
넹
tj. doom III this summer, prep for upgrades 님의 말:
시퓨가 별로 하는 일이 없어서 열이 많이 안날거야
tj. doom III this summer, prep for upgrades 님의 말:
int/float이런거 섞어서 길게.. 서로 디펜던시 없게 가득 차서 돌게