トップ «前の日記(2018-12-27) 最新 次の日記(2018-12-29)» 編集

Orz日記 by Akio Morita

ToDo:

  • 15 SAD Fit[]回りの障害事例の解析
  • 10 smart pointer版PEGクラスの再実装(Left Recursionまわり)
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|06|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|06|07|08|10|12|
2016|01|02|03|05|06|08|10|11|
2017|01|02|03|04|05|06|07|09|10|11|12|
2018|01|02|03|04|06|07|08|09|10|11|12|
2019|01|03|04|05|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

2018-12-28 [長年日記]

_ [SAD]jlist掃除 in Cコード

sad_cstrマクロによるstringポインタ参照に書き換える作業を進行中

残っているのは

  • src/tfProcess_.c
  • src/tfFileIO_.c
  • src/tfXlib_.c

_ [SAD]itflist掃除 in Cコード

itflistを使ってon-stack list constructionしているコードを明示的なlistコンテナ割り当てとtfsetlistで書き換える作業を進行中

長大なリストが戻ってくる可能性がある部分では、mstk検査をしていないので stack corruptionの危険が生じている

残っているのは

  • src/tfTkInter_.c
  • src/tfProcess_.c

_ [SAD]itfmalocp整理

  • 唯一の参照元src/tffswake.fが管理するデータ構造と影響範囲の解析完了
  • 新しいデータ構造の基本設計完了
  • common block上の iwakeoldpと一部関係があるが、こっちはどうする?
    • k64系では、データ構造は廃止されている
    • FFSコマンドに関しては、WAKEコマンドのみSADScriptによる再実装、その他の関連コマンドは廃止されている(要解析)

_ [SAD]helper関数のアイデア

list containerからReal配列ハンドルや Type/Addr配列ハンドルを取り出す操作があるが、内部のデータ構造を隠蔽する為の抽象化helperを用意すべきでは?

検討すべきコーナーケース

  • Reals時に、Type/Addr配列ハンドルを要求された際の動作
  • NonReals時に、Real配列ハンドルを要求された際の動作

多分、NULLを返すのが妥当?

container生成時だけは、書き込みの為にnon-constである必要があるが、参照用途では、constハンドルを返すべきと考えられる

const/non-constで、helperを分離すべきか? (C++と異なり、proxy objectによるtype dispatchは行えない)

_ [SAD]implicit宣言コード

includeされているcommon宣言をmoldule化作業で自動検査の障害となるimplicit宣言を含むsrc/inc/*.incの参照

include元 参照数 ファイル数
src/inc/TFMACRO.inc 123 104
src/inc/TMACRO.inc 33 28

数量的には、TMACRO.incからやっつけるべき?

_ [FreeBSD][Ryzen]Ryzen Threadripper 2950X

基本的な仕込みは終わったので、耐久ストレステストに入ったのだが、未だに安定しない

耐久ストレステストの内容は、最大並列度でのエンドレス buildworld + buildkernel

現在の最長記録は36時間程度で、なぜかハングアップする状況

少なくとも、Ryzen TR1の初期出荷分で発生したSEGV系の不具合ではない

原因の洗い出しと対策のために色々試しているが未だに解決していない Orz

  • UEFI firmware ASRockの最新のbeta版(Threadripper回りのCPU firmwareが更新されている為)
  • kernel 最新の12-STABLEを使用
  • AMD RyzenのErrataリストから 1021, 1033, 1049, 1057, 1091, 1095, 1109に関してはcputontolによるMSRパッチとmachdep syscltによるworkaroundを適用(データーレース・ハグアップ系の対策可能なエラッタ)

この状態でもハングアップするので、さらにSMT回りのデータレース等を疑ってmachdep.hyperthreading_allowed=0にてSMTを殺した状態も試したが、ハングアップする

Tjmaxの超過による熱暴走系を疑って、冷却系の設定を変更してTjを10℃程度低下させたところ、24時間も持たずに30分以内にハングアップした(2回)

  • 少なくともCPUの熱暴走によるハングアップではなさそう
    • 冷却強化状態で、Tctl 80℃程度に収まっている
  • ブースト機能等が効き易くなってハングアップ頻度が上がったとすると、実行時の競合系のエラッタを踏んでいる?

CPUのエラッタ以外の可能性として疑っているのは

  • powerd++による P-stateの動的変更
  • NVMeストレージ系の不具合

現在、メインストレージを SATA SSDに切り替えNVMeを切り離した状態かつい、CPU P-stateを固定した状態で、ストレステストを実施中

_ [艦これ]2019冬イベ開始

E-1甲作戦 18:48スタート、20:53 クリア

E-1からラスダン編成が固い Orz


カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記