[SCore-users-jp] NICの問題?,full-duplexで動作しない,scstestで失敗する

akira nakagawa nakira @ cogni.cs.kumamoto-u.ac.jp
2003年 1月 16日 (木) 10:31:20 JST


中川@熊本大学 と申します。

初めてこのMLに投稿します。

今回の質問はNICに関するものです。

問題は /opt/score/deploy/scstest が失敗するというものです。

ここから,問題を特定するまでの過程です。
最後の方に質問させていただきたいことが書いてあります。



先ず,マシンの構成ですが,
/opt/score/etc/scorehosts.db に以下の様な記述があります。

parallel-a021.cogni.kumamoto-u.ac.jp   SEG20
parallel-a022.cogni.kumamoto-u.ac.jp   SEG20
parallel-a023.cogni.kumamoto-u.ac.jp   SEG20
parallel-a038.cogni.kumamoto-u.ac.jp   SEG30

SEG20のマシンにはプラネックスコミュニケーションズ社の
GN-1000TEという Gigabit イーサネットアダプタを搭載しています。

SEG30には同社のFNW-9803-Tという100Base-TX対応のNICを用いて
います。
(ドライバはtulipで,カーネル2.4.18-2SCORE付属のもの)

SEG20のマシンは NETGEARのGS508TというGigabitのスイッチングハブに接続,
SEG30のマシンは BayStackの350T-HDという100Baseのスイッチングハブに接続し,
互いのハブをカスケード接続しています。

SEG20のマシンは問題なく動作しており,scstestもきちんと動作します。

問題があるのは新たに導入中のSEG30のマシンのNICです。

scout -g seg20+seg30 とし,scstestを行うと,以下の様な症状が出ます。
()内は私のコメントです。

[root @ parallel-a021 deploy]# ./scstest -network ethernet
SCSTEST: BURST on ethernet(chan=0,ctx=0,len=16)
50 K packets.
100 K packets.(いつも100 K で止まるわけではない。不定)
parallel-a021( 0) burst: pmGetSendBuffer: Connection timed out(110)
parallel-a022( 1) burst: pmGetSendBuffer: Connection timed out(110)
parallel-a023( 2) burst: pmGetSendBuffer: Connection timed out(110)
(4,5秒位してから)
parallel-a038( 3) burst: pmGetSendBuffer: Connection timed out(110)

なにが問題を引き起こしているのか切り分けるために以下の様な
テストをしてみました。

ドライバの設定は /etc/modules.conf で以下の様にしました。

alias eth0 tulip 
#options tulip options=3 ## 100Base-TX (half)
#options tulip options=5 ## 100Base-TX (full)

(optionsを全てコメントでauto-negothiation)

HUBの設定と,NICの設定を組み合わせてうまくいく組み合わせを探しました。
a038は問題のNICを搭載したマシンです。

BayStack(HUB)の AutoNegothiationをONにし,a038の設定を変化させる。
auto-negothiation -> 駄目
100Base-TX half   -> 駄目
100Base-TX full   -> 駄目

HUBの AutoNegothiationをOFFにし,HUBの設定とNICの設定を同じにする
100Base-TX full   -> 駄目
100Base-TX half       -> 成功

また,HUBに問題がある可能性があるので,HUBを変えて同様のテストを
行いました。
HUBはNETGEARのGS508Tを用いました。これはポートの設定を変えられないようなので,
NICの設定のみを変化させました。
結果,全ての組み合わせで失敗しました。

結局ここまで調べた結果,どうやらNICに問題があるだろうという結論に達し
ました。(ドライバのtulipは多分無実?)

で,特に気になることですが,NICの動作をhalf,full,どちらにしても
diagツールが以下の様なメッセージを吐くことと,
(diffとって違いが無いことを確認しました。)


[root @ parallel-a038 root]# ./tulip-diag 
tulip-diag.c:v2.06 1/8/2001 Donald Becker (becker @ scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a ADMtek AL985 Centaur-P adapter at 0xe000.
 Comet duplex is reported in the MII status registers.
 Transmit started, Receive started, half-duplex. ←full-duplexにならない
  The Rx process state is 'Waiting for packets'.
  The Tx process state is 'Idle'.
  The transmit unit is set to store-and-forward.
  Comet MAC address registers 51cc9000 ffff112d
  Comet multicast filter 0000000040000000.
 Use '-a' or '-aa' to show device registers,
     '-e' to show EEPROM contents, -ee for parsed contents,
  or '-m' or '-mm' to show MII management registers.

( diagツールは http://www.scyld.com/network/tulip.html から
  Ver 0.9.14 用のものを持ってきました。 )


NICをhalf-duplexに設定してもHUBがfull-duplexで接続されていると
誤認識していることです。

BayStackでポートを100Base full-duplex固定 , NIC を 100Base full-duplex固定
に指定したとき,dmesgには以下のように強制的に full-duplexにすると
表示されるのですが,
( tulip0: Transceiver selection forced to 100baseTx-FDX. )
diagツールではやはり,half-duplexといわれます。


結局,原因はlinux上でNICがhalf-duplexで動作している様なのに
HUB側から見るとfull-duplexに見えてしまうというところだろうと 
思います。


出来ればfull-duplexできちんと動作させたいので,
どの様にすればきちんとfull-duplexで動作させることが
出来るのかをどうぞご教授お願いします。

それでは,よろしくお願いします。

-- 
=========================================================
熊本大学 大学院 自然科学研究科 数理科学情報システム専攻 1年 

情報認知研究室所属

中川 彰

メールアドレス
大学 : nakira @ cogni.cs.kumamoto-u.ac.jp
========================================================



SCore-users-jp メーリングリストの案内