Unaligned Trap 삽질기...

글쓴이: 익명 사용자 / 작성시간: 금, 2000/08/11 - 4:02오후
알파 시스템에서 netkit-base를 0.16에서 0.17로 올렸더니
IP를 xxx.xxx.xxx.112쓸때는 정상이다가 xxx.xxx.xxx.236을
쓰니 ping이 안되더군요...
netmask는 255.255.255.192로 해서 64개씩 클래스가 잡혀
있습니다.
30분동안 네트웍 세팅 바꾸어보다가 dmesg한번 쳐 보니까
ping에서 이게 잡히더군요.
ping(nnnn) unaligned trap xxxxxx......
이거 정말 오래간만에 보는 메시지입니다.
x86아키텍쳐에는 없는 예외상황이죠...
이거 해결해야 하나, 아니면 그냥 0.16으로 내리고 써야하나...
그냥 내려버리면 쉽기는 하지만 왠지 해결해 보고 싶은
생각이 불현듯 드는군요...
계속 삽질해 봐야겠습니다.
from Marzio Lee
Forums:
Re: Unaligned Trap 삽질기...
unaligned Trap이 발생하는 상황은 대부분 x86의 32bit
아키텍쳐에서 작성된 코드를 64bit로 컴파일할때 align이 안되
는 것이죠.
그렇지만 이게 발생한다고 해서 프로그램이 안도는 경우는 거의
없읍니다. 즉, unaligned trap이 발생하는 상황은 error가
아니라 warning인 경우죠.
이걸 없애는 방법은 소스코드를 일일이 고쳐서 align이 되도록
하는 방법(현실적으로 거의 불가능하지요)이 제일 좋고 동작에
지장이 없다면 kernel 소스에 보면 (grep을 하세요) printk
라는 function에서 이걸 프린터 하도록 되어 있읍니다.
네트웍에서 unaligned trap이 발생하면서 잘 안되는 경우는
clock세팅과 맞지 않을 경우가 대부분입니다. 즉, hwclock의
세팅이 bit불일치로 인해 ping의 time계산이 완전히 개판이
되는 거죠. 일단 확인해보실 것이 시스템의 시간이 정확히
나오는 거냐 하는 겁니다. 즉, 부팅후 타임서버와 sync하기전에
2048년 어쩌고 하는 식으로 나온다면 대부분 ping에서
unaligned trap을 내면서 동작이 안되는 경우가 많았읍니다.
# hwclock -D
를 한번 해보세요. 만약 뭔가 이상하다면 date명령으로 시간을
제대로 맞춘다음에
# hwclock --systohc 를 해보세요.
안되면 할 수 없지만요...
삽질은 줄어야 합니다.