IDE 하드의 DMA 불가 현상

wontagi의 이미지

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

Quote:

[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

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

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의 이미지

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


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

즐겁게 놀아보자.

wontagi의 이미지

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

Hello there~

warpdory의 이미지

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

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

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


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

즐겁게 놀아보자.

wontagi의 이미지

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

Hello there~

wontagi의 이미지

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

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

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

Hello there~

wontagi의 이미지

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

Hello there~

bluecafe의 이미지

허접의견입니다.

Quote:

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 로 바뀌는 듯 하던데 그부분도 확인해 보시면 도움이 되지 않을까 해서 적어 보았습니다.

wontagi의 이미지

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

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

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

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

Hello there~

cinsk의 이미지

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

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

소리의 이미지

cinsk wrote:
이게 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의 이미지

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

--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)

Fe.head의 이미지

저도 그런데요.

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

리눅스 설치할려고 깔면

dma때문에 안됩니다.

via 칩셋이구요.

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

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

Fe.head의 이미지

그런데 질문하나.

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

linux root=/dev/hda2 ro ???

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

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

cinsk의 이미지

fehead wrote:
그런데 질문하나.

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

linux root=/dev/hda2 ro ???

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

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

Fe.head의 이미지

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

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

linux root=/dev/hda2 ro ???

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

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


답변 감사합니다.

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

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

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

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

이놈의 via 메인보드

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

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

까나리의 이미지

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

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

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

Fe.head의 이미지

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

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

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


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

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

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

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

wontagi의 이미지

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

윗글을 보시면 아시겠지만 저의 문제는 메인보드의 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 명령어로 커널 옵션을 변경해도 되지 않는 분들은 위 방법을 써보세요... ^^

즐~

Hello there~

mushim의 이미지

-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

windboy의 이미지

[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 ~]#

댓글 달기

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 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 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>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 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>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 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>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.