WTFH

지리즈의 이미지

과욕이 사람잡는다고...

dualcore라도 명색이 smp라 apic으로 커널을 돌리고 있었습니다.
아주 간간히 nvidia 모듈에 apic에러가 나긴 하지만,
그래도 드물고 해서 그냥 써왔는데...

최근들어 firefox 돌릴때 apic에러를 뿜어 되면서
가끔씩 심각히 시스템이 버벅이는 현상이 발생하던 참에...
그간 고집을 버리고 커널옵션에 noapic 쳐넣고
부팅하고 10분 사용하면서
나도 모르게 입에서 WTFH 이 나오더군요.

시스템 반응속도가 전반적으로 1.5배 이상 빨라지고..
베릴을 쓰는게 아니라, 그냥 노이펙트의 kde를 쓰고 있는 느낌이...

그간 2년넘게 이렇게 사용해 왔다는 사실에...

과욕부리지 맙시다.

지리즈의 이미지

virtualbox도 날라다니는 군효.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

keizie의 이미지

말씀하신 개선 증상들은 모두 X의 동작인 걸로 보입니다. 그걸 시스템 전체의 성능 향상으로 보기에는 무리가 있지 않을까요?
단순히 그래픽 처리가 개선된 게 아니라고 할만한 개선 분야가 있다면 시스템 전체 성능의 향상이라고 볼 수도 있겠습니다.
APIC가 인터럽트 관리에 대한 거고 lapic과 ioapic으로 나뉜다고 하던데, /proc/interrupts의 CPU별 분포 변화라든가
디스크 입출력의 변화라든가 하는, 그래픽 처리 외의 다른 분야는 어떻게 바뀌었던가요?

지리즈의 이미지

NV(nvidia의 xorg 모듈)를 사용할 때는 이러한 문제가 없었으니까요.
그리고, 원문에도 언급했듯이 반응속도가 빨라진 것 뿐이고...
성능향상이 늘어난 것은 아니라고 보야 옳은 결론일 겁니다.

하지만, 보다 다른 결론을 이끌어 낼 수도 있다고 보입니다.
참고로 밑의 interrupts는
제가 noapic 커널 패러미터를 주기전에 비교를 위해 저장해 놓은 내용입니다.
비교해 보면, apic을 사용했을 때는 nvidia에 irq가 할당되지 않더군요.

apic 에러가 발생할 때 전체 시스템에 과부하가 걸리는 것처럼 순간적으로 버벅입니다.
어디까지나 재 생각이지만, 커널로그에 apic 에러가 기록되지 않더라도,
아주 작은 버벅임은 지속적으로 있지 않았나 하는 것이 재 생각입니다.
커널의 Hangcheck timer를 동작시키면, 단 1~2시간 사용하는 것으로
/var/log/message가 수십메가 바이트식 차기도 했으니,
그간 크고 작은 hang이 아주 많았다는 결론이 됩니다.
ps/2 마우스는 옳게 동작하지 않아서(마우스가 널뛰는 현상)
usb 마우스로 바꿔야 할 판이었으니까요.

사실상 컴퓨터의 동작에 었어서, 인터럽트에 의존적이지 않은 행위는 거의 없을 겁니다.
지속적으로 이러한 인터럽트에 작은 간섭현상같은 것들이 있었다면,
전반적으로 시스템의 성능저하가 약간은 있었을 것으로 판단됩니다.

지금은 이러한 현상이 다 사라졌습니다. 쾌적하네요.

zirize ~ # cat /proc/interrupts
           CPU0       CPU1
  0:     744159          0    XT-PIC-XT        timer
  1:          2          0    XT-PIC-XT        i8042
  2:          0          0    XT-PIC-XT        cascade
  3:          0          0    XT-PIC-XT        ohci_hcd:usb4
  4:       2141          0    XT-PIC-XT        ohci_hcd:usb2
  5:      25651          0    XT-PIC-XT        sata_sis, ehci_hcd:usb1, cx88[0]
  6:          5          0    XT-PIC-XT        floppy
  7:      37577          0    XT-PIC-XT        ohci_hcd:usb3
  8:          0          0    XT-PIC-XT        rtc
  9:          0          0    XT-PIC-XT        acpi
 10:    2913673          0    XT-PIC-XT        eth0, nvidia
 11:     113857          0    XT-PIC-XT        SiS SI7012
 12:          3          0    XT-PIC-XT        i8042
 14:      28886          0    XT-PIC-XT        ide0
 15:        100          0    XT-PIC-XT        ide1
NMI:          0          0
LOC:     744072     744043
ERR:          0
zirize ~ # cat interrupts
           CPU0       CPU1
  0:     262563   14476983   IO-APIC-edge      timer
  1:          0          2   IO-APIC-edge      i8042
  6:          0          6   IO-APIC-edge      floppy
  8:          0          0   IO-APIC-edge      rtc
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          0          3   IO-APIC-edge      i8042
 14:        179      30640   IO-APIC-edge      ide0
 15:          1        161   IO-APIC-edge      ide1
 16:     253864   79418689   IO-APIC-fasteoi   eth0
 17:      14559     774123   IO-APIC-fasteoi   sata_sis, cx88[0]
 18:      40268    2258716   IO-APIC-fasteoi   SiS SI7012
 20:        589      32486   IO-APIC-fasteoi   ohci_hcd:usb2
 21:      13378     719998   IO-APIC-fasteoi   ohci_hcd:usb3
 22:          0          0   IO-APIC-fasteoi   ohci_hcd:usb4
 23:       4895     306574   IO-APIC-fasteoi   ehci_hcd:usb1
NMI:          0          0
LOC:   14738517   14738488
ERR:         61

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

atie의 이미지

그리고 저도 나중에 보려고요.

$uname -r
2.6.24-8-generic
 
$cat /proc/interrupts
           CPU0       CPU1       
  0:   44980341   44962507   IO-APIC-edge      timer
  1:      38019      38196   IO-APIC-edge      i8042
  8:          4          3   IO-APIC-edge      rtc
  9:      77312      76694   IO-APIC-fasteoi   acpi
 12:        345        335   IO-APIC-edge      i8042
 14:     469279     468549   IO-APIC-edge      libata
 15:     947467     952191   IO-APIC-edge      libata
 16:   10821367   10818713   IO-APIC-fasteoi   uhci_hcd:usb1, nvidia
 17:          1          1   IO-APIC-fasteoi   ohci1394, sdhci:slot0
 18:          1          1   IO-APIC-fasteoi   uhci_hcd:usb5, ehci_hcd:usb6
 19:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
 20:    4331204    4319367   IO-APIC-fasteoi   uhci_hcd:usb2, HDA Intel
 21:          0          0   IO-APIC-fasteoi   uhci_hcd:usb3, ehci_hcd:usb7
216:          0          0   PCI-MSI-edge      iwl4965
217:    2604140    2606245   PCI-MSI-edge      eth0
NMI:          0          0   Non-maskable interrupts
LOC:   30744024   29976197   Local timer interrupts
RES:   51622953   52408724   Rescheduling interrupts
CAL:       1202       1522   function call interrupts
TLB:      49446      54349   TLB shootdowns
TRM:          0          0   Thermal event interrupts
SPU:          0          0   Spurious interrupts
ERR:          0
MIS:          0

----
I paint objects as I think them, not as I see them.
atie's minipage

----
I paint objects as I think them, not as I see them.
atie's minipage