silicon image sata 컨트롤러와 seagate 하드디스크 궁합.

ganadist의 이미지

커널 2.6에서는 sata 컨트롤러 드라이버가 2가지가 포함되어있는데, 하나는 libata를 사용하는 드라이버(sata_sil)와 기존의 ide드라이버로 구현되어 있는 놈(siimage)입니다.

siimage는 커널 2.4에서 사용되다가 2.6에서는 deprecate딱지가 붙어있어서 sata_sil로 반년동안 잘 쓰고 있었는데, 얼마전 공으로 시게이트 120기가짜리 하드디스크를 구해서 시스템에 꽂아두고 소스파일들을 다 옮겼습니다.. 그런데 가끔식 하드디스크에서 이상한 에러 메세지를 내뱉더군요. 그래서 파일시스템 io 벤치마킹 프로그램을 몇가지 돌려봤는데 계속 커널의 scsi layer에서 에러메세지가 나오더군요..

커널 멜링을 살펴보니 아직 sata_sil 보다는 siimage 드라이버를 쓰는편이 좋을거다 라는 말이 많이 나와서 siimage로 커널을 다시 올리고 (디바이스 파일 이름 스킴이 sdx에서 hdx로 바뀌어서 꽤 고생했습니다. 그래서 파티션이름에 label을 박고 fstab에 장치이름 대신 label로 마운트하도록 바꾸었습니다.) 다시 벤치마킹 프로그램을 돌리니 더이상 에러는 안나더군요..

그래서 즐거운 마음으로 hdparm -t 를 돌렸습니다.

Quote:

ganadist@ganadist ~ $ sudo /sbin/hdparm -t /dev/hde

/dev/hde:
Timing buffered disk reads: 44 MB in 3.01 seconds = 14.62 MB/sec

어라.. 이게뭐지..

hdparm으로 옵션을 이리저리 바꿔도 15MB/s 정도의 전송속도밖에 안나오더군요. 다시 열심히 구글링..

silicon image sata 컨트롤러와 seagate 하드디스크사이의 궁합때문에 일부러 속도를 제한해놨더군요 --;;

하드디스크 펌웨어 버젼에 따라 고쳐졌다고 되어 있는데 커널 드라이버에서는 일단 하드디스크 모델별로만 속도제한을 하도록 되어있었습니다. 일단 제가 가지고 있는 하드디스크의 펌웨어는 고쳐져 있는 것이라고 적혀있길래 커널 소스를 조금 손보았습니다.

리눅스 2.6.10에서는 drivers/ide/pci/siimage.c 966번째 줄에 있는 siimage_fix 라는 함수를 건너띄게 하면됩니다.
만약 sata_sil드라이버를 쓰고 있으면 drivers/scsi/sata_sil.c 의 309번째 줄에 있는 sil_dev_config 함수에서 Seagate errata fix 부분을 건너띄도록 하면 됩니다.

이렇게 적용하고 나서 hdparm을 돌리니 이렇게 되네요.

Quote:

ganadist@ganadist /usr/src/linux/drivers/scsi $ sudo /sbin/hdparm -t /dev/hde

/dev/hde:
Timing buffered disk reads: 160 MB in 3.03 seconds = 52.81 MB/sec

이상 간단한 삽질기였습니다. 혹시나 silicon image 컨트롤러 쓰시는 분은 seagate 하드나 maxtor하드 붙이지 마세요;;

Forums: 
azirael의 이미지

제가 말씀하신 컨트롤러에 하드 쓰고 있는데,
아무 문제 없습니다. 천행이라고나 할까 :)
저는 sata에 seagate 두 개를 raid 1로 묶어서 쓰고 있습니다.
scsi모듈을 쓰고 있고요.

Quote:

/dev/md0:
Timing cached reads: 1708 MB in 2.00 seconds = 853.70 MB/sec
Timing buffered disk reads: 314 MB in 3.01 seconds = 104.40 MB/sec
doodoo의 이미지

ganadist wrote:
커널 2.6에서는 sata 컨트롤러 드라이버가 2가지가 포함되어있는데, 하나는 libata를 사용하는 드라이버(sata_sil)와 기존의 ide드라이버로 구현되어 있는 놈(siimage)입니다.

siimage는 커널 2.4에서 사용되다가 2.6에서는 deprecate딱지가 붙어있어서 sata_sil로 반년동안 잘 쓰고 있었는데, 얼마전 공으로 시게이트 120기가짜리 하드디스크를 구해서 시스템에 꽂아두고 소스파일들을 다 옮겼습니다.. 그런데 가끔식 하드디스크에서 이상한 에러 메세지를 내뱉더군요. 그래서 파일시스템 io 벤치마킹 프로그램을 몇가지 돌려봤는데 계속 커널의 scsi layer에서 에러메세지가 나오더군요..

커널 멜링을 살펴보니 아직 sata_sil 보다는 siimage 드라이버를 쓰는편이 좋을거다 라는 말이 많이 나와서 siimage로 커널을 다시 올리고 (디바이스 파일 이름 스킴이 sdx에서 hdx로 바뀌어서 꽤 고생했습니다. 그래서 파티션이름에 label을 박고 fstab에 장치이름 대신 label로 마운트하도록 바꾸었습니다.) 다시 벤치마킹 프로그램을 돌리니 더이상 에러는 안나더군요..

그래서 즐거운 마음으로 hdparm -t 를 돌렸습니다.

Quote:

ganadist@ganadist ~ $ sudo /sbin/hdparm -t /dev/hde

/dev/hde:
Timing buffered disk reads: 44 MB in 3.01 seconds = 14.62 MB/sec

어라.. 이게뭐지..

hdparm으로 옵션을 이리저리 바꿔도 15MB/s 정도의 전송속도밖에 안나오더군요. 다시 열심히 구글링..

silicon image sata 컨트롤러와 seagate 하드디스크사이의 궁합때문에 일부러 속도를 제한해놨더군요 --;;

하드디스크 펌웨어 버젼에 따라 고쳐졌다고 되어 있는데 커널 드라이버에서는 일단 하드디스크 모델별로만 속도제한을 하도록 되어있었습니다. 일단 제가 가지고 있는 하드디스크의 펌웨어는 고쳐져 있는 것이라고 적혀있길래 커널 소스를 조금 손보았습니다.

리눅스 2.6.10에서는 drivers/ide/pci/siimage.c 966번째 줄에 있는 siimage_fix 라는 함수를 건너띄게 하면됩니다.
만약 sata_sil드라이버를 쓰고 있으면 drivers/scsi/sata_sil.c 의 309번째 줄에 있는 sil_dev_config 함수에서 Seagate errata fix 부분을 건너띄도록 하면 됩니다.

이렇게 적용하고 나서 hdparm을 돌리니 이렇게 되네요.

Quote:

ganadist@ganadist /usr/src/linux/drivers/scsi $ sudo /sbin/hdparm -t /dev/hde

/dev/hde:
Timing buffered disk reads: 160 MB in 3.03 seconds = 52.81 MB/sec

이상 간단한 삽질기였습니다. 혹시나 silicon image 컨트롤러 쓰시는 분은 seagate 하드나 maxtor하드 붙이지 마세요;;

제가 지금 그렇게 된것 같네요...
검색하여 이런글을 보니 무지 반갑네요...
검색의 즐거음....^^;

지금 한번 해 볼려구 하니...우분투 커널 컴파일 만만 찮네요...

한소프트에서는 껌 이었는데.....-_-;

doodoo의 이미지

지금 컴파일 중 잡담...
make-kpkg 에서 kernel_image 하지 않고 buildpackage 해버렸네요

짜르기도 머하고 해서 그냥 지켜보고 있는데...

한가지 궁금한것은 ...지금까지 한 소프트에서 취미 생활로 계속 커널을
수동으로 올려 왔을땐...이런 현상이 없었는데....

데비안(우분투 포함) 페키지에서는 따로 kernel.org에서 나온것을 다시
한번 데비안 용으로 다시 패키징하여 내 놓는가 보죠?

그러니 sata_sil 드라이버에서 갑자기 속도가 준것을 느끼는것 아닐까 하는
생각이 문득 드네요....

그리고 /lib/modules에 들어가야 하는 라이브러리는 ...또 어떡해야
하지?... 또 난감 해지내요....
그냥 deb페키지를 설치하면 끝인가...흠...

doodoo의 이미지

doodoo@doodoo:~$ sudo hdparm -t /dev/sda
Password:

/dev/sda:
 Timing buffered disk reads:   22 MB in  3.31 seconds =   6.66 MB/sec

새로운 커널로 리부팅하고 한번 해보니....
일 났군요...그냥 그대로 입니다...헐 ~~~
혹시 hdparm 값을 좀 올려 주시면 않돼겠습니까?
제껀...이렇게 나오는 것이 좀 이상 합니다.
doodoo@doodoo:~$ sudo hdparm /dev/sda

/dev/sda:
 IO_support   =  0 (default 16-bit)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 19457/255/63, sectors = 312581808, start = 0

다른 하드를 보면...

doodoo@doodoo:~$ sudo hdparm /dev/hda

/dev/hda:
 multcount    =  0 (off)
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 65535/16/63, sectors = 160836480, start = 0

이렇게 보이는 데요.....
문론 irq도 없고 IO_support 값을 바꿀수도 없어요..TT;
doodoo의 이미지

최근의 메일링을 좀 보니 ...새로운 문제 이군요.
http://www.gossamer-threads.com/lists/linux/kernel/571980?page=last
에 보면 이것이 제 문제 인것 같은데.....

이 패치는 확실히 제 능력 밖인것 같네요...흘~~~

doodoo의 이미지

헉....갑자기 되돌아 왔네요...

doodoo@doodoo:/usr/src$ sudo !!
sudo hdparm /dev/sda

/dev/sda:
 IO_support   =  0 (default 16-bit)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 19457/255/63, sectors = 312581808, start = 0
doodoo@doodoo:/usr/src$ sudo hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  166 MB in  3.03 seconds =  54.74 MB/sec

아리송 하네요...모가 잘못됐지?

doodoo의 이미지

알려드립니다.
하드 불량이었습니다.

근데..또 웬디로 샀습니다 ㅠㅠ
왜그ㅤㄹㅔㅆ을까!??

지리즈의 이미지

doodoo wrote:
알려드립니다.
하드 불량이었습니다.

근데..또 웬디로 샀습니다 ㅠㅠ
왜그ㅤㄹㅔㅆ을까!??

저도 웬디인데 문제는 없는 것 같습니다만...

[root@zirize ~]# lspci | grep -i sis
00:00.0 Host bridge: Silicon Integrated Systems [SiS]: Unknown device 0756 (rev 02)
00:01.0 PCI bridge: Silicon Integrated Systems [SiS]: Unknown device 0004
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] (rev 48)
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev 01)
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] Sound Controller (rev a0)
00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
00:04.0 Ethernet controller: Silicon Integrated Systems [SiS]: Unknown device 0190
00:05.0 RAID bus controller: Silicon Integrated Systems [SiS]: Unknown device 0182 (rev 01)
00:06.0 PCI bridge: Silicon Integrated Systems [SiS]: Unknown device 000a
00:07.0 PCI bridge: Silicon Integrated Systems [SiS]: Unknown device 000a
[root@zirize ~]# lsmod | grep sata
sata_sis                9412  14
libata                 67736  1 sata_sis
[root@zirize ~]# hdparm -I /dev/sda | grep -i model
        Model Number:       WDC WD800JD-55LUA1
[root@zirize ~]# hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  174 MB in  3.01 seconds =  57.77 MB/sec
[root@zirize ~]# uname -r
2.6.15

커널은 kernel.org에서 직접 다운받아서 아무런 패치없이 컴파일해서 올렸습니다.

There is no spoon. Neo from the Matrix 1999.

atie의 이미지

베어본 노트북 구성해 보면서 sata 디스크는 일단 제외를 해 보곤 했는데 이 글을 보니 생각을 고쳐야 하겠다는 생각이 드는군요. 지금 쓰는 노트북 하드의 두 배 속도가 나는 것을 보니 더 그렇습니다.

좋은 글 고맙습니다.

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

익명 사용자의 이미지

atie wrote:
베어본 노트북 구성해 보면서 sata 디스크는 일단 제외를 해 보곤 했는데 이 글을 보니 생각을 고쳐야 하겠다는 생각이 드는군요. 지금 쓰는 노트북 하드의 두 배 속도가 나는 것을 보니 더 그렇습니다.

좋은 글 고맙습니다.

운이 좋으면 고생안하지만,
저는 현재 나와있는 배포본 설치CD가
제 sata 컨트롤러 지원하지 않아서 삽질 많이 했습니다.
(fc4,gentoo, ubuntu,kubuntu. 메이저급은 전멸입니다.)

다행히 보통 ATA하드도 있어서,
ATA에 인스톨하고 sata에 옮기는 삽질을 몇번이나 했습니다.

새로운 배포본 버전이 나오긴 전까진 다른 배포본으로 옮겨갈 엄두도 안납니다.

참고로...

[root@zirize ~]# hdparm -I /dev/hda | grep -i model
        Model Number:       ST380011A
[root@zirize ~]# hdparm -t /dev/hda

/dev/hda:
 Timing buffered disk reads:  166 MB in  3.02 seconds =  55.04 MB/sec
[root@zirize ~]# hdparm -I /dev/sda | grep -i model
        Model Number:       WDC WD800JD-55LUA1
[root@zirize ~]# hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  174 MB in  3.01 seconds =  57.84 MB/sec
[root@zirize ~]#

노트북용 하드가 느려서 그렇지
일반 ATA용 하드가 SATA에 비해서
그렇게 까지 성능차이가 나는 것 같지는 않습니다.

ps)
jachin님의 충고 덕분에 ATA하드 하나는
남 안준 것이 첨만 다행이라 생각합니다. ^^

jachin님 감사드립니다. :wink:

지리즈의 이미지

헉 윗글 제글입니다. 로그인 하는 것을 잊어서.. 헐...

ps)atie님께서도 The Matrix에 계시는군요..
그렇다면, 제 서명의 URL에 한번 클릭해보시고 한번 웃어보세요^^

There is no spoon. Neo from the Matrix 1999.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.