IDE 하드의 DMA 불가 현상

0
points

컴팩 프로라이언트 ML-370 G2 모델에 SCSI 하드 18G 의 용량부족으로 IDE 에 80G 하드를 설치하였는데,
IDE 하드의 읽고 쓰는 속도가 많이 느려서 hdparm -tT /dev/hda 확인결과 IDE 읽기 속도가 3.51MB 라는 놀라운 결과(ㅡ,.ㅡ;;) 를 얻음.
그래서 cat /proc/ide/ide0/hda/setting 해본결과

인용:

[root@ai hda]# cat settings
name value min max mode
---- ----- --- --- ----
acoustic 0 0 254 rw
address 1 0 2 rw
bios_cyl 9729 0 65535 rw
bios_head 255 0 255 rw
bios_sect 63 0 63 rw
breada_readahead 8 0 255 rw
bswap 0 0 1 r
current_speed 12 0 70 rw
failures 0 0 65535 rw
file_readahead 124 0 16384 rw
init_speed 12 0 70 rw
io_32bit 1 0 3 rw
keepsettings 1 0 1 rw
lun 0 0 7 rw
max_failures 1 0 65535 rw
max_kb_per_request 128 1 255 rw
multcount 16 0 16 rw
nice1 1 0 1 rw
nowerr 0 0 1 rw
number 0 0 3 rw
pio_mode write-only 0 255 w
slow 0 0 1 rw
unmaskirq 0 0 1 rw
using_dma 0 0 1 rw
wcache 0 0 1 rw

이러네요..
그래서 원래 하드웨어가 지원을 안하는가? 하고 부팅메시지쪽을 뒤졌더니
인용:

niform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
SvrWks OSB4: IDE controller at PCI slot 00:0f.1
SvrWks OSB4: chipset revision 0
SvrWks OSB4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x2800-0x2807, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x2808-0x280f, BIOS settings: hdc:pio, hdd:pio
hda: ST380011A, ATA DISK drive
hdb: Compaq CRD-8402B, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: attached ide-disk driver.
hda: host protected area => 1
hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63

이럽니다.. 하긴하는것 같은데...

커널 컴파일할때 특별히 이부분에서 신경써줘야하는 것인 있나요?

warpdory의 이미지
51014
points

커널 컴파일 하실 때... 칩셋 설정 부분에서 serverworks 를

0
points

커널 컴파일 하실 때... 칩셋 설정 부분에서 serverworks 를 모듈 말고 * 로 체크하시면 될 겁니다.

hdparm 으로 옵션을 변경해봐도 변경이 되지 않는데, 커널에 모듈을

0
points

hdparm 으로 옵션을 변경해봐도 변경이 되지 않는데, 커널에 모듈을 포함시킨다고 될까요?
한번 해볼까요? ^^

warpdory의 이미지
51014
points

[quote="wontagi"]hdparm 으로 옵션을 변경해봐도 변경이

0
points

wontagi 씀:
hdparm 으로 옵션을 변경해봐도 변경이 되지 않는데, 커널에 모듈을 포함시킨다고 될까요?
한번 해볼까요? ^^

hdparm 은 말 그대로 파라미터 바꾸는 정도입니다. 커널에 드라이버 자체가 안 들어가 있다면 쓰나 마나하지요.

그런데, dmesg 메시지로 봐서는 서버웍스 칩셋 드라이버가 커널에 박힌 것 같은데... .. 어쩌면 케이블 문제일 수도 있습니다. 즉, ATA100 이나 ATA133 용 케이블이 아니라 구형 EIDE 용 케이블을 그냥 쓰면 저렇게 되거든요.

하긴 케이블이 구형이긴 한데...보드가 꼬져서 분리하기가 영 힘들어서

0
points

하긴 케이블이 구형이긴 한데...
보드가 꼬져서 분리하기가 영 힘들어서 그냥 놔두었는데...
만약 그런거라면 낭팬데...

컴파일 했던 옵션을 다시 봤더니 이미 커널에 착실하게 넣어놨었네요...

0
points

컴파일 했던 옵션을 다시 봤더니 이미 커널에 착실하게 넣어놨었네요...

그럼 문제는 케이블이란 건가? ㅡ,.ㅡ;;

저놈의 고물딱지를 한번 뜯어?

ㅡ,.ㅡ;;케이블을 고생고생해서 갈아봤지만 별효과 없습니다.그래도

0
points

ㅡ,.ㅡ;;
케이블을 고생고생해서 갈아봤지만 별효과 없습니다.
그래도 좀전에 hdparm 으로 테스트 해서 3.5 MB/sec 정도 나왔던게 이번에는 4.2 MB/sec 정도 나오네요..
대충이걸로 만족해야하는건가요? 누가 답변좀~~~

허접의견입니다.[quote] ide0: BM-DMA at 0x28

0
points

허접의견입니다.

인용:

ide0: BM-DMA at 0x2800-0x2807, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x2808-0x280f, BIOS settings: hdc:pio, hdd:pio

Booting시에 BIOS 설정은 어떻게 하신것인지...
PIO 모드로 되어 있는데 그걸 바꾸는것이 BIOS Setting에 있는것 같은 기억이 있습니다.
MODE를 AUTO로 해 두면 알아서 UDMA MODE 로 바뀌는 듯 하던데 그부분도 확인해 보시면 도움이 되지 않을까 해서 적어 보았습니다.

결국은 BIOS 쪽의 문제인거 같습니다.근데 문제는 BIOS 쪽에

0
points

결국은 BIOS 쪽의 문제인거 같습니다.

근데 문제는 BIOS 쪽에 IDE 관련 설정부분이 하나도 없다는게 문제입니다.

그래서 내일 서비스 센터에 전화해서 물어볼렵니다. 어떻게 모드를 바꾸는지...

잘 되면 내일 결과를 말씀드리겠습니다. ^^

cinsk의 이미지
11955
points

예전에 비슷한 문제를 겪었었는데, 혹시 IDE chipset driver

0
points

예전에 비슷한 문제를 겪었었는데, 혹시 IDE chipset driver가 올바른 것이 설치되었는지 확인바랍니다.

예전 제 보드가 Via82Cxxx chipset을 썼었는데, kernel compile option에 빠져 있었습니다. 이게 generic ide driver로 동작하면서, hdparm 등의 utility가 parameter를 제대로 설정하지 못하고, harddisk access도 느려졌었던 것 같군요.

소리의 이미지
1115
points

[quote="cinsk"]이게 generic ide driver로 동작

0
points

cinsk 씀:
이게 generic ide driver로 동작하면서, hdparm 등의 utility가 parameter를 제대로 설정하지 못하고, harddisk access도 느려졌었던 것 같군요.

저도 이런 상황을 본 적이 있습니다.
사용하시는 IDE 칩셋 드라이버를 built-in으로 포함시키시고, Generic PCI IDE Chipset Support 항목은 빼 주세요. 이 항목이 들어가 있으면 cinsk님의 말씀대로 generic driver가 사용되어버려 dma 등의 hdparm의 옵션 설정이 작동하지 않는 것 같습니다.
(참고로 generic/default IDE chipset support 항목을 말하는 게 아닙니다. 혹시나 혼동하실까봐 노파심에 덧붙입니다. ^^; )

ed.netdiver의 이미지
8140
points

오~ 그렇군요.저도 같은 현상을 겪었습니다.제 경우는 vaio c

0
points

오~ 그렇군요.
저도 같은 현상을 겪었습니다.
제 경우는 vaio c1에 FB를 설치해서 쓰려고 했는데, 한동안 괜찮은듯
보이다가 어느순간부터 dma access error message를 내뱉곤 하더니
더 있으면 system이 먹통이 되더군요.
hdparm인가 뭐였나 boot option을 바꿔서 쓰면 괜찮다는 검색결과를
보고 그대로도 해봤지만, 저역시 마찬가지였습니다.
바닥에 몇번 떨어진 이력도 있고 해서 아무래도 보드가 나갔나보다
싶어 한 두달째 방치해두고는 나중에 시간날때 고쳐보자 하고 있었는데
그게 아니었군요.^^;
좋은 정보들 얻고 갑니당^O^//

Fe.head의 이미지
8436
points

저도 그런데요.지금 회사 컴퓨터에서 그럽니다.리눅스 설치할

0
points

저도 그런데요.

지금 회사 컴퓨터에서 그럽니다.

리눅스 설치할려고 깔면

dma때문에 안됩니다.

via 칩셋이구요.

오늘한번 해봐야겠군요^^

Fe.head의 이미지
8436
points

그런데 질문하나.부팅할때 ide-generic 모듈을 안올리게 어

0
points

그런데 질문하나.

부팅할때 ide-generic 모듈을 안올리게 어떻게 옵션을 줘야하나요?

linux root=/dev/hda2 ro ???

부팅할때 DMA때문에 컴퓨터가 멈쳐버립니다.

cinsk의 이미지
11955
points

[quote="fehead"]그런데 질문하나.부팅할때 ide-ge

0
points

fehead 씀:
그런데 질문하나.

부팅할때 ide-generic 모듈을 안올리게 어떻게 옵션을 줘야하나요?

linux root=/dev/hda2 ro ???

부팅할때 DMA때문에 컴퓨터가 멈쳐버립니다.

Documentation/ide.txt를 보시면 도움이 될 것 같습니다.

Fe.head의 이미지
8436
points

[quote="cinsk"][quote="fehead"]그런데 질문하나.

0
points

cinsk 씀:
fehead 씀:
그런데 질문하나.

부팅할때 ide-generic 모듈을 안올리게 어떻게 옵션을 줘야하나요?

linux root=/dev/hda2 ro ???

부팅할때 DMA때문에 컴퓨터가 멈쳐버립니다.

Documentation/ide.txt를 보시면 도움이 될 것 같습니다.


답변 감사합니다.

위의 방법으로 해보고 옵션줘서 해봤는데. 결국 안됩니다.

그저 ide=nodma 할때만 부팅 가능하더군요.

커널 컴파일도 해봤는데도. dma 만 살려 놓으면 부팅조차 안됩니다.:x

회사에서 리눅스 쓰기는 포기 해야할듯하군요 :(

이놈의 via 메인보드

아니. 삼보 드림시스 오피스.. 징그럽군요.
윈도그는 잘만 도네.

까나리의 이미지
5859
points

제가 만져본 후지쯔 17GB E-IDE 하드 (2000년도 아는 사람이

0
points

제가 만져본 후지쯔 17GB E-IDE 하드 (2000년도 아는 사람이 구입) 는

죽었다 깨어나도 DMA 가 먹질 않아서 상당히 고생했었네요~

아마도 후배놈이 얼마후에 버린걸로 기억이 -.-

Fe.head의 이미지
8436
points

[quote="까나리"]제가 만져본 후지쯔 17GB E-IDE 하드 (2

0
points

까나리 씀:
제가 만져본 후지쯔 17GB E-IDE 하드 (2000년도 아는 사람이 구입) 는

죽었다 깨어나도 DMA 가 먹질 않아서 상당히 고생했었네요~

아마도 후배놈이 얼마후에 버린걸로 기억이 -.-


하드 문제는 아닌듯 합니다.
두개로 테스트 했는데.

한개는 삼성하드(15G), 시게이트(40)입니다.

둘다 win2k에서는 dma 잘 먹습니다.

참, 제가 문제 해결하고 답을 올린다는게 잠시 깜빡했네요...윗글

0
points

참, 제가 문제 해결하고 답을 올린다는게 잠시 깜빡했네요...

윗글을 보시면 아시겠지만 저의 문제는 메인보드의 IDE 컨트롤러 ServerWorkㄴ OSB4 라는 칩셋의 문제였습니다.

Google 을 전전하면서 외국 뉴스사이트 검색결과 원래 저문제의 컨트롤러가 DMA 하고는 거리가 아주 멀다는군요... 조심하세요..

그런데 이미 이러한 문제들을 커널개발자들이 확인하고는 커널 2.4.26 이후부터는 하드웨어를 무시하고 소프트적으로 DMA 를 실행할수 있도록 소스가 바뀌었고, 2.6 버젼에서는 좀더 좋아졌다는 군요...

그런데 문제는 커널을 컴파일을 이것저것 버전별로 해보았지만 그문제는 풀리지 않았습니다.

HP 서비스 센터에서는 원래 그 서버는 SCSI 만 사용하도록 되어있다면서 손쓸수 있는 방법이 전혀 없다고 냉정하게 말하더군요...

그런데 결국은 Google 이 답을 주더군요...^^v

/etc/sysconfig/harddisks 라는 설정파일에서

USE_DMA = 1
EXTRA_PARAMS="-X34" // 사실 이 파라메터는 뭐하는건지는 잘 모르겠네요..^^

라는 옵션을 켜주었더니 이녀석이 부드럽게 돌아가는겁니다..

hdparm -t /dev/hda 로 체크해봤더니, 15 M/sec 정도 나오고 CPU 점유율은 어제 그랬냐는듯이 조용하고요..

예전에 DMA 옵션이 없을때는 2M/sec 겨우 나오고 CPU 100% 점유율을 보였는데 말이죠...

hdparm 명령어로 커널 옵션을 변경해도 되지 않는 분들은 위 방법을 써보세요... ^^

즐~

-X 는 특정 dma 모드로 돌리고 싶을때 쓰는 옵션이네요.아래 자료

0
points

-X 는 특정 dma 모드로 돌리고 싶을때 쓰는 옵션이네요.
아래 자료를 참고하면 -X34 는 Multi-Word-DMA 2 모드를 설정하는 옵션이고, 최대 전송율은 16MB/s 라고 하네요.

For multi-word DMA, the value used is the desired DMA mode number plus 32.
For UltraDMA, the value is the desired UltraDMA mode number plus 64.

Transfer mode Data rate
Single-Word-DMA 0 2.1 MB/s
Single-Word-DMA 1 4.2 MB/s
Single-Word-DMA 2 8.3 MB/s
Multi-Word-DMA 0 4.2 MB/s
Multi-Word-DMA 1 13.3 MB/s
Multi-Word-DMA 2 16.6 MB/s

Transfer mode Data rate
UltraDMA 0 16,6 MB/s
UltraDMA 1 25,0 MB/s
UltraDMA 2 (ATA 33) 33,3 MB/s
UltraDMA 3 45,0 MB/s
UltraDMA 4 (ATA 66) 66,6 MB/s
UltraDMA 5 (ATA 100) 100 MB/s
UltraDMA 6 (ATA 133) 133 MB/s

HP ML370 + Samsung 80GB ATA133 -> 속도처리 개선

0
points

[root@bbs2 ~]# fdisk -l

Disk /dev/hdb: 80.0 GB, 80060424192 bytes
255 heads, 63 sectors/track, 9733 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 9733 78180291 83 Linux

Disk /dev/sda: 73.4 GB, 73407900160 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 1300 10241437+ 83 Linux
/dev/sda3 1301 2575 10241437+ 83 Linux
/dev/sda4 2576 8924 50998342+ 5 Extended
/dev/sda5 2576 2836 2096451 82 Linux swap
/dev/sda6 2837 8924 48901828+ 83 Linux

[root@bbs2 ~]# cat /proc/ide/svwks

ServerWorks OSB4/CSB5/CSB6

ServerWorks CSB5 Chipset (rev 93)
------------------------------- General Status ---------------------------------
--------------- Primary Channel ---------------- Secondary Channel -------------
disabled disabled
--------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------
DMA enabled: yes yes no no
UDMA enabled: yes yes no no
UDMA enabled: 1 5 0 0
DMA enabled: 2 2 2 2
PIO enabled: 4 4 0 0

[root@bbs2 ~]# hdparm -c1 -d1 -Xudma5 /dev/hdb

/dev/hdb:
setting 32-bit IO_support flag to 1
setting using_dma to 1 (on)
setting xfermode to 69 (UltraDMA mode5)
IO_support = 1 (32-bit)
using_dma = 1 (on)

[root@bbs2 ~]# hdparm -t /dev/hdb

/dev/hdb:
Timing buffered disk reads: 156 MB in 3.04 seconds = 51.39 MB/sec

[root@bbs2 ~]#

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.