3. x86 아키텍처와 관련된 질문들

3.1. 왜 내 컴퓨터에서 작동하지 않나요?

  1. Cyrix, AMD 등의 인텔외의 CPU에서 SMP 를 사용할수 있나요?

    짧은 대답: 아니요.

    긴 대답: 인텔은 APIC SMP안 에 대한 소유권을 주장 하고 있습니다. 그리고 위 회사들이 그 안을 사용하고 있지 않고 있습니다. (이것은 미래에 바뀔수 있겠지요). 사이릭스와 AMD는 소유권이 보호되지 않는 OpenPIC를 지원합니다만, 현재까지 그것을 사용하는 마더보드가 존재하지 않습니다.

  2. 왜 오래된 내 Compaq 에서 작동하지 않나요?

    MP1.1/1.4 호환 모드로 맞추어 놓으세요.

    "Configure Hardware" -> "View / Edit details" -> "Advanced mode" (F7 일 겁니다.) "APIC mode" 설정에서 "full Table mode"로 합니다. 이것은 컴팩의 공식적인 권장사항 입니다.(Daniel Roesen)

    (Adrian Portelli)은 다음과 같이 했습니다 :

    1. 서버 부팅시 F10을 누르면 시스템 설정으로 들어갑니다.

    2. 엔터를 누르고 스플레쉬 화면을 지나갑니다.

    3. 재빨리 CTRL+A 를 누릅니다.

    4. "Advanced Mode" 설정 메세지가 나타날 것입니다.

    5. "Configure Hardware" -> "View / Edit details" 를 선택하고,

    6. 설정 화면이 나타나면

    7. "APIC Mode" 까지 스크롤 한다음 "Fully Mapped"를 선택합니다.

    8. 저장하고 리부팅합니다.

  3. 왜 ALR에서 작동하지 않나요?

    Robert Hyatt로부터: ALR Revolution quad-6 는 매우 안전해 보인다. 몇몇 오래된 revolution quad (P6 프로세서가 없는)는 불확실...

  4. 왜 SMP 가 느리죠? 또는 왜 한개의 CPU가 다른 CPU에 비해 매우 낮은 보고밉스 값을 나타내지요?

    Alan Cox 로 부터: 만약 프로세서들 중 하나의 보고밉스 값이 매우 낮다면, 캐쉬가 작동하지 않는것 입니다. 당신의 마더보드는 아마도 버그가 있는 BIOS를 사용하고 있을것입니다. 패치(BIOS 업그레이드?)를 하던지 돌려보내든지, 새로 사던지 하세요.

    2.0 커널 (> 2.0.36) 에서 MTRR 패치는 이 문제를 해결해 줄것입니다. (커널 설정에서 "Handle buggy SMP BIOSes with bad MTRR setup" 를 선택하세요).

    마지막 버젼의 2.2 대 커널들은 버그가 있는 SMP BIOS 문제를 알아서 처리할것 이라고 생각합니다.

  5. IBM 머쉰에서 문제들이 있다고 들었습니다.

    몇몇 IBM 의 EBDA 에서 MP1.4 bios 블럭을 가집니다. 이것은 허락되지만 2.2 커널 이하에서는 지원되지 않습니다.

    오래된 486SLC IBM SMP 박스에서 Linux/SMP 는 하드웨어 FPU 가 필요합니다.

  6. 인텔 MP 1.4가 1.1 규정에 비해 이점이 있나요?

    아뇨 (Alan 에 의하면 :) ), 1.4 는 stricker specs of 1.1 일 뿐이다.

  7. SMP 에서 왜 시계가 그렇게 빨리 가지요?

    2.0 대의 커널에서 알려진 문제이다, 2.2 대의 커널로 업그레이드를 고려해라.

    Jakob Oestergaard 로 부터: 또는, xntpd의 실행을 고려하세요. 이것은 당신의 시간을 정확하게 맞춰 줄겁니다. (커널에서의 RTC 지원도 이 현상을 막아준다라고 저는 생각합니다. 저의 경우 이것은 해당되었구요. 그러나 확실하지 않으므로 이것은 그저 행운일지도 모르지요.)

    이것을 예방할 수정이 2.2.x 대의 커널에 있었습니다.

  8. 왜 내 프로세서들의 번호가 0 과 1이 아닌 0 과 2 로 되지요?

    CPU 번호는 마더보드 제조업체들에 의해 할당되는 것이며, 이것은 아무 의미도 가지지 않습니다. 무시하세요.

  9. 내 quad-Xeon 시스템이 부팅시 정지됩니다.

    (Doug Ledford) LILO 를 LARGE_EBDA 지원하게 재컴파일 하십시요. 그리고 커널 빌드시 항상 make bzImage 로 하십시요. 이것은 인텔 다중 지온 보드의 SMP 부팅시 정지 를 막아줍니다. 그러나 이것은 LILO 에서 root= 옵션이 더이상 작동 하지 않습니다. 그러므로 확실히 rdev 로 당신의 커널이 정확한 루트 파티션을 사용하도록 해야 합니다.

    (Robert M. Hyatt) 3개의 CPU를 사용한다면, 네번째 소켓에 터미네이터가 있나요?

  10. 부팅시 IOAPIC 시그날과 함께 정지 됩니다.

    부팅 옵션에 "noapic" 를 넣거나(John Aldrich) 그리고(또는) "reboot=bios" 를 사용합니다. (Terry Shull).

  11. 내 시스템이 NFS에 많은 부하가 걸렸을때 정지 됩니다.

    커널 버젼 2.2.x 이상과 knfsd 패치를 사용 해보십시요. 이것은 현재 조사중입니다. (Wade Hampton)

  12. 내 시스템이 oops 메시지없이 정지 됩니다.

    만약 당신이 커널 2.2.11 또는 2.2.12를 사용하고 있다면 마지막 버젼의 커널을 사용하십시요. 2.2.13에서 몇가지 SMP 관련 패치가 있었습니다. 몇몇 사람들에게서 이 버젼(2.2.11 과 2.2.12)가 SMP 모드에서 안정적이지 않다는 보고가 있었습니다 (NFS 문제들도). 시리얼 콘솔을 사용해 커널의 oops 메세지를 캡춰해 볼수 있습니다. (Wade Hampton)

    계속 문제가 있다면(그리고, 다른 사항들 조차 도움이 되지 않았다면), 당신은 2.3 대의 커널을 시도해 볼수 있습니다. 이 버젼의 커널들은 더 많고, 강력한 SMP/APIC 코드를 가지고 있습니다. 그리고 automatic hard-lockup-prevention code 는 그저 조용히 멎어 (시스템이) 버리는 것이 아니라 쓸모있는 oopses 메세지를 남길것입니다. (Ingo Molnar)

    (Osamu Aoki) 가 : 당신은 또란 BIOS 와 관련된 모든 전력 절약 모드를 불가능하게 하게 해야합니다. 다음은 올바른 설정의 예입니다. (듀알 Celeron 466 / Abit BP6):
     POWER MANAGEMENT SETUP.
       ACPI:              Disabled
       POWER MANAGEMENT:  Disabled
       PM CONTROL by APM: No
    만약 절전 모드가 켜져 있다면, 무작위적인 시스템 다운이 일어날수 있습니다.

  13. 시스템 정지 디버깅

    이절은 Wade Hampton에 의해 씌여졌음.

    시스템 정지 디버깅의 좋은 수단은 Andrea Arcangeli에 의한 ikd 패치를 사용하는 것입니다. ftp://ftp.suse.com/pub/people/andrea/kernel-patches

    몇개의 디버깅 옵션이 있는데, soft lockup 옵션은 사용하지 마세요. 새로운 SMP 머쉰들은 NMI oopser상에서 커널 디버깅 옵션을 사용합니다. NMI oopser 의 작동 확인은 /cat /proc/interrupts 의 결과에 NMI 가 있는지 보면 됩니다. 이제 시스템이 정지되면 당신은 oops 메세지를 얻을수 있을것입니다.

    또한, %eip 옵션을 시험해 보아도 좋습니다. 이것은 커널이 커널 함수가 불려질때마다, 콘솔상으로 %eip 주소를 출력해 줍니다. 시스템이 정지될때, 다음 두번째 칼럼에 의한 첫번째 칼럼을 적어둔후, System.map 파일에서 그 주소를 찾아 봅니다. 이것은 콘솔모드에서만 할수 있습니다.

    또한 시리얼 콘솔은 커널 정지를 디버깅하는데 대단히 편리합니다. (단지 SMP 커널만이 아닌.)

  14. 로그의 "APIC error interrupt on CPU#n, should never happen" 메시지

    다음과 같은 메세지는
    APIC error interrupt on CPU#0, should never happen.
    ... APIC ESR0: 00000002
    ... APIC ESR1: 00000000
    잘못된 체크섬 에러를 가르킵니다. 이것은 리눅스(하드웨어 체크섬 부분의 APIC 메세지)에 기인할수 없습니다. 이것은 추가(주변 기기?) 하드웨어에 의한 것일지도 모릅니다. 시스템의 불안정함이 보일때까지는 이것은 문제가 되지 않습니다. - APIC 메세지는 배달될때 까지 재시도 됩니다. (Ingo Molnar)

3.2. 충돌의 가능한 원인들

이번 장에서는 SMP 머쉰의 비정상적인 작동의 원인들을 찾을수 있을것이다. (Jakob �stergaard)

3.3. 마더보드 특정 정보

주의할점: 몇몇 많은 특정 정보는 다음 사이트에서 찾을 수 있다. 리눅스 SMP를 동작시킬 수 있는 마더보드

3.3.1. 마더보드에 알려진 문제들

  • 지금까지 알려진 것은 없다.

3.4. 저가의 SMP 리눅스 박스(듀얼 셀러론 박스)

(St�phane �colivet)

현재로 살만한 가장 저가의 SMP 리눅스 박스는 듀얼 셀러론 시스템이다. 그러한 시스템은 인텔에 따르면 공식적으로는 가능하지 않다고한다. 2세대 셀러론 (128kb L2 캐시)를 고려하는게 좋다.

3.4.1. 듀얼 셀러론 박스를 작동시키는게 가능할까요?

인텔에서부터의 공식적인 대답: 가능하지 않습니다, 셀러론은 SMP 모드에서는 작동할 수 없습니다.

현실적인 대답: 가능하지만 슬롯 1 프로세서에 대해 하드웨어 변경을 요구합니다. 변형은 Tomohiro Kawada의 페이지 듀얼 셀러론 시스템 에서 확인할 수 있다. 물론, 이러한 종류의 변형은 제품에 대한 보증을 기대하지 말아야 한다. 몇몇 셀러론의 버젼들은 370 소켓 포맷에 적용이 가증하다. 그러한 경우에 변형은 슬롯 1 어댑터에 소겟 370 위에서 이루어 질 수도 있고 SMP 사용에 맞추어서 미리 만들어진채로 팔리기도 한다. (Andy Poling, Hans - Erik Skyttberg, James Beard)

두개의 셀러론을 소켓 370 포맷으로 집어넣는 마더보드(ABIT BP6)가 있습니다. (Martijn Kruithof, Ryan McCue). ABIT 컴퓨터 BP6는 테스트를 해봤으며 듀얼 ppga 소켓 370 을 이용 리눅스에 적용했다. (Andre Hedrick).

3.4.3. 셀러론 프로세서들은 쉽게 오버클럭을 할 수 있다고 알려져 있는데 듀얼 시스템도 가능한가요?

동작할 수 있습니다. 하지만 이러한 종류의 시스템을 오버클럭 한다는 것은 하나의 프로세서 시스템에서의 오버클럭만큼 쉽지 않습니다. 생산적인 시스템을 위해서는 그리 썩 좋은 생각은 아니다. 개인적인 사용을 위한 것이라면 듀얼 300A를 450Mhz 로 안정적으로 쓰고 있다는 보고가 있습니다.(많은 사람들이 보고 하고 있음)

3.4.4. 그리고 4개의 셀러론 시스템은 만드는 중인가요?

불가능 합니다. 셀러론 프로세서들은 펜티엄 II와 거의 같은 특성을 갖고 있기 때문이다. 만일 여러분이 여러분의 시스템에 2개 이상의 프로세서를 원한다면 여러분은 펜티엄 프로나 펜티엄 제온, 펜티엄 III(?)를 고려해야 할 것이다.

3.4.5. 셀러론과 펜티엄 II 프로세서와 섞어 쓰는 것은 어떤가요?

재사용이 가능한 셀러론 프로세서와 펜티엄 프로세서를 같은 환경에서 사용한다면 이론적으로 가능하다.

Alexandre Charbey가 그런 시스템을 만든 적이 있음:

  • Asus P2B-D motherboard, proc 1: Celeron 366, proc 2: Pentium II 400@266

  • 66Mhz and 75Mhz 버스 진동수

  • 가장 빠른 프로세서(셀러론의 경우에서)는 두번째 슬롯에 위치해 있어야 한다. 가장 빠른 프로세서와의 교체는 엄청난 실패를 가져온다.