[완료]랜카드 IRQ를 바꾸고 싶습니다.

dnacho의 이미지

제 시스템에서 IRQ를 보면, (SuSE 에서 KDE사용중입니다)

------------------------------------------------------------

CPU0 CPU1
0: 2302 1110910 IO-APIC-edge timer
1: 0 207 IO-APIC-edge i8042
5: 0 0 IO-APIC-edge parport0
8: 0 53 IO-APIC-edge rtc
9: 0 0 IO-APIC-level acpi
12: 756 350534 IO-APIC-edge i8042
14: 110 50931 IO-APIC-edge ide0
15: 79 39682 IO-APIC-edge ide1
209: 9 1044 IO-APIC-level HDA Intel
217: 188 283422 IO-APIC-level eth1, nvidia <-----여기만 두 개가!!(현재 eth0은 안쓰고 eth1로 VDSL 이용중입니다)
225: 0 0 IO-APIC-level ehci_hcd:usb1
233: 0 0 IO-APIC-level ohci_hcd:usb2
NMI: 0 0
LOC: 1113085 1113042
ERR: 1
MIS: 0

-------------------------------------------------------------

아뭏든 ifconfig에서 collision은 0이라고 뜨는데요.. 인터넷도 잘되고-사실 약 7~8일 간격으로 접속이 불안정해 지는데 이걸 없에는 과정중에 있습니다(초보입니다)
저렇게 두개가 나란히 있어도 괜챃은 것인지, 바꾸는게 좋다면 바꾸는 방법을 알고 싶습니다. 과정이 좀 길다면 간단한 힌트만 주셔도 감사하겠습니다.

warpdory의 이미지

eth0 는 메인보드 내장 랜카드일 것이고,
eth1 은 pci 카드 형태로 pci 슬롯에 꽂은 것일텐데..

pci 슬롯을 바꿔서 꽂아 보세요. 그럼 보통 거의 해결 됩니다. - 다른 하드웨어와 충돌할 가능성도 있으니 몇번 바꿔 보셔야 할지도 모릅니다.
cmos setup 으로 들어가서 보드 내장 랜카드를 disable 시키는 것도 한가지 방법이 될 수 있습니다.

---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.
http://akpil.egloos.com


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

mrjh76의 이미지

PC에서 IRQ는 16개(?)로 한정적입니다.
하지만,,, 각종 주변기기들이 IRQ를 필요로 함에 따라서...
하나의 IRQ를 공유해서 사용하도록 디바이스 드라이버들이 작성됩니다.
즉, 같은 IRQ를 쓰더라도 식별자를 부여하여 구별하므로, 아무런 문제가 없습니다.
드라이버가 IRQ를 공유하지 않도록 작성되었다면, IRQ가 바뀌도록 해야겠지만... 이런일은 거의 없습니다.

또 자세히 보시면... 인터럽트가 200이 넘게까지 보이실겁니다... 어차피 다... 가상이니...

IRQ 공유가 문제의 원인은 아닌것으로 보입니다!

bushi의 이미지

식별자를 사용하여 shared IRQ 를 구별한다는 것은 사실과 다릅니다.
linux-2.4/2.6 모두 마찬가지며, shared IRQ 건 뭐건 기본적으로 아래처럼 동작합니다.

    do {
        ret = action->handler(irq, action->dev_id);
        if (ret == IRQ_HANDLED)
            status |= action->flags;
        retval |= ret;
        action = action->next;
    } while (action);

shared IRQ 발생시 리스트에 있는 모든 isr 이 등록된 순서대로 호출됩니다.
각 isr 들이 칩이나 컨트롤러의 상태 레지스터등을 검사해서 처리해야 할 일이 있다면 할 뿐입니다.

사실상 interrupt 발생 시점에서 isr 들 중의 어느 것을 호출할 것인지 결정하는 것은 기술적으로도 불가능합니다.
굳이 한다면

      if (action->check_if_irq(irq, action->dev_id))
           ret = action->handle(irq, action->dev_id));

비슷하게 되겠지만, 결국 각 isr 이 자체적으로 검사해서 일 있으면 처리하는 것과 별반 다를게 없습니다.

각 드라이버가 irq 여부를 검사하는 게 아니라 core 수준에서 구분할 수 있다면, shared IRQ 라는 것 자체가 필요없게 됩니다. virtual IRQ 로 래핑하면 되고, 실제로 래핑할 수 있는 설비도 이미 커널에 구현되어 있으며, h/w 적으로 구분할 수 있는 경우엔 이 설비를 사용하고 virtual IRQ 번호가 할당됩니다.

OTL

질문드린이 입니다의 이미지

어제부터 리눅스 네트웍에 대한 글을 보고 있는데, 처음에 cat /proc/interrupts로 충돌을 체크하고 시작하더군요. 책과는 좀 달라 '깜작놀라' 질문드렸습니다. 하여튼 '식별자'를 사용한다는 것을 알았으니 안심입니다^^. 그런데 저 nvidia랑 eth1은 eth0(온보드 카드-MCP51이라는-인데 제 웬수입니다)을 꺼도 항상 같이 다니더군요. 아마 그 슬롯에 설치하는 순간 고착된것이 아닌가 생각됩니다. 시험삼아 다른 슬롯으로 바꿔봐야 겠습니다. 감사합니다^^

dnacho의 이미지

http://www.homenethelp.com/web/howto/irq-sharing.asp

보니깐 윈도우즈 FAQ같기는 한데, 하여튼 여기를 보면.. 기본적으로 IRQ쉐어링이 유효한 것이기는 하지만, 종종 NIC은 독자적인 IRQ가 필요한 경우가 있다.. 라는 문장이 있고..

<인용 1> Your computer ‘should’ be able to share IRQ’s between cards but often, network cards like their own IRQ.

특히 PCI 1 에 끼우지는 말라고 하는데, 전 정확히 그걸 했네요.

<인용 2> According to Microsoft, placing your NIC in PCI slot 1 is bad news. You will probably end up with a NIC sharing an IRQ with your video card.

정확히 저의 경우네요.. 역시 같은 X86이라 그런건지 FAQ도 쉐어링이 된다는...

가장 일반적인 해결방법은 맨 윗분 말씀처럼 '이주'하는 것이군요^^

중복되는 답이긴 하지만, '재미'로 끄적여 봤습니다.

dnacho의 이미지

http://www.homenethelp.com/web/howto/irq-sharing.asp

보니깐 윈도우즈 FAQ같기는 한데, 하여튼 여기를 보면.. 기본적으로 IRQ쉐어링이 유효한 것이기는 하지만, 종종 NIC은 독자적인 IRQ가 필요한 경우가 있다.. 라는 문장이 있고..

<인용 1> Your computer ‘should’ be able to share IRQ’s between cards but often, network cards like their own IRQ.

특히 PCI 1 에 끼우지는 말라고 하는데, 전 정확히 그걸 했네요.

<인용 2> According to Microsoft, placing your NIC in PCI slot 1 is bad news. You will probably end up with a NIC sharing an IRQ with your video card.

정확히 저의 경우네요.. 역시 같은 X86이라 그런건지 FAQ도 쉐어링이 된다는...

가장 일반적인 해결방법은 맨 윗분 말씀처럼 '이주'하는 것이군요^^

중복되는 답이긴 하지만, '재미'로 끄적여 봤습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.